mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-27 17:58:07 +00:00
Marker presence was the launch gate, but the marker is provenance about who ran the install -- not proof the runtime works. A CLI-installed repo+venv, or a healthy install whose marker a repair deleted, both read as "never installed" and dropped the user into first-run bootstrap on every launch. Split the two questions: classifyActiveRuntime() reports marker validity and runtime usability separately, and the resolver launches whenever the runtime is usable, logging when it proceeds without a marker. An unusable runtime still falls through to bootstrap even with a valid marker, so an interrupted install can't spawn a dead backend. Drops isBootstrapComplete(), which had no callers left once the gate moved. Co-authored-by: iveywest <iveywest@users.noreply.github.com> Co-authored-by: lihengming <lihengming@users.noreply.github.com>
60 lines
2.4 KiB
TypeScript
60 lines
2.4 KiB
TypeScript
import assert from 'node:assert/strict'
|
|
|
|
import { test } from 'vitest'
|
|
|
|
import { classifyActiveRuntime, hasValidBootstrapMarker } from './active-runtime-state'
|
|
|
|
const VALID_MARKER = {
|
|
pinnedCommit: '1234567890abcdef1234567890abcdef12345678',
|
|
schemaVersion: 1
|
|
}
|
|
|
|
test('hasValidBootstrapMarker accepts the current schema with a real-looking commit', () => {
|
|
assert.equal(hasValidBootstrapMarker(VALID_MARKER, 1), true)
|
|
})
|
|
|
|
test('hasValidBootstrapMarker rejects missing, wrong-schema, and too-short markers', () => {
|
|
assert.equal(hasValidBootstrapMarker(null, 1), false)
|
|
assert.equal(hasValidBootstrapMarker({ schemaVersion: 2, pinnedCommit: VALID_MARKER.pinnedCommit }, 1), false)
|
|
assert.equal(hasValidBootstrapMarker({ schemaVersion: 1, pinnedCommit: 'abc123' }, 1), false)
|
|
})
|
|
|
|
test('classifyActiveRuntime uses a healthy active runtime even when the bootstrap marker is missing', () => {
|
|
assert.deepEqual(classifyActiveRuntime(null, 1, true), {
|
|
hasValidMarker: false,
|
|
shouldUseActiveRuntime: true,
|
|
usabilityReason: 'usable'
|
|
})
|
|
})
|
|
|
|
test('classifyActiveRuntime uses a healthy active runtime even when the marker is stale or malformed', () => {
|
|
assert.deepEqual(classifyActiveRuntime({ schemaVersion: 999, pinnedCommit: 'abc1234' }, 1, true), {
|
|
hasValidMarker: false,
|
|
shouldUseActiveRuntime: true,
|
|
usabilityReason: 'usable'
|
|
})
|
|
})
|
|
|
|
test('classifyActiveRuntime refuses an unusable runtime even if a valid marker exists', () => {
|
|
assert.deepEqual(classifyActiveRuntime(VALID_MARKER, 1, false), {
|
|
hasValidMarker: true,
|
|
shouldUseActiveRuntime: false,
|
|
usabilityReason: 'unusable'
|
|
})
|
|
})
|
|
|
|
test('a CLI-installed runtime with no marker launches instead of re-running bootstrap', () => {
|
|
// The reported symptom (#60721): install.sh / install.ps1 produced a healthy
|
|
// repo+venv, no desktop-managed marker was ever written, and every launch
|
|
// dropped the user back into the first-run installer.
|
|
const state = classifyActiveRuntime(null, 1, true)
|
|
|
|
assert.equal(state.shouldUseActiveRuntime, true, 'a usable runtime must launch')
|
|
assert.equal(state.hasValidMarker, false, 'marker provenance stays honest')
|
|
})
|
|
|
|
test('a repair that deleted the marker does not strand a healthy install', () => {
|
|
// #72166: the repair handler clears the marker unconditionally. Runtime
|
|
// usability, not marker presence, must decide the next boot.
|
|
assert.equal(classifyActiveRuntime(null, 1, true).shouldUseActiveRuntime, true)
|
|
})
|