dsh-tower 2.4.2 → 2.5.0
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 +40 -0
- package/COMPATIBILITY.md +1 -0
- package/CONTRIBUTING.md +5 -3
- package/GLOSSARY.md +67 -0
- package/README.md +6 -0
- package/app/archive.js +16 -1
- package/app/board.js +16 -1
- package/app/gate.js +14 -0
- package/app/spawn-prechecks.js +18 -3
- package/cordis.patch.yml +21 -6
- package/docs/adr/0004-surface-budget.md +10 -4
- package/docs/adr/0005-component-surface.md +166 -0
- package/docs/guide/install-upgrade-migration.md +21 -0
- package/docs/guide/quickstart.md +71 -0
- package/docs/guide/release.md +60 -19
- package/docs/reference/component-surface.md +27 -15
- package/docs/reference/config.generated.md +4 -7
- package/docs/reference/config.md +7 -5
- package/docs/reference/doctor.md +11 -5
- package/docs/reference/surface-budget.md +29 -11
- package/docs/reference/tools.generated.md +1 -1
- package/docs/reference/tools.md +2 -2
- package/docs/zh/guide/install-upgrade-migration.md +1 -1
- package/docs/zh/reference/config.md +7 -5
- package/docs/zh/reference/doctor.md +7 -2
- package/docs/zh/reference/tools.md +3 -2
- package/domain/component-rules.js +216 -0
- package/domain/components.js +169 -49
- package/domain/config/schema.js +46 -23
- package/domain/gate.js +17 -2
- package/domain/scope.js +176 -5
- package/domain/surface.js +21 -7
- package/host/capability-archive.js +18 -0
- package/host/capability-board.js +18 -0
- package/host/capability-registry.js +4 -0
- package/host/doctor.js +50 -5
- package/host/presets.js +17 -0
- package/host/tool-registry.js +21 -4
- package/index.js +17 -6
- package/locale/archive/en.json +6 -0
- package/locale/archive/zh.json +6 -0
- package/locale/batch/en.json +1 -1
- package/locale/batch/zh.json +1 -1
- package/locale/board/en.json +6 -0
- package/locale/board/zh.json +6 -0
- package/locale/en.json +37 -22
- package/locale/hmr/en.json +2 -2
- package/locale/hmr/zh.json +1 -1
- package/locale/import/en.json +1 -1
- package/locale/import/zh.json +1 -1
- package/locale/leases/en.json +2 -2
- package/locale/leases/zh.json +2 -2
- package/locale/preset-reviewer/en.json +1 -1
- package/locale/preset-reviewer/zh.json +1 -1
- package/locale/preset-worker/en.json +1 -1
- package/locale/preset-worker/zh.json +1 -1
- package/locale/skills/en.json +1 -1
- package/locale/skills/zh.json +1 -1
- package/locale/tests/en.json +2 -2
- package/locale/tests/zh.json +2 -2
- package/locale/zh.json +36 -21
- package/package.json +11 -2
- package/scripts/check-components.mjs +582 -42
- package/scripts/component-surface.json +85 -27
- package/scripts/generate-capability-locale.mjs +3 -0
- package/scripts/mount-smoke/surface.mjs +2 -0
- package/scripts/pack-manifest.txt +9 -0
- package/scripts/release-notes.mjs +256 -0
- package/scripts/surface-baseline.json +32 -3
- package/scripts/surface-baseline.mjs +15 -5
- package/skills.js +4 -1
- package/tools/complete.js +3 -1
- package/tools/spawn.js +5 -5
- package/tools/test.js +7 -7
- package/ui-bundle/locale/en.json +1 -1
- package/ui-bundle/locale/zh.json +1 -1
package/tools/spawn.js
CHANGED
|
@@ -24,8 +24,8 @@ import { buildAgentOptions, buildSpawnBriefing, waitForSpawnResult } from '../ap
|
|
|
24
24
|
* recordSpawnThrottle: any,
|
|
25
25
|
* recordSpawnSuccess: any,
|
|
26
26
|
* runMissionDiscovery: any,
|
|
27
|
-
* textOf: any,
|
|
28
|
-
*
|
|
27
|
+
* textOf: any, inspectLeases: any,
|
|
28
|
+
* leaseComponent?: () => { enabled: boolean, reason: string },
|
|
29
29
|
* }} deps
|
|
30
30
|
*/
|
|
31
31
|
export function registerSpawnTool(ctx, deps) {
|
|
@@ -71,6 +71,8 @@ export function registerSpawnTool(ctx, deps) {
|
|
|
71
71
|
})
|
|
72
72
|
const { subagents, provider } = await precheckSpawnServices({
|
|
73
73
|
tower, ctx, config, preset, actor, exec, inspectLeases: deps.inspectLeases,
|
|
74
|
+
// #131: the app layer only needs the row fact; the root owns the registry.
|
|
75
|
+
leaseComponent: deps.leaseComponent,
|
|
74
76
|
})
|
|
75
77
|
|
|
76
78
|
const provisioned = await tower.provision({
|
|
@@ -134,9 +136,7 @@ export function registerSpawnTool(ctx, deps) {
|
|
|
134
136
|
if (classifyError(error).retryable === true) {
|
|
135
137
|
recordSpawnThrottle(tower.root, config.spawn.maxLiveWorkers)
|
|
136
138
|
}
|
|
137
|
-
// The child may already be running
|
|
138
|
-
// it and mark the reserved entry failed so it cannot keep writing
|
|
139
|
-
// unobserved.
|
|
139
|
+
// The child may already be running: stop it and fail the reserved entry.
|
|
140
140
|
if (agentId) {
|
|
141
141
|
try {
|
|
142
142
|
await Promise.resolve(subagents.interrupt(agentId, { kind: 'ancestor', agent: exec.agent }))
|
package/tools/test.js
CHANGED
|
@@ -37,13 +37,13 @@ export function registerTestTool(ctx, deps) {
|
|
|
37
37
|
await tower.assertWorktree(context.mission.worktree)
|
|
38
38
|
const discovery = await runMissionDiscovery(tower, context.mission)
|
|
39
39
|
if (!discovery.configured) {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
40
|
+
// #136: the `tower-tests` row is the switch. When the row is off, say so
|
|
41
|
+
// and say how to turn it back on; never report the repository as
|
|
42
|
+
// "not configured" for a component cause.
|
|
43
|
+
const error = discovery.disabledBy
|
|
44
|
+
? `test discovery is unavailable: ${discovery.reason ?? `disabled by component ${discovery.disabledBy}`}; enable the ${discovery.disabledBy} component in the plugin page and restart DSH`
|
|
45
|
+
: discovery.error ?? 'tower.testDiscovery is not configured in the worktree package.json'
|
|
46
|
+
return { ok: false, configured: false, error, tests: [], commands: [] }
|
|
47
47
|
}
|
|
48
48
|
const receipt = discovery.receipt
|
|
49
49
|
return {
|
package/ui-bundle/locale/en.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"meta": {
|
|
3
3
|
"title": "Tower UI",
|
|
4
|
-
"description": "
|
|
4
|
+
"description": "Adds Tower cards for tool results, a compact status summary above the message box, and a short status strip, in the web client. When off: The web interface piece is not loaded: no Tower cards, status summary or status strip. The Tower host, missions, state and the board keep working."
|
|
5
5
|
}
|
|
6
6
|
}
|
package/ui-bundle/locale/zh.json
CHANGED