deepseek-harness/packages/client/runtime/tests
imccyu 62c1f15576 fix(client): command lifecycle rows keep the composer blank
Selecting a preset from the hero pushed the session into the conversation
view: the /permission switch logs its command/run + command/done pair, the
pair folds into flow nodes, and the composerPhase predicate counted ANY
node as conversation — so the hero (composerPhase === 'blank') collapsed.
The host-side blank bit was already correct (sessionBlank = no turn/start;
knob events open no turn), but the client derives its phase from window
content, and command rows are log-only records, not conversation.

derivePhase's hasContent now excludes command nodes — the client mirror of
the host predicate. The knob events themselves never fold (not
surface-eligible), so the pair was the only leak. Covers /plan on the hero
identically (same lifecycle pair, same predicate).

Specs: the host blank spec pins the three knob events as standalone
events; a session spec drives the /permission pair through the live path
and asserts phase stays 'blank' while the command node renders.
2026-07-29 11:33:44 +08:00
..
client-apply.spec.ts feat(web): wire startup Workspace selection and sync docs 2026-07-27 06:24:09 +08:00
conversation.spec.ts feat(gui): step1 skeleton — dsc web serves built web UI over booted harness host 2026-07-22 16:24:44 +08:00
event-script.ts Merge remote-tracking branch 'origin/master' into xtr/identified-immutable-messages 2026-07-28 18:11:13 +08:00
fake-api.ts Merge remote-tracking branch 'origin/master' into web-permission-sandbox-merge-master 2026-07-29 11:16:49 +08:00
fold-adapter.spec.ts test(client): update degraded assistant fixture 2026-07-28 18:24:33 +08:00
invariant.spec.ts refactor(gui): slot system standard — single register, four props shares, framework store seat 2026-07-23 03:25:11 +08:00
lineage.spec.ts feat: slash system / input service / agent scope 2026-07-27 03:28:39 +08:00
manager.spec.ts Merge origin/master (SessionFace contract) into web-permission-sandbox-merge-master 2026-07-29 01:41:54 +08:00
node-half.spec.ts feat(gui): step1 skeleton — dsc web serves built web UI over booted harness host 2026-07-22 16:24:44 +08:00
notifier.spec.ts feat(gui): step1 skeleton — dsc web serves built web UI over booted harness host 2026-07-22 16:24:44 +08:00
partial.spec.ts feat(gui): step1 skeleton — dsc web serves built web UI over booted harness host 2026-07-22 16:24:44 +08:00
projection-store.spec.ts ci: clear the snapshots-and-artifacts lane — lint sweep and TUI snapshot re-record 2026-07-28 11:48:01 +08:00
queue-store.spec.ts refactor: identify and freeze messages at creation 2026-07-28 13:55:59 +08:00
scope.spec.ts feat: slash system / input service / agent scope 2026-07-27 03:28:39 +08:00
session.spec.ts fix(client): command lifecycle rows keep the composer blank 2026-07-29 11:33:44 +08:00
sessions-service.spec.ts Merge remote-tracking branch 'origin/master' into worktree-guifork 2026-07-28 16:12:12 +08:00
slots-service.spec.ts refactor(client): rename currentProvide to currentProvideInfo 2026-07-28 12:09:48 +08:00
store.spec.ts refactor(client-runtime): home the snapshot-store engine in contract/ 2026-07-23 10:37:15 +08:00
wire-events.spec.ts feat: slash system / input service / agent scope 2026-07-27 03:28:39 +08:00
workspaces-service.spec.ts fix(host): bound listDirectory levels at a configurable maxEntries 2026-07-29 03:45:26 +08:00