@telora/daemon 0.22.4 → 0.22.42
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 +5 -3
- package/dist/backends/index.d.ts.map +1 -1
- package/dist/backends/index.js +2 -0
- package/dist/backends/index.js.map +1 -1
- package/dist/ci/ci-sensor-loop.d.ts +36 -2
- package/dist/ci/ci-sensor-loop.d.ts.map +1 -1
- package/dist/ci/ci-sensor-loop.js +48 -9
- package/dist/ci/ci-sensor-loop.js.map +1 -1
- package/dist/ci/ci-status.d.ts.map +1 -1
- package/dist/ci/ci-status.js +1 -0
- package/dist/ci/ci-status.js.map +1 -1
- package/dist/completion/detector.d.ts +9 -0
- package/dist/completion/detector.d.ts.map +1 -1
- package/dist/completion/detector.js +18 -0
- package/dist/completion/detector.js.map +1 -1
- package/dist/completion/event-phases.d.ts +24 -8
- package/dist/completion/event-phases.d.ts.map +1 -1
- package/dist/completion/event-phases.js +81 -45
- package/dist/completion/event-phases.js.map +1 -1
- package/dist/completion/event.d.ts +9 -0
- package/dist/completion/event.d.ts.map +1 -1
- package/dist/completion/event.js +4 -0
- package/dist/completion/event.js.map +1 -1
- package/dist/completion/exit-classification.d.ts +2 -2
- package/dist/completion/exit-classification.d.ts.map +1 -1
- package/dist/completion/exit-classification.js +2 -0
- package/dist/completion/exit-classification.js.map +1 -1
- package/dist/completion/index.js +1 -1
- package/dist/completion/liveness-firing.d.ts +27 -0
- package/dist/completion/liveness-firing.d.ts.map +1 -0
- package/dist/completion/liveness-firing.js +79 -0
- package/dist/completion/liveness-firing.js.map +1 -0
- package/dist/completion/stdin-turn-tracker.d.ts +19 -0
- package/dist/completion/stdin-turn-tracker.d.ts.map +1 -0
- package/dist/completion/stdin-turn-tracker.js +57 -0
- package/dist/completion/stdin-turn-tracker.js.map +1 -0
- package/dist/completion/supervision-firing-record.d.ts +190 -0
- package/dist/completion/supervision-firing-record.d.ts.map +1 -0
- package/dist/completion/supervision-firing-record.js +232 -0
- package/dist/completion/supervision-firing-record.js.map +1 -0
- package/dist/completion/team-lifecycle.d.ts.map +1 -1
- package/dist/completion/team-lifecycle.js +3 -0
- package/dist/completion/team-lifecycle.js.map +1 -1
- package/dist/completion/team-phase.d.ts.map +1 -1
- package/dist/completion/team-phase.js +2 -1
- package/dist/completion/team-phase.js.map +1 -1
- package/dist/directive/directive-dispatch.d.ts +7 -1
- package/dist/directive/directive-dispatch.d.ts.map +1 -1
- package/dist/directive/directive-dispatch.js +75 -12
- package/dist/directive/directive-dispatch.js.map +1 -1
- package/dist/directive/directive-executor.d.ts +1 -1
- package/dist/directive/directive-executor.d.ts.map +1 -1
- package/dist/directive/directive-executor.js +10 -6
- package/dist/directive/directive-executor.js.map +1 -1
- package/dist/directive/directive-queue.d.ts +35 -9
- package/dist/directive/directive-queue.d.ts.map +1 -1
- package/dist/directive/directive-queue.js +15 -8
- package/dist/directive/directive-queue.js.map +1 -1
- package/dist/directive/directive-verify-hold-gate.d.ts +20 -0
- package/dist/directive/directive-verify-hold-gate.d.ts.map +1 -0
- package/dist/directive/directive-verify-hold-gate.js +47 -0
- package/dist/directive/directive-verify-hold-gate.js.map +1 -0
- package/dist/drift/staleness-sensor.d.ts +62 -67
- package/dist/drift/staleness-sensor.d.ts.map +1 -1
- package/dist/drift/staleness-sensor.js +233 -68
- package/dist/drift/staleness-sensor.js.map +1 -1
- package/dist/drift/staleness.d.ts +8 -0
- package/dist/drift/staleness.d.ts.map +1 -1
- package/dist/drift/staleness.js +7 -1
- package/dist/drift/staleness.js.map +1 -1
- package/dist/focus/focus-engine.js +1 -1
- package/dist/focus/focus-engine.js.map +1 -1
- package/dist/focus/focus-executor.d.ts.map +1 -1
- package/dist/focus/focus-executor.js +12 -6
- package/dist/focus/focus-executor.js.map +1 -1
- package/dist/focus/focus-team-state.d.ts.map +1 -1
- package/dist/focus/focus-team-state.js +1 -0
- package/dist/focus/focus-team-state.js.map +1 -1
- package/dist/focus/focus-worktree-state.d.ts.map +1 -1
- package/dist/focus/focus-worktree-state.js +4 -2
- package/dist/focus/focus-worktree-state.js.map +1 -1
- package/dist/focus/listener-spawn.d.ts +59 -6
- package/dist/focus/listener-spawn.d.ts.map +1 -1
- package/dist/focus/listener-spawn.js +164 -39
- package/dist/focus/listener-spawn.js.map +1 -1
- package/dist/focus/listener.d.ts.map +1 -1
- package/dist/focus/listener.js +20 -11
- package/dist/focus/listener.js.map +1 -1
- package/dist/focus/team-actionable-work.d.ts +90 -0
- package/dist/focus/team-actionable-work.d.ts.map +1 -0
- package/dist/focus/team-actionable-work.js +113 -0
- package/dist/focus/team-actionable-work.js.map +1 -0
- package/dist/merge/focus-merge.d.ts.map +1 -1
- package/dist/merge/focus-merge.js +2 -1
- package/dist/merge/focus-merge.js.map +1 -1
- package/dist/nexus/return.d.ts +60 -1
- package/dist/nexus/return.d.ts.map +1 -1
- package/dist/nexus/return.js +78 -2
- package/dist/nexus/return.js.map +1 -1
- package/dist/queries/schemas.d.ts +61 -0
- package/dist/queries/schemas.d.ts.map +1 -1
- package/dist/queries/schemas.js +12 -2
- package/dist/queries/schemas.js.map +1 -1
- package/dist/shell/heartbeat-metadata.d.ts +91 -0
- package/dist/shell/heartbeat-metadata.d.ts.map +1 -0
- package/dist/shell/heartbeat-metadata.js +169 -0
- package/dist/shell/heartbeat-metadata.js.map +1 -0
- package/dist/shell/heartbeat.d.ts +7 -22
- package/dist/shell/heartbeat.d.ts.map +1 -1
- package/dist/shell/heartbeat.js +120 -89
- package/dist/shell/heartbeat.js.map +1 -1
- package/dist/shell/model-resolution.d.ts +54 -0
- package/dist/shell/model-resolution.d.ts.map +1 -1
- package/dist/shell/model-resolution.js +50 -0
- package/dist/shell/model-resolution.js.map +1 -1
- package/dist/shell/unified-shell.d.ts.map +1 -1
- package/dist/shell/unified-shell.js +21 -12
- package/dist/shell/unified-shell.js.map +1 -1
- package/dist/spawn/helpers.d.ts.map +1 -1
- package/dist/spawn/helpers.js +6 -1
- package/dist/spawn/helpers.js.map +1 -1
- package/dist/spawn/model-routing.d.ts +14 -19
- package/dist/spawn/model-routing.d.ts.map +1 -1
- package/dist/spawn/model-routing.js +57 -39
- package/dist/spawn/model-routing.js.map +1 -1
- package/dist/spawn/process-spawn.d.ts +32 -1
- package/dist/spawn/process-spawn.d.ts.map +1 -1
- package/dist/spawn/process-spawn.js +43 -5
- package/dist/spawn/process-spawn.js.map +1 -1
- package/dist/spawn/spawn-cooldown.d.ts.map +1 -1
- package/dist/spawn/spawn-cooldown.js +2 -1
- package/dist/spawn/spawn-cooldown.js.map +1 -1
- package/dist/spawn/worktree-session.d.ts +53 -5
- package/dist/spawn/worktree-session.d.ts.map +1 -1
- package/dist/spawn/worktree-session.js +61 -29
- package/dist/spawn/worktree-session.js.map +1 -1
- package/dist/testing/fixtures/index.js +1 -1
- package/dist/types/focus.d.ts +12 -2
- package/dist/types/focus.d.ts.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/types/session.d.ts +1 -1
- package/dist/types/session.d.ts.map +1 -1
- package/dist/update/auto-update-idle.d.ts +22 -0
- package/dist/update/auto-update-idle.d.ts.map +1 -1
- package/dist/update/auto-update-idle.js +8 -1
- package/dist/update/auto-update-idle.js.map +1 -1
- package/dist/update/auto-update.d.ts +0 -6
- package/dist/update/auto-update.d.ts.map +1 -1
- package/dist/update/auto-update.js +20 -6
- package/dist/update/auto-update.js.map +1 -1
- package/dist/update/version-check.d.ts +73 -0
- package/dist/update/version-check.d.ts.map +1 -1
- package/dist/update/version-check.js +107 -11
- package/dist/update/version-check.js.map +1 -1
- package/dist/worktree/verify-interlock.d.ts +34 -0
- package/dist/worktree/verify-interlock.d.ts.map +1 -1
- package/dist/worktree/verify-interlock.js +27 -1
- package/dist/worktree/verify-interlock.js.map +1 -1
- package/package.json +3 -3
package/build-info.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"commitSha": "
|
|
3
|
-
"builtAt": "2026-09-
|
|
2
|
+
"commitSha": "586f7c7f7",
|
|
3
|
+
"builtAt": "2026-09-07T00:39:49.516Z",
|
|
4
4
|
"expectedMigrations": [
|
|
5
5
|
"20250829113330_create_org_nodes_table.sql",
|
|
6
6
|
"20250829113402_fix_function_security_search_path.sql",
|
|
@@ -777,6 +777,8 @@
|
|
|
777
777
|
"20260901190319_linear_adapter_unit_scoped_external_data_sources.sql",
|
|
778
778
|
"20260901193656_external_references_provenance.sql",
|
|
779
779
|
"20260901201204_unit_scope_external_data_source_rls.sql",
|
|
780
|
-
"20260901204705_drop_legacy_profile_jira_columns.sql"
|
|
780
|
+
"20260901204705_drop_legacy_profile_jira_columns.sql",
|
|
781
|
+
"20260906123341_add_product_request_hold_state.sql",
|
|
782
|
+
"20260906125822_add_product_request_transitions.sql"
|
|
781
783
|
]
|
|
782
784
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/backends/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/backends/index.ts"],"names":[],"mappings":"AA8BA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,GACzB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,UAAU,EACV,YAAY,EACZ,cAAc,GACf,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EACL,cAAc,EACd,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,kBAAkB,GACxB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,KAAK,yBAAyB,GAC/B,MAAM,mBAAmB,CAAC"}
|
package/dist/backends/index.js
CHANGED
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
// packages/daemon/src/focus/resolve-effective-model.test.ts,
|
|
7
7
|
// packages/daemon/src/focus/spawn-crash-isolation.test.ts,
|
|
8
8
|
// packages/daemon/src/spawn/helpers-activity-wiring.test.ts,
|
|
9
|
+
// packages/daemon/src/spawn/per-pass-spawn-model.test.ts,
|
|
10
|
+
// packages/daemon/src/spawn/spawn-compact-turn.test.ts,
|
|
9
11
|
// packages/daemon/src/verify/stall-detectors-clock-wiring.test.ts
|
|
10
12
|
// PINNED-BY-END
|
|
11
13
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/backends/index.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,iEAAiE;AACjE,+DAA+D;AAC/D,0DAA0D;AAC1D,uEAAuE;AACvE,+DAA+D;AAC/D,6DAA6D;AAC7D,+DAA+D;AAC/D,oEAAoE;AACpE,gBAAgB;AAEhB;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,6EAA6E;AAC7E,8EAA8E;AAC9E,6DAA6D;AAC7D,eAAe,CAAC,aAAa,CAAC,CAAC;AAC/B,eAAe,CAAC,YAAY,CAAC,CAAC;AAS9B,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,UAAU,EACV,YAAY,EACZ,cAAc,GACf,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EACL,cAAc,GAMf,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,gBAAgB,EAChB,uBAAuB,GAExB,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/backends/index.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,iEAAiE;AACjE,+DAA+D;AAC/D,0DAA0D;AAC1D,uEAAuE;AACvE,+DAA+D;AAC/D,6DAA6D;AAC7D,+DAA+D;AAC/D,4DAA4D;AAC5D,0DAA0D;AAC1D,oEAAoE;AACpE,gBAAgB;AAEhB;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,6EAA6E;AAC7E,8EAA8E;AAC9E,6DAA6D;AAC7D,eAAe,CAAC,aAAa,CAAC,CAAC;AAC/B,eAAe,CAAC,YAAY,CAAC,CAAC;AAS9B,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,UAAU,EACV,YAAY,EACZ,cAAc,GACf,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EACL,cAAc,GAMf,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,gBAAgB,EAChB,uBAAuB,GAExB,MAAM,mBAAmB,CAAC"}
|
|
@@ -61,9 +61,43 @@ export declare const CI_RUN_RED_ESCALATION_KIND = "ci_run_red";
|
|
|
61
61
|
*/
|
|
62
62
|
export declare const CI_RUN_RED_POSTURE = "ci_green_priority";
|
|
63
63
|
export declare const CI_RUN_RED_POSTURE_TERMINATES = "escalation_resolved";
|
|
64
|
+
/** The repo whose CI this daemon-host product (Telora) diagnoses. */
|
|
65
|
+
export declare const CI_LOG_READER_REPO = "syntelyos/telora";
|
|
66
|
+
/** The self-contained diagnosis route a ci_run_red filing carries. */
|
|
67
|
+
export interface CiLogDiagnosisRoute {
|
|
68
|
+
reader: string;
|
|
69
|
+
repo: string;
|
|
70
|
+
command: string;
|
|
71
|
+
readiness_check: string;
|
|
72
|
+
runbook: string;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* The diagnosis route carried on a ci_run_red filing: the on-PATH `ci-logs`
|
|
76
|
+
* reader and the exact command to pull THIS red run's failing job log, plus the
|
|
77
|
+
* readiness check. Structured (not only prose) so a team INHERITING the
|
|
78
|
+
* escalation reads the route off the filing itself, without prior knowledge of
|
|
79
|
+
* the reader. Single source for both the structured metadata and the escalation
|
|
80
|
+
* description, so the two cannot drift. See docs/runbook-ci-log-diagnosis.md.
|
|
81
|
+
*/
|
|
82
|
+
export declare function ciLogDiagnosisRoute(params: {
|
|
83
|
+
sha: string;
|
|
84
|
+
}): CiLogDiagnosisRoute;
|
|
85
|
+
/**
|
|
86
|
+
* The human-readable ci_run_red escalation description. Pure and exported so the
|
|
87
|
+
* "the filing names the CI-log reader" contract is unit-testable directly (the
|
|
88
|
+
* poll-loop tests inject a mock fileCiRedEscalation, so the description built by
|
|
89
|
+
* defaultFileCiRedEscalation is otherwise unreachable). Reads the SAME route
|
|
90
|
+
* helper as the structured metadata, so prose and data cannot drift apart.
|
|
91
|
+
*/
|
|
92
|
+
export declare function ciRunRedEscalationDescription(params: {
|
|
93
|
+
sha: string;
|
|
94
|
+
branch: string;
|
|
95
|
+
}): string;
|
|
64
96
|
/**
|
|
65
|
-
* Structured metadata for a ci_run_red filing: the cause-key routing fields
|
|
66
|
-
*
|
|
97
|
+
* Structured metadata for a ci_run_red filing: the cause-key routing fields, the
|
|
98
|
+
* posture it sets and that posture's termination condition, PLUS the self-
|
|
99
|
+
* contained `diagnosis` route (see ciLogDiagnosisRoute) so a team inheriting the
|
|
100
|
+
* escalation later reads the same log route the original filing carried. Pure and
|
|
67
101
|
* exported so the metadata contract is unit-testable without mocking createEscalation.
|
|
68
102
|
*/
|
|
69
103
|
export declare function ciRunRedEscalationMetadata(params: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ci-sensor-loop.d.ts","sourceRoot":"","sources":["../../src/ci/ci-sensor-loop.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAuD,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAa1G,gFAAgF;AAChF,eAAO,MAAM,2BAA2B,2BAA2B,CAAC;AAUpE,kDAAkD;AAClD,wBAAgB,kCAAkC,IAAI,IAAI,CAEzD;AAGD,uDAAuD;AACvD,eAAO,MAAM,0BAA0B,eAAe,CAAC;AAEvD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,sBAAsB,CAAC;AACtD,eAAO,MAAM,6BAA6B,wBAAwB,CAAC;AAEnE
|
|
1
|
+
{"version":3,"file":"ci-sensor-loop.d.ts","sourceRoot":"","sources":["../../src/ci/ci-sensor-loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,9 +42,53 @@ export const CI_RUN_RED_ESCALATION_KIND = 'ci_run_red';
|
|
|
42
42
|
*/
|
|
43
43
|
export const CI_RUN_RED_POSTURE = 'ci_green_priority';
|
|
44
44
|
export const CI_RUN_RED_POSTURE_TERMINATES = 'escalation_resolved';
|
|
45
|
+
/** The repo whose CI this daemon-host product (Telora) diagnoses. */
|
|
46
|
+
export const CI_LOG_READER_REPO = 'syntelyos/telora';
|
|
45
47
|
/**
|
|
46
|
-
*
|
|
47
|
-
* the
|
|
48
|
+
* The diagnosis route carried on a ci_run_red filing: the on-PATH `ci-logs`
|
|
49
|
+
* reader and the exact command to pull THIS red run's failing job log, plus the
|
|
50
|
+
* readiness check. Structured (not only prose) so a team INHERITING the
|
|
51
|
+
* escalation reads the route off the filing itself, without prior knowledge of
|
|
52
|
+
* the reader. Single source for both the structured metadata and the escalation
|
|
53
|
+
* description, so the two cannot drift. See docs/runbook-ci-log-diagnosis.md.
|
|
54
|
+
*/
|
|
55
|
+
export function ciLogDiagnosisRoute(params) {
|
|
56
|
+
return {
|
|
57
|
+
reader: 'ci-logs',
|
|
58
|
+
repo: CI_LOG_READER_REPO,
|
|
59
|
+
command: `ci-logs --repo ${CI_LOG_READER_REPO} --sha ${params.sha}`,
|
|
60
|
+
readiness_check: 'ci-logs-selfcheck',
|
|
61
|
+
runbook: 'docs/runbook-ci-log-diagnosis.md',
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* The human-readable ci_run_red escalation description. Pure and exported so the
|
|
66
|
+
* "the filing names the CI-log reader" contract is unit-testable directly (the
|
|
67
|
+
* poll-loop tests inject a mock fileCiRedEscalation, so the description built by
|
|
68
|
+
* defaultFileCiRedEscalation is otherwise unreachable). Reads the SAME route
|
|
69
|
+
* helper as the structured metadata, so prose and data cannot drift apart.
|
|
70
|
+
*/
|
|
71
|
+
export function ciRunRedEscalationDescription(params) {
|
|
72
|
+
const route = ciLogDiagnosisRoute(params);
|
|
73
|
+
return (`CI is RED on the integration branch (${params.branch}) at ${params.sha.slice(0, 12)}. ` +
|
|
74
|
+
`The clean-environment instrument is failing, so integration->main merges are held ` +
|
|
75
|
+
`(fail-closed green-wait). Run reference: commit ${params.sha}. Fixing the failing ` +
|
|
76
|
+
`gate is coding work: reproduce it in the worktree (the CI 'ci' job's gate block) ` +
|
|
77
|
+
`and fix it.\n\n` +
|
|
78
|
+
`Read the failing job's log FIRST -- on this daemon host it is one command: run ` +
|
|
79
|
+
`\`${route.command}\` (${route.reader} is on PATH; --list to pick a run; ` +
|
|
80
|
+
`${route.readiness_check} confirms readiness before you trust an empty result). ` +
|
|
81
|
+
`Do not hand-roll the Gitea API chain or wait for a human to paste the log. Full ` +
|
|
82
|
+
`reference: ${route.runbook}.\n\n` +
|
|
83
|
+
`This filing auto-resolves when a later integration run goes green; if ` +
|
|
84
|
+
`the machine cannot clear it, the 24h agent_resolvable promotion backstop surfaces ` +
|
|
85
|
+
`it to an operator.`);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Structured metadata for a ci_run_red filing: the cause-key routing fields, the
|
|
89
|
+
* posture it sets and that posture's termination condition, PLUS the self-
|
|
90
|
+
* contained `diagnosis` route (see ciLogDiagnosisRoute) so a team inheriting the
|
|
91
|
+
* escalation later reads the same log route the original filing carried. Pure and
|
|
48
92
|
* exported so the metadata contract is unit-testable without mocking createEscalation.
|
|
49
93
|
*/
|
|
50
94
|
export function ciRunRedEscalationMetadata(params) {
|
|
@@ -56,6 +100,7 @@ export function ciRunRedEscalationMetadata(params) {
|
|
|
56
100
|
cause_key: ciRunRedCauseKey(params.branch),
|
|
57
101
|
posture: CI_RUN_RED_POSTURE,
|
|
58
102
|
terminates_when: CI_RUN_RED_POSTURE_TERMINATES,
|
|
103
|
+
diagnosis: ciLogDiagnosisRoute(params),
|
|
59
104
|
};
|
|
60
105
|
}
|
|
61
106
|
const OPEN_STATUSES = new Set(['pending', 'in_review']);
|
|
@@ -144,13 +189,7 @@ async function defaultFileCiRedEscalation(params) {
|
|
|
144
189
|
productId: params.productId,
|
|
145
190
|
focusId: params.focusId,
|
|
146
191
|
escalationKind: CI_RUN_RED_ESCALATION_KIND,
|
|
147
|
-
description:
|
|
148
|
-
`The clean-environment instrument is failing, so integration->main merges are held ` +
|
|
149
|
-
`(fail-closed green-wait). Run reference: commit ${params.sha}. Fixing the failing ` +
|
|
150
|
-
`gate is coding work: reproduce it in the worktree (the CI 'ci' job's gate block) ` +
|
|
151
|
-
`and fix it. This filing auto-resolves when a later integration run goes green; if ` +
|
|
152
|
-
`the machine cannot clear it, the 24h agent_resolvable promotion backstop surfaces ` +
|
|
153
|
-
`it to an operator.`,
|
|
192
|
+
description: ciRunRedEscalationDescription(params),
|
|
154
193
|
// cause_key (branch) collapses successive red tips onto one open filing and
|
|
155
194
|
// keeps the branch silent while it is already signalled; a green resolves it.
|
|
156
195
|
// The posture + terminates_when keys make the obligation's exit legible from
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ci-sensor-loop.js","sourceRoot":"","sources":["../../src/ci/ci-sensor-loop.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,qEAAqE;AACrE,kDAAkD;AAClD,gBAAgB;AA8ChB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,6BAA6B,EAAuB,MAAM,gBAAgB,CAAC;AAC1G,OAAO,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAChG,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;AAElD,gFAAgF;AAChF,MAAM,CAAC,MAAM,2BAA2B,GAAG,wBAAwB,CAAC;AAEpE;;;;;GAKG;AACH,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;AAE5C,kDAAkD;AAClD,MAAM,UAAU,kCAAkC;IAChD,iBAAiB,CAAC,KAAK,EAAE,CAAC;AAC5B,CAAC;AAGD,uDAAuD;AACvD,MAAM,CAAC,MAAM,0BAA0B,GAAG,YAAY,CAAC;AAEvD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AACtD,MAAM,CAAC,MAAM,6BAA6B,GAAG,qBAAqB,CAAC;AAEnE
|
|
1
|
+
{"version":3,"file":"ci-sensor-loop.js","sourceRoot":"","sources":["../../src/ci/ci-sensor-loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ci-status.d.ts","sourceRoot":"","sources":["../../src/ci/ci-status.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ci-status.d.ts","sourceRoot":"","sources":["../../src/ci/ci-status.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,kCAAkC,CAAC;AAE1C;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,CAAC;AAElE,gFAAgF;AAChF,MAAM,WAAW,mBAAmB;IAClC,2DAA2D;IAC3D,OAAO,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,MAAM,EAAE,WAAW,CAAC;IACpB,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iFAAiF;IACjF,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG,mBAAmB,CAY3E;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAUtF;AA8BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,WAAW,CAuDlF;AAED,+CAA+C;AAC/C,MAAM,WAAW,kBAAkB;IACjC,gFAAgF;IAChF,GAAG,EAAE,MAAM,CAAC;IACZ,6DAA6D;IAC7D,iBAAiB,EAAE,MAAM,CAAC;IAC1B,+EAA+E;IAC/E,MAAM,EAAE,YAAY,CAAC;CACtB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,kBAAkB,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;AAElF;;;;;;;;;GASG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,KAAK,MAAM,EAAE,CAAC;AAEhF;;;;GAIG;AACH,8EAA8E;AAC9E,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;AAEzD;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,oBAAoB,EAAE,OAAO,GAAG,cAAc,CAIvG;AAED,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,iBAAiB,GAAG,cAAc,CAWvF"}
|
package/dist/ci/ci-status.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
2
|
// Pinned by: packages/daemon/src/ci/ci-merge-gate.test.ts, packages/daemon/src/ci/ci-sensor-loop.test.ts,
|
|
3
|
+
// packages/daemon/src/ci/ci-status-arbitration-parity.test.ts,
|
|
3
4
|
// packages/daemon/src/ci/ci-status-git-native.test.ts,
|
|
4
5
|
// packages/daemon/src/git/merge-integration-to-main.test.ts
|
|
5
6
|
// PINNED-BY-END
|
package/dist/ci/ci-status.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ci-status.js","sourceRoot":"","sources":["../../src/ci/ci-status.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ci-status.js","sourceRoot":"","sources":["../../src/ci/ci-status.ts"],"names":[],"mappings":"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"}
|
|
@@ -57,8 +57,17 @@ export declare class CompletionDetector extends EventEmitter {
|
|
|
57
57
|
private isComplete;
|
|
58
58
|
/** Inactivity timeout after a result event (ms). Default: 30 seconds. */
|
|
59
59
|
private readonly idleTimeoutMs;
|
|
60
|
+
/**
|
|
61
|
+
* Optional guard: while it returns true the detector SUPPRESSES `complete` --
|
|
62
|
+
* the daemon has written stdin user messages to the team that the CLI has not
|
|
63
|
+
* resulted yet (turnCount), so the team has queued turns to run and is not done.
|
|
64
|
+
* Ordering teardown after queued delivery (delivery d5e72914). Inert when unset
|
|
65
|
+
* or when nothing was injected (sent === turnCount).
|
|
66
|
+
*/
|
|
67
|
+
private readonly hasPendingInput?;
|
|
60
68
|
constructor(options?: {
|
|
61
69
|
idleTimeoutMs?: number;
|
|
70
|
+
hasPendingInput?: (turnCount: number) => boolean;
|
|
62
71
|
});
|
|
63
72
|
/**
|
|
64
73
|
* Attach the detector to an AgentEventParser.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../../src/completion/detector.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../../src/completion/detector.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAExE,MAAM,WAAW,wBAAwB;IACvC,oEAAoE;IACpE,QAAQ,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACzC,sEAAsE;IACtE,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B,4DAA4D;IAC5D,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,CAAC,CAAC;IAChD,4CAA4C;IAC5C,oBAAoB,EAAE,OAAO,CAAC;IAC9B,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,+CAA+C;IAC/C,cAAc,EAAE,MAAM,CAAC;IACvB,yDAAyD;IACzD,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAID;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,YAAY;IAClD,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,UAAU,CAAS;IAE3B,yEAAyE;IACzE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IAEvC;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAiC;gBAEtD,OAAO,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAA;KAAE;IAMlG;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAatC,OAAO,CAAC,YAAY;IAmCpB,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,cAAc;IAoBtB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,cAAc;IAOtB,8CAA8C;IAC9C,QAAQ,IAAI;QACV,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,UAAU,EAAE,OAAO,CAAC;KACrB;IAUD;;;;;;;;OAQG;IACH,KAAK,IAAI,IAAI;IAOb,uBAAuB;IACvB,OAAO,IAAI,IAAI;CAIhB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
2
|
// Pinned by: packages/daemon/src/completion/detector-cost.test.ts,
|
|
3
|
+
// packages/daemon/src/completion/detector-pending-input.test.ts,
|
|
3
4
|
// packages/daemon/src/completion/terminal-error-terminate.test.ts,
|
|
4
5
|
// packages/daemon/src/integration/agent-owned-scoping-integration.test.ts
|
|
5
6
|
// PINNED-BY-END
|
|
@@ -32,9 +33,18 @@ export class CompletionDetector extends EventEmitter {
|
|
|
32
33
|
isComplete = false;
|
|
33
34
|
/** Inactivity timeout after a result event (ms). Default: 30 seconds. */
|
|
34
35
|
idleTimeoutMs;
|
|
36
|
+
/**
|
|
37
|
+
* Optional guard: while it returns true the detector SUPPRESSES `complete` --
|
|
38
|
+
* the daemon has written stdin user messages to the team that the CLI has not
|
|
39
|
+
* resulted yet (turnCount), so the team has queued turns to run and is not done.
|
|
40
|
+
* Ordering teardown after queued delivery (delivery d5e72914). Inert when unset
|
|
41
|
+
* or when nothing was injected (sent === turnCount).
|
|
42
|
+
*/
|
|
43
|
+
hasPendingInput;
|
|
35
44
|
constructor(options) {
|
|
36
45
|
super();
|
|
37
46
|
this.idleTimeoutMs = options?.idleTimeoutMs ?? 30000;
|
|
47
|
+
this.hasPendingInput = options?.hasPendingInput;
|
|
38
48
|
}
|
|
39
49
|
/**
|
|
40
50
|
* Attach the detector to an AgentEventParser.
|
|
@@ -121,6 +131,14 @@ export class CompletionDetector extends EventEmitter {
|
|
|
121
131
|
signalComplete() {
|
|
122
132
|
if (this.isComplete)
|
|
123
133
|
return;
|
|
134
|
+
// Ordering teardown after queued delivery: while the daemon has stdin user
|
|
135
|
+
// messages written but not yet resulted (a directive injected behind the
|
|
136
|
+
// kickoff turn), the team is not done -- suppress `complete` WITHOUT latching
|
|
137
|
+
// isComplete, so a later result (turnCount catching up) re-attempts. A
|
|
138
|
+
// directive the CLI never results leaves the team to the process-close /
|
|
139
|
+
// stall backstops, not wedged here.
|
|
140
|
+
if (this.hasPendingInput?.(this.turnCount))
|
|
141
|
+
return;
|
|
124
142
|
this.isComplete = true;
|
|
125
143
|
this.clearIdleTimer();
|
|
126
144
|
this.emit('complete', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detector.js","sourceRoot":"","sources":["../../src/completion/detector.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,mEAAmE;AACnE,qEAAqE;AACrE,4EAA4E;AAC5E,gBAAgB;AAEhB;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAmC3C;;;GAGG;AACH,MAAM,OAAO,kBAAmB,SAAQ,YAAY;IAC1C,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAC,uBAAuB;IACpE,SAAS,GAAG,CAAC,CAAC;IACd,YAAY,GAAG,CAAC,CAAC;IACjB,eAAe,GAAuB,IAAI,CAAC;IAC3C,SAAS,GAAyC,IAAI,CAAC;IACvD,UAAU,GAAG,KAAK,CAAC;IAE3B,yEAAyE;IACxD,aAAa,CAAS;IAEvC,YAAY,
|
|
1
|
+
{"version":3,"file":"detector.js","sourceRoot":"","sources":["../../src/completion/detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -61,6 +61,13 @@ export interface CompletionFacts {
|
|
|
61
61
|
postNonTerminal: FocusDeliveryInfo[];
|
|
62
62
|
postHasActionableOpen: boolean;
|
|
63
63
|
teamHasActionableWork: boolean;
|
|
64
|
+
/**
|
|
65
|
+
* A verify command is currently running in the focus worktree (the
|
|
66
|
+
* verify-interlock hold). Folded into teamHasActionableWork via the shared
|
|
67
|
+
* predicate; also surfaced so the no-actionable-work terminate branch can name
|
|
68
|
+
* the verify hold as the reason the focus had nothing team-actionable.
|
|
69
|
+
*/
|
|
70
|
+
underVerifyHold: boolean;
|
|
64
71
|
/**
|
|
65
72
|
* A non-terminal delivery exists on the focus whose id is NOT in
|
|
66
73
|
* teamState.knownDeliveryIds -- i.e. it appeared since the team was last
|
|
@@ -91,14 +98,6 @@ export interface CompletionFacts {
|
|
|
91
98
|
*/
|
|
92
99
|
updatedLastNoProgressCycleAt: number | undefined;
|
|
93
100
|
}
|
|
94
|
-
/**
|
|
95
|
-
* Recompute the picture on the post-advance state. The team owns exactly two
|
|
96
|
-
* kinds of non-terminal work: planning deliveries (it scopes them) and
|
|
97
|
-
* agent-actionable deliveries that still carry open issues (it codes them).
|
|
98
|
-
* See the inline notes for the audit-phase, verify_failed-pending-requeue,
|
|
99
|
-
* and advancedThisCycle subtleties -- each guards a specific production
|
|
100
|
-
* failure mode and is preserved exactly.
|
|
101
|
-
*/
|
|
102
101
|
export declare function computeCompletionFacts(ctx: CompletionEventContext, deps: CompletionEventDeps, currentDeliveries: FocusDeliveryInfo[], effectiveDeliveries: FocusDeliveryInfo[], currentIssues: FocusIssueInfo[]): Promise<CompletionFacts>;
|
|
103
102
|
/**
|
|
104
103
|
* Records this cycle on the persistent delivery-advancement guard and, when
|
|
@@ -114,5 +113,22 @@ export declare function checkDeliveryAdvancementStall(ctx: CompletionEventContex
|
|
|
114
113
|
* the branch semantics preserved exactly -- including the commit-nudge re-wake
|
|
115
114
|
* and terminated-work reconciliation on the no-progress path.
|
|
116
115
|
*/
|
|
116
|
+
/**
|
|
117
|
+
* The teardown-at-first-result action. The completion detector says the team has
|
|
118
|
+
* no more team-actionable work (every remaining non-terminal delivery is in a
|
|
119
|
+
* daemon/review-managed state the coding team cannot advance -- in_review, paused,
|
|
120
|
+
* a verify_failed the self-heal could not yet clear -- OR the focus worktree is
|
|
121
|
+
* under an in-flight verify hold). Record the firing, then tear down cleanly and
|
|
122
|
+
* let the daemon on-exit advance, the listener, and the review routing move these
|
|
123
|
+
* deliveries.
|
|
124
|
+
*
|
|
125
|
+
* UNLESS the teardown-at-first-result mechanism is DEMOTED to observe-only (zero
|
|
126
|
+
* true positives over the window): a demoted mechanism records its firing but no
|
|
127
|
+
* longer kills (AC/FRT #10 -- block-to-observe by policy), so the team is left
|
|
128
|
+
* alive to do the work its premature teardowns kept ending. Suppression is
|
|
129
|
+
* bounded: a genuinely-idle team is still reaped by the no-progress backstop, and
|
|
130
|
+
* with no teardown to falsify, the firing sweeps to TP and the demotion self-lifts.
|
|
131
|
+
*/
|
|
132
|
+
export declare function teardownNoActionableWork(focusId: string, focusName: string, postNonTerminal: FocusDeliveryInfo[], underVerifyHold: boolean, teamState: CompletionEventContext['teamState'], deps: CompletionEventDeps): void;
|
|
117
133
|
export declare function executeCompletionAction(ctx: CompletionEventContext, deps: CompletionEventDeps, facts: CompletionFacts, action: CompletionAction, noProgressLimit: number): Promise<void>;
|
|
118
134
|
//# sourceMappingURL=event-phases.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-phases.d.ts","sourceRoot":"","sources":["../../src/completion/event-phases.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"event-phases.d.ts","sourceRoot":"","sources":["../../src/completion/event-phases.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAO7F,OAAO,EAA6B,KAAK,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAsB5F,OAAO,KAAK,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAe9E;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,QAAS,CAAC;AAEjD;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,QAAS,CAAC;AAE5C;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAE9C;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAI7C,sEAAsE;AACtE,MAAM,WAAW,eAAe;IAC9B,8EAA8E;IAC9E,iBAAiB,EAAE,iBAAiB,EAAE,CAAC;IACvC,mBAAmB,EAAE,iBAAiB,EAAE,CAAC;IACzC,aAAa,EAAE,cAAc,EAAE,CAAC;IAChC,eAAe,EAAE,iBAAiB,EAAE,CAAC;IACrC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,qBAAqB,EAAE,OAAO,CAAC;IAC/B;;;;;OAKG;IACH,eAAe,EAAE,OAAO,CAAC;IACzB;;;;;OAKG;IACH,wBAAwB,EAAE,OAAO,CAAC;IAClC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,aAAa,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACvC,YAAY,EAAE,OAAO,CAAC;IACtB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAChC,uBAAuB,EAAE,MAAM,CAAC;IAChC,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,sBAAsB,EAAE,OAAO,CAAC;IAChC;;;OAGG;IACH,4BAA4B,EAAE,MAAM,GAAG,SAAS,CAAC;CAClD;AA0CD,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,sBAAsB,EAC3B,IAAI,EAAE,mBAAmB,EACzB,iBAAiB,EAAE,iBAAiB,EAAE,EACtC,mBAAmB,EAAE,iBAAiB,EAAE,EACxC,aAAa,EAAE,cAAc,EAAE,GAC9B,OAAO,CAAC,eAAe,CAAC,CAuL1B;AAID;;;;;;GAMG;AACH,wBAAsB,6BAA6B,CACjD,GAAG,EAAE,sBAAsB,EAC3B,IAAI,EAAE,mBAAmB,EACzB,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,gBAAgB,EACxB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,OAAO,CAAC,CAuDlB;AAID;;;;;GAKG;AACH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,iBAAiB,EAAE,EACpC,eAAe,EAAE,OAAO,EACxB,SAAS,EAAE,sBAAsB,CAAC,WAAW,CAAC,EAC9C,IAAI,EAAE,mBAAmB,GACxB,IAAI,CAiBN;AAED,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,sBAAsB,EAC3B,IAAI,EAAE,mBAAmB,EACzB,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,gBAAgB,EACxB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,IAAI,CAAC,CAsRf"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
-
// Pinned by: packages/daemon/src/completion/
|
|
3
|
-
// packages/daemon/src/completion/
|
|
2
|
+
// Pinned by: packages/daemon/src/completion/exit-verify-hold.test.ts,
|
|
3
|
+
// packages/daemon/src/completion/reengagement-redrive.test.ts,
|
|
4
|
+
// packages/daemon/src/completion/stall-guard-time-floor.test.ts,
|
|
5
|
+
// packages/daemon/src/completion/teardown-demotion-gate.test.ts
|
|
4
6
|
// PINNED-BY-END
|
|
5
7
|
import { sendMessage } from '@telora/daemon-core';
|
|
6
8
|
import { isStatusCascadable, isStatusAgentActionable } from '../workflow/stage-classifier.js';
|
|
@@ -10,9 +12,12 @@ import { isAuditPhaseFocus } from '../audit/audit-shape.js';
|
|
|
10
12
|
import { advancementReadFailsOpen } from '../workflow/gate-failure-policy.js';
|
|
11
13
|
import { shouldCheckNonAdvanceable } from './completion-decision.js';
|
|
12
14
|
import { takeProgressSnapshot, snapshotsEqual } from './progress-snapshot.js';
|
|
15
|
+
import { recordFiring, classifyLatestUnclassifiedFiring, isMechanismDemoted, SUPERVISION_MECHANISM } from './supervision-firing-record.js';
|
|
13
16
|
import { findNonAdvanceableDelivery } from './advanceability.js';
|
|
14
17
|
import { getFocusWorktree as defaultGetFocusWorktree } from '../focus/focus-worktree-state.js';
|
|
18
|
+
import { resolveTeamActionableWork } from '../focus/team-actionable-work.js';
|
|
15
19
|
import { worktreeHasUncommittedChanges as defaultWorktreeHasUncommittedChanges } from '../worktree/index.js';
|
|
20
|
+
import { isWorktreeUnderVerify as defaultIsWorktreeUnderVerify } from '../worktree/verify-interlock.js';
|
|
16
21
|
import { readWorktreeHeadSha as defaultReadWorktreeHeadSha } from '../git/index.js';
|
|
17
22
|
import { isProcessAlive as defaultIsLeadAlive } from '../spawn/liveness.js';
|
|
18
23
|
import { resolveAutoRemediationBudget } from '../delivery/delivery-advance-block.js';
|
|
@@ -68,6 +73,36 @@ export const HANDOFF_UNPRODUCTIVE_LIMIT = 10;
|
|
|
68
73
|
* and advancedThisCycle subtleties -- each guards a specific production
|
|
69
74
|
* failure mode and is preserved exactly.
|
|
70
75
|
*/
|
|
76
|
+
/**
|
|
77
|
+
* Resolve whether the focus is in the human-ratify audit phase, so its held
|
|
78
|
+
* `planning` deliveries are NOT counted as team-actionable.
|
|
79
|
+
*
|
|
80
|
+
* A read_only focus is awaiting the ratify gate: counting its planning
|
|
81
|
+
* deliveries as actionable made a not-yet-ratified audit focus accrue
|
|
82
|
+
* no-progress cycles it could never clear -> a spurious no-progress team_failure
|
|
83
|
+
* (escalation aa58d9c3). Resolve FRESH: an explicit read_only=true OR the second
|
|
84
|
+
* structural signal (audit-origin AND not-yet-ratified), so a flag-absent audit
|
|
85
|
+
* focus still degrades gracefully (injection #7). FAIL OPEN to not-audit-phase so
|
|
86
|
+
* a lookup failure preserves the prior (escalate-eligible) behavior rather than
|
|
87
|
+
* silently muting the guard. Extracted from computeCompletionFacts (size ratchet).
|
|
88
|
+
*/
|
|
89
|
+
async function resolveFocusAuditPhase(ctx, deps) {
|
|
90
|
+
if (!deps.getFocusRatificationState)
|
|
91
|
+
return false;
|
|
92
|
+
try {
|
|
93
|
+
const st = await deps.getFocusRatificationState(ctx.config, ctx.focusId);
|
|
94
|
+
return isAuditPhaseFocus({
|
|
95
|
+
readOnly: st.readOnly,
|
|
96
|
+
auditOrigin: st.auditOrigin ?? false,
|
|
97
|
+
ratified: st.ratifiedAt != null,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
catch (err) {
|
|
101
|
+
// ADVANCEMENT/LIVENESS read -> FAIL OPEN: treat as not-audit-phase so the team
|
|
102
|
+
// keeps working on a transient read error rather than being parked.
|
|
103
|
+
return advancementReadFailsOpen(`event-phases ratification "${ctx.focusName}"`, err, false);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
71
106
|
export async function computeCompletionFacts(ctx, deps, currentDeliveries, effectiveDeliveries, currentIssues) {
|
|
72
107
|
const { focusId, focusName, teamState } = ctx;
|
|
73
108
|
const postNonTerminal = effectiveDeliveries.filter(d => !isStatusCascadable(d.executionStatus ?? ''));
|
|
@@ -75,36 +110,7 @@ export async function computeCompletionFacts(ctx, deps, currentDeliveries, effec
|
|
|
75
110
|
.filter(d => isStatusAgentActionable(d.executionStatus ?? ''))
|
|
76
111
|
.map(d => d.id));
|
|
77
112
|
const postHasActionableOpen = currentIssues.some(i => postActionableIds.has(i.deliveryId) && OPEN_ISSUE_STATUSES.has(i.status));
|
|
78
|
-
|
|
79
|
-
// `planning` deliveries are held, not team work the team is failing to
|
|
80
|
-
// advance. Counting them as actionable made a not-yet-ratified audit focus
|
|
81
|
-
// accrue no-progress cycles it could never clear -> a spurious no-progress
|
|
82
|
-
// team_failure (escalation aa58d9c3, focus "Test Quality Audit"). Resolve the
|
|
83
|
-
// audit-phase state FRESH: an explicit read_only=true, OR the second
|
|
84
|
-
// structural signal (audit-origin AND not-yet-ratified). The second signal
|
|
85
|
-
// makes a flag-absent audit focus (read_only silently null) still count as
|
|
86
|
-
// audit-phase here, so its held `planning` deliveries are NOT treated as
|
|
87
|
-
// team-actionable -- degrading gracefully instead of the spurious no-progress
|
|
88
|
-
// team_failure (injection #7; escalation aa58d9c3 does not reproduce). Fail
|
|
89
|
-
// open to NOT-audit-phase so a lookup failure preserves the prior
|
|
90
|
-
// (escalate-eligible) behavior rather than silently muting the guard.
|
|
91
|
-
let focusAuditPhase = false;
|
|
92
|
-
if (deps.getFocusRatificationState) {
|
|
93
|
-
try {
|
|
94
|
-
const st = await deps.getFocusRatificationState(ctx.config, focusId);
|
|
95
|
-
focusAuditPhase = isAuditPhaseFocus({
|
|
96
|
-
readOnly: st.readOnly,
|
|
97
|
-
auditOrigin: st.auditOrigin ?? false,
|
|
98
|
-
ratified: st.ratifiedAt != null,
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
catch (err) {
|
|
102
|
-
// ADVANCEMENT/LIVENESS read (focus ratification state) -> FAIL OPEN per the
|
|
103
|
-
// stated per-class policy: treat as not-audit-phase (false), so the team
|
|
104
|
-
// keeps working on a transient read error rather than being parked.
|
|
105
|
-
focusAuditPhase = advancementReadFailsOpen(`event-phases ratification "${focusName}"`, err, false);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
113
|
+
const focusAuditPhase = await resolveFocusAuditPhase(ctx, deps);
|
|
108
114
|
// Planning deliveries count as team-actionable ONLY on a non-audit-phase focus
|
|
109
115
|
// (where the team is expected to scope them). On an audit-phase focus they await
|
|
110
116
|
// ratification, so they do not keep the team on the no-progress path. A
|
|
@@ -114,7 +120,8 @@ export async function computeCompletionFacts(ctx, deps, currentDeliveries, effec
|
|
|
114
120
|
// agent-actionable delivery -- so a freshly-scoped, not-yet-started queued
|
|
115
121
|
// delivery does not, on its own, accrue no-progress cycles.
|
|
116
122
|
const hasPlanning = !focusAuditPhase && effectiveDeliveries.some(d => (d.executionStatus ?? '') === 'planning');
|
|
117
|
-
|
|
123
|
+
// Raw actionable-work fact; folded through the shared verify-hold predicate below.
|
|
124
|
+
const rawTeamHasActionableWork = hasPlanning || postHasActionableOpen;
|
|
118
125
|
// A non-terminal delivery the team has never been told about (id absent from
|
|
119
126
|
// knownDeliveryIds) is work to HAND OFF, not work the team is failing to
|
|
120
127
|
// advance. A delivery added to a running focus defaults to `queued` with zero
|
|
@@ -143,6 +150,14 @@ export async function computeCompletionFacts(ctx, deps, currentDeliveries, effec
|
|
|
143
150
|
const readHeadSha = deps.readWorktreeHeadSha ?? defaultReadWorktreeHeadSha;
|
|
144
151
|
const focusWorktreePath = resolveWorktree(focusId)?.worktreePath ?? null;
|
|
145
152
|
const focusHeadSha = focusWorktreePath !== null ? readHeadSha(focusWorktreePath) : null;
|
|
153
|
+
// Fold the verify-interlock hold into actionable-work through the ONE shared
|
|
154
|
+
// predicate (focus/team-actionable-work.ts) the spawn gate also reads, so the
|
|
155
|
+
// two paths cannot disagree about a held focus. No hold -> raw fact unchanged.
|
|
156
|
+
const { underVerifyHold, teamHasActionableWork } = resolveTeamActionableWork({
|
|
157
|
+
focusWorktreePath,
|
|
158
|
+
hasUnheldActionableWork: rawTeamHasActionableWork,
|
|
159
|
+
isWorktreeUnderVerify: deps.isWorktreeUnderVerify ?? defaultIsWorktreeUnderVerify,
|
|
160
|
+
});
|
|
146
161
|
// Capture the (post-advance) snapshot for progress detection. Treat both null
|
|
147
162
|
// and undefined as "no prior snapshot" -- legacy test fixtures may not set
|
|
148
163
|
// the field, and a fresh team has lastProgressSnapshot=null.
|
|
@@ -228,6 +243,7 @@ export async function computeCompletionFacts(ctx, deps, currentDeliveries, effec
|
|
|
228
243
|
postNonTerminal,
|
|
229
244
|
postHasActionableOpen,
|
|
230
245
|
teamHasActionableWork,
|
|
246
|
+
underVerifyHold,
|
|
231
247
|
hasNewlyAppearedDelivery,
|
|
232
248
|
focusWorktreePath,
|
|
233
249
|
focusHeadSha,
|
|
@@ -303,9 +319,39 @@ export async function checkDeliveryAdvancementStall(ctx, deps, facts, action, no
|
|
|
303
319
|
* the branch semantics preserved exactly -- including the commit-nudge re-wake
|
|
304
320
|
* and terminated-work reconciliation on the no-progress path.
|
|
305
321
|
*/
|
|
322
|
+
/**
|
|
323
|
+
* The teardown-at-first-result action. The completion detector says the team has
|
|
324
|
+
* no more team-actionable work (every remaining non-terminal delivery is in a
|
|
325
|
+
* daemon/review-managed state the coding team cannot advance -- in_review, paused,
|
|
326
|
+
* a verify_failed the self-heal could not yet clear -- OR the focus worktree is
|
|
327
|
+
* under an in-flight verify hold). Record the firing, then tear down cleanly and
|
|
328
|
+
* let the daemon on-exit advance, the listener, and the review routing move these
|
|
329
|
+
* deliveries.
|
|
330
|
+
*
|
|
331
|
+
* UNLESS the teardown-at-first-result mechanism is DEMOTED to observe-only (zero
|
|
332
|
+
* true positives over the window): a demoted mechanism records its firing but no
|
|
333
|
+
* longer kills (AC/FRT #10 -- block-to-observe by policy), so the team is left
|
|
334
|
+
* alive to do the work its premature teardowns kept ending. Suppression is
|
|
335
|
+
* bounded: a genuinely-idle team is still reaped by the no-progress backstop, and
|
|
336
|
+
* with no teardown to falsify, the firing sweeps to TP and the demotion self-lifts.
|
|
337
|
+
*/
|
|
338
|
+
export function teardownNoActionableWork(focusId, focusName, postNonTerminal, underVerifyHold, teamState, deps) {
|
|
339
|
+
const holdClass = underVerifyHold ? 'held by an in-flight verify' : 'in daemon-managed states (in_review / paused / verify-pending)';
|
|
340
|
+
teamState.shutdownReason = postNonTerminal.length > 0 ? 'no_actionable_work' : 'work_complete';
|
|
341
|
+
classifyLatestUnclassifiedFiring(SUPERVISION_MECHANISM.SPAWN_GATE_VS_EXIT_RESPAWN, focusId, { borneOut: false, observed: 'respawn led straight back to a no-actionable-work teardown' });
|
|
342
|
+
recordFiring({ mechanism: SUPERVISION_MECHANISM.TEARDOWN_AT_FIRST_RESULT, focusId, predicted: `no team-actionable work (${postNonTerminal.length} non-terminal, ${holdClass})` });
|
|
343
|
+
if (isMechanismDemoted(SUPERVISION_MECHANISM.TEARDOWN_AT_FIRST_RESULT)) {
|
|
344
|
+
log.info(`No team-actionable work remains for "${focusName}" but teardown-at-first-result is DEMOTED to ` +
|
|
345
|
+
`observe-only (zero true positives over the window) -- recording the firing but NOT terminating; ` +
|
|
346
|
+
`the team stays to do the work premature teardowns kept ending`);
|
|
347
|
+
return;
|
|
348
|
+
}
|
|
349
|
+
log.info(`No team-actionable work remains for "${focusName}" -- ${postNonTerminal.length} non-terminal delivery(ies) ${holdClass}; terminating cleanly`);
|
|
350
|
+
deps.terminateTeam(focusId);
|
|
351
|
+
}
|
|
306
352
|
export async function executeCompletionAction(ctx, deps, facts, action, noProgressLimit) {
|
|
307
353
|
const { focusId, focusName, teamState, completionDetector, proc } = ctx;
|
|
308
|
-
const { currentDeliveries, effectiveDeliveries, currentIssues, postNonTerminal, snapshot, focusWorktreePath, stuck, updatedNoProgressCycles, madeProgress, nowMs, updatedLastNoProgressCycleAt, } = facts;
|
|
354
|
+
const { currentDeliveries, effectiveDeliveries, currentIssues, postNonTerminal, snapshot, focusWorktreePath, stuck, updatedNoProgressCycles, madeProgress, nowMs, updatedLastNoProgressCycleAt, underVerifyHold, } = facts;
|
|
309
355
|
// Commit the no-progress counter TIMING for this cycle on every path (the
|
|
310
356
|
// counter VALUE is still committed per-branch below, as before). This keeps
|
|
311
357
|
// the real-time floor honest across respawns and early returns: the next
|
|
@@ -354,17 +400,7 @@ export async function executeCompletionAction(ctx, deps, facts, action, noProgre
|
|
|
354
400
|
return;
|
|
355
401
|
}
|
|
356
402
|
case 'terminate_no_actionable_work': {
|
|
357
|
-
|
|
358
|
-
// state the coding team cannot advance (in_review, paused, or a
|
|
359
|
-
// verify_failed the self-heal could not yet clear). The team is NOT
|
|
360
|
-
// stuck on work it can do -- it has nothing to do. Terminate cleanly
|
|
361
|
-
// and let the daemon (on-exit advance), the listener auto-advance, and
|
|
362
|
-
// the review routing move these deliveries.
|
|
363
|
-
log.info(`No team-actionable work remains for "${focusName}" -- ` +
|
|
364
|
-
`${postNonTerminal.length} non-terminal delivery(ies) in daemon-managed states ` +
|
|
365
|
-
`(in_review / paused / verify-pending); terminating cleanly without escalation`);
|
|
366
|
-
teamState.shutdownReason = 'work_complete';
|
|
367
|
-
deps.terminateTeam(focusId);
|
|
403
|
+
teardownNoActionableWork(focusId, focusName, postNonTerminal, underVerifyHold, teamState, deps);
|
|
368
404
|
return;
|
|
369
405
|
}
|
|
370
406
|
case 'escalate_no_progress_and_terminate': {
|