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 +71 -46
- package/README.md +271 -263
- package/client.js +2040 -1994
- package/cordis.patch.yml +13 -12
- package/docs/delivery-notes.md +104 -102
- package/docs/phase-2-plan.md +72 -68
- package/docs/publish-assessment.md +100 -98
- package/docs/security.md +57 -0
- package/host/security.js +66 -0
- package/index.js +1281 -1325
- package/locale/en.json +6 -6
- package/locale/zh.json +6 -6
- package/package.json +58 -58
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.
|
|
7
|
-
|
|
8
|
-
###
|
|
9
|
-
-
|
|
10
|
-
|
|
11
|
-
-
|
|
12
|
-
|
|
13
|
-
-
|
|
14
|
-
|
|
15
|
-
-
|
|
16
|
-
|
|
17
|
-
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
|
|
24
|
-
-
|
|
25
|
-
|
|
26
|
-
###
|
|
27
|
-
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
-
|
|
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.
|