mirror of
https://github.com/deepseek-ai/deepseek-harness
synced 2026-08-15 21:04:50 +00:00
- Regenerate the cordis/config catalogs, doc graphs, and module graph for the four newly mounted plugins and the goal projection key. - ui-goal README pair (Model Experience indirect + Known Limitations) with its i18n record; sentence-allowlist entry for the indirect form. - knip workspace entry for ui-goal (tsx test pattern). - type-equiv manifest follows the seven host-coupled goal symbols to domain.ts. - The web-slash-command-dispatch note documents the dropped prompt interception and leaves with it; the goal-bar note's code paths follow the component into ui-goal (pairing re-recorded).
21 lines
1.9 KiB
Markdown
21 lines
1.9 KiB
Markdown
# @deepseek-ai/dsh-client-ui-goal
|
|
|
|
English | [中文](README.zh.md)
|
|
|
|
Goal surface plugin, browser half: the `GoalBar` strip in the `conversation.input.dock` list (order 1, tucked against the composer). The live goal arrives through `useProjection('goal')` — the host-computed whole value seeded by the history tail page and updated by `session/projection` frames — so the plugin owns no store, no refresh chain, and no event listener. The slot inject face carries only the three mutation verbs (edit / resume / clear over the `goal.*` wire domain); each reads the CAS ref from the session's current projected value at call time and surfaces the settled RPC error inline (the RPC's compare-and-set is the staleness guard — there is no client fence). Goal creation stays on the `/goal` host command; loading, absent, and completed goals render nothing.
|
|
|
|
The `/client` export surface is the plugin body (`apply`/`inject`), the `GoalBar`/`GoalDock` components, and the injected verb face types.
|
|
|
|
## Model Experience
|
|
|
|
Indirectly, through the `goal.edit`/`goal.resume`/`goal.clear` RPCs the strip's verbs submit: each accepted mutation appends a model-visible `goal/change` context message to the session (the same durable event the projection folds), so the model sees the updated goal state on its next turn. The strip itself adds no prompt content.
|
|
|
|
#### KV Cache effect
|
|
|
|
None beyond the goal mutation's own context event, which appends to the log tail like any other message.
|
|
|
|
## Known Limitations and Deferred Work
|
|
|
|
- **Durable phase only** — the projection value deliberately omits process-local activation (armed/disarmed), so the strip cannot distinguish an active-but-disarmed goal from an armed one; resume re-arms through the RPC side. A host-live-value channel is deferred until a real consumer needs it.
|
|
- **No keyless snapshot yet** — the assembled-application transcript (boot → projection → GoalBar) is deferred to the post-review cleanup pass recorded on the landing PR.
|