dsh-plan-completion 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,46 +1,71 @@
1
- # Changelog
2
-
3
- All notable changes to this project are documented here.
4
- Format: [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), versioning: SemVer.
5
-
6
- ## [0.1.0] - 2026-11-02
7
-
8
- ### Added- Implicit per-session plan with version watermark (`gen.rev`), steps, evidence and update reason.
9
- - Turn-end trigger: after every completed turn the plugin generates a Tab-completable next-message
10
- suggestion plus plan patches, using an isolated model call (never the agent loop).
11
- - Floating suggestion bar above the composer: `Tab` fills the draft (does not send), `Alt+1..3`
12
- fills alternates, `Esc` dismisses; always-on `▤ vX.Y` entry opens the plan panel.
13
- - Plan panel (card style): intent, steps with status, evidence, latest update reason, next
14
- suggestion, fill/sync actions.
15
- - Always-on fallback states: dashed hint pill when the session has no plan yet, and a floating
16
- hero entry (`▤ 计划`) when no session-bound dock is mounted (new conversation shell).
17
- - Warm backfill: opening an old session the plugin has never observed builds its plan from the
18
- durable session log (`POST /plan-completion/warm`, deduped per session).
19
- - User edit channel (`POST /plan-completion/steps`): mark a step done/doing, or rewrite the whole
20
- step list; `editedByUser` plans cannot be auto-rewritten by the model (use `/replan`).
21
- - Slash commands: `/roadmap` (read-only plan) and `/replan <direction>` (force rewrite).
22
- - Production settings from plugin config: `evidenceChars`, `maxTokensPatch`, `maxTokensRewrite`,
23
- `warmBackfill`, `enableDebugRoutes`, `debugDir`.
24
- - 78 unit tests (plan/prompt/heuristics/evidence/job/store/pipeline).
25
-
26
- ### Changed
27
- - Package renamed from `@local/dsh-plan-completion` to **`dsh-plan-completion`** for standalone
28
- GitHub distribution (install as a `link:` profile bundle). Existing installs should uninstall
29
- the old name and install the repository path; existing runtime state is preserved across the
30
- rename.
31
- - Patch-path evidence is sliced to `evidenceChars` (default 1500) and output capped at
32
- `maxTokensPatch` (400); rewrite keeps full evidence and 1200 tokens — based on two isolation
33
- test rounds (27 variants each) and 6 real auto-job samples.
34
-
35
- ### Fixed
36
- - Cold-boot ordering: routes/commands register through `ctx.inject`, so the plugin works even when
37
- it activates before `webServer` / `commands` exist.
38
- - Duplicate HTTP handlers after plugin toggle/hot reload: host state and route disposers now live in
39
- a process-wide registry, so re-applying the plugin disposes the previous handlers.
40
- - Client keeps a stale plan when the host reports none; `plan:null` now clears the cached plan so
41
- the bar falls back to its always-on state.
42
-
43
- ### Security
44
- - Debug endpoints (`theme`, `experiment`, `autojob`, `steps`, `reset`) are only registered when
45
- `enableDebugRoutes: true`; production endpoints are `state`, `debug`, `diag`, `replan`, `warm`.
46
- - No credentials are stored in the plugin; model calls use the host `llm` service.
1
+ # Changelog
2
+
3
+ All notable changes to this project are documented here.
4
+ Format: [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), versioning: SemVer.
5
+
6
+ ## [0.1.1] - 2026-11-02
7
+
8
+ ### Fixed
9
+ - Preserve the shared plan/CAS store across plugin reloads, including upgrades from older in-memory state.
10
+ - Prevent canceled, superseded or disposed jobs from publishing stale plans; retain concurrent user edits and CAS winners.
11
+ - Clear Dock-owned state on unmount; reject responses from older requests or previous Dock lifetimes.
12
+ - Preserve legitimate resets and same-version suggestion updates; apply successful warm responses correctly.
13
+ - Reset also clears `handledTurns` so a reset session can regenerate on the same turn.
14
+ - Add a top-level route error guard and drop dead code (unused trigger key, no-op command disposer loop).
15
+ - Fix locale copy: suggestions are shown **above** the composer, not below.
16
+ - Sync delivery notes / phase-2 plan with the shipped warm-backfill and hero-entry work.
17
+ - Use a Windows-compatible test command and cover Ubuntu/Windows with Node 20/22 in CI.
18
+
19
+ ### Security
20
+ - Require DSH Host/Origin and peer authentication on every HTTP endpoint; fail closed when admission is unavailable.
21
+ - Keep debug/diag disabled by default and remove arbitrary credentialed CORS.
22
+ - Remove conversation/URL/config/error text from diagnostics and runtime logs.
23
+ - Use only the host's current default model route (including experimental judging); add modelCalls: false for heuristic-only operation.
24
+ - Add production-host, client lifecycle and security/privacy regressions. See docs/security.md for remaining data-flow boundaries.
25
+
26
+ ### Verified
27
+ - 111 unit tests pass; real-DSH canary: Electron-proxied client requests keep working under `connection.requestRejection`, direct unauthenticated requests return 401, debug routes absent in production config.
28
+
29
+ ## [0.1.0] - 2026-11-02
30
+
31
+ ### Added
32
+ - Implicit per-session plan with version watermark (`gen.rev`), steps, evidence and update reason.
33
+ - Turn-end trigger: after every completed turn the plugin generates a Tab-completable next-message
34
+ suggestion plus plan patches, using an isolated model call (never the agent loop).
35
+ - Floating suggestion bar above the composer: `Tab` fills the draft (does not send), `Alt+1..3`
36
+ fills alternates, `Esc` dismisses; always-on `▤ vX.Y` entry opens the plan panel.
37
+ - Plan panel (card style): intent, steps with status, evidence, latest update reason, next
38
+ suggestion, fill/sync actions.
39
+ - Always-on fallback states: dashed hint pill when the session has no plan yet, and a floating
40
+ hero entry (`▤ 计划`) when no session-bound dock is mounted (new conversation shell).
41
+ - Warm backfill: opening an old session the plugin has never observed builds its plan from the
42
+ durable session log (`POST /plan-completion/warm`, deduped per session).
43
+ - User edit channel (`POST /plan-completion/steps`): mark a step done/doing, or rewrite the whole
44
+ step list; `editedByUser` plans cannot be auto-rewritten by the model (use `/replan`).
45
+ - Slash commands: `/roadmap` (read-only plan) and `/replan <direction>` (force rewrite).
46
+ - Production settings from plugin config: `evidenceChars`, `maxTokensPatch`, `maxTokensRewrite`,
47
+ `warmBackfill`, `enableDebugRoutes`, `debugDir`.
48
+ - 78 unit tests (plan/prompt/heuristics/evidence/job/store/pipeline).
49
+
50
+ ### Changed
51
+ - Published to npm as **`dsh-plan-completion@0.1.0`** (https://www.npmjs.com/package/dsh-plan-completion); the DSH profile still installs the repo as a `link:` bundle.
52
+ - Package renamed from `@local/dsh-plan-completion` to **`dsh-plan-completion`** for standalone
53
+ GitHub distribution (install as a `link:` profile bundle). Existing installs should uninstall
54
+ the old name and install the repository path; existing runtime state is preserved across the
55
+ rename.
56
+ - Patch-path evidence is sliced to `evidenceChars` (default 1500) and output capped at
57
+ `maxTokensPatch` (400); rewrite keeps full evidence and 1200 tokens — based on two isolation
58
+ test rounds (27 variants each) and 6 real auto-job samples.
59
+
60
+ ### Fixed
61
+ - Cold-boot ordering: routes/commands register through `ctx.inject`, so the plugin works even when
62
+ it activates before `webServer` / `commands` exist.
63
+ - Duplicate HTTP handlers after plugin toggle/hot reload: host state and route disposers now live in
64
+ a process-wide registry, so re-applying the plugin disposes the previous handlers.
65
+ - Client keeps a stale plan when the host reports none; `plan:null` now clears the cached plan so
66
+ the bar falls back to its always-on state.
67
+
68
+ ### Security
69
+ - Debug endpoints (`theme`, `experiment`, `autojob`, `steps`, `reset`) are only registered when
70
+ `enableDebugRoutes: true`; production endpoints are `state`, `debug`, `diag`, `replan`, `warm`.
71
+ - No credentials are stored in the plugin; model calls use the host `llm` service.