diff --git a/packages/client/ui-plan/tests/browser-plugin.spec.ts b/packages/client/ui-plan/tests/browser-plugin.spec.ts index c16321aa87..1a6b85a586 100644 --- a/packages/client/ui-plan/tests/browser-plugin.spec.ts +++ b/packages/client/ui-plan/tests/browser-plugin.spec.ts @@ -12,6 +12,7 @@ import type { SessionId } from '@deepseek-ai/dsh-client-runtime/client' import { PlanModeControl } from '../src/client/PlanModeControl.tsx' import type { PlanModeControlInjected } from '../src/client/index.ts' import { apply, inject } from '../src/client/index.ts' +import { apply as nodeApply } from '../src/index.ts' const SID = 's-plan' as SessionId @@ -35,6 +36,10 @@ describe('ui-plan browser apply', () => { expect(inject).toEqual(['slots', 'connection', 'conversation']) }) + it('node-half apply is an intentional no-op', () => { + expect(() => { nodeApply() }).not.toThrow() + }) + it('fails loud when conversation did not declare the plan seat', async () => { const ctx = new Context() await ctx.plugin(SlotsService).await() diff --git a/packages/plan/plan-mode/tests/projection.spec.ts b/packages/plan/plan-mode/tests/projection.spec.ts index c681d44aaf..dbd6d5a733 100644 --- a/packages/plan/plan-mode/tests/projection.spec.ts +++ b/packages/plan/plan-mode/tests/projection.spec.ts @@ -73,6 +73,9 @@ describe('plan projection unit', () => { const bench = await harness(true) runPlanCommand(bench.session, '', 0) expect(bench.values().plan).toEqual({ active: false, pending: true }) + // A repeated identical selection returns the same state reference (no frame). + runPlanCommand(bench.session, '', 1) + expect(bench.values().plan).toEqual({ active: false, pending: true }) commitPlanMode(bench.session, true, 0) expect(bench.values().plan).toEqual({ active: true, pending: false }) })