Skip to content

feat(dsh): 0.1.2 status visibility and agent hints - #253

Merged
Windsander merged 2 commits into
mainfrom
feat/0.1.2-dsh-usability
Oct 25, 2026
Merged

Windsander merged 2 commits into
mainfrom
feat/0.1.2-dsh-usability

Conversation

@Windsander

Copy link
Copy Markdown
Owner

0.1.2 DSH usability

Two slices on the same branch:

  1. Shared status contract + sidebar status dot

    • docs/architecture/SURFACES.md: status / capabilities / reason / recovery / surface matrix; no new core endpoint.
    • packages/dsh-plugin/client.js: one shared embed-info store feeds both the sidebar icon and the panel; icon/panel no longer poll independently.
    • Status dot: connected / starting / offline / degraded; title text; DSH accessible button name unchanged.
    • Panel down copy explicitly says MCP tools are temporarily unavailable and recover automatically.
  2. Agent-visible status

    • packages/dsh-plugin/index.js: optional DSH systemPrompt section mebular:status via ctx.inject(['systemPrompt']).
    • Text only when lifecycle is not up; empty (no token cost) when healthy.
    • Reuses the MCP bridge lifecycle snapshot; no second poll/status source.
    • Emits system-prompt/change only when the derived text changes.
    • Feature-detects missing service / older DSH; never fails plugin activation.
    • panel:false still gets agent hints; no new MCP tool, no wire-shape change.

Validation

  • tests/dsh: 5 suites / 110 tests
  • verify:dsh-plugin: 136 checks
  • lint, check:docs 7/7
  • Real DSH 0.2.1-rc.2 Web:
    • daemon up: green dot, shared Console loads
    • daemon killed: red dot, offline panel, recovery copy
    • daemon restarted: green dot and Console recover without DSH restart
    • old 0.1.0 daemon without /app/embed/info: amber degraded
    • system prompt probe: mebular:status present with down text; no repeated system-prompt/change between 2s ticks; becomes empty after daemon starts
  • Temporary DSH profile has no model configured, so no model-chat content claim is made.

Known risks

  • DSH Desktop binary is not available in this environment; Desktop origin/HTTPS/CSP behavior remains unverified. No Console CSP change was made.
  • The system-prompt section is profile-level and may be visible to all agents in that DSH profile; it is short and only appears while Mebular is not up.
  • uninitialized and sync/ready still have no dedicated discovery fields; recorded in the contract rather than expanded in this PR.

No version bump, publish, or Release in this PR. Target 0.1.2 full train.

- 新增 docs/architecture/SURFACES.md,統一狀態、capability、reason 與恢復語義
- client 抽出模組級 embed-info store,icon 與 panel 共用一次輪詢
- 側邊欄圖示新增 up/starting/down/unknown 狀態點與可讀 title
- 補強 daemon down 的 MCP 工具恢復文案與狀態 store 測試

Signed-off-by: Windsander <Windsander@users.noreply.github.com>
- host 通过 ctx.inject 注入 systemPrompt,注册唯一的 mebular:status section
- 复用 MCP bridge 的 lifecycle snapshot,up 时文本为空,非 up 时给短恢复动作
- 仅在派生文本变化时 emit system-prompt/change,避免每个健康检查 tick 刷新
- systemPrompt 服务缺失时安全跳过;panel:false 仍保留 Agent 提示
- 覆盖注册、up/down、状态切换、服务缺失、重复挂载与晚绑定
- 更新 SURFACES、DSH 集成文档、插件 README 与设计文档

Signed-off-by: Windsander <Windsander@users.noreply.github.com>
@Windsander
Windsander merged commit 125511c into main Oct 25, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant