@mstar-harness/dsh 3.8.3 → 3.9.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/README.i18n.yaml +2 -2
- package/README.md +1 -1
- package/README.zh.md +1 -1
- package/dist/client/panel/locale.d.ts +1 -1
- package/dist/client.js +5 -5
- package/dist/index.js +1293 -955
- package/dist/types.d.ts +2 -2
- package/harness-commands/iteration-drive.md +12 -6
- package/harness-commands/iteration-loop.md +10 -10
- package/harness-commands/iteration-start.md +10 -10
- package/harness-skills/mstar-artifacts/SKILL.md +3 -3
- package/harness-skills/mstar-artifacts/references/status-and-residuals.md +12 -8
- package/harness-skills/mstar-artifacts/templates/plan.main.md +2 -0
- package/harness-skills/mstar-branch-worktree/SKILL.md +70 -28
- package/harness-skills/mstar-branch-worktree/references/parallel-writable-pre-dispatch.md +9 -8
- package/harness-skills/mstar-conventions/SKILL.md +2 -2
- package/harness-skills/mstar-dispatch-gates/SKILL.md +1 -1
- package/harness-skills/mstar-engine-legacy/references/lease-protocol.md +12 -9
- package/harness-skills/mstar-engine-legacy/references/status-field-history.md +3 -3
- package/harness-skills/mstar-host/references/codex.md +6 -4
- package/harness-skills/mstar-host/references/dsh.md +1 -1
- package/harness-skills/mstar-iteration/SKILL.md +18 -12
- package/harness-skills/mstar-iteration/references/command-shared-invariants.md +2 -1
- package/harness-skills/mstar-iteration/references/phase-1-prepare.md +2 -0
- package/harness-skills/mstar-iteration/references/phase-2-worktree-lease.md +70 -46
- package/harness-skills/mstar-iteration/references/phase-3-iteration-close.md +4 -4
- package/harness-skills/mstar-iteration/references/phase-4-5-pr-delivery.md +6 -5
- package/harness-skills/mstar-iteration/references/phase-6-post-merge-close.md +71 -0
- package/harness-skills/mstar-review-qc/SKILL.md +1 -0
- package/harness-skills/mstar-roles/references/project-manager/dispatch-and-assignment.md +10 -8
- package/harness-skills/mstar-roles/references/project-manager.md +3 -2
- package/harness-skills/mstar-roles/references/prompt-engineer.md +1 -1
- package/harness-skills/mstar-roles/references/qa-engineer/acceptance-gate.md +15 -0
- package/harness-skills/mstar-roles/references/qa-engineer.md +3 -1
- package/harness-skills/mstar-sdd/SKILL.md +3 -1
- package/harness-skills/mstar-sdd/references/file-handoffs.md +21 -3
- package/harness-skills/mstar-sdd/references/implementer-continuation-prompt.md +1 -1
- package/harness-skills/mstar-sdd/references/implementer-prompt.md +1 -1
- package/package.json +1 -1
package/README.i18n.yaml
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
# Blob hashes (git hash-object) of each side as of the last confirmation that
|
|
3
3
|
# both languages say the same thing (dsh i18n contract: a pair is three
|
|
4
4
|
# sibling files; editing either side obligates re-confirming and re-recording).
|
|
5
|
-
README.md:
|
|
6
|
-
README.zh.md:
|
|
5
|
+
README.md: 0f24a276acac62ddba18e900800f53a253478449
|
|
6
|
+
README.zh.md: 200fa057203ab9751d92bf5338dcdf111b4b2c3f
|
package/README.md
CHANGED
|
@@ -56,7 +56,7 @@ The shipped headless template auto-initializes on first use (`@deepseek-ai/dsh-b
|
|
|
56
56
|
**Headless usage caveats** (dsh 0.1.0-rc.6 verified):
|
|
57
57
|
|
|
58
58
|
- **One-shot turn model** — the runner submits the task as one user message and exits when the agent goes idle (`whenIdle()`); it does NOT await `run_in_background` children. Foreground subagent dispatch works (a child session is created and its result reaches the parent); background QC-tri-style parallelism does NOT complete in-process — either dispatch QC seats foreground (serial wall time) or have the agent collect background results with `tool-subagent-control` BEFORE ending the turn.
|
|
59
|
-
- **No interaction channel** — `ask_user_question` and approval prompts fail closed
|
|
59
|
+
- **No interaction channel** — `ask_user_question` and approval prompts fail closed when no answerer is available. For unattended runs, keep a restricted permission preset (`workspace-write` with approval `ask`, or `read-only` for inspection) and verify the effective session permissions before starting work. Run only operations allowed within that boundary; if an operation needs approval, stop that operation and use the web profile to obtain it. Do not remove sandbox restrictions to bypass a missing approval channel. Interactive Prepare flows (grill-me) belong on the web profile.
|
|
60
60
|
- **Default model resolution** — headless composes no fallbacks row, so an `agent-default-model` settings pin of `FallbacksChain` fails with `NO_ADAPTER` (the web-profile artifact). Point the default model at a real provider, or install `dsh-llm-fallbacks` into the headless profile too (note: on the published dsh 0.1.0-rc.6 the fallbacks settings integration predates the `SettingsProvider.installSection` API, so the virtual adapter does not register — this resolves with dsh ≥ 0.1.2-alpha).
|
|
61
61
|
- **Config via the profile user layer** — profile-level `cordis.patch.yml` overrides work as documented (e.g. `enforcement: hard` + `dispatchBinding` on the mstar row); the mstar row's own `config: {}` stays neutral.
|
|
62
62
|
|
package/README.zh.md
CHANGED
|
@@ -56,7 +56,7 @@ dsh plugin --profile headless add @mstar-harness/dsh
|
|
|
56
56
|
**Headless 使用注意事项**(已在 dsh 0.1.0-rc.6 上验证):
|
|
57
57
|
|
|
58
58
|
- **一次性 turn 模型**——runner 把任务作为一条 user message 提交,agent 转入 idle(`whenIdle()`)后即退出;它**不会**等待 `run_in_background` 子任务。前台 subagent 派发可用(创建子会话、结果回到父会话);后台 QC-tri 式并行在进程内不会完成——要么前台派发 QC 席(串行墙钟时间),要么让 agent 在结束 turn **之前**用 `tool-subagent-control` 收集完后台结果。
|
|
59
|
-
-
|
|
59
|
+
- **无交互通道**——没有可用应答者时,`ask_user_question` 与审批提示会 fail-closed。无人值守运行应保留受限权限预设(`workspace-write` 搭配 approval `ask`,或使用 `read-only` 进行只读检查),并在开始工作前核实会话实际生效的权限。仅执行该边界内已允许的操作;若某项操作需要审批,停止该操作并通过 web profile 获取审批。不要通过解除沙箱限制来绕过缺失的审批通道。交互式 Prepare 流程(grill-me)属于 web profile。
|
|
60
60
|
- **默认模型解析**——headless 不组合 fallbacks 行,因此 settings 里 `agent-default-model` 钉在 `FallbacksChain` 会以 `NO_ADAPTER` 失败(web profile 的产物)。把默认模型指向真实 provider,或同样把 `dsh-llm-fallbacks` 装进 headless profile(注意:已发布的 dsh 0.1.0-rc.6 上,fallbacks 的 settings 集成早于 `SettingsProvider.installSection` API,虚拟适配器不会注册——随 dsh ≥ 0.1.2-alpha 解决)。
|
|
61
61
|
|
|
62
62
|
### Configuration
|
|
@@ -122,7 +122,7 @@ import type { LocaleDictOf } from '@deepseek-ai/dsh-client-ui-slots';
|
|
|
122
122
|
/** Locale namespace id for the workflow-viz panel. */
|
|
123
123
|
export declare const NS = "mstar-panel";
|
|
124
124
|
/** Panel dictionary keys (union of every translatable string the panel renders). */
|
|
125
|
-
export type PanelKey = 'view.mstar-workflow' | 'guide.description' | 'tab.tasks' | 'tab.agents' | 'tab.events' | 'page.iteration.not-started' | 'page.iteration.expand' | 'page.iteration.collapse' | 'event-log.section.events' | 'event-log.section.violations' | 'event-log.empty' | 'event-log.empty.events' | 'event-log.empty.violations' | 'event-log.field.role' | 'event-log.field.agent' | 'event-log.field.stage' | 'event-log.field.plan' | 'event-log.field.task' | 'event-log.field.category' | 'event-log.field.time' | 'event-log.field.kind' | 'event-log.field.status' | 'event-log.field.expected' | 'event-log.field.settled' | 'event-log.field.duration' | 'event-log.field.child-id' | 'event-log.field.run-id' | 'event-log.field.name' | 'event-log.field.members' | 'event-log.field.stop-reason' | 'event-log.field.severity' | 'event-log.field.code' | 'event-log.field.message' | 'event-log.kind.dispatch' | 'event-log.kind.settle' | 'event-log.yes' | 'event-log.no' | 'empty.waiting' | 'empty.loading' | 'empty.unavailable' | 'empty.no-harness' | 'empty.no-harness-hint' | 'watermark.version' | 'watermark.harness' | 'watermark.none' | 'panel.unknown' | 'graph.pass' | 'graph.fail' | 'zone.legend.title' | 'zone.legend.agent-running' | 'zone.legend.agent-settled' | 'zone.legend.agent-idle' | 'zone.iteration.step-label' | 'zone.iteration.step-badge' | 'zone.iteration.step.current' | 'zone.iteration.step.next' | 'zone.iteration.step.done' | 'zone.iteration.step.idle' | 'zone.phase.iteration-start' | 'zone.phase.autonomous-execute' | 'zone.phase.iteration-close' | 'zone.phase.pr-delivery' | 'zone.phase.merge-ready' | 'zone.branches.title' | 'zone.branches.iteration-base' | 'zone.branches.target' | 'zone.branches.spec-integration' | 'zone.tasks.title' | 'zone.tasks.total' | 'zone.tasks.no-plans' | 'zone.tasks.more' | 'zone.tasks.collapse' | 'zone.project.title' | 'zone.project.milestones' | 'zone.project.residuals' | 'zone.project.none' | 'zone.state.Todo' | 'zone.state.InProgress' | 'zone.state.InReview' | 'zone.state.Done' | 'zone.state.blocked-unknown' | 'zone.agents.title' | 'zone.agents.summary' | 'zone.agents.on-demand' | 'zone.agents.unknown-sub' | 'zone.agents.bucket.implementor' | 'zone.agents.bucket.reviewer' | 'zone.agents.group.phase-1' | 'zone.agents.group.phase-2' | 'zone.agents.group.phase-n' | 'zone.agents.group.plan' | 'zone.agents.group.no-plan' | 'zone.agents.group.plan-more' | 'flow.empty' | 'flow.settle-only' | 'flow.link-only' | 'flow.degraded' | 'flow.unexpected' | 'flow.in-flight' | 'flow.settled-ok' | 'flow.error' | 'flow.advisory' | 'flow.denied' | 'state.title' | 'state.selection' | 'state.selection.history' | 'state.selection.unbound' | 'state.selection.pick' | 'state.selection.pending' | 'state.selection.failed' | 'state.plans' | 'state.residuals' | 'state.policy' | 'state.leases' | 'state.knowledge' | 'state.direction' | 'state.none' | 'state.enforcement' | 'state.enforcement.hard' | 'state.enforcement.soft' | 'state.plans.more' | 'state.residual.more' | 'state.policy.push' | 'state.policy.worktree' | 'state.policy.
|
|
125
|
+
export type PanelKey = 'view.mstar-workflow' | 'guide.description' | 'tab.tasks' | 'tab.agents' | 'tab.events' | 'page.iteration.not-started' | 'page.iteration.expand' | 'page.iteration.collapse' | 'event-log.section.events' | 'event-log.section.violations' | 'event-log.empty' | 'event-log.empty.events' | 'event-log.empty.violations' | 'event-log.field.role' | 'event-log.field.agent' | 'event-log.field.stage' | 'event-log.field.plan' | 'event-log.field.task' | 'event-log.field.category' | 'event-log.field.time' | 'event-log.field.kind' | 'event-log.field.status' | 'event-log.field.expected' | 'event-log.field.settled' | 'event-log.field.duration' | 'event-log.field.child-id' | 'event-log.field.run-id' | 'event-log.field.name' | 'event-log.field.members' | 'event-log.field.stop-reason' | 'event-log.field.severity' | 'event-log.field.code' | 'event-log.field.message' | 'event-log.kind.dispatch' | 'event-log.kind.settle' | 'event-log.yes' | 'event-log.no' | 'empty.waiting' | 'empty.loading' | 'empty.unavailable' | 'empty.no-harness' | 'empty.no-harness-hint' | 'watermark.version' | 'watermark.harness' | 'watermark.none' | 'panel.unknown' | 'graph.pass' | 'graph.fail' | 'zone.legend.title' | 'zone.legend.agent-running' | 'zone.legend.agent-settled' | 'zone.legend.agent-idle' | 'zone.iteration.step-label' | 'zone.iteration.step-badge' | 'zone.iteration.step.current' | 'zone.iteration.step.next' | 'zone.iteration.step.done' | 'zone.iteration.step.idle' | 'zone.phase.iteration-start' | 'zone.phase.autonomous-execute' | 'zone.phase.iteration-close' | 'zone.phase.pr-delivery' | 'zone.phase.merge-ready' | 'zone.branches.title' | 'zone.branches.iteration-base' | 'zone.branches.target' | 'zone.branches.spec-integration' | 'zone.tasks.title' | 'zone.tasks.total' | 'zone.tasks.no-plans' | 'zone.tasks.more' | 'zone.tasks.collapse' | 'zone.project.title' | 'zone.project.milestones' | 'zone.project.residuals' | 'zone.project.none' | 'zone.state.Todo' | 'zone.state.InProgress' | 'zone.state.InReview' | 'zone.state.Done' | 'zone.state.blocked-unknown' | 'zone.agents.title' | 'zone.agents.summary' | 'zone.agents.on-demand' | 'zone.agents.unknown-sub' | 'zone.agents.bucket.implementor' | 'zone.agents.bucket.reviewer' | 'zone.agents.group.phase-1' | 'zone.agents.group.phase-2' | 'zone.agents.group.phase-n' | 'zone.agents.group.plan' | 'zone.agents.group.no-plan' | 'zone.agents.group.plan-more' | 'flow.empty' | 'flow.settle-only' | 'flow.link-only' | 'flow.degraded' | 'flow.unexpected' | 'flow.in-flight' | 'flow.settled-ok' | 'flow.error' | 'flow.advisory' | 'flow.denied' | 'state.title' | 'state.selection' | 'state.selection.history' | 'state.selection.unbound' | 'state.selection.pick' | 'state.selection.pending' | 'state.selection.failed' | 'state.plans' | 'state.residuals' | 'state.policy' | 'state.leases' | 'state.knowledge' | 'state.direction' | 'state.none' | 'state.enforcement' | 'state.enforcement.hard' | 'state.enforcement.soft' | 'state.plans.more' | 'state.residual.more' | 'state.policy.push' | 'state.policy.worktree' | 'state.policy.integration-worktree' | 'state.knowledge.docs' | 'freshness.last-updated' | 'freshness.refresh-note';
|
|
126
126
|
declare module '@deepseek-ai/dsh-client-ui-slots' {
|
|
127
127
|
interface LocaleNamespaceMap {
|
|
128
128
|
'mstar-panel': PanelKey;
|
package/dist/client.js
CHANGED
|
@@ -587,7 +587,7 @@ var zh = {
|
|
|
587
587
|
"state.residual.more": "+{count} 更多",
|
|
588
588
|
"state.policy.push": "push",
|
|
589
589
|
"state.policy.worktree": "worktree",
|
|
590
|
-
"state.policy.
|
|
590
|
+
"state.policy.integration-worktree": "integration worktree",
|
|
591
591
|
"state.knowledge.docs": "{count} 篇文档",
|
|
592
592
|
"freshness.last-updated": "快照 {time} · 第 {turn} 轮",
|
|
593
593
|
"freshness.refresh-note": "该会话已存储的快照——不是实时值"
|
|
@@ -717,7 +717,7 @@ var en = {
|
|
|
717
717
|
"state.residual.more": "+{count} more",
|
|
718
718
|
"state.policy.push": "push",
|
|
719
719
|
"state.policy.worktree": "worktree",
|
|
720
|
-
"state.policy.
|
|
720
|
+
"state.policy.integration-worktree": "integration worktree",
|
|
721
721
|
"state.knowledge.docs": "{count} docs",
|
|
722
722
|
"freshness.last-updated": "snapshot {time} · turn {turn}",
|
|
723
723
|
"freshness.refresh-note": "the stored snapshot for this session — never a live value"
|
|
@@ -2421,12 +2421,12 @@ function StateSection({ t, state, enforcement, selection, pick, select }) {
|
|
|
2421
2421
|
}),
|
|
2422
2422
|
/* @__PURE__ */ jsx_runtime4.jsx("dt", {
|
|
2423
2423
|
className: panel_module_default.defTerm,
|
|
2424
|
-
children: t("state.policy.
|
|
2424
|
+
children: t("state.policy.integration-worktree")
|
|
2425
2425
|
}),
|
|
2426
2426
|
/* @__PURE__ */ jsx_runtime4.jsx("dd", {
|
|
2427
2427
|
className: panel_module_default.defValue,
|
|
2428
|
-
"data-field": "
|
|
2429
|
-
children: str(state?.
|
|
2428
|
+
"data-field": "integration-worktree-path",
|
|
2429
|
+
children: str(state?.integrationWorktreePath) ?? t("state.none")
|
|
2430
2430
|
})
|
|
2431
2431
|
]
|
|
2432
2432
|
}),
|