test: close per-file coverage gaps opened by the message-machine refactor

Downstream packages lost the tests that exercised their agent-loop-facing
edges when the loop was rewritten. Restore 100% per-file coverage with
behavior tests through public seams: llm-retry config validation and
cancellation races, goal replay drift/staleness/teardown edges, plan-mode
disposed-flush, workspace-context empty-change commits, api-proxy
synchronous send failures, acp-snapshot spill-path extraction and refresh
write-back, ACP injection-triggered turns, cli-demo and tui inbox
lifecycle edges, and agent-loop retry/settlement/lifecycle branches.
The only source changes are narrowly-justified v8 ignore annotations on
invariant guards and one redundant-guard removal (workspace-context).
This commit is contained in:
_Kerman
2026-07-26 11:49:19 +08:00
parent 8432c68b6a
commit af3311e1f6
16 changed files with 940 additions and 5 deletions
@@ -455,6 +455,29 @@ describe('refreshFixtureReplacements', () => {
{ from: '/new', to: '/old' },
])
})
it('stabilizes moved snapshot spill paths by filename while skipping unchanged or unmatched names', () => {
const spill = (session: string, hash: string, name: string): string =>
`/tmp/dsh-acp-snapshot-spill/session-${session}/${hash}-${name}`
const record = (text: string): string =>
`${JSON.stringify({ type: 'session', id: 'same', cwd: '/same' })}\n`
+ `${JSON.stringify({ type: 'tool/result', data: { content: [{ type: 'text', text: `stored at: ${text} ` }] } })}\n`
const freshBash = spill('aaaaaaaaaaaa', 'bbbbbbbbbbbb', 'bash.txt')
const oldBash = spill('cccccccccccc', 'dddddddddddd', 'bash.txt')
const shared = spill('eeeeeeeeeeee', 'ffffffffffff', 'grep.txt')
const orphan = spill('111111111111', '222222222222', 'orphan.txt')
const logs: HarvestedLog[] = [{
id: 'diagnostic',
createdAt: 1,
content: record(`${freshBash} and ${shared}`),
}]
const fixtures = [record(`${oldBash} and ${shared} and ${orphan}`)]
// bash.txt moved → replaced; grep.txt is identical and orphan.txt has no
// fresh counterpart → both skipped.
expect(refreshFixtureReplacements(logs, fixtures)).toEqual([
{ from: freshBash, to: oldBash },
])
})
})
describe('stabilizeRefreshLog', () => {