_Kerman
488b8df547
Merge remote-tracking branch 'origin/master' into xtr/react-loop-simplification
...
# Conflicts:
# .agents/notes/implemented/architecture/2026-07-25-web-client-session-scope-and-provide-channel.i18n.yaml
# docs/architecture.i18n.yaml
# docs/architecture.md
# docs/architecture.zh.md
# docs/cookbook/extension-cookbook.i18n.yaml
# docs/cookbook/extension-cookbook.md
# docs/cookbook/extension-cookbook.zh.md
# docs/core-data-structures/llm-streaming.i18n.yaml
# docs/core-data-structures/session.i18n.yaml
# docs/defensive-patterns.i18n.yaml
# packages/acp/acp/README.i18n.yaml
# packages/client/runtime/README.i18n.yaml
# packages/client/ui-conversation/README.i18n.yaml
# packages/client/ui-goal/README.i18n.yaml
# packages/compact/compact-basic/README.i18n.yaml
# packages/context/README.i18n.yaml
# packages/context/README.md
# packages/context/README.zh.md
# packages/context/session-reference/README.i18n.yaml
# packages/context/session-reference/README.md
# packages/context/session-reference/README.zh.md
# packages/context/tmux-context/README.i18n.yaml
# packages/core/session/README.i18n.yaml
# packages/core/session/README.md
# packages/core/session/README.zh.md
# packages/goal/command-goal/README.i18n.yaml
# packages/goal/goal-session/README.i18n.yaml
# packages/goal/goal-session/README.zh.md
# packages/guard/README.i18n.yaml
# packages/guard/README.md
# packages/guard/README.zh.md
# packages/guard/repeat-tool-guard/README.i18n.yaml
# packages/host/apiproxy/README.i18n.yaml
# packages/host/apiproxy/README.md
# packages/host/apiproxy/README.zh.md
# packages/plan/plan-mode/README.i18n.yaml
# packages/sdk/sdk-client/README.i18n.yaml
# packages/sdk/sdk-client/README.md
# packages/sdk/sdk-client/README.zh.md
# packages/session-persistence/session-persistence/README.i18n.yaml
# packages/subagent/subagent-dsh-sdk/README.i18n.yaml
# python/sdk/README.i18n.yaml
2026-08-05 20:43:30 +08:00
Turtle
8af3babaea
docs: rescan rebased documentation hierarchy
2026-08-05 16:16:57 +08:00
_Kerman
02efe3ccea
Merge remote-tracking branch 'origin/master' into xtr/react-loop-simplification
...
# Conflicts:
# .agents/notes/implemented/architecture/2026-06-11-content-block-vocabulary.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-11-content-block-vocabulary.zh.md
# .agents/notes/implemented/architecture/2026-06-11-event-sourced-sessions.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-11-microkernel-event-taxonomy.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-11-microkernel-event-taxonomy.zh.md
# .agents/notes/implemented/architecture/2026-06-18-agent-lifecycle-and-ownership-seams.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-18-session-surface.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-21-bounded-llm-request-recovery.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-21-bounded-llm-request-recovery.zh.md
# .agents/notes/implemented/architecture/2026-06-30-event-domain-semantics.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-30-event-domain-semantics.zh.md
# .agents/notes/implemented/architecture/2026-07-05-reconstructable-requests.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-05-reconstructable-requests.zh.md
# .agents/notes/implemented/architecture/2026-07-10-after-call-compaction-pressure-and-overflow-recovery.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-10-after-call-compaction-pressure-and-overflow-recovery.zh.md
# .agents/notes/implemented/architecture/2026-07-10-single-file-executable-sdk-runtime-distribution.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-10-single-file-executable-sdk-runtime-distribution.zh.md
# .agents/notes/implemented/architecture/2026-07-14-provider-routed-llm-adapters.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-15-replay-token-meter-service.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-16-explicit-turn-cancellation.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-22-unified-send-and-coalesced-user-messages.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-22-unified-send-and-coalesced-user-messages.zh.md
# .agents/notes/implemented/architecture/2026-07-24-separate-context-injection-from-turn-execution.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-24-separate-context-injection-from-turn-execution.zh.md
# .agents/notes/implemented/architecture/2026-07-25-web-client-session-scope-and-provide-channel.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-25-web-client-session-scope-and-provide-channel.zh.md
# .agents/notes/implemented/architecture/2026-07-28-identified-immutable-message-values.i18n.yaml
# .agents/notes/implemented/bug-fix/2026-07-21-semantic-session-checkpoints.i18n.yaml
# .agents/notes/implemented/bug-fix/2026-07-21-semantic-session-checkpoints.zh.md
# .agents/notes/implemented/feature/2026-06-18-compaction-capability-seam.i18n.yaml
# .agents/notes/implemented/feature/2026-06-18-compaction-capability-seam.zh.md
# .agents/notes/implemented/feature/2026-06-24-workspace-context.i18n.yaml
# .agents/notes/implemented/feature/2026-06-24-workspace-context.zh.md
# .agents/notes/implemented/feature/2026-06-30-hook-bridges.i18n.yaml
# .agents/notes/implemented/feature/2026-06-30-hook-protocol-lib.i18n.yaml
# .agents/notes/implemented/feature/2026-06-30-hook-protocol-lib.zh.md
# .agents/notes/implemented/feature/2026-06-30-interception-seams.i18n.yaml
# .agents/notes/implemented/feature/2026-06-30-interception-seams.zh.md
# .agents/notes/implemented/feature/2026-07-06-sandbox.i18n.yaml
# .agents/notes/implemented/feature/2026-07-06-sandbox.zh.md
# .agents/notes/implemented/feature/2026-07-16-durable-per-step-time-context.i18n.yaml
# .agents/notes/implemented/feature/2026-07-16-durable-per-step-time-context.zh.md
# .agents/notes/implemented/feature/2026-07-16-harness-level-loop.i18n.yaml
# .agents/notes/implemented/feature/2026-07-16-harness-level-loop.zh.md
# .agents/notes/implemented/feature/2026-07-19-human-goal-command.i18n.yaml
# .agents/notes/implemented/feature/2026-07-19-model-facing-goal-tools.i18n.yaml
# .agents/notes/implemented/feature/2026-07-19-persisted-same-session-goal-domain.i18n.yaml
# .agents/notes/implemented/feature/2026-07-19-persisted-same-session-goal-domain.zh.md
# .agents/notes/implemented/feature/2026-07-19-plugin-command-registration.i18n.yaml
# .agents/notes/implemented/feature/2026-07-19-same-session-goal-round-driver.i18n.yaml
# .agents/notes/implemented/feature/2026-07-19-same-session-goal-round-driver.zh.md
# .agents/notes/implemented/feature/2026-07-21-cross-session-references.i18n.yaml
# .agents/notes/implemented/feature/2026-07-21-cross-session-references.zh.md
# .agents/notes/implemented/feature/2026-07-27-tmux-location-context.i18n.yaml
# .agents/notes/implemented/simplification/2026-06-20-public-agent-stop-surface.i18n.yaml
# .agents/notes/implemented/simplification/2026-07-17-one-send-one-turn.i18n.yaml
# .agents/notes/implemented/simplification/2026-07-17-one-send-one-turn.zh.md
# .agents/notes/implemented/simplification/2026-07-20-unwrap-injected-content-envelopes.i18n.yaml
# .agents/notes/implemented/simplification/2026-07-22-plan-specific-collaboration-state.i18n.yaml
# .agents/notes/implemented/simplification/2026-07-22-plan-specific-collaboration-state.zh.md
# .agents/notes/implemented/simplification/2026-07-24-agent-loop-observable-state-machine.i18n.yaml
# .agents/notes/implemented/simplification/2026-07-27-request-error-retry-action.i18n.yaml
# docs/core-data-structures/compaction.i18n.yaml
# docs/core-data-structures/goal.i18n.yaml
# docs/core-data-structures/goal.zh.md
# docs/core-data-structures/llm-streaming.i18n.yaml
# docs/core-data-structures/session.i18n.yaml
# docs/core-data-structures/session.zh.md
# docs/core-data-structures/skills.i18n.yaml
# docs/core-data-structures/skills.zh.md
# docs/core-data-structures/system-prompt.i18n.yaml
# docs/defensive-patterns.i18n.yaml
# docs/defensive-patterns.zh.md
# docs/user/develop/framework/events.i18n.yaml
# docs/user/develop/framework/events.zh.md
# packages/acp/acp/README.i18n.yaml
# packages/client/ui-goal/README.i18n.yaml
# packages/compact/compact-basic/README.i18n.yaml
# packages/compact/compact/README.i18n.yaml
# packages/context/time-context/README.i18n.yaml
# packages/context/tmux-context/README.i18n.yaml
# packages/core/agent-loop/README.i18n.yaml
# packages/core/agent-loop/README.zh.md
# packages/core/agent/README.i18n.yaml
# packages/core/agent/README.zh.md
# packages/core/session/README.i18n.yaml
# packages/core/session/README.zh.md
# packages/core/system-prompt/README.i18n.yaml
# packages/core/system-prompt/README.zh.md
# packages/examples/cli-demo/README.i18n.yaml
# packages/goal/command-goal/README.i18n.yaml
# packages/goal/goal-session/README.i18n.yaml
# packages/goal/goal/README.i18n.yaml
# packages/goal/tool-goal/README.i18n.yaml
# packages/goal/tool-goal/README.zh.md
# packages/guard/README.i18n.yaml
# packages/guard/README.zh.md
# packages/guard/repeat-tool-guard/README.i18n.yaml
# packages/hooks/hooks-claude/README.i18n.yaml
# packages/hooks/hooks-codex/README.i18n.yaml
# packages/host/apiproxy/README.i18n.yaml
# packages/host/apiproxy/README.zh.md
# packages/llm/llm/README.i18n.yaml
# packages/plan/plan-mode/README.i18n.yaml
# packages/plan/plan-mode/README.zh.md
# packages/sdk/sdk-client/README.i18n.yaml
# packages/sdk/sdk-client/README.zh.md
# packages/sdk/sdk-protocol/README.i18n.yaml
# packages/session-persistence/session-persistence/README.i18n.yaml
# packages/session-persistence/session-persistence/README.zh.md
# packages/skill/tool-skill/README.i18n.yaml
# packages/subagent/subagent-dsh-sdk/README.i18n.yaml
# packages/subagent/subagent-inprocess/README.i18n.yaml
# packages/subagent/subagent-inprocess/README.zh.md
# packages/ui/jsonrpc/README.i18n.yaml
2026-08-05 13:09:53 +08:00
xjt
7bd111b2af
Merge origin/master into xjt/proofreading-active-docs-2-apply
2026-08-05 10:57:53 +08:00
_Kerman
423f7517b6
Merge remote-tracking branch 'origin/master' into xtr/react-loop-simplification
...
# Conflicts:
# packages/core/agent/package.json
2026-08-05 10:46:01 +08:00
imccyu
ca27512529
fix(packages): omit source publication payloads
2026-08-05 01:15:19 +08:00
xjt
c522053cef
Merge origin/master into xjt/proofreading-active-docs-2-apply
2026-08-04 19:51:18 +08:00
_Kerman
674278cb17
Merge remote-tracking branch 'origin/master' into xtr/react-loop-simplification
...
# Conflicts:
# packages/client/ui-conversation/src/client/queue/QueueDock.tsx
2026-08-04 19:37:51 +08:00
xjt
2db712eec7
docs(i18n): proofread active Chinese documentation
2026-08-04 17:36:14 +08:00
imccyu
e9d76dae64
fix(web): address UI polish review feedback
2026-08-04 16:25:09 +08:00
Yif
92dd231ce4
polish(web): 打磨 Web 会话界面的布局、自适应与组件一致性
...
1. 统一会话列宽度轴:新增 --dsh-chat-content-width(748px),输入框、todo、goal、queue、approval、plan review、ask question 等容器的宽度与边距全部由该变量推导,消除各面板之间的像素漂移,窄视口下的边缘留白也保持一致。
2. 输入框自适应与细节:控制行改为容器查询(460px 阈值以下权限选择器只显示图标+下拉,隐藏文字);卡片圆角 20→22、行内边距调整并整体下移 2px(发送按钮除外);permission/model 触发器统一 24px 圆角;Plan 与 Read Only 间距 +8。
3. 修复浮层菜单溢出:slash 菜单与命令弹层钳制到输入卡片宽度,超长行以省略号截断;Tooltip 增加 12px 视口边缘安全距离。
4. 增加与替换图标:Add provider 改用输入框同款加号图标(IconPlusOutline16),统一图标尺寸与字号。
5. 统一 Settings → Models 组件:补齐按钮 hover 态、select 下拉箭头不再贴边、标题区与 provider 卡片间距 +12。
6. 侧边栏交互:add workspace / group by / create session / 收起侧边栏四个图标按钮增加 500ms 延迟 tooltip(前两个向下弹出);展开态的 New Session 不再重复显示 tooltip;侧边栏窄屏自适应收起逻辑微调。
7. 其他:hero 区 workspace 徽章右移对齐;附带 Agent Note(中英双语)记录共享宽度轴与容器查询的设计取舍。
2026-08-04 14:14:12 +08:00
_Kerman
49e90695cc
refactor(agent): complete inbox lifecycle migration
2026-08-03 12:25:33 +08:00
_Kerman
dc1d542092
Merge remote-tracking branch 'origin/master' into xtr/react-loop-simplification
...
# Conflicts:
# .agents/notes/implemented/architecture/2026-07-12-agent-scope-runtime-design.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-31-goal-owned-durable-events.i18n.yaml
# .agents/notes/implemented/feature/2026-07-19-model-facing-goal-tools.i18n.yaml
# .agents/notes/implemented/feature/2026-07-22-docked-web-goal-bar.i18n.yaml
# docs/architecture.i18n.yaml
# docs/architecture.md
# docs/architecture.zh.md
# docs/config-catalog.md
# docs/cordis-catalog/events.md
# docs/cordis-catalog/services.md
# docs/core-data-structures/core.i18n.yaml
# docs/core-data-structures/core.md
# docs/core-data-structures/core.zh.md
# docs/event-producer-consumer.md
# docs/module-graph.md
# docs/persistence-catalog.md
# examples/acp-agent/tests/snapshots/advanced-toolchain/session.1.jsonl
# examples/acp-agent/tests/snapshots/advanced-toolchain/session.2.jsonl
# examples/acp-agent/tests/snapshots/code-mode-workspace-context/session.jsonl
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
# examples/acp-agent/tests/snapshots/skill-load/session.jsonl
# examples/acp-agent/tests/snapshots/subagent-depth-two-rejection/session.1.jsonl
# examples/acp-agent/tests/snapshots/subagent-depth-two-rejection/session.2.jsonl
# examples/acp-agent/tests/snapshots/subagent-fork/session.1.jsonl
# examples/acp-agent/tests/snapshots/subagent-mixed/session.1.jsonl
# examples/acp-agent/tests/snapshots/subagent-mixed/session.2.jsonl
# examples/acp-agent/tests/snapshots/subagent-multi/session.1.jsonl
# examples/acp-agent/tests/snapshots/subagent-multi/session.2.jsonl
# examples/acp-agent/tests/snapshots/subagent-spawn/session.1.jsonl
# examples/acp-agent/tests/snapshots/workflow-run/session.1.jsonl
# examples/acp-agent/tests/snapshots/workspace-context/session.jsonl
# examples/headless-agent/tests/snapshots/advanced-toolchain/session.1.jsonl
# examples/headless-agent/tests/snapshots/advanced-toolchain/session.2.jsonl
# examples/headless-agent/tests/snapshots/advanced-toolchain/session.jsonl
# examples/headless-agent/tests/snapshots/pty-tools/session.jsonl
# examples/headless-agent/tests/subagent-inheritance-snapshots/parent-override/child.expected.jsonl
# examples/jsonrpc-agent/tests/snapshots/subagent-spawn/notifications.expected.jsonl
# examples/jsonrpc-agent/tests/snapshots/subagent-spawn/session.1.jsonl
# packages/acp/acp/README.i18n.yaml
# packages/acp/acp/src/index.ts
# packages/client/connection/src/client/index.ts
# packages/client/runtime/README.i18n.yaml
# packages/client/runtime/README.md
# packages/client/runtime/README.zh.md
# packages/client/runtime/src/client/sessions/conversation.ts
# packages/client/runtime/src/client/sessions/session.ts
# packages/client/runtime/tests/queue-store.spec.ts
# packages/client/ui-conversation/src/client/input/contract.ts
# packages/client/ui-goal/README.i18n.yaml
# packages/compact/compact-basic/src/index.ts
# packages/context/time-context/tests/time-context.spec.ts
# packages/context/tmux-context/tests/tmux-context.spec.ts
# packages/context/workspace-context/tests/workspace-context.spec.ts
# packages/cordis/tool-cordis/src/api-catalog.ts
# packages/core/agent-loop/README.i18n.yaml
# packages/core/agent-loop/README.md
# packages/core/agent-loop/README.zh.md
# packages/core/agent-loop/src/agent.ts
# packages/core/agent-loop/tests/agent.spec.ts
# packages/core/agent-loop/tests/loop.spec.ts
# packages/core/agent/README.i18n.yaml
# packages/core/agent/README.md
# packages/core/agent/README.zh.md
# packages/core/agent/src/types.ts
# packages/core/session/README.i18n.yaml
# packages/core/session/README.md
# packages/core/session/README.zh.md
# packages/goal/command-goal/tests/command-goal.spec.ts
# packages/goal/goal/tests/goal.spec.ts
# packages/goal/tool-goal/README.i18n.yaml
# packages/goal/tool-goal/README.md
# packages/goal/tool-goal/README.zh.md
# packages/host/apiproxy/README.i18n.yaml
# packages/host/apiproxy/README.md
# packages/host/apiproxy/README.zh.md
# packages/host/apiproxy/src/api-proxy.ts
# packages/host/apiproxy/src/api/events.schema.ts
# packages/host/apiproxy/src/api/events.ts
# packages/host/apiproxy/src/api/rpc.ts
# packages/host/apiproxy/tests/api-proxy-commands.spec.ts
# packages/host/apiproxy/tests/api-proxy-projections.spec.ts
# packages/host/apiproxy/tests/rpc-schemas.spec.ts
# packages/pty/pty-local/tests/index.spec.ts
# packages/pty/pty-local/tests/local.spec.ts
# packages/pty/tool-pty/tests/loader-composition.spec.ts
# packages/pty/tool-pty/tests/tools.spec.ts
# packages/session-persistence/session-checkpoint-policy/src/index.ts
# packages/session-persistence/session-persistence/tests/coordinator-contract.ts
# packages/skill/tool-skill/tests/tool-skill.spec.ts
# packages/subagent/subagent-inprocess/README.i18n.yaml
# packages/subagent/subagent-inprocess/README.md
# packages/subagent/subagent-inprocess/README.zh.md
# packages/subagent/subagent-inprocess/src/index.ts
# packages/subagent/subagent-inprocess/tests/subagent-inprocess.spec.ts
# packages/support/acp-snapshot/src/harness.ts
# packages/ui/tui/tests/tui.spec.ts
2026-08-03 10:56:09 +08:00
kingwl
6332b5b952
fix(web): align context cards on narrow screens
2026-08-02 13:26:08 +08:00
kingwl
cd121c636a
fix(web): align composer context stack
2026-08-02 12:45:36 +08:00
_Kerman
0efbb7d87a
Merge remote-tracking branch 'origin/master' into xtr/react-loop-simplification
...
# Conflicts:
# .agents/notes/implemented/feature/2026-07-22-docked-web-goal-bar.i18n.yaml
# .agents/notes/implemented/feature/2026-07-22-docked-web-goal-bar.md
# .agents/notes/implemented/feature/2026-07-22-docked-web-goal-bar.zh.md
# docs/config-catalog.md
# packages/client/ui-goal/README.i18n.yaml
# packages/host/apiproxy/tests/api-proxy-fork.spec.ts
# packages/ui/tui/README.i18n.yaml
2026-08-02 00:59:11 +08:00
_Kerman
afedf18ccf
fix inbox lifecycle downstream contracts
2026-07-31 22:00:39 +08:00
kingwl
e73cdd6b7d
fix(web): single-flight goal clear
2026-07-31 20:54:23 +08:00
imccyu
1e10966ef6
wip
...
fix: docs
2026-07-31 02:13:53 +08:00
kingwl
abf498b8dc
fix(web): align composer context stack
2026-07-30 17:26:44 +08:00
Yif
04f6dfdc29
Web composer stats detail row and input-zone polish
...
Stats line moves into the InputBar's new footer slot (sharing the card's
width column) and expands to the design's grouped detail row: turns/steps,
LLM and tool wall time, cache hit, and input/output token split, all
derived client-side from the snapshot. The composer stack owns one 8px
rhythm, the seat fades the transcript through a fixed 36px gradient band,
back-to-bottom follows a live --dsh-composer-height, and goal/todo strips
share one 752px tip-fill column.
2026-07-30 10:22:44 +08:00
Yif
be9042e5a1
docs(client): sync package READMEs and agent notes with the input interaction rework
...
Update the six touched client package README pairs (slash menu ordering,
localized group titles and dismiss, permission label twin, goal pause,
plan hint localization, useAnchoredMaxHeight) and keep the owning agent
notes current: SlashSource.order and the MenuView dismiss/localize/clamp
face in the slash-pipeline note, the pause verb in the goal bar note.
2026-07-29 20:46:29 +08:00
Yif
82a43a7240
test(client): cover menu dismiss, goal pause, and permission label paths
...
Close the per-file coverage gaps the new UI behavior introduced: MenuView
pointer-outside dismiss (all guard branches), the GoalBar pause action,
the ui-slash injected onDismiss face, and the non-kebab permission name
passthrough.
2026-07-29 19:59:42 +08:00
Yif
45c9205caf
feat(client): localize composer hints and rework input command interaction
...
Unify the /plan claimed hint with the plan placeholder through a locale
namespace, localize slash menu group titles, replace the PermissionSelect
native select with the Menu primitive, add a goal pause verb chain, clamp
anchored popups to the viewport with scroll-into-view and outside-dismiss,
and fix onPasteUpgrade insertedRange to account for the chip trailing gap.
2026-07-29 19:46:48 +08:00
imccyu
0477f33079
feat(fixture): mirror the goal domain — /goal command, six verbs, projection unit
...
The keyless fixture now carries the goal chain end to end, mirroring the
host: /goal enters the command catalog and its execute path brackets a
goal/change create with the command lifecycle pair; the six mutation verbs
CAS-check the projected current goal and append whole-value changes (the
shared append path broadcasts the session event and the goal projection
frame); the tail-page projections block and the mux-open baseline always
carry the goal key (null before create / after clear). Connection specs
follow: the lifecycle round-trip replaces the not-implemented stubs, and
the mux baseline expects the third unit frame.
Also: GoalBar inline errors use ASCII parens around the code (review
feedback on #842 ).
2026-07-29 01:40:23 +08:00
imccyu
f42d9653c1
Merge origin/master (session ISession face) and adapt the goal ref read
...
The runtime's new outward session contract exposes projections as a
ProjectionsFace (faceOf only); the ui-goal verb closure reads the current
value through faceOf('goal').getSnapshot() instead of the store-level get.
Catalogs regenerated after the merge.
2026-07-29 00:56:50 +08:00
imccyu
2eae1955d3
refactor(client): hoist IconSparkle16 into ui-primitives
...
The sparkle glyph gained a second consumer (GoalBar beside the Others
tool-row variant), which the duplication gate correctly flags as a clone —
the package-local-until-shared rule its comment recorded has run its
course. Both copies collapse into the shared ic_ds_* family; the icon-set
count test grows to 57.
2026-07-29 00:41:36 +08:00
imccyu
1c43ff3061
test(goal): close the per-file coverage gaps for the goal surface
...
- projection.spec covers applyGoalProjection's non-message early return and
the foreign-change-kind arm directly (the pure-function posture the unit
requires — a throwing apply would tear down the registry drive).
- New ui-goal browser-plugin spec exercises the plugin body over a real
cordis Context with fake faces: dock registration (id/order), verbs
reading the CAS ref from the current projected value, the
no-current-goal short circuit, RPC-error mapping, HMR disposal, the
GoalDock adapter's three projection states, and the inert node half.
2026-07-28 23:48:24 +08:00
imccyu
da4e54b515
docs: regenerate catalogs and settle the static gates for the goal surface
...
- 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).
2026-07-28 23:34:19 +08:00
imccyu
6e950940ee
feat(web): ui-goal package — GoalBar over the goal session projection
...
New client plugin package. The GoalBar component migrates verbatim from the
original PR (phase labels, inline edit form, resume-when-paused, pending
lockout, inline errors); its data path is rebuilt for the projection model:
- GoalDock adapter reads useProjection('goal') from the standard kit — no
controller, no store, no refresh chain, no event listener (the original
PR's Session goal fields, write-revision fence, and coalesced refetch all
dissolve into the value store's seq rule).
- The inject face carries only the three mutation verbs; each reads the CAS
ref from the session's current projected value at call time and maps the
settled RPC result inline (callbacks from inject, live state from
useProjection).
- Seats at conversation.input.dock order 1 (the slot contract names GoalBar
as a resident of this strip), below TodoPanel/QueueDock, tucked against
the composer; hero phase renders nothing for free.
- IconSparkle16 is package-local (sole consumer) — ui-primitives keeps only
the shared action icons.
- goalbar.spec migrates with GoalSnapshot props (activation is process-local
and absent from the projection; the strip renders durable phase only).
2026-07-28 21:40:49 +08:00