@telora/daemon 0.20.28 → 0.20.53
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/build-info.json +2 -2
- package/dist/agent-state.d.ts +4 -6
- package/dist/agent-state.d.ts.map +1 -1
- package/dist/agent-state.js +4 -10
- package/dist/agent-state.js.map +1 -1
- package/dist/auto-update.d.ts +87 -0
- package/dist/auto-update.d.ts.map +1 -1
- package/dist/auto-update.js +142 -8
- package/dist/auto-update.js.map +1 -1
- package/dist/branch-status.d.ts +25 -3
- package/dist/branch-status.d.ts.map +1 -1
- package/dist/branch-status.js +130 -59
- package/dist/branch-status.js.map +1 -1
- package/dist/completion/completion-decision.d.ts +29 -3
- package/dist/completion/completion-decision.d.ts.map +1 -1
- package/dist/completion/completion-decision.js +15 -3
- package/dist/completion/completion-decision.js.map +1 -1
- package/dist/completion/event-entry-phases.d.ts +57 -0
- package/dist/completion/event-entry-phases.d.ts.map +1 -0
- package/dist/completion/event-entry-phases.js +205 -0
- package/dist/completion/event-entry-phases.js.map +1 -0
- package/dist/completion/event-phases.d.ts +14 -42
- package/dist/completion/event-phases.d.ts.map +1 -1
- package/dist/completion/event-phases.js +63 -190
- package/dist/completion/event-phases.js.map +1 -1
- package/dist/completion/event.d.ts +11 -1
- package/dist/completion/event.d.ts.map +1 -1
- package/dist/completion/event.js +5 -2
- package/dist/completion/event.js.map +1 -1
- package/dist/completion/index.d.ts +0 -3
- package/dist/completion/index.d.ts.map +1 -1
- package/dist/completion/index.js +0 -3
- package/dist/completion/index.js.map +1 -1
- package/dist/completion/review-exit-phase.d.ts +2 -1
- package/dist/completion/review-exit-phase.d.ts.map +1 -1
- package/dist/completion/review-exit-phase.js +41 -1
- package/dist/completion/review-exit-phase.js.map +1 -1
- package/dist/completion/status-advance-phase.d.ts +2 -0
- package/dist/completion/status-advance-phase.d.ts.map +1 -1
- package/dist/completion/status-advance-phase.js +14 -28
- package/dist/completion/status-advance-phase.js.map +1 -1
- package/dist/completion/team-completion.js +1 -1
- package/dist/completion/team-completion.js.map +1 -1
- package/dist/completion/terminated-work-reconcile.d.ts.map +1 -1
- package/dist/completion/terminated-work-reconcile.js +10 -0
- package/dist/completion/terminated-work-reconcile.js.map +1 -1
- package/dist/constants.d.ts +0 -8
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +0 -8
- package/dist/constants.js.map +1 -1
- package/dist/delivery-close-actions.d.ts +39 -0
- package/dist/delivery-close-actions.d.ts.map +1 -0
- package/dist/delivery-close-actions.js +53 -0
- package/dist/delivery-close-actions.js.map +1 -0
- package/dist/delivery-lifecycle.d.ts +11 -0
- package/dist/delivery-lifecycle.d.ts.map +1 -1
- package/dist/delivery-lifecycle.js +13 -14
- package/dist/delivery-lifecycle.js.map +1 -1
- package/dist/delivery-reconciler.d.ts +18 -4
- package/dist/delivery-reconciler.d.ts.map +1 -1
- package/dist/delivery-reconciler.js +18 -4
- package/dist/delivery-reconciler.js.map +1 -1
- package/dist/directive-executor.d.ts +1 -1
- package/dist/directive-executor.js +1 -1
- package/dist/discovery-fetch.d.ts +76 -0
- package/dist/discovery-fetch.d.ts.map +1 -0
- package/dist/discovery-fetch.js +206 -0
- package/dist/discovery-fetch.js.map +1 -0
- package/dist/discovery-poll.d.ts +1 -51
- package/dist/discovery-poll.d.ts.map +1 -1
- package/dist/discovery-poll.js +10 -192
- package/dist/discovery-poll.js.map +1 -1
- package/dist/drain-teardown.d.ts +11 -6
- package/dist/drain-teardown.d.ts.map +1 -1
- package/dist/drain-teardown.js +3 -2
- package/dist/drain-teardown.js.map +1 -1
- package/dist/focus-branch-ahead.d.ts +42 -0
- package/dist/focus-branch-ahead.d.ts.map +1 -0
- package/dist/focus-branch-ahead.js +45 -0
- package/dist/focus-branch-ahead.js.map +1 -0
- package/dist/focus-engine.d.ts.map +1 -1
- package/dist/focus-engine.js +21 -43
- package/dist/focus-engine.js.map +1 -1
- package/dist/focus-executor.js +2 -2
- package/dist/focus-executor.js.map +1 -1
- package/dist/focus-lifecycle.d.ts.map +1 -1
- package/dist/focus-lifecycle.js +32 -3
- package/dist/focus-lifecycle.js.map +1 -1
- package/dist/focus-loop-registry.d.ts.map +1 -1
- package/dist/focus-loop-registry.js +27 -0
- package/dist/focus-loop-registry.js.map +1 -1
- package/dist/focus-loop.d.ts +34 -12
- package/dist/focus-loop.d.ts.map +1 -1
- package/dist/focus-loop.js +78 -15
- package/dist/focus-loop.js.map +1 -1
- package/dist/focus-merge.d.ts.map +1 -1
- package/dist/focus-merge.js +6 -1
- package/dist/focus-merge.js.map +1 -1
- package/dist/focus-phase.d.ts +18 -3
- package/dist/focus-phase.d.ts.map +1 -1
- package/dist/focus-phase.js +85 -31
- package/dist/focus-phase.js.map +1 -1
- package/dist/focus-prompt-builder.d.ts.map +1 -1
- package/dist/focus-prompt-builder.js +13 -1
- package/dist/focus-prompt-builder.js.map +1 -1
- package/dist/focus-provisioning.d.ts.map +1 -1
- package/dist/focus-provisioning.js +4 -0
- package/dist/focus-provisioning.js.map +1 -1
- package/dist/focus-stage-lifecycle/planning-release.d.ts +35 -17
- package/dist/focus-stage-lifecycle/planning-release.d.ts.map +1 -1
- package/dist/focus-stage-lifecycle/planning-release.js +53 -22
- package/dist/focus-stage-lifecycle/planning-release.js.map +1 -1
- package/dist/focus-worktree-state.d.ts +17 -6
- package/dist/focus-worktree-state.d.ts.map +1 -1
- package/dist/focus-worktree-state.js +21 -11
- package/dist/focus-worktree-state.js.map +1 -1
- package/dist/guard-engine.d.ts +1 -2
- package/dist/guard-engine.d.ts.map +1 -1
- package/dist/guard-engine.js +1 -2
- package/dist/guard-engine.js.map +1 -1
- package/dist/health-events.d.ts +10 -0
- package/dist/health-events.d.ts.map +1 -0
- package/dist/health-events.js +10 -0
- package/dist/health-events.js.map +1 -0
- package/dist/heartbeat.d.ts.map +1 -1
- package/dist/heartbeat.js +98 -21
- package/dist/heartbeat.js.map +1 -1
- package/dist/host-control/catalog.d.ts.map +1 -1
- package/dist/host-control/catalog.js +4 -1
- package/dist/host-control/catalog.js.map +1 -1
- package/dist/host-control/client.d.ts +3 -4
- package/dist/host-control/client.d.ts.map +1 -1
- package/dist/host-control/client.js +4 -5
- package/dist/host-control/client.js.map +1 -1
- package/dist/listener-auto-advance.d.ts +2 -1
- package/dist/listener-auto-advance.d.ts.map +1 -1
- package/dist/listener-auto-advance.js +36 -40
- package/dist/listener-auto-advance.js.map +1 -1
- package/dist/listener.d.ts +2 -7
- package/dist/listener.d.ts.map +1 -1
- package/dist/listener.js +11 -9
- package/dist/listener.js.map +1 -1
- package/dist/operator-hold.d.ts +66 -0
- package/dist/operator-hold.d.ts.map +1 -0
- package/dist/operator-hold.js +99 -0
- package/dist/operator-hold.js.map +1 -0
- package/dist/poll-trigger.d.ts +28 -0
- package/dist/poll-trigger.d.ts.map +1 -0
- package/dist/poll-trigger.js +31 -0
- package/dist/poll-trigger.js.map +1 -0
- package/dist/prompt-listing.d.ts +25 -0
- package/dist/prompt-listing.d.ts.map +1 -1
- package/dist/prompt-listing.js +67 -0
- package/dist/prompt-listing.js.map +1 -1
- package/dist/prompt-sections/execution-sections.d.ts.map +1 -1
- package/dist/prompt-sections/execution-sections.js +24 -0
- package/dist/prompt-sections/execution-sections.js.map +1 -1
- package/dist/queries/context-lock-queries.d.ts.map +1 -1
- package/dist/queries/context-lock-queries.js +4 -1
- package/dist/queries/context-lock-queries.js.map +1 -1
- package/dist/queries/deliveries.d.ts +17 -0
- package/dist/queries/deliveries.d.ts.map +1 -1
- package/dist/queries/deliveries.js.map +1 -1
- package/dist/queries/issues.d.ts +98 -0
- package/dist/queries/issues.d.ts.map +1 -1
- package/dist/queries/issues.js +135 -0
- package/dist/queries/issues.js.map +1 -1
- package/dist/queries/schemas.d.ts +3 -3
- package/dist/security-scan-engine.d.ts +9 -1
- package/dist/security-scan-engine.d.ts.map +1 -1
- package/dist/security-scan-engine.js +25 -2
- package/dist/security-scan-engine.js.map +1 -1
- package/dist/spawn/worktree-session.d.ts.map +1 -1
- package/dist/spawn/worktree-session.js +2 -0
- package/dist/spawn/worktree-session.js.map +1 -1
- package/dist/spawner/index.d.ts +7 -9
- package/dist/spawner/index.d.ts.map +1 -1
- package/dist/spawner/index.js +13 -11
- package/dist/spawner/index.js.map +1 -1
- package/dist/spawner/lifecycle.d.ts +1 -18
- package/dist/spawner/lifecycle.d.ts.map +1 -1
- package/dist/spawner/lifecycle.js +1 -54
- package/dist/spawner/lifecycle.js.map +1 -1
- package/dist/spawner/liveness.d.ts +5 -14
- package/dist/spawner/liveness.d.ts.map +1 -1
- package/dist/spawner/liveness.js +5 -67
- package/dist/spawner/liveness.js.map +1 -1
- package/dist/spawner/state.d.ts +8 -20
- package/dist/spawner/state.d.ts.map +1 -1
- package/dist/spawner/state.js +8 -34
- package/dist/spawner/state.js.map +1 -1
- package/dist/staleness-sensor.d.ts +153 -0
- package/dist/staleness-sensor.d.ts.map +1 -0
- package/dist/staleness-sensor.js +308 -0
- package/dist/staleness-sensor.js.map +1 -0
- package/dist/types/focus.d.ts +9 -0
- package/dist/types/focus.d.ts.map +1 -1
- package/dist/types/session.d.ts +0 -44
- package/dist/types/session.d.ts.map +1 -1
- package/dist/unified-shell.d.ts.map +1 -1
- package/dist/unified-shell.js +19 -0
- package/dist/unified-shell.js.map +1 -1
- package/dist/verification-engine.d.ts +6 -4
- package/dist/verification-engine.d.ts.map +1 -1
- package/dist/verification-engine.js +9 -43
- package/dist/verification-engine.js.map +1 -1
- package/dist/verification-feedback.d.ts +42 -0
- package/dist/verification-feedback.d.ts.map +1 -1
- package/dist/verification-feedback.js +93 -0
- package/dist/verification-feedback.js.map +1 -1
- package/dist/version-check.d.ts +6 -0
- package/dist/version-check.d.ts.map +1 -1
- package/dist/version-check.js +1 -1
- package/dist/version-check.js.map +1 -1
- package/package.json +2 -3
- package/dist/completion/agent-completion.d.ts +0 -48
- package/dist/completion/agent-completion.d.ts.map +0 -1
- package/dist/completion/agent-completion.js +0 -205
- package/dist/completion/agent-completion.js.map +0 -1
- package/dist/delivery-guards.d.ts +0 -41
- package/dist/delivery-guards.d.ts.map +0 -1
- package/dist/delivery-guards.js +0 -200
- package/dist/delivery-guards.js.map +0 -1
- package/dist/spawner/spawn-team.d.ts +0 -20
- package/dist/spawner/spawn-team.d.ts.map +0 -1
- package/dist/spawner/spawn-team.js +0 -19
- package/dist/spawner/spawn-team.js.map +0 -1
- package/dist/spawner/timeout.d.ts +0 -32
- package/dist/spawner/timeout.d.ts.map +0 -1
- package/dist/spawner/timeout.js +0 -126
- package/dist/spawner/timeout.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-prompt-builder.d.ts","sourceRoot":"","sources":["../src/focus-prompt-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACf,MAAM,YAAY,CAAC;AAKpB,YAAY,EAAE,gCAAgC,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACtG,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,qBAAqB,EAAE,iBAAiB,EAAE,EAC1C,MAAM,EAAE,cAAc,EAAE,GACvB,MAAM,CAoCR;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,iBAAiB,EAAE,EAC/B,MAAM,EAAE,cAAc,EAAE,EACxB,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,GAC5B,MAAM,
|
|
1
|
+
{"version":3,"file":"focus-prompt-builder.d.ts","sourceRoot":"","sources":["../src/focus-prompt-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACf,MAAM,YAAY,CAAC;AAKpB,YAAY,EAAE,gCAAgC,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACtG,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,qBAAqB,EAAE,iBAAiB,EAAE,EAC1C,MAAM,EAAE,cAAc,EAAE,GACvB,MAAM,CAoCR;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,iBAAiB,EAAE,EAC/B,MAAM,EAAE,cAAc,EAAE,EACxB,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,GAC5B,MAAM,CAqER;AAMD,YAAY,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAC/F,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* and are re-exported here for backward compatibility.
|
|
11
11
|
*/
|
|
12
12
|
import { isStatusAgentActionable } from './stage-classifier.js';
|
|
13
|
-
import { buildIssueCountLine, buildContextGroupLine, buildStandaloneIssueLine, buildVerificationFailureLines } from './prompt-listing.js';
|
|
13
|
+
import { buildIssueCountLine, buildContextGroupLine, buildStandaloneIssueLine, buildVerificationFailureLines, buildShortfallReconciliationLines } from './prompt-listing.js';
|
|
14
14
|
export { buildFocusTeamPrompt } from './team-prompt-base.js';
|
|
15
15
|
/**
|
|
16
16
|
* Build a re-engagement message listing all non-terminal deliveries that
|
|
@@ -82,6 +82,18 @@ export function buildWakeMessage(deliveries, issues, knownDeliveryIds) {
|
|
|
82
82
|
// Last daemon-side verification failure (gate_state), so a re-queued/woken
|
|
83
83
|
// team sees WHAT failed + WHERE to read the log without a cold re-run.
|
|
84
84
|
parts.push(...buildVerificationFailureLines(delivery.gateState));
|
|
85
|
+
// Verify SHORTFALL re-work (gate_state), so a team re-queued from a
|
|
86
|
+
// declared-vs-achieved shortfall sees the SPECIFIC gap to close in the diff
|
|
87
|
+
// (a differential-side signal, not a failing test).
|
|
88
|
+
//
|
|
89
|
+
// NOTE: there is deliberately NO operator-hold rendering here. An operator
|
|
90
|
+
// hold re-asserts `verify` (it never routes to verify_failed), and this loop
|
|
91
|
+
// only lists agent-actionable deliveries -- a held delivery is in verify and
|
|
92
|
+
// is excluded. Its "Waiting on" surface is the dashboard card
|
|
93
|
+
// (src/lib/dashboard/deliveryCardUtils.ts formatGateBlockers, which reads
|
|
94
|
+
// gate_state.operatorHold), not a team prompt: the delivery is parked
|
|
95
|
+
// waiting on an operator, not handed to a team.
|
|
96
|
+
parts.push(...buildShortfallReconciliationLines(delivery.gateState));
|
|
85
97
|
// Compact issue listing
|
|
86
98
|
const deliveryIssues = issues.filter(i => i.deliveryId === delivery.id);
|
|
87
99
|
const actionableIssues = deliveryIssues.filter(i => i.issueType !== 'Context Group');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-prompt-builder.js","sourceRoot":"","sources":["../src/focus-prompt-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"focus-prompt-builder.js","sourceRoot":"","sources":["../src/focus-prompt-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-provisioning.d.ts","sourceRoot":"","sources":["../src/focus-provisioning.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAc1D;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAC5B,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"focus-provisioning.d.ts","sourceRoot":"","sources":["../src/focus-provisioning.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAc1D;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAC5B,OAAO,CAAC,IAAI,CAAC,CAqGf"}
|
|
@@ -68,6 +68,8 @@ export async function ensureFocusWorktrees(config, roles) {
|
|
|
68
68
|
worktreePath,
|
|
69
69
|
branchName,
|
|
70
70
|
createdAt: new Date(),
|
|
71
|
+
productId: config.productId,
|
|
72
|
+
repoPath: config.repoPath,
|
|
71
73
|
});
|
|
72
74
|
// Rebase onto integration to bring it current
|
|
73
75
|
const rebaseResult = runGitSync(['rebase', config.integrationBranch], worktreePath);
|
|
@@ -99,6 +101,8 @@ export async function ensureFocusWorktrees(config, roles) {
|
|
|
99
101
|
worktreePath: createdPath,
|
|
100
102
|
branchName,
|
|
101
103
|
createdAt: new Date(),
|
|
104
|
+
productId: config.productId,
|
|
105
|
+
repoPath: config.repoPath,
|
|
102
106
|
});
|
|
103
107
|
log.info(`Created persistent worktree for "${focus.focus_name}": ${createdPath}`);
|
|
104
108
|
// Install read-only audit guards (pre-commit hook + write-deny overlay)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-provisioning.js","sourceRoot":"","sources":["../src/focus-provisioning.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,UAAU,EAAE,2BAA2B,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAC;AAC3I,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;AAGxD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAoB,EACpB,KAA6B;IAE7B,IAAI,YAAY,CAAC;IACjB,IAAI,CAAC;QACH,YAAY,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAChF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,4DAA6D,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/F,OAAO;IACT,CAAC;IAED,mCAAmC;IACnC,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9E,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEvC,gEAAgE;IAChE,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACzD,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACvB,GAAG,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,yCAAyC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,6BAA6B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,GAAG,CAAC,IAAI,CAAC,sBAAsB,KAAK,CAAC,sBAAsB,eAAe,KAAK,CAAC,UAAU,sBAAsB,CAAC,CAAC;YAClH,SAAS;QACX,CAAC;QAED,MAAM,UAAU,GAAG,uBAAuB,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACnF,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QAE9E,+EAA+E;QAC/E,mEAAmE;QACnE,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7B,MAAM,YAAY,GAAG,UAAU,CAAC,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,CAAC;YAC1E,MAAM,YAAY,GAAG,UAAU,CAAC,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,CAAC;YAErF,IAAI,YAAY,CAAC,OAAO,IAAI,YAAY,CAAC,OAAO,IAAI,YAAY,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACvF,oDAAoD;gBACpD,GAAG,CAAC,IAAI,CAAC,mCAAmC,KAAK,CAAC,UAAU,MAAM,YAAY,EAAE,CAAC,CAAC;gBAClF,gBAAgB,CAAC,KAAK,CAAC,QAAQ,EAAE;oBAC/B,OAAO,EAAE,KAAK,CAAC,QAAQ;oBACvB,SAAS,EAAE,KAAK,CAAC,UAAU;oBAC3B,YAAY;oBACZ,UAAU;oBACV,SAAS,EAAE,IAAI,IAAI,EAAE;
|
|
1
|
+
{"version":3,"file":"focus-provisioning.js","sourceRoot":"","sources":["../src/focus-provisioning.ts"],"names":[],"mappings":"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"}
|
|
@@ -160,23 +160,41 @@ export interface WritableReleaseDeps {
|
|
|
160
160
|
* hard block, and the focus never spawns a team.
|
|
161
161
|
*
|
|
162
162
|
* Fetch the focus's deliveries, and when `isWritableFocusPastKickoff` holds (the
|
|
163
|
-
* stage-column-independent gate), sweep every held delivery
|
|
164
|
-
* 'planning') to 'queued'. Guarded so ONLY
|
|
165
|
-
*
|
|
166
|
-
* release idempotent: once swept, there are no
|
|
167
|
-
* a no-op. Unlike the ratify path there is no read_only flip to
|
|
168
|
-
* delivery move stands on its own; a per-delivery failure is logged
|
|
169
|
-
* the next tick.
|
|
170
|
-
*
|
|
171
|
-
*
|
|
172
|
-
*
|
|
173
|
-
*
|
|
174
|
-
*
|
|
175
|
-
*
|
|
176
|
-
*
|
|
177
|
-
*
|
|
178
|
-
*
|
|
179
|
-
*
|
|
163
|
+
* stage-column-independent gate), sweep every held PRE-EXECUTION delivery
|
|
164
|
+
* (execution_status 'draft' OR 'planning') to 'queued'. Guarded so ONLY
|
|
165
|
+
* pre_execution rows move -- paused/queued/further-along are left untouched, which
|
|
166
|
+
* also makes the release idempotent: once swept, there are no draft/planning rows
|
|
167
|
+
* left so a re-run is a no-op. Unlike the ratify path there is no read_only flip to
|
|
168
|
+
* defer, so each delivery move stands on its own; a per-delivery failure is logged
|
|
169
|
+
* and retried on the next tick.
|
|
170
|
+
*
|
|
171
|
+
* WHY 'draft' is now swept alongside 'planning' (the last ingredient of the
|
|
172
|
+
* wedge): a born-'draft' delivery was held by BOTH release sweeps (each touched
|
|
173
|
+
* only 'planning'), was NOT a spawn candidate (daemon_get_ready_focuses wants
|
|
174
|
+
* queued), and was subject to no timeout -- held by all, started by none, so a
|
|
175
|
+
* focus holding only a draft could never recover on its own. draft and planning
|
|
176
|
+
* are the two pre_execution statuses (PRE_EXECUTION_STATUSES); releasing both to
|
|
177
|
+
* queued closes the hole.
|
|
178
|
+
*
|
|
179
|
+
* ENUMERATION -- no other execution status is both held-by-every-release AND
|
|
180
|
+
* spawn-ineligible after this change. Walking EXECUTION_STATUSES: draft/planning
|
|
181
|
+
* are the pre_execution wedge (now released); queued/coding/verify/verify_failed/
|
|
182
|
+
* done/cancelled are all either spawn-eligible or advanced by other daemon paths;
|
|
183
|
+
* `paused` is NOT a second instance of the wedge and is deliberately left alone --
|
|
184
|
+
* it has forward transitions (paused -> queued/coding via isValidTransition, i.e.
|
|
185
|
+
* operator resume) and is reported as the VISIBLE `blocked` phase acted on by the
|
|
186
|
+
* stall detectors, so it is an intentional halt, not a silent held-and-ineligible
|
|
187
|
+
* status.
|
|
188
|
+
*
|
|
189
|
+
* FRT effect #6 (a completed/merged delivery stuck in a pre-execution status must
|
|
190
|
+
* advance out of it and never block at rank 0): the ONLY valid forward transition
|
|
191
|
+
* from either pre_execution status is 'queued' (DELIVERY_STATUS machine: planning
|
|
192
|
+
* -> queued|cancelled, draft -> planning|queued|cancelled; a jump to 'done' is
|
|
193
|
+
* illegal). So 'queued' is the correct -- and only -- forward move here even for a
|
|
194
|
+
* complete-but-mislabeled row: it advances out of pre-execution and re-enters the
|
|
195
|
+
* normal lifecycle, which re-settles already-done work quickly (its issues are
|
|
196
|
+
* already Done -> coding -> verify -> done). Re-running merged work is bounded by
|
|
197
|
+
* that; skipping the row instead would leave it wedged, which is worse.
|
|
180
198
|
*
|
|
181
199
|
* Returns the number of deliveries released (0 when the gate does not hold or
|
|
182
200
|
* there were no held deliveries).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"planning-release.d.ts","sourceRoot":"","sources":["../../src/focus-stage-lifecycle/planning-release.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACL,kBAAkB,IAAI,yBAAyB,EAC/C,mBAAmB,IAAI,0BAA0B,EAClD,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,oBAAoB,IAAI,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAE/F,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAWpD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,GAAG,OAAO,CAEV;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,kBAAkB,EAAE,OAAO,yBAAyB,CAAC;IACrD,mBAAmB,EAAE,OAAO,0BAA0B,CAAC;IACvD,oBAAoB,EAAE,OAAO,2BAA2B,CAAC;IACzD,eAAe,EAAE,OAAO,eAAe,CAAC;CACzC;AASD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,4BAA4B,CAChD,KAAK,EAAE;IACL,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,EACD,IAAI,GAAE,iBAA4C,GACjD,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"planning-release.d.ts","sourceRoot":"","sources":["../../src/focus-stage-lifecycle/planning-release.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACL,kBAAkB,IAAI,yBAAyB,EAC/C,mBAAmB,IAAI,0BAA0B,EAClD,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,oBAAoB,IAAI,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAE/F,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAWpD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,GAAG,OAAO,CAEV;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,kBAAkB,EAAE,OAAO,yBAAyB,CAAC;IACrD,mBAAmB,EAAE,OAAO,0BAA0B,CAAC;IACvD,oBAAoB,EAAE,OAAO,2BAA2B,CAAC;IACzD,eAAe,EAAE,OAAO,eAAe,CAAC;CACzC;AASD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,4BAA4B,CAChD,KAAK,EAAE;IACL,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,EACD,IAAI,GAAE,iBAA4C,GACjD,OAAO,CAAC,MAAM,CAAC,CA0FjB;AAID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,aAAa,CAAC;QAAE,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IAC9D,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,aAAa,EAAE,OAAO,CAAC;CACxB,GAAG,OAAO,CAsBV;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,kBAAkB,EAAE,OAAO,yBAAyB,CAAC;IACrD,oBAAoB,EAAE,OAAO,2BAA2B,CAAC;IACzD,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;CAC7C;AASD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,wBAAsB,sCAAsC,CAC1D,KAAK,EAAE;IACL,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gFAAgF;IAChF,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC,EACD,IAAI,GAAE,mBAAgD,GACrD,OAAO,CAAC,MAAM,CAAC,CAwFjB"}
|
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import { getFocusDeliveries as defaultGetFocusDeliveries, updateFocusReadOnly as defaultUpdateFocusReadOnly, } from '../queries/focuses.js';
|
|
16
16
|
import { updateDeliveryStatus as defaultUpdateDeliveryStatus } from '../queries/deliveries.js';
|
|
17
|
-
import { DELIVERY_STATUS } from '@telora/daemon-core';
|
|
17
|
+
import { DELIVERY_STATUS, isExecutionStatus, isValidTransition } from '@telora/daemon-core';
|
|
18
18
|
import { emitLoopTrigger } from '../loops/index.js';
|
|
19
|
-
import { deriveFocusPhase } from '../focus-phase.js';
|
|
19
|
+
import { deriveFocusPhase, PRE_EXECUTION_STATUSES } from '../focus-phase.js';
|
|
20
20
|
import { hasActiveTeam as defaultHasActiveTeam } from '../focus-team-state.js';
|
|
21
21
|
import { isAuditPhaseFocus } from '../audit-shape.js';
|
|
22
22
|
import { createLogger } from '../log.js';
|
|
@@ -98,6 +98,10 @@ export async function releaseRatifiedReadOnlyFocus(focus, deps = defaultRatifyRe
|
|
|
98
98
|
let released = 0;
|
|
99
99
|
let allReleased = true;
|
|
100
100
|
for (const d of deliveries) {
|
|
101
|
+
// Ratify-release stays scoped to 'planning' (NOT the wider pre_execution set
|
|
102
|
+
// the writable path sweeps): audit remediation deliveries are born 'planning',
|
|
103
|
+
// never 'draft', so there is no draft to release here. Keeping this narrow also
|
|
104
|
+
// keeps the human-ratify gate the SOLE crossing for audit focuses.
|
|
101
105
|
if (d.executionStatus !== DELIVERY_STATUS.PLANNING)
|
|
102
106
|
continue;
|
|
103
107
|
try {
|
|
@@ -231,23 +235,41 @@ const defaultWritableReleaseDeps = {
|
|
|
231
235
|
* hard block, and the focus never spawns a team.
|
|
232
236
|
*
|
|
233
237
|
* Fetch the focus's deliveries, and when `isWritableFocusPastKickoff` holds (the
|
|
234
|
-
* stage-column-independent gate), sweep every held delivery
|
|
235
|
-
* 'planning') to 'queued'. Guarded so ONLY
|
|
236
|
-
*
|
|
237
|
-
* release idempotent: once swept, there are no
|
|
238
|
-
* a no-op. Unlike the ratify path there is no read_only flip to
|
|
239
|
-
* delivery move stands on its own; a per-delivery failure is logged
|
|
240
|
-
* the next tick.
|
|
238
|
+
* stage-column-independent gate), sweep every held PRE-EXECUTION delivery
|
|
239
|
+
* (execution_status 'draft' OR 'planning') to 'queued'. Guarded so ONLY
|
|
240
|
+
* pre_execution rows move -- paused/queued/further-along are left untouched, which
|
|
241
|
+
* also makes the release idempotent: once swept, there are no draft/planning rows
|
|
242
|
+
* left so a re-run is a no-op. Unlike the ratify path there is no read_only flip to
|
|
243
|
+
* defer, so each delivery move stands on its own; a per-delivery failure is logged
|
|
244
|
+
* and retried on the next tick.
|
|
241
245
|
*
|
|
242
|
-
*
|
|
243
|
-
*
|
|
244
|
-
*
|
|
245
|
-
*
|
|
246
|
-
*
|
|
247
|
-
*
|
|
248
|
-
*
|
|
249
|
-
*
|
|
250
|
-
*
|
|
246
|
+
* WHY 'draft' is now swept alongside 'planning' (the last ingredient of the
|
|
247
|
+
* wedge): a born-'draft' delivery was held by BOTH release sweeps (each touched
|
|
248
|
+
* only 'planning'), was NOT a spawn candidate (daemon_get_ready_focuses wants
|
|
249
|
+
* queued), and was subject to no timeout -- held by all, started by none, so a
|
|
250
|
+
* focus holding only a draft could never recover on its own. draft and planning
|
|
251
|
+
* are the two pre_execution statuses (PRE_EXECUTION_STATUSES); releasing both to
|
|
252
|
+
* queued closes the hole.
|
|
253
|
+
*
|
|
254
|
+
* ENUMERATION -- no other execution status is both held-by-every-release AND
|
|
255
|
+
* spawn-ineligible after this change. Walking EXECUTION_STATUSES: draft/planning
|
|
256
|
+
* are the pre_execution wedge (now released); queued/coding/verify/verify_failed/
|
|
257
|
+
* done/cancelled are all either spawn-eligible or advanced by other daemon paths;
|
|
258
|
+
* `paused` is NOT a second instance of the wedge and is deliberately left alone --
|
|
259
|
+
* it has forward transitions (paused -> queued/coding via isValidTransition, i.e.
|
|
260
|
+
* operator resume) and is reported as the VISIBLE `blocked` phase acted on by the
|
|
261
|
+
* stall detectors, so it is an intentional halt, not a silent held-and-ineligible
|
|
262
|
+
* status.
|
|
263
|
+
*
|
|
264
|
+
* FRT effect #6 (a completed/merged delivery stuck in a pre-execution status must
|
|
265
|
+
* advance out of it and never block at rank 0): the ONLY valid forward transition
|
|
266
|
+
* from either pre_execution status is 'queued' (DELIVERY_STATUS machine: planning
|
|
267
|
+
* -> queued|cancelled, draft -> planning|queued|cancelled; a jump to 'done' is
|
|
268
|
+
* illegal). So 'queued' is the correct -- and only -- forward move here even for a
|
|
269
|
+
* complete-but-mislabeled row: it advances out of pre-execution and re-enters the
|
|
270
|
+
* normal lifecycle, which re-settles already-done work quickly (its issues are
|
|
271
|
+
* already Done -> coding -> verify -> done). Re-running merged work is bounded by
|
|
272
|
+
* that; skipping the row instead would leave it wedged, which is worse.
|
|
251
273
|
*
|
|
252
274
|
* Returns the number of deliveries released (0 when the gate does not hold or
|
|
253
275
|
* there were no held deliveries).
|
|
@@ -289,10 +311,19 @@ export async function releaseWritableFocusPlanningDeliveries(focus, deps = defau
|
|
|
289
311
|
}
|
|
290
312
|
let released = 0;
|
|
291
313
|
for (const d of deliveries) {
|
|
292
|
-
|
|
314
|
+
const status = d.executionStatus;
|
|
315
|
+
// Only pre_execution rows (draft/planning) move. isValidTransition is a
|
|
316
|
+
// defensive assert -- both draft->queued and planning->queued are legal, so
|
|
317
|
+
// this never skips a real pre_execution row; it guards against a future
|
|
318
|
+
// status being (mis)added to PRE_EXECUTION_STATUSES without a legal path.
|
|
319
|
+
if (status == null ||
|
|
320
|
+
!isExecutionStatus(status) ||
|
|
321
|
+
!PRE_EXECUTION_STATUSES.has(status) ||
|
|
322
|
+
!isValidTransition(status, DELIVERY_STATUS.QUEUED)) {
|
|
293
323
|
continue;
|
|
324
|
+
}
|
|
294
325
|
try {
|
|
295
|
-
await deps.updateDeliveryStatus(d.id, DELIVERY_STATUS.QUEUED, undefined, undefined, undefined, { organizationId: focus.organizationId, fromStatus:
|
|
326
|
+
await deps.updateDeliveryStatus(d.id, DELIVERY_STATUS.QUEUED, undefined, undefined, undefined, { organizationId: focus.organizationId, fromStatus: status });
|
|
296
327
|
released += 1;
|
|
297
328
|
}
|
|
298
329
|
catch (err) {
|
|
@@ -302,11 +333,11 @@ export async function releaseWritableFocusPlanningDeliveries(focus, deps = defau
|
|
|
302
333
|
}
|
|
303
334
|
if (released > 0) {
|
|
304
335
|
log.info(`[focus-stage-lifecycle] Focus "${focus.focusName}" (writable, past kickoff): ` +
|
|
305
|
-
`released ${released} born-
|
|
336
|
+
`released ${released} born-pre-execution deliver${released === 1 ? 'y' : 'ies'} to queued.`);
|
|
306
337
|
deps.emitLoopTrigger({
|
|
307
338
|
type: 'focus_status_changed',
|
|
308
339
|
focusId: focus.focusId,
|
|
309
|
-
detail: 'writable:
|
|
340
|
+
detail: 'writable:pre_execution->queued',
|
|
310
341
|
});
|
|
311
342
|
}
|
|
312
343
|
return released;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"planning-release.js","sourceRoot":"","sources":["../../src/focus-stage-lifecycle/planning-release.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACL,kBAAkB,IAAI,yBAAyB,EAC/C,mBAAmB,IAAI,0BAA0B,GAClD,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,oBAAoB,IAAI,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAC/F,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"planning-release.js","sourceRoot":"","sources":["../../src/focus-stage-lifecycle/planning-release.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,15 +10,25 @@
|
|
|
10
10
|
*
|
|
11
11
|
* The Map is authoritative during runtime. The DB is authoritative
|
|
12
12
|
* across restarts. Async DB writes are fire-and-forget with logging.
|
|
13
|
+
*
|
|
14
|
+
* The Map spans ALL products a multi-product daemon manages. Product
|
|
15
|
+
* identity is carried on each entry (FocusWorktreeInfo.productId /
|
|
16
|
+
* .repoPath), never in module state: every write-through stamps the
|
|
17
|
+
* owning product from the entry itself, so a hydrate/rebuild pass for
|
|
18
|
+
* one product cannot misattribute another product's worktrees.
|
|
13
19
|
*/
|
|
14
20
|
import type { FocusWorktreeInfo } from './types.js';
|
|
15
21
|
/**
|
|
16
|
-
* Hydrate the in-memory cache from the database.
|
|
22
|
+
* Hydrate the in-memory cache from the database for one product.
|
|
17
23
|
*
|
|
18
|
-
* Call once during daemon startup, BEFORE
|
|
19
|
-
*
|
|
24
|
+
* Call once per configured product during daemon startup, BEFORE
|
|
25
|
+
* rebuildFocusWorktreeState. Each hydrated entry is stamped with the
|
|
26
|
+
* product identity it was hydrated under; rebuildFocusWorktreeState
|
|
27
|
+
* later re-stamps entries whose stored product_id was wrong (rows
|
|
28
|
+
* written under the historical last-write-wins bug) once it can prove
|
|
29
|
+
* ownership against the product's active focuses.
|
|
20
30
|
*/
|
|
21
|
-
export declare function hydrateFromDb(productId: string): Promise<void>;
|
|
31
|
+
export declare function hydrateFromDb(productId: string, repoPath: string): Promise<void>;
|
|
22
32
|
/**
|
|
23
33
|
* Get a single focus worktree by focus ID.
|
|
24
34
|
*/
|
|
@@ -26,7 +36,8 @@ export declare function getFocusWorktree(focusId: string): FocusWorktreeInfo | u
|
|
|
26
36
|
/**
|
|
27
37
|
* Add or update a focus worktree entry.
|
|
28
38
|
*
|
|
29
|
-
* Updates the Map synchronously, then fires an async DB upsert
|
|
39
|
+
* Updates the Map synchronously, then fires an async DB upsert stamped
|
|
40
|
+
* with the entry's own product identity.
|
|
30
41
|
*/
|
|
31
42
|
export declare function setFocusWorktree(focusId: string, info: FocusWorktreeInfo): void;
|
|
32
43
|
/**
|
|
@@ -37,7 +48,7 @@ export declare function setFocusWorktree(focusId: string, info: FocusWorktreeInf
|
|
|
37
48
|
*/
|
|
38
49
|
export declare function removeFocusWorktree(focusId: string): boolean;
|
|
39
50
|
/**
|
|
40
|
-
* Get all focus worktrees.
|
|
51
|
+
* Get all focus worktrees (spans all products; scope by entry.productId).
|
|
41
52
|
*/
|
|
42
53
|
export declare function getAllFocusWorktrees(): Map<string, FocusWorktreeInfo>;
|
|
43
54
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-worktree-state.d.ts","sourceRoot":"","sources":["../src/focus-worktree-state.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"focus-worktree-state.d.ts","sourceRoot":"","sources":["../src/focus-worktree-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAgBpD;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BtF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAE/E;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAgB/E;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAc5D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAErE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEzD"}
|
|
@@ -10,23 +10,30 @@
|
|
|
10
10
|
*
|
|
11
11
|
* The Map is authoritative during runtime. The DB is authoritative
|
|
12
12
|
* across restarts. Async DB writes are fire-and-forget with logging.
|
|
13
|
+
*
|
|
14
|
+
* The Map spans ALL products a multi-product daemon manages. Product
|
|
15
|
+
* identity is carried on each entry (FocusWorktreeInfo.productId /
|
|
16
|
+
* .repoPath), never in module state: every write-through stamps the
|
|
17
|
+
* owning product from the entry itself, so a hydrate/rebuild pass for
|
|
18
|
+
* one product cannot misattribute another product's worktrees.
|
|
13
19
|
*/
|
|
14
20
|
import { upsertWorktreeRecord, removeWorktreeRecord, listWorktreeRecords, } from './queries/worktrees.js';
|
|
15
21
|
import { createLogger } from './log.js';
|
|
16
22
|
const log = createLogger({ module: 'worktree-state' });
|
|
17
|
-
// ── Module-level config ──────────────────────────────────────────────
|
|
18
|
-
let configuredProductId = null;
|
|
19
23
|
// ── Persistent worktree tracking ─────────────────────────────────────
|
|
20
24
|
/** Persistent focus worktrees: focusId -> FocusWorktreeInfo */
|
|
21
25
|
const focusWorktrees = new Map();
|
|
22
26
|
/**
|
|
23
|
-
* Hydrate the in-memory cache from the database.
|
|
27
|
+
* Hydrate the in-memory cache from the database for one product.
|
|
24
28
|
*
|
|
25
|
-
* Call once during daemon startup, BEFORE
|
|
26
|
-
*
|
|
29
|
+
* Call once per configured product during daemon startup, BEFORE
|
|
30
|
+
* rebuildFocusWorktreeState. Each hydrated entry is stamped with the
|
|
31
|
+
* product identity it was hydrated under; rebuildFocusWorktreeState
|
|
32
|
+
* later re-stamps entries whose stored product_id was wrong (rows
|
|
33
|
+
* written under the historical last-write-wins bug) once it can prove
|
|
34
|
+
* ownership against the product's active focuses.
|
|
27
35
|
*/
|
|
28
|
-
export async function hydrateFromDb(productId) {
|
|
29
|
-
configuredProductId = productId;
|
|
36
|
+
export async function hydrateFromDb(productId, repoPath) {
|
|
30
37
|
let records;
|
|
31
38
|
try {
|
|
32
39
|
records = await listWorktreeRecords(productId);
|
|
@@ -43,11 +50,13 @@ export async function hydrateFromDb(productId) {
|
|
|
43
50
|
worktreePath: record.worktreePath,
|
|
44
51
|
branchName: record.branchName,
|
|
45
52
|
createdAt: new Date(record.createdAt),
|
|
53
|
+
productId,
|
|
54
|
+
repoPath,
|
|
46
55
|
});
|
|
47
56
|
hydrated++;
|
|
48
57
|
}
|
|
49
58
|
if (hydrated > 0) {
|
|
50
|
-
log.info(`Hydrated ${hydrated} worktree(s) from DB`);
|
|
59
|
+
log.info(`Hydrated ${hydrated} worktree(s) from DB for product ${productId}`);
|
|
51
60
|
}
|
|
52
61
|
}
|
|
53
62
|
/**
|
|
@@ -59,14 +68,15 @@ export function getFocusWorktree(focusId) {
|
|
|
59
68
|
/**
|
|
60
69
|
* Add or update a focus worktree entry.
|
|
61
70
|
*
|
|
62
|
-
* Updates the Map synchronously, then fires an async DB upsert
|
|
71
|
+
* Updates the Map synchronously, then fires an async DB upsert stamped
|
|
72
|
+
* with the entry's own product identity.
|
|
63
73
|
*/
|
|
64
74
|
export function setFocusWorktree(focusId, info) {
|
|
65
75
|
focusWorktrees.set(focusId, info);
|
|
66
76
|
// Write-through: async DB upsert (fire-and-forget)
|
|
67
77
|
upsertWorktreeRecord({
|
|
68
78
|
focusId,
|
|
69
|
-
productId:
|
|
79
|
+
productId: info.productId,
|
|
70
80
|
worktreePath: info.worktreePath,
|
|
71
81
|
branchName: info.branchName,
|
|
72
82
|
status: 'active',
|
|
@@ -91,7 +101,7 @@ export function removeFocusWorktree(focusId) {
|
|
|
91
101
|
return existed;
|
|
92
102
|
}
|
|
93
103
|
/**
|
|
94
|
-
* Get all focus worktrees.
|
|
104
|
+
* Get all focus worktrees (spans all products; scope by entry.productId).
|
|
95
105
|
*/
|
|
96
106
|
export function getAllFocusWorktrees() {
|
|
97
107
|
return focusWorktrees;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-worktree-state.js","sourceRoot":"","sources":["../src/focus-worktree-state.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"focus-worktree-state.js","sourceRoot":"","sources":["../src/focus-worktree-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAGvD,wEAAwE;AAExE,+DAA+D;AAC/D,MAAM,cAAc,GAAG,IAAI,GAAG,EAA6B,CAAC;AAE5D;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,SAAiB,EAAE,QAAgB;IACrE,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CACN,wEAAwE,EACvE,GAAa,CAAC,OAAO,CACvB,CAAC;QACF,OAAO;IACT,CAAC;IAED,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE;YACjC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,EAAE,EAAE,wCAAwC;YACvD,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,SAAS,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;YACrC,SAAS;YACT,QAAQ;SACT,CAAC,CAAC;QACH,QAAQ,EAAE,CAAC;IACb,CAAC;IAED,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QACjB,GAAG,CAAC,IAAI,CAAC,YAAY,QAAQ,oCAAoC,SAAS,EAAE,CAAC,CAAC;IAChF,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,OAAO,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,IAAuB;IACvE,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAElC,mDAAmD;IACnD,oBAAoB,CAAC;QACnB,OAAO;QACP,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,MAAM,EAAE,QAAQ;KACjB,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACf,GAAG,CAAC,IAAI,CACN,+CAA+C,OAAO,GAAG,EACxD,GAAa,CAAC,OAAO,CACvB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE/C,IAAI,OAAO,EAAE,CAAC;QACZ,mDAAmD;QACnD,oBAAoB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YAC1C,GAAG,CAAC,IAAI,CACN,+CAA+C,OAAO,GAAG,EACxD,GAAa,CAAC,OAAO,CACvB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,OAAO,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC"}
|
package/dist/guard-engine.d.ts
CHANGED
|
@@ -8,8 +8,7 @@
|
|
|
8
8
|
* - trigger-executor.ts -- trigger action executors + template interpolation
|
|
9
9
|
*
|
|
10
10
|
* This file re-exports the public API so existing consumers
|
|
11
|
-
* (`delivery-
|
|
12
|
-
* without import changes.
|
|
11
|
+
* (`delivery-lifecycle.ts`, tests) continue to work without import changes.
|
|
13
12
|
*/
|
|
14
13
|
export { evaluateLeafCondition, toSafeNumber, compareValues, UNKNOWN_CONDITION_REASON_CODE, } from './condition-evaluators.js';
|
|
15
14
|
export type { UnknownConditionReason } from './condition-evaluators.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guard-engine.d.ts","sourceRoot":"","sources":["../src/guard-engine.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"guard-engine.d.ts","sourceRoot":"","sources":["../src/guard-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,6BAA6B,GAC9B,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAGxE,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAG9B,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EACL,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,GAChB,MAAM,uBAAuB,CAAC"}
|
package/dist/guard-engine.js
CHANGED
|
@@ -8,8 +8,7 @@
|
|
|
8
8
|
* - trigger-executor.ts -- trigger action executors + template interpolation
|
|
9
9
|
*
|
|
10
10
|
* This file re-exports the public API so existing consumers
|
|
11
|
-
* (`delivery-
|
|
12
|
-
* without import changes.
|
|
11
|
+
* (`delivery-lifecycle.ts`, tests) continue to work without import changes.
|
|
13
12
|
*/
|
|
14
13
|
// ── Condition evaluators ────────────────────────────────────────
|
|
15
14
|
export { evaluateLeafCondition, toSafeNumber, compareValues, UNKNOWN_CONDITION_REASON_CODE, } from './condition-evaluators.js';
|
package/dist/guard-engine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guard-engine.js","sourceRoot":"","sources":["../src/guard-engine.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"guard-engine.js","sourceRoot":"","sources":["../src/guard-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,mEAAmE;AACnE,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,6BAA6B,GAC9B,MAAM,2BAA2B,CAAC;AAGnC,mEAAmE;AACnE,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EACL,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AAEjC,mEAAmE;AACnE,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,GAChB,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Daemon-local seam over daemon-core's healthEvents buffer.
|
|
3
|
+
*
|
|
4
|
+
* Exists so modules that tests load under the node:test mock loader can emit
|
|
5
|
+
* health events: once any mock.module() is registered, bare @telora/* VALUE
|
|
6
|
+
* imports fail to resolve (see packages/daemon/CLAUDE.md gotchas — the same
|
|
7
|
+
* reason src/log.ts is daemon-local). Tests mock THIS module instead.
|
|
8
|
+
*/
|
|
9
|
+
export { healthEvents } from '@telora/daemon-core';
|
|
10
|
+
//# sourceMappingURL=health-events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health-events.d.ts","sourceRoot":"","sources":["../src/health-events.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Daemon-local seam over daemon-core's healthEvents buffer.
|
|
3
|
+
*
|
|
4
|
+
* Exists so modules that tests load under the node:test mock loader can emit
|
|
5
|
+
* health events: once any mock.module() is registered, bare @telora/* VALUE
|
|
6
|
+
* imports fail to resolve (see packages/daemon/CLAUDE.md gotchas — the same
|
|
7
|
+
* reason src/log.ts is daemon-local). Tests mock THIS module instead.
|
|
8
|
+
*/
|
|
9
|
+
export { healthEvents } from '@telora/daemon-core';
|
|
10
|
+
//# sourceMappingURL=health-events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health-events.js","sourceRoot":"","sources":["../src/health-events.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/heartbeat.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heartbeat.d.ts","sourceRoot":"","sources":["../src/heartbeat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAQH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,
|
|
1
|
+
{"version":3,"file":"heartbeat.d.ts","sourceRoot":"","sources":["../src/heartbeat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAQH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,EAA0C,sBAAsB,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAIrI,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AA2C7D;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAEhE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEpD;AAGD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,CAAC;AAmB7C;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAM1C;AAmFD;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAO7E;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAEhD;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE/D;AAGD,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAElC;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,IAAI;IAAE,YAAY,EAAE,iBAAiB,CAAA;CAAE,GAAG,IAAI,CAGlF;AAuLD;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAcpD;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAanD"}
|