@telora/daemon 0.24.58 → 0.24.63

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.
Files changed (83) hide show
  1. package/build-info.json +4 -3
  2. package/dist/ci/ci-run-spans.d.ts +140 -0
  3. package/dist/ci/ci-run-spans.d.ts.map +1 -0
  4. package/dist/ci/ci-run-spans.js +147 -0
  5. package/dist/ci/ci-run-spans.js.map +1 -0
  6. package/dist/ci/ci-sensor-loop.d.ts +8 -0
  7. package/dist/ci/ci-sensor-loop.d.ts.map +1 -1
  8. package/dist/ci/ci-sensor-loop.js +4 -0
  9. package/dist/ci/ci-sensor-loop.js.map +1 -1
  10. package/dist/ci/ci-status.d.ts +15 -0
  11. package/dist/ci/ci-status.d.ts.map +1 -1
  12. package/dist/ci/ci-status.js +43 -8
  13. package/dist/ci/ci-status.js.map +1 -1
  14. package/dist/composition/engine-start-context.d.ts.map +1 -1
  15. package/dist/composition/engine-start-context.js +8 -1
  16. package/dist/composition/engine-start-context.js.map +1 -1
  17. package/dist/composition/execution-ci-context.d.ts +3 -0
  18. package/dist/composition/execution-ci-context.d.ts.map +1 -1
  19. package/dist/composition/execution-ci-context.js +37 -1
  20. package/dist/composition/execution-ci-context.js.map +1 -1
  21. package/dist/composition/focus-activity-live-sources.d.ts.map +1 -1
  22. package/dist/composition/focus-activity-live-sources.js +5 -1
  23. package/dist/composition/focus-activity-live-sources.js.map +1 -1
  24. package/dist/composition/verification-context.d.ts.map +1 -1
  25. package/dist/composition/verification-context.js +5 -1
  26. package/dist/composition/verification-context.js.map +1 -1
  27. package/dist/focus/daemon-contexts.d.ts +6 -0
  28. package/dist/focus/daemon-contexts.d.ts.map +1 -1
  29. package/dist/focus/daemon-contexts.js.map +1 -1
  30. package/dist/focus/focus-activity-poll-facts.d.ts +13 -0
  31. package/dist/focus/focus-activity-poll-facts.d.ts.map +1 -1
  32. package/dist/focus/focus-activity-poll-facts.js +6 -0
  33. package/dist/focus/focus-activity-poll-facts.js.map +1 -1
  34. package/dist/focus/focus-activity-producers.d.ts +38 -1
  35. package/dist/focus/focus-activity-producers.d.ts.map +1 -1
  36. package/dist/focus/focus-activity-producers.js +52 -4
  37. package/dist/focus/focus-activity-producers.js.map +1 -1
  38. package/dist/focus/focus-activity-record.d.ts +2 -2
  39. package/dist/focus/focus-activity-record.d.ts.map +1 -1
  40. package/dist/focus/focus-activity-record.js +4 -3
  41. package/dist/focus/focus-activity-record.js.map +1 -1
  42. package/dist/focus/focus-activity-sources.d.ts +8 -0
  43. package/dist/focus/focus-activity-sources.d.ts.map +1 -1
  44. package/dist/focus/focus-activity-sources.js.map +1 -1
  45. package/dist/focus/focus-engine.d.ts.map +1 -1
  46. package/dist/focus/focus-engine.js +3 -1
  47. package/dist/focus/focus-engine.js.map +1 -1
  48. package/dist/queries/api-client/shared.d.ts +1 -0
  49. package/dist/queries/api-client/shared.d.ts.map +1 -1
  50. package/dist/queries/api-client/shared.js +30 -2
  51. package/dist/queries/api-client/shared.js.map +1 -1
  52. package/dist/queries/phase-spans/phase-spans.d.ts +59 -0
  53. package/dist/queries/phase-spans/phase-spans.d.ts.map +1 -0
  54. package/dist/queries/phase-spans/phase-spans.js +90 -0
  55. package/dist/queries/phase-spans/phase-spans.js.map +1 -0
  56. package/dist/queries/verification/verification.js +1 -1
  57. package/dist/testing/fixtures/api-client.js +1 -1
  58. package/dist/testing/fixtures/recording-api-client.js +1 -1
  59. package/dist/testing/fixtures/verification-deps.d.ts +7 -0
  60. package/dist/testing/fixtures/verification-deps.d.ts.map +1 -1
  61. package/dist/testing/fixtures/verification-deps.js +12 -1
  62. package/dist/testing/fixtures/verification-deps.js.map +1 -1
  63. package/dist/tower/tower-admission.d.ts +3 -1
  64. package/dist/tower/tower-admission.d.ts.map +1 -1
  65. package/dist/tower/tower-admission.js +3 -1
  66. package/dist/tower/tower-admission.js.map +1 -1
  67. package/dist/types/index.js +1 -1
  68. package/dist/verify/deterministic-gate/verification-deterministic.js +1 -1
  69. package/dist/verify/engine/verification-commit-sharing.d.ts +18 -3
  70. package/dist/verify/engine/verification-commit-sharing.d.ts.map +1 -1
  71. package/dist/verify/engine/verification-commit-sharing.js +73 -13
  72. package/dist/verify/engine/verification-commit-sharing.js.map +1 -1
  73. package/dist/verify/engine/verification-deps.d.ts +11 -0
  74. package/dist/verify/engine/verification-deps.d.ts.map +1 -1
  75. package/dist/verify/engine/verification-deps.js +1 -1
  76. package/dist/verify/engine/verification-engine.js +1 -1
  77. package/dist/verify/engine/verification-engine.js.map +1 -1
  78. package/dist/verify/gate-verdicts/gate-phase-span.d.ts +137 -0
  79. package/dist/verify/gate-verdicts/gate-phase-span.d.ts.map +1 -0
  80. package/dist/verify/gate-verdicts/gate-phase-span.js +190 -0
  81. package/dist/verify/gate-verdicts/gate-phase-span.js.map +1 -0
  82. package/docs/runbook-tower.md +6 -6
  83. package/package.json +3 -3
package/build-info.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
- "commitSha": "a7d76d808",
3
- "builtAt": "2026-10-28T22:33:46.423Z",
2
+ "commitSha": "0bd25af3c",
3
+ "builtAt": "2026-10-29T17:01:37.461Z",
4
4
  "expectedMigrations": [
5
5
  "20250829113330_create_org_nodes_table.sql",
6
6
  "20250829113402_fix_function_security_search_path.sql",
@@ -911,6 +911,7 @@
911
911
  "20261026120918_qa_failed_overcome_clear_guard.sql",
912
912
  "20261026120922_done_prd_play_role_recovered.sql",
913
913
  "20261027121340_in_progress_request_answered_without_focus_is_delivered.sql",
914
- "20261027125510_focus_tower_edges_refuse_same_prd_depends_on.sql"
914
+ "20261027125510_focus_tower_edges_refuse_same_prd_depends_on.sql",
915
+ "20261029133000_execution_phase_spans.sql"
915
916
  ]
916
917
  }
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Every CI run the CI sensor observes on the integration tip is recorded as one
3
+ * timed `ci` execution-phase span (product-api `daemon_upsert_ci_phase_span`,
4
+ * keyed by product + commit sha + run number), so the database holds when each
5
+ * run started and when it reached a terminal state -- not only the git ref
6
+ * `refs/ci-status/<sha>/<run>/<state>` and, on red, a ci_run_red escalation.
7
+ *
8
+ * WHICH RUNS. The run-ordered ci-status refs published for the integration tip
9
+ * sha (ciRunsFromRefNames, ci/ci-status.ts): one span per run number, the ref's
10
+ * run token as `external_run_id`. A product whose CI does not publish the
11
+ * ci-status contract has no such refs, so it records NOTHING (no API read, no
12
+ * write). Legacy refs carry no run number and name no run.
13
+ * A ref names a sha, not a branch, so when the CI host can say which branch a run
14
+ * ran on, only runs on the integration branch or an integration CANDIDATE branch
15
+ * (telora-candidate/<focusId>, ci/candidate-ref.ts -- the run that judged the
16
+ * commit integration fast-forwarded to, usually the only one with a verdict) are
17
+ * recorded; a run on main (the later integration->main promotion of the same sha)
18
+ * is not this team's time and is skipped. Without the CI host, every ref'd run of
19
+ * the tip is recorded.
20
+ *
21
+ * WHEN. A run is upserted the first tick it is seen -- pending or terminal --
22
+ * and again each tick until it is recorded green: green -> outcome 'passed',
23
+ * red -> 'failed', pending -> no end. A RED run is not final: a Gitea job rerun
24
+ * publishes a success ref under the same run number, and the CI status model
25
+ * lets that success win the run (ci/ci-status.ts runVerdictOf) -- which is what
26
+ * the merge gate reads -- so a red run stays open here and its red -> green is
27
+ * sent (the server lets a closed 'failed' span become 'passed', never the
28
+ * reverse). An unchanged red is not re-sent each tick (`runMemo` remembers it was
29
+ * recorded). A run is SETTLED -- never re-sent, nor the host re-read for it -- once
30
+ * it is recorded green, or skipped as a non-integration run. The server keeps the
31
+ * earliest start, never reopens a closed span and merges metadata, so a repeat
32
+ * (e.g. after a daemon restart) is harmless.
33
+ *
34
+ * TIME SOURCE (metadata.timeSource). 'ci_host' when the run's started_at (and,
35
+ * when terminal, completed_at) come from the Gitea Actions API -- the same
36
+ * read-only `ci-logs` reader credential the gate-job read uses
37
+ * (ci/gate-job-conclusion.ts giteaActionsReader; no new credential), matched by
38
+ * run_number + head_sha. 'observed' when there is no reader on this host, the
39
+ * product's CI repo is not derivable, or the API does not know the run: the
40
+ * start is the first poll that saw the run and the end the first poll that saw it
41
+ * terminal, at the sensor's poll resolution (5 min). Telora's ci.yml publishes
42
+ * only terminal refs, so an observed span of such a run has started_at ==
43
+ * ended_at -- its duration is not known, only its outcome and position.
44
+ * 'mixed' when the host gave the start but not the end of a terminal run.
45
+ *
46
+ * TIP COMMIT TIME (metadata.tipCommittedAt). The committer date of the
47
+ * integration tip commit (`git log -1 --format=%cI <sha>` in the product
48
+ * checkout). It is NOT the merge time: for the common fast-forward to a focus's
49
+ * merge-back (or candidate) commit it is when that commit was made, not when
50
+ * integration moved to it, which git does not record. The integration landing
51
+ * instant lives in `focus_merges.merged_at` (its `merge_commit_sha` is the
52
+ * integration HEAD after the merge); read that, not this, for when work landed.
53
+ * Absent when the commit is not in the local checkout; settlement never waits
54
+ * for it.
55
+ *
56
+ * ATTRIBUTION. The same anchor the ci_run_red filing uses
57
+ * (ci/ci-red-attribution.ts resolveRedRunAnchor): the focus -- and the delivery
58
+ * when it is the only one -- whose merge introduced the tip; no focus at all when
59
+ * that cannot be determined, never a guessed one.
60
+ *
61
+ * BEST-EFFORT. A measurement, not control: every failure is logged and the CI
62
+ * sensor tick proceeds untouched (recordCiRunSpans never throws).
63
+ *
64
+ * @module ci/ci-run-spans
65
+ */
66
+ import type { DaemonConfig } from '../types/index.js';
67
+ import type { CiRunObservation } from './ci-status.js';
68
+ import type { CiRedRunAnchor } from './ci-red-attribution.js';
69
+ import type { UpsertCiPhaseSpanRequest } from '../queries/phase-spans/phase-spans.js';
70
+ /** One CI run as the CI host (Gitea Actions API) reports it. */
71
+ export interface HostCiRun {
72
+ /** The host's own run id (the API's `id`, not the run number). */
73
+ hostRunId: number | null;
74
+ headBranch: string | null;
75
+ /** ISO instant the run started; null when the host has none (not started, zero time). */
76
+ startedAt: string | null;
77
+ /** ISO instant the run completed; null while it runs. */
78
+ completedAt: string | null;
79
+ }
80
+ /** Injected IO for the span writes. Bound at the composition root (composition/execution-ci-context.ts). */
81
+ export interface CiRunSpanDeps {
82
+ /** The run-ordered CI runs the sha's ci-status refs publish ([] when none / unreadable). */
83
+ listRuns: (config: DaemonConfig, sha: string) => CiRunObservation[];
84
+ /** The CI host's runs at the sha, by run number; null when the host cannot be read. Never throws. */
85
+ readHostRuns: (config: DaemonConfig, sha: string) => Promise<ReadonlyMap<number, HostCiRun> | null>;
86
+ /** The ci_run_red attribution (ci-red-attribution.ts resolveRedRunAnchor). */
87
+ resolveAnchor: (config: DaemonConfig, sha: string) => Promise<CiRedRunAnchor>;
88
+ /** The tip commit's committer date (ISO; NOT the merge time), or null when not readable locally. */
89
+ readTipCommittedAt: (config: DaemonConfig, sha: string) => string | null;
90
+ /** The best-effort span write (queries/phase-spans upsertCiPhaseSpan): span id, or null when not recorded. */
91
+ upsert: (request: UpsertCiPhaseSpanRequest) => Promise<string | null>;
92
+ host: () => string;
93
+ now: () => Date;
94
+ }
95
+ /** Test-only: forget what was recorded. */
96
+ export declare function __resetCiRunSpanStateForTests(): void;
97
+ /**
98
+ * The runs of a Gitea `actions/runs` payload at `sha`, keyed by run_number. A
99
+ * payload that is not the expected shape yields an empty map. PURE.
100
+ */
101
+ export declare function hostRunsFromPayload(payload: unknown, sha: string): Map<number, HostCiRun>;
102
+ /** The tip commit's committer date, ISO; null when git cannot read it. */
103
+ export declare function readCommitterDate(repoPath: string, sha: string): string | null;
104
+ /**
105
+ * Whether a run the CI host places on `headBranch` is a run on integration: the
106
+ * integration branch itself or an integration candidate branch. Unknown branch
107
+ * (no host data) counts. PURE.
108
+ */
109
+ export declare function isIntegrationRun(headBranch: string | null, integrationBranch: string): boolean;
110
+ /** What one observed run is written as. */
111
+ export interface CiRunSpanPlan {
112
+ request: UpsertCiPhaseSpanRequest;
113
+ terminal: boolean;
114
+ }
115
+ /**
116
+ * The span write for one observed run (module header: time source, outcome,
117
+ * attribution, metadata). PURE.
118
+ */
119
+ export declare function planCiRunSpan(params: {
120
+ config: DaemonConfig;
121
+ sha: string;
122
+ run: CiRunObservation;
123
+ hostRun: HostCiRun | null;
124
+ anchor: CiRedRunAnchor;
125
+ tipCommittedAt: string | null;
126
+ host: string;
127
+ now: Date;
128
+ }): CiRunSpanPlan;
129
+ /** Counts of one product's span pass, for the tick log and tests. */
130
+ export interface CiRunSpanCounts {
131
+ written: number;
132
+ skipped: number;
133
+ }
134
+ /**
135
+ * Record the CI runs the integration tip `sha` has published as `ci` phase spans
136
+ * (module header). Never throws: a failure is logged and the CI sensor tick
137
+ * continues.
138
+ */
139
+ export declare function recordCiRunSpans(config: DaemonConfig, sha: string, deps: CiRunSpanDeps): Promise<CiRunSpanCounts>;
140
+ //# sourceMappingURL=ci-run-spans.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ci-run-spans.d.ts","sourceRoot":"","sources":["../../src/ci/ci-run-spans.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG9D,OAAO,KAAK,EAAqB,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAKzG,gEAAgE;AAChE,MAAM,WAAW,SAAS;IACxB,kEAAkE;IAClE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,yFAAyF;IACzF,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,yDAAyD;IACzD,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,4GAA4G;AAC5G,MAAM,WAAW,aAAa;IAC5B,4FAA4F;IAC5F,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,KAAK,gBAAgB,EAAE,CAAC;IACpE,qGAAqG;IACrG,YAAY,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;IACpG,8EAA8E;IAC9E,aAAa,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAC9E,oGAAoG;IACpG,kBAAkB,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IACzE,8GAA8G;IAC9G,MAAM,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACtE,IAAI,EAAE,MAAM,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,IAAI,CAAC;CACjB;AAYD,2CAA2C;AAC3C,wBAAgB,6BAA6B,IAAI,IAAI,CAEpD;AAkBD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAczF;AAED,0EAA0E;AAC1E,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG9E;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAE9F;AAED,2CAA2C;AAC3C,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,wBAAwB,CAAC;IAClC,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE;IACpC,MAAM,EAAE,YAAY,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,gBAAgB,CAAC;IACtB,OAAO,EAAE,SAAS,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,cAAc,CAAC;IACvB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,IAAI,CAAC;CACX,GAAG,aAAa,CAgChB;AAED,qEAAqE;AACrE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAID;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC,CA4BvH"}
@@ -0,0 +1,147 @@
1
+ // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
+ // Pinned by: packages/daemon/src/ci/ci-run-spans.test.ts
3
+ // PINNED-BY-END
4
+ import { isCandidateBranch } from './candidate-ref.js';
5
+ import { runGitSync } from '../git/types.js';
6
+ import { createLogger } from '../log/daemon-log.js';
7
+ const log = createLogger({ module: 'ci-run-spans' });
8
+ /**
9
+ * What this process has recorded per run (`${productId}:${sha}:${runNumber}`):
10
+ * 'settled' -- recorded green, or skipped as a non-integration run; never re-sent
11
+ * (or re-read from the host). 'red_recorded' -- recorded failed; not re-sent while
12
+ * it stays red, sent again the tick a rerun turns it green. Module-level so it
13
+ * persists across ticks; a daemon restart re-sends the tip's runs once
14
+ * (idempotent).
15
+ */
16
+ const runMemo = new Map();
17
+ /** Test-only: forget what was recorded. */
18
+ export function __resetCiRunSpanStateForTests() {
19
+ runMemo.clear();
20
+ }
21
+ /** Whether this tick has nothing to send for `run`: settled, or a red already recorded. */
22
+ function alreadyRecorded(key, run) {
23
+ const memo = runMemo.get(key);
24
+ return memo === 'settled' || (memo === 'red_recorded' && run.state === 'red');
25
+ }
26
+ const isRecord = (v) => typeof v === 'object' && v !== null && !Array.isArray(v);
27
+ /** A host timestamp as ISO, or null for absent / unparseable / Go zero time. PURE. */
28
+ function hostInstant(value) {
29
+ if (typeof value !== 'string')
30
+ return null;
31
+ const ms = Date.parse(value);
32
+ if (Number.isNaN(ms) || new Date(ms).getUTCFullYear() < 2000)
33
+ return null;
34
+ return new Date(ms).toISOString();
35
+ }
36
+ /**
37
+ * The runs of a Gitea `actions/runs` payload at `sha`, keyed by run_number. A
38
+ * payload that is not the expected shape yields an empty map. PURE.
39
+ */
40
+ export function hostRunsFromPayload(payload, sha) {
41
+ const runs = new Map();
42
+ const list = isRecord(payload) && Array.isArray(payload.workflow_runs) ? payload.workflow_runs : [];
43
+ for (const r of list) {
44
+ if (!isRecord(r) || typeof r.run_number !== 'number')
45
+ continue;
46
+ if (String(r.head_sha ?? '').toLowerCase() !== sha.toLowerCase())
47
+ continue;
48
+ runs.set(r.run_number, {
49
+ hostRunId: typeof r.id === 'number' ? r.id : null,
50
+ headBranch: typeof r.head_branch === 'string' && r.head_branch !== '' ? r.head_branch : null,
51
+ startedAt: hostInstant(r.started_at),
52
+ completedAt: r.status === 'completed' ? hostInstant(r.completed_at) : null,
53
+ });
54
+ }
55
+ return runs;
56
+ }
57
+ /** The tip commit's committer date, ISO; null when git cannot read it. */
58
+ export function readCommitterDate(repoPath, sha) {
59
+ const result = runGitSync(['log', '-1', '--format=%cI', `${sha}^{commit}`], repoPath);
60
+ return result.success ? hostInstant(result.output.trim()) : null;
61
+ }
62
+ /**
63
+ * Whether a run the CI host places on `headBranch` is a run on integration: the
64
+ * integration branch itself or an integration candidate branch. Unknown branch
65
+ * (no host data) counts. PURE.
66
+ */
67
+ export function isIntegrationRun(headBranch, integrationBranch) {
68
+ return headBranch === null || headBranch === integrationBranch || isCandidateBranch(headBranch);
69
+ }
70
+ /**
71
+ * The span write for one observed run (module header: time source, outcome,
72
+ * attribution, metadata). PURE.
73
+ */
74
+ export function planCiRunSpan(params) {
75
+ const { config, sha, run, hostRun, anchor, tipCommittedAt, host, now } = params;
76
+ const observed = now.toISOString();
77
+ const terminal = run.state !== 'pending';
78
+ const startedAt = hostRun?.startedAt ?? observed;
79
+ const endedAt = terminal ? (hostRun?.completedAt ?? observed) : undefined;
80
+ const startFromHost = hostRun?.startedAt != null;
81
+ const endFromHost = !terminal || hostRun?.completedAt != null;
82
+ const timeSource = startFromHost ? (endFromHost ? 'ci_host' : 'mixed') : 'observed';
83
+ const metadata = {
84
+ runNumber: run.runNumber,
85
+ state: run.state,
86
+ branch: config.integrationBranch,
87
+ timeSource,
88
+ // Omitted, not null, when unread: the server merges metadata with the poll's
89
+ // keys winning, so a null would erase a time an earlier poll recorded.
90
+ ...(tipCommittedAt !== null ? { tipCommittedAt } : {}),
91
+ ...(hostRun?.hostRunId != null ? { hostRunId: hostRun.hostRunId } : {}),
92
+ ...(hostRun?.headBranch ? { headBranch: hostRun.headBranch } : {}),
93
+ };
94
+ const request = {
95
+ productId: config.productId,
96
+ commitSha: sha,
97
+ externalRunId: String(run.runNumber),
98
+ focusId: anchor.focusId,
99
+ deliveryId: anchor.focusId ? anchor.deliveryId : null,
100
+ startedAt,
101
+ recordedByHost: host,
102
+ metadata,
103
+ ...(endedAt !== undefined ? { endedAt, outcome: run.state === 'green' ? 'passed' : 'failed' } : {}),
104
+ };
105
+ return { request, terminal };
106
+ }
107
+ const runKey = (productId, sha, runNumber) => `${productId}:${sha}:${runNumber}`;
108
+ /**
109
+ * Record the CI runs the integration tip `sha` has published as `ci` phase spans
110
+ * (module header). Never throws: a failure is logged and the CI sensor tick
111
+ * continues.
112
+ */
113
+ export async function recordCiRunSpans(config, sha, deps) {
114
+ const counts = { written: 0, skipped: 0 };
115
+ try {
116
+ const open = deps.listRuns(config, sha).filter((r) => !alreadyRecorded(runKey(config.productId, sha, r.runNumber), r));
117
+ if (open.length === 0)
118
+ return counts;
119
+ const hostRuns = await deps.readHostRuns(config, sha);
120
+ const anchor = await deps.resolveAnchor(config, sha);
121
+ const tipCommittedAt = deps.readTipCommittedAt(config, sha);
122
+ for (const run of open) {
123
+ const key = runKey(config.productId, sha, run.runNumber);
124
+ const hostRun = hostRuns?.get(run.runNumber) ?? null;
125
+ if (!isIntegrationRun(hostRun?.headBranch ?? null, config.integrationBranch)) {
126
+ runMemo.set(key, 'settled');
127
+ counts.skipped++;
128
+ continue;
129
+ }
130
+ const plan = planCiRunSpan({ config, sha, run, hostRun, anchor, tipCommittedAt, host: deps.host(), now: deps.now() });
131
+ const spanId = await deps.upsert(plan.request);
132
+ if (spanId === null)
133
+ continue;
134
+ counts.written++;
135
+ // Green is final; red can still be superseded by a rerun's green (module header).
136
+ if (run.state === 'green')
137
+ runMemo.set(key, 'settled');
138
+ else if (run.state === 'red')
139
+ runMemo.set(key, 'red_recorded');
140
+ }
141
+ }
142
+ catch (err) {
143
+ log.warn(`CI run spans not recorded for product ${config.productId} @ ${sha.slice(0, 12)}: ${err.message}`);
144
+ }
145
+ return counts;
146
+ }
147
+ //# sourceMappingURL=ci-run-spans.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ci-run-spans.js","sourceRoot":"","sources":["../../src/ci/ci-run-spans.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,9 @@
37
37
  * red tips carrying the same unfixed breakage collapse onto ONE open filing
38
38
  * instead of minting one per tip.
39
39
  *
40
+ * Each tick also records the tip's observed CI runs as timed `ci` execution-phase
41
+ * spans (ci/ci-run-spans.ts), attributed with the same anchor as the filing.
42
+ *
40
43
  * Registered in LOOP_REGISTRY under the opt-out guard TELORA_CI_SENSOR_LOOP.
41
44
  * Consumes the same fail-closed CiStatusReader the green-wait uses.
42
45
  *
@@ -213,6 +216,11 @@ export interface CiSensorDeps {
213
216
  }) => Promise<boolean>;
214
217
  fileCiRedEscalation: (params: CiRedFilingParams) => Promise<void>;
215
218
  resolveCiRedEscalations: (productId: string) => Promise<number>;
219
+ /**
220
+ * Record the tip's observed CI runs as timed `ci` phase spans (ci/ci-run-spans.ts
221
+ * recordCiRunSpans). Best-effort, never throws.
222
+ */
223
+ recordCiRunSpans: (config: DaemonConfig, sha: string) => Promise<unknown>;
216
224
  }
217
225
  export interface CiSensorTickCounts {
218
226
  productsChecked: number;
@@ -1 +1 @@
1
- {"version":3,"file":"ci-sensor-loop.d.ts","sourceRoot":"","sources":["../../src/ci/ci-sensor-loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ci-sensor-loop.d.ts","sourceRoot":"","sources":["../../src/ci/ci-sensor-loop.ts"],"names":[],"mappings":"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"}
@@ -285,6 +285,10 @@ export async function runCiSensorTick(config, deps) {
285
285
  if (!sha)
286
286
  continue;
287
287
  counts.productsChecked++;
288
+ // Measurement first, so an escalation failure below never skips it.
289
+ await deps.recordCiRunSpans(pc, sha).catch((err) => {
290
+ log.warn(`CI run spans not recorded for product ${pc.productId}: ${err.message}`);
291
+ });
288
292
  const status = await deps.getCiStatus({ sha, integrationBranch: pc.integrationBranch, config: pc });
289
293
  const hasOpen = await deps.hasOpenCiRedEscalation({ productId: pc.productId, sha, branch: pc.integrationBranch });
290
294
  const action = decideCiSensorAction(status, hasOpen);
@@ -1 +1 @@
1
- {"version":3,"file":"ci-sensor-loop.js","sourceRoot":"","sources":["../../src/ci/ci-sensor-loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ci-sensor-loop.js","sourceRoot":"","sources":["../../src/ci/ci-sensor-loop.ts"],"names":[],"mappings":"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"}
@@ -99,6 +99,21 @@ export declare function resolveCiMergeGate(status: CiRunStatus): CiMergeGateDeci
99
99
  * same vocabulary as every other wait.
100
100
  */
101
101
  export declare function classifyCiMergeWait(status: CiRunStatus, sha: string): WaitReachability;
102
+ /** One run-ordered CI run of a sha, as its published ci-status refs state it. */
103
+ export interface CiRunObservation {
104
+ /** The run number the ref path carries (`refs/ci-status/<sha>/<run>/<state>`). */
105
+ runNumber: number;
106
+ /** The run's verdict (runVerdictOf): green, red or pending. */
107
+ state: Exclude<CiRunStatus, 'unknown'>;
108
+ }
109
+ /**
110
+ * The distinct run-ordered CI runs a sha's ci-status ref names publish, one per
111
+ * run number with that run's own verdict (a published success wins the run, as in
112
+ * classifyGitNativeCiStatus), sorted by run number. Legacy refs (no run number)
113
+ * and unrecognized suffixes name no run and are skipped. PURE; it does not change
114
+ * how the sha as a whole is classified.
115
+ */
116
+ export declare function ciRunsFromRefNames(refNames: readonly string[]): CiRunObservation[];
102
117
  /**
103
118
  * Classify a git-native CI status from the set of ci-status ref names published
104
119
  * for a SHA. The STATE is encoded in the ref NAME (immutable per-SHA), so no
@@ -1 +1 @@
1
- {"version":3,"file":"ci-status.d.ts","sourceRoot":"","sources":["../../src/ci/ci-status.ts"],"names":[],"mappings":"AAcA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,qCAAqC,CAAC;AAE7C;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,WAAW,CAwDlF;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"}
1
+ {"version":3,"file":"ci-status.d.ts","sourceRoot":"","sources":["../../src/ci/ci-status.ts"],"names":[],"mappings":"AAcA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,qCAAqC,CAAC;AAE7C;;;;;;;;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;AA0CD,iFAAiF;AACjF,MAAM,WAAW,gBAAgB;IAC/B,kFAAkF;IAClF,SAAS,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;CACxC;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,gBAAgB,EAAE,CAiBlF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,WAAW,CAkDlF;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"}
@@ -1,7 +1,7 @@
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/candidate-ci-contract.test.ts,
3
3
  // packages/daemon/src/ci/candidate-ref.test.ts, packages/daemon/src/ci/ci-merge-gate.test.ts,
4
- // packages/daemon/src/ci/ci-sensor-loop.test.ts,
4
+ // packages/daemon/src/ci/ci-run-spans.test.ts, packages/daemon/src/ci/ci-sensor-loop.test.ts,
5
5
  // packages/daemon/src/ci/ci-status-arbitration-parity.test.ts,
6
6
  // packages/daemon/src/ci/ci-status-git-native.test.ts,
7
7
  // packages/daemon/src/completion/team-exit/teardown-merge-gate.test.ts,
@@ -104,6 +104,47 @@ function ciRunOrderFromRef(ref) {
104
104
  }
105
105
  return null;
106
106
  }
107
+ /**
108
+ * One run's verdict from the states it published: a published success wins the
109
+ * run (a passing rerun clears that run's earlier failure), then red, then
110
+ * pending. PURE.
111
+ */
112
+ function runVerdictOf(states) {
113
+ if (states.has('green'))
114
+ return 'green';
115
+ if (states.has('red'))
116
+ return 'red';
117
+ if (states.has('pending'))
118
+ return 'pending';
119
+ return 'unknown';
120
+ }
121
+ /**
122
+ * The distinct run-ordered CI runs a sha's ci-status ref names publish, one per
123
+ * run number with that run's own verdict (a published success wins the run, as in
124
+ * classifyGitNativeCiStatus), sorted by run number. Legacy refs (no run number)
125
+ * and unrecognized suffixes name no run and are skipped. PURE; it does not change
126
+ * how the sha as a whole is classified.
127
+ */
128
+ export function ciRunsFromRefNames(refNames) {
129
+ const statesByRun = new Map();
130
+ for (const raw of refNames) {
131
+ const ref = raw.trim();
132
+ const state = ciStateFromRefSuffix(ref);
133
+ const order = ciRunOrderFromRef(ref);
134
+ if (!state || order === null)
135
+ continue;
136
+ const set = statesByRun.get(order) ?? new Set();
137
+ set.add(state);
138
+ statesByRun.set(order, set);
139
+ }
140
+ const runs = [];
141
+ for (const [runNumber, set] of statesByRun) {
142
+ const state = runVerdictOf(set);
143
+ if (state !== 'unknown')
144
+ runs.push({ runNumber, state });
145
+ }
146
+ return runs.sort((a, b) => a.runNumber - b.runNumber);
147
+ }
107
148
  /**
108
149
  * Classify a git-native CI status from the set of ci-status ref names published
109
150
  * for a SHA. The STATE is encoded in the ref NAME (immutable per-SHA), so no
@@ -188,13 +229,7 @@ export function classifyGitNativeCiStatus(refNames) {
188
229
  let anyRed = false;
189
230
  let anyPending = false;
190
231
  for (const set of statesByRun.values()) {
191
- const runVerdict = set.has('green')
192
- ? 'green'
193
- : set.has('red')
194
- ? 'red'
195
- : set.has('pending')
196
- ? 'pending'
197
- : 'unknown';
232
+ const runVerdict = runVerdictOf(set);
198
233
  if (runVerdict === 'green')
199
234
  anyGreen = true;
200
235
  else if (runVerdict === 'red')
@@ -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":"AAAA,8FAA8F;AAC9F,mEAAmE;AACnE,gGAAgG;AAChG,gGAAgG;AAChG,iEAAiE;AACjE,yDAAyD;AACzD,0EAA0E;AAC1E,kEAAkE;AAClE,4EAA4E;AAC5E,iEAAiE;AACjE,6DAA6D;AAC7D,gEAAgE;AAChE,gBAAgB;AA8BhB,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,oBAAoB,GAErB,MAAM,qCAAqC,CAAC;AAoC7C;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAmB;IACpD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,OAAO;YACV,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,6BAA6B,EAAE,CAAC;QAC1E,KAAK,SAAS;YACZ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,4EAA4E,EAAE,CAAC;QAC1H,KAAK,KAAK;YACR,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,wFAAwF,EAAE,CAAC;QACtI,KAAK,SAAS,CAAC;QACf;YACE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,qFAAqF,EAAE,CAAC;IAChJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAmB,EAAE,GAAW;IAClE,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,KAAK;YACR,OAAO,wBAAwB,CAAC,oBAAoB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QACpE,KAAK,SAAS,CAAC;QACf,KAAK,SAAS,CAAC;QACf,KAAK,OAAO,CAAC;QACb;YACE,OAAO,wBAAwB,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC;AAED,oFAAoF;AACpF,SAAS,oBAAoB,CAAC,GAAW;IACvC,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7F,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,OAAO,CAAC;IAClG,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IACtG,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,iBAAiB,CAAC,GAAW;IACpC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,KAAK,KAAK,SAAS,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAClD,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YACxB,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5C,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CAAC,MAAgC;IACpD,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IACxC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5C,OAAO,SAAS,CAAC;AACnB,CAAC;AAUD;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAA2B;IAC5D,MAAM,WAAW,GAAG,IAAI,GAAG,EAA4B,CAAC;IACxD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,IAAI;YAAE,SAAS;QACvC,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAe,CAAC;QAC7D,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACf,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC9B,CAAC;IACD,MAAM,IAAI,GAAuB,EAAE,CAAC;IACpC,KAAK,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,WAAW,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,UAAU,yBAAyB,CAAC,QAA2B;IACnE,0EAA0E;IAC1E,8EAA8E;IAC9E,MAAM,WAAW,GAAG,IAAI,GAAG,EAA4B,CAAC;IACxD,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAE7B,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,IAAI,KAAK,KAAK,KAAK;gBAAE,YAAY,GAAG,IAAI,CAAC;iBACpC,IAAI,KAAK,KAAK,OAAO;gBAAE,cAAc,GAAG,IAAI,CAAC;;gBAC7C,gBAAgB,GAAG,IAAI,CAAC;YAC7B,SAAS;QACX,CAAC;QACD,IAAI,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,GAAG,GAAG,IAAI,GAAG,EAAe,CAAC;YAC7B,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC9B,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACzB,4EAA4E;QAC5E,+DAA+D;QAC/D,oCAAoC;QACpC,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,UAAU,KAAK,OAAO;gBAAE,QAAQ,GAAG,IAAI,CAAC;iBACvC,IAAI,UAAU,KAAK,KAAK;gBAAE,MAAM,GAAG,IAAI,CAAC;iBACxC,IAAI,UAAU,KAAK,SAAS;gBAAE,UAAU,GAAG,IAAI,CAAC;QACvD,CAAC;QACD,IAAI,QAAQ;YAAE,OAAO,OAAO,CAAC,CAAC,8CAA8C;QAC5E,IAAI,MAAM;YAAE,OAAO,KAAK,CAAC,CAAC,6CAA6C;QACvE,IAAI,UAAU;YAAE,OAAO,SAAS,CAAC;QACjC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,yDAAyD;IACzD,IAAI,YAAY;QAAE,OAAO,KAAK,CAAC;IAC/B,IAAI,cAAc;QAAE,OAAO,OAAO,CAAC;IACnC,IAAI,gBAAgB;QAAE,OAAO,SAAS,CAAC;IACvC,OAAO,SAAS,CAAC;AACnB,CAAC;AAyCD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAmB,EAAE,oBAA6B;IACrF,IAAI,MAAM,KAAK,KAAK,IAAI,CAAC,oBAAoB;QAAE,OAAO,MAAM,CAAC;IAC7D,IAAI,MAAM,KAAK,OAAO,IAAI,oBAAoB;QAAE,OAAO,SAAS,CAAC;IACjE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,MAAyB;IACrE,OAAO,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;QAC/B,IAAI,IAAI,GAAa,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,qEAAqE;YACrE,IAAI,GAAG,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,yBAAyB,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"engine-start-context.d.ts","sourceRoot":"","sources":["../../src/composition/engine-start-context.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAOpE,wBAAgB,qBAAqB,IAAI,gBAAgB,CAWxD"}
1
+ {"version":3,"file":"engine-start-context.d.ts","sourceRoot":"","sources":["../../src/composition/engine-start-context.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAUpE,wBAAgB,qBAAqB,IAAI,gBAAgB,CAcxD"}
@@ -5,7 +5,8 @@
5
5
  * The production binding of what FocusEngine.start() starts
6
6
  * (focus/daemon-contexts.ts EngineStartSeams): the 30s focus poll, the
7
7
  * heartbeat, the registry version check and the interval scheduler the
8
- * engine's own timers run on, and the workstation's capacity record at start.
8
+ * engine's own timers run on, the workstation's capacity record at start, and
9
+ * the close of the gate spans a crashed predecessor on this host left open.
9
10
  * Part of the daemon composition root.
10
11
  *
11
12
  * @module composition/engine-start-context
@@ -16,6 +17,9 @@ import { startHeartbeat } from '../focus/heartbeat.js';
16
17
  import { checkForUpdates } from '../update/version-check.js';
17
18
  import { capacityOfConfig } from '../focus/workstation-intervals.js';
18
19
  import { PRODUCTION_WORKSTATION_INTERVALS } from './workstation-intervals-context.js';
20
+ import { abandonCrashedGateSpans } from '../verify/gate-verdicts/gate-phase-span.js';
21
+ import { abandonOpenPhaseSpans } from '../queries/phase-spans/phase-spans.js';
22
+ import { daemonHostname } from '../queries/sessions/sessions.js';
19
23
  export function buildEngineStartSeams() {
20
24
  return {
21
25
  startPolling: (contexts) => startFocusPoller(contexts.tickDeadline, contexts.focusPoller),
@@ -25,6 +29,9 @@ export function buildEngineStartSeams() {
25
29
  if (capacity)
26
30
  PRODUCTION_WORKSTATION_INTERVALS.capacityTookEffect('start', capacity);
27
31
  },
32
+ abandonCrashedGateSpans: (startedBefore) => {
33
+ void abandonCrashedGateSpans({ abandon: abandonOpenPhaseSpans, host: daemonHostname }, startedBefore);
34
+ },
28
35
  checkForUpdates: (currentVersion) => checkForUpdates(currentVersion, '@telora/daemon'),
29
36
  schedule: safeInterval,
30
37
  };
@@ -1 +1 @@
1
- {"version":3,"file":"engine-start-context.js","sourceRoot":"","sources":["../../src/composition/engine-start-context.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,0FAA0F;AAC1F,gBAAgB;AAEhB;;;;;;;;GAQG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC;AAEtF,MAAM,UAAU,qBAAqB;IACnC,OAAO;QACL,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,WAAW,CAAC;QACzF,cAAc,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC;QACxG,mBAAmB,EAAE,CAAC,MAAM,EAAE,EAAE;YAC9B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,QAAQ;gBAAE,gCAAgC,CAAC,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACvF,CAAC;QACD,eAAe,EAAE,CAAC,cAAc,EAAE,EAAE,CAAC,eAAe,CAAC,cAAc,EAAE,gBAAgB,CAAC;QACtF,QAAQ,EAAE,YAAY;KACvB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"engine-start-context.js","sourceRoot":"","sources":["../../src/composition/engine-start-context.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,0FAA0F;AAC1F,gBAAgB;AAEhB;;;;;;;;;GASG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,MAAM,UAAU,qBAAqB;IACnC,OAAO;QACL,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,WAAW,CAAC;QACzF,cAAc,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC;QACxG,mBAAmB,EAAE,CAAC,MAAM,EAAE,EAAE;YAC9B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,QAAQ;gBAAE,gCAAgC,CAAC,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACvF,CAAC;QACD,uBAAuB,EAAE,CAAC,aAAa,EAAE,EAAE;YACzC,KAAK,uBAAuB,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,aAAa,CAAC,CAAC;QACxG,CAAC;QACD,eAAe,EAAE,CAAC,cAAc,EAAE,EAAE,CAAC,eAAe,CAAC,cAAc,EAAE,gBAAgB,CAAC;QACtF,QAAQ,EAAE,YAAY;KACvB,CAAC;AACJ,CAAC"}
@@ -9,8 +9,11 @@
9
9
  */
10
10
  import { type CiSensorDeps } from '../ci/ci-sensor-loop.js';
11
11
  import { type RedRunAttributionDeps } from '../ci/ci-red-attribution.js';
12
+ import { type CiRunSpanDeps } from '../ci/ci-run-spans.js';
12
13
  /** The red-run attribution IO: git reads plus the delivery -> focus lookup. */
13
14
  export declare function buildRedRunAttributionDeps(): RedRunAttributionDeps;
15
+ /** The CI run span writes' IO, sharing the ci_run_red attribution. */
16
+ export declare function buildCiRunSpanDeps(attribution?: RedRunAttributionDeps): CiRunSpanDeps;
14
17
  /** The CI sensor tick's collaborators. */
15
18
  export declare function buildCiSensorDeps(): CiSensorDeps;
16
19
  //# sourceMappingURL=execution-ci-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"execution-ci-context.d.ts","sourceRoot":"","sources":["../../src/composition/execution-ci-context.ts"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AAEH,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EAIL,KAAK,qBAAqB,EAC3B,MAAM,6BAA6B,CAAC;AAKrC,+EAA+E;AAC/E,wBAAgB,0BAA0B,IAAI,qBAAqB,CAQlE;AAED,0CAA0C;AAC1C,wBAAgB,iBAAiB,IAAI,YAAY,CAWhD"}
1
+ {"version":3,"file":"execution-ci-context.d.ts","sourceRoot":"","sources":["../../src/composition/execution-ci-context.ts"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AAEH,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EAIL,KAAK,qBAAqB,EAC3B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,uBAAuB,CAAC;AAQ/B,+EAA+E;AAC/E,wBAAgB,0BAA0B,IAAI,qBAAqB,CAQlE;AAmBD,sEAAsE;AACtE,wBAAgB,kBAAkB,CAAC,WAAW,GAAE,qBAAoD,GAAG,aAAa,CAUnH;AAED,0CAA0C;AAC1C,wBAAgB,iBAAiB,IAAI,YAAY,CAahD"}