@deftai/directive-runtime 0.129.6 → 0.129.7
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/Taskfile.yml +94 -13
- package/commands.md +5 -3
- package/dist/session-start.d.ts +8 -2
- package/dist/session-start.js +33 -12
- package/dist/vbrief-preflight.d.ts +4 -0
- package/dist/vbrief-preflight.js +34 -0
- package/dist/verify-scope-provenance.d.ts +13 -1
- package/dist/verify-scope-provenance.js +44 -1
- package/docs/getting-started.md +2 -0
- package/docs/scope-provenance.md +15 -1
- package/package.json +1 -1
- package/packs/skills/skills-pack-0.1.json +1 -1
- package/skills/deft-directive-review-cycle/SKILL.md +15 -6
- package/skills/deft-directive-swarm/references/host-grok-build.md +3 -2
- package/vendor/directive-content/Taskfile.yml +94 -13
- package/vendor/directive-content/commands.md +5 -3
- package/vendor/directive-content/docs/getting-started.md +2 -0
- package/vendor/directive-content/docs/scope-provenance.md +15 -1
- package/vendor/directive-content/packs/skills/skills-pack-0.1.json +1 -1
- package/vendor/directive-content/skills/deft-directive-review-cycle/SKILL.md +15 -6
- package/vendor/directive-content/skills/deft-directive-swarm/references/host-grok-build.md +3 -2
- package/vendor/directive-core/dist/.tsbuildinfo +1 -1
- package/vendor/directive-core/dist/fs/contained-write.d.ts +8 -2
- package/vendor/directive-core/dist/fs/contained-write.d.ts.map +1 -1
- package/vendor/directive-core/dist/fs/contained-write.js +22 -6
- package/vendor/directive-core/dist/fs/contained-write.js.map +1 -1
- package/vendor/directive-core/dist/hooks/dispatcher.d.ts +1 -1
- package/vendor/directive-core/dist/hooks/dispatcher.d.ts.map +1 -1
- package/vendor/directive-core/dist/hooks/dispatcher.js +116 -4
- package/vendor/directive-core/dist/hooks/dispatcher.js.map +1 -1
- package/vendor/directive-core/dist/init-deposit/agent-hooks.d.ts +26 -1
- package/vendor/directive-core/dist/init-deposit/agent-hooks.d.ts.map +1 -1
- package/vendor/directive-core/dist/init-deposit/agent-hooks.js +52 -3
- package/vendor/directive-core/dist/init-deposit/agent-hooks.js.map +1 -1
- package/vendor/directive-core/dist/init-deposit/host-hook-outer.d.ts +43 -0
- package/vendor/directive-core/dist/init-deposit/host-hook-outer.d.ts.map +1 -1
- package/vendor/directive-core/dist/init-deposit/host-hook-outer.js +148 -0
- package/vendor/directive-core/dist/init-deposit/host-hook-outer.js.map +1 -1
- package/vendor/directive-core/dist/pr-merge-readiness/slizard-gate.d.ts +10 -5
- package/vendor/directive-core/dist/pr-merge-readiness/slizard-gate.d.ts.map +1 -1
- package/vendor/directive-core/dist/pr-merge-readiness/slizard-gate.js +41 -18
- package/vendor/directive-core/dist/pr-merge-readiness/slizard-gate.js.map +1 -1
- package/vendor/directive-core/dist/preflight-gh/pre-push.d.ts +3 -2
- package/vendor/directive-core/dist/preflight-gh/pre-push.d.ts.map +1 -1
- package/vendor/directive-core/dist/preflight-gh/pre-push.js +19 -18
- package/vendor/directive-core/dist/preflight-gh/pre-push.js.map +1 -1
- package/vendor/directive-core/dist/scope/delivery-evidence.d.ts +202 -19
- package/vendor/directive-core/dist/scope/delivery-evidence.d.ts.map +1 -1
- package/vendor/directive-core/dist/scope/delivery-evidence.js +948 -107
- package/vendor/directive-core/dist/scope/delivery-evidence.js.map +1 -1
- package/vendor/directive-core/dist/scope/transition.d.ts +4 -1
- package/vendor/directive-core/dist/scope/transition.d.ts.map +1 -1
- package/vendor/directive-core/dist/scope/transition.js +2 -2
- package/vendor/directive-core/dist/scope/transition.js.map +1 -1
- package/vendor/directive-core/dist/scope-provenance/base-fence.d.ts +11 -2
- package/vendor/directive-core/dist/scope-provenance/base-fence.d.ts.map +1 -1
- package/vendor/directive-core/dist/scope-provenance/base-fence.js +16 -1
- package/vendor/directive-core/dist/scope-provenance/base-fence.js.map +1 -1
- package/vendor/directive-core/dist/scope-provenance/evaluate.d.ts +12 -0
- package/vendor/directive-core/dist/scope-provenance/evaluate.d.ts.map +1 -1
- package/vendor/directive-core/dist/scope-provenance/evaluate.js +41 -5
- package/vendor/directive-core/dist/scope-provenance/evaluate.js.map +1 -1
- package/vendor/directive-core/dist/scope-provenance/forge-approval.d.ts +106 -0
- package/vendor/directive-core/dist/scope-provenance/forge-approval.d.ts.map +1 -0
- package/vendor/directive-core/dist/scope-provenance/forge-approval.js +382 -0
- package/vendor/directive-core/dist/scope-provenance/forge-approval.js.map +1 -0
- package/vendor/directive-core/dist/session/orientation-compression.d.ts +18 -2
- package/vendor/directive-core/dist/session/orientation-compression.d.ts.map +1 -1
- package/vendor/directive-core/dist/session/orientation-compression.js +38 -5
- package/vendor/directive-core/dist/session/orientation-compression.js.map +1 -1
- package/vendor/directive-core/dist/session/session-start.d.ts +47 -2
- package/vendor/directive-core/dist/session/session-start.d.ts.map +1 -1
- package/vendor/directive-core/dist/session/session-start.js +149 -1
- package/vendor/directive-core/dist/session/session-start.js.map +1 -1
- package/vendor/directive-core/dist/swarm/approach1-babysitter.d.ts +18 -4
- package/vendor/directive-core/dist/swarm/approach1-babysitter.d.ts.map +1 -1
- package/vendor/directive-core/dist/swarm/approach1-babysitter.js +28 -4
- package/vendor/directive-core/dist/swarm/approach1-babysitter.js.map +1 -1
- package/vendor/directive-core/dist/swarm/finalize-cohort.d.ts +29 -0
- package/vendor/directive-core/dist/swarm/finalize-cohort.d.ts.map +1 -1
- package/vendor/directive-core/dist/swarm/finalize-cohort.js +122 -11
- package/vendor/directive-core/dist/swarm/finalize-cohort.js.map +1 -1
- package/vendor/directive-core/dist/triage/evaluate/worktrees.d.ts.map +1 -1
- package/vendor/directive-core/dist/triage/evaluate/worktrees.js +219 -60
- package/vendor/directive-core/dist/triage/evaluate/worktrees.js.map +1 -1
|
@@ -11,6 +11,7 @@ import { type DetectHardEffortBudgetInput } from "./effort-budget.js";
|
|
|
11
11
|
import type { GitRunner } from "./git.js";
|
|
12
12
|
import { type ApplyOccupancyInput, type OccupancyDecision, type OccupancyIdentityProvenance, type PrimaryClaimException, rollbackAcquiredOccupancy } from "./occupancy.js";
|
|
13
13
|
import { type OrientationBundle, type RunOrientationOptions } from "./orientation-compression.js";
|
|
14
|
+
export { ENV_SESSION_VERBOSE, resolveSessionVerbose } from "./orientation-compression.js";
|
|
14
15
|
import { clearPersistedSessionPosture, persistTrustedSessionPosture } from "./posture.js";
|
|
15
16
|
import { type ReleaseAvailabilityProbeOptions } from "./release-availability.js";
|
|
16
17
|
import { type RitualState, ritualStatePath, writeRitualState } from "./ritual-sentinel.js";
|
|
@@ -52,6 +53,43 @@ export declare const OPTIONAL_NETWORK_SKIPPED_MESSAGE: string;
|
|
|
52
53
|
export declare const REARM_SKIPPED_FAT_PATH_MESSAGE: string;
|
|
53
54
|
/** When --rearm is requested but state requires a full cold ceremony (#2992). */
|
|
54
55
|
export declare const REARM_INELIGIBLE_PREFIX = "session re-arm refused \u2014 full cold session:start required:";
|
|
56
|
+
/** Stable machine-parseable prefix for the primary go-signal (#4966). */
|
|
57
|
+
export declare const SESSION_READY_GO_SIGNAL_PREFIX = "[deft session] ready=";
|
|
58
|
+
/** Escape data-derived go-signal values so embedded newlines cannot forge a second status line (#4966). */
|
|
59
|
+
export declare function escapeSessionGoSignalValue(raw: string | null | undefined): string;
|
|
60
|
+
export interface SessionReadyGoSignalInput {
|
|
61
|
+
readonly ready: boolean;
|
|
62
|
+
readonly posture?: string | null;
|
|
63
|
+
readonly branch?: string | null;
|
|
64
|
+
readonly head?: string | null;
|
|
65
|
+
readonly occupancyAction?: string | null;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Primary trusted-state go-signal (#4966 P1).
|
|
69
|
+
* Mutation: ready + branch/HEAD + occupancy. Read-only/requirements: posture-qualified.
|
|
70
|
+
* Exit 0 alone is never the go-signal — callers must pass structured ready/posture.
|
|
71
|
+
*/
|
|
72
|
+
export declare function formatSessionReadyGoSignalLine(input: SessionReadyGoSignalInput): string;
|
|
73
|
+
/**
|
|
74
|
+
* Non-exhaustive always-on classifier for quiet success human stdout (#4966 P3).
|
|
75
|
+
* Classify by source semantics (prefix / known emitters), not the word "warning".
|
|
76
|
+
*/
|
|
77
|
+
export declare function isSessionStartAlwaysOnLine(line: string): boolean;
|
|
78
|
+
export interface SelectSessionStartHumanLinesInput {
|
|
79
|
+
readonly code: number;
|
|
80
|
+
readonly payload: Record<string, unknown>;
|
|
81
|
+
readonly lines: readonly string[];
|
|
82
|
+
readonly verbose?: boolean;
|
|
83
|
+
readonly env?: NodeJS.ProcessEnv;
|
|
84
|
+
readonly branch?: string | null;
|
|
85
|
+
readonly head?: string | null;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Final human-output selection (#4966): quiet success default is primary go-signal
|
|
89
|
+
* plus non-exhaustive always-on allowlist; `--verbose` / DEFT_SESSION_VERBOSE dumps
|
|
90
|
+
* ceremony. Fail/deny/steal/non-zero and disabled stay loud. --json is independent.
|
|
91
|
+
*/
|
|
92
|
+
export declare function selectSessionStartHumanLines(input: SelectSessionStartHumanLinesInput): string[];
|
|
55
93
|
/**
|
|
56
94
|
* Ceremony step timing (#2994 / #5375).
|
|
57
95
|
* Honesty sum is exclusive leaves only: steps without `parent` (#5375 Bound 1).
|
|
@@ -222,10 +260,17 @@ export interface SessionStartOptions {
|
|
|
222
260
|
/** #3282: framework root for CLI dist probe (defaults to projectRoot). */
|
|
223
261
|
readonly frameworkRoot?: string;
|
|
224
262
|
/**
|
|
225
|
-
* #3286: compact orientation
|
|
226
|
-
*
|
|
263
|
+
* #3286: compact orientation *section* formatting (terse machine lines).
|
|
264
|
+
* #4966: deprecated as whole-stdout volume gate — use `verbose` /
|
|
265
|
+
* `DEFT_SESSION_VERBOSE` for ceremony dump. CLI `--compact` remains parsed
|
|
266
|
+
* as a no-op for human stdout selection.
|
|
227
267
|
*/
|
|
228
268
|
readonly compact?: boolean;
|
|
269
|
+
/**
|
|
270
|
+
* #4966: restore full ceremony human stdout (quiet success is the default).
|
|
271
|
+
* CLI: `--verbose`; env: `DEFT_SESSION_VERBOSE=1`.
|
|
272
|
+
*/
|
|
273
|
+
readonly verbose?: boolean;
|
|
229
274
|
/**
|
|
230
275
|
* #3286: orientation compression seams (tests inject full bundle or partial
|
|
231
276
|
* section overrides). When `orientation === null`, skip composition entirely.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-start.d.ts","sourceRoot":"","sources":["../../src/session/session-start.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,iCAAiC,EACvC,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,KAAK,uBAAuB,EAG7B,MAAM,qCAAqC,CAAC;AAK7C,OAAO,EAEL,KAAK,kBAAkB,EAGxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAI1B,KAAK,gCAAgC,EAGtC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,KAAK,2BAA2B,EAMjC,MAAM,uCAAuC,CAAC;AA0B/C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAEL,KAAK,wBAAwB,EAE7B,KAAK,kBAAkB,EAExB,MAAM,qBAAqB,CAAC;AAY7B,OAAO,EAAE,KAAK,mBAAmB,EAAqB,MAAM,mCAAmC,CAAC;AAShG,OAAO,EACL,KAAK,2BAA2B,EAKjC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG1C,OAAO,EACL,KAAK,mBAAmB,EAMxB,KAAK,iBAAiB,EACtB,KAAK,2BAA2B,EAChC,KAAK,qBAAqB,EAE1B,yBAAyB,EAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,
|
|
1
|
+
{"version":3,"file":"session-start.d.ts","sourceRoot":"","sources":["../../src/session/session-start.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,7 +35,8 @@ import { effortBudgetToDict, maybeFormatEffortBudgetLines, resolveProductionHost
|
|
|
35
35
|
import { defaultGitRunner, gitHead, gitIsAncestor, worktreePath } from "./git.js";
|
|
36
36
|
import { isLinkedWorktreePath, mainWorktreeRoot } from "./main-worktree.js";
|
|
37
37
|
import { applyWorktreeOccupancy, evaluateOccupancyCeremonyEligibility, formatOccupancyRemediation, isPersistTimeAcquisition, liveOccupant, resolveOccupancySessionClaim, rollbackAcquiredOccupancy, } from "./occupancy.js";
|
|
38
|
-
import { resolveSessionCompact, runOrientationCompression, } from "./orientation-compression.js";
|
|
38
|
+
import { resolveSessionCompact, resolveSessionVerbose, runOrientationCompression, } from "./orientation-compression.js";
|
|
39
|
+
export { ENV_SESSION_VERBOSE, resolveSessionVerbose } from "./orientation-compression.js";
|
|
39
40
|
import { clearPersistedSessionPosture, persistTrustedSessionPosture, REQUIREMENTS_OVERLAY_CLEAR_FAILED_PREFIX, } from "./posture.js";
|
|
40
41
|
import { emitSessionStartProcessCost, formatSessionStartCeremonyCostLine, shouldEmitCeremonyCostLine, } from "./process-cost.js";
|
|
41
42
|
import { probeSessionReleaseAvailability, } from "./release-availability.js";
|
|
@@ -115,6 +116,137 @@ export const REARM_SKIPPED_FAT_PATH_MESSAGE = "[deft session] re-arm tier: refre
|
|
|
115
116
|
"skipped verify:tools, triage welcome, release probe, and staleness tickler.";
|
|
116
117
|
/** When --rearm is requested but state requires a full cold ceremony (#2992). */
|
|
117
118
|
export const REARM_INELIGIBLE_PREFIX = "session re-arm refused — full cold session:start required:";
|
|
119
|
+
/** Stable machine-parseable prefix for the primary go-signal (#4966). */
|
|
120
|
+
export const SESSION_READY_GO_SIGNAL_PREFIX = "[deft session] ready=";
|
|
121
|
+
const DEFAULT_BRANCH_POLICY_ON_PREFIX = "[deft policy] Branch-protection policy is ON. Direct commits to the default branch are blocked.";
|
|
122
|
+
const DEFAULT_BRANCH_POLICY_FAIL_CLOSED_PREFIX = "[deft policy] Branch-protection policy is ON (fail-closed:";
|
|
123
|
+
/** Escape data-derived go-signal values so embedded newlines cannot forge a second status line (#4966). */
|
|
124
|
+
export function escapeSessionGoSignalValue(raw) {
|
|
125
|
+
if (raw === null || raw === undefined || raw.length === 0)
|
|
126
|
+
return "-";
|
|
127
|
+
return raw.replace(/\r\n|\r|\n/g, "\\n");
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Primary trusted-state go-signal (#4966 P1).
|
|
131
|
+
* Mutation: ready + branch/HEAD + occupancy. Read-only/requirements: posture-qualified.
|
|
132
|
+
* Exit 0 alone is never the go-signal — callers must pass structured ready/posture.
|
|
133
|
+
*/
|
|
134
|
+
export function formatSessionReadyGoSignalLine(input) {
|
|
135
|
+
const ready = input.ready ? "true" : "false";
|
|
136
|
+
const posture = (input.posture ?? "mutation").trim() || "mutation";
|
|
137
|
+
if (posture === READ_ONLY_POSTURE || posture === REQUIREMENTS_POSTURE) {
|
|
138
|
+
const parts = [
|
|
139
|
+
`${SESSION_READY_GO_SIGNAL_PREFIX}${ready}`,
|
|
140
|
+
`posture=${escapeSessionGoSignalValue(posture)}`,
|
|
141
|
+
];
|
|
142
|
+
if (posture === REQUIREMENTS_POSTURE) {
|
|
143
|
+
parts.push(`occupancy=${escapeSessionGoSignalValue(input.occupancyAction ?? "-")}`);
|
|
144
|
+
}
|
|
145
|
+
return parts.join(" ");
|
|
146
|
+
}
|
|
147
|
+
return (`${SESSION_READY_GO_SIGNAL_PREFIX}${ready}` +
|
|
148
|
+
` branch=${escapeSessionGoSignalValue(input.branch)}` +
|
|
149
|
+
` head=${escapeSessionGoSignalValue(input.head)}` +
|
|
150
|
+
` occupancy=${escapeSessionGoSignalValue(input.occupancyAction)}`);
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Non-exhaustive always-on classifier for quiet success human stdout (#4966 P3).
|
|
154
|
+
* Classify by source semantics (prefix / known emitters), not the word "warning".
|
|
155
|
+
*/
|
|
156
|
+
export function isSessionStartAlwaysOnLine(line) {
|
|
157
|
+
if (line.startsWith(SESSION_READY_GO_SIGNAL_PREFIX))
|
|
158
|
+
return false;
|
|
159
|
+
if (line.startsWith("[deft policy]")) {
|
|
160
|
+
if (line.startsWith(DEFAULT_BRANCH_POLICY_ON_PREFIX))
|
|
161
|
+
return false;
|
|
162
|
+
if (line.startsWith(DEFAULT_BRANCH_POLICY_FAIL_CLOSED_PREFIX))
|
|
163
|
+
return false;
|
|
164
|
+
return true;
|
|
165
|
+
}
|
|
166
|
+
if (line.startsWith("finalize owed deferred:"))
|
|
167
|
+
return true;
|
|
168
|
+
if (line === "finalize owed: unknown")
|
|
169
|
+
return true;
|
|
170
|
+
if (line.startsWith("finalize owed: repo required"))
|
|
171
|
+
return true;
|
|
172
|
+
if (line.startsWith("finalize owed blocks mutation:"))
|
|
173
|
+
return true;
|
|
174
|
+
if (line.startsWith("[deft branch]") && !line.startsWith("[deft branch] checkout=")) {
|
|
175
|
+
return true;
|
|
176
|
+
}
|
|
177
|
+
if (line.startsWith("[deft ownership]"))
|
|
178
|
+
return true;
|
|
179
|
+
if (line.startsWith("[deft lifecycle-visible]"))
|
|
180
|
+
return true;
|
|
181
|
+
if (line.startsWith("[deft work-claim]")) {
|
|
182
|
+
return !/\bnone tagged\b/i.test(line);
|
|
183
|
+
}
|
|
184
|
+
if (line.startsWith("[deft freshness]")) {
|
|
185
|
+
return line.includes("session bind deferred") || line.includes("set DEFT_SESSION_ID=");
|
|
186
|
+
}
|
|
187
|
+
// Bound P3 actionable zero-exit exceptions: keep repair detail on quiet path.
|
|
188
|
+
if (line.startsWith("[deft orientation] preflight: degraded") ||
|
|
189
|
+
line.startsWith("[deft orientation] preflight: error") ||
|
|
190
|
+
line === "preflight=degraded" ||
|
|
191
|
+
line === "preflight=error" ||
|
|
192
|
+
(line.startsWith("[deft preflight]") &&
|
|
193
|
+
(/\bdegraded\b/i.test(line) || /\bMISSING\b/.test(line)))) {
|
|
194
|
+
return true;
|
|
195
|
+
}
|
|
196
|
+
if (line.startsWith("[deft orientation] cache_fresh: dirty") ||
|
|
197
|
+
line.startsWith("[deft orientation] cache_fresh: error") ||
|
|
198
|
+
line === "cache_fresh=dirty" ||
|
|
199
|
+
line === "cache_fresh=error" ||
|
|
200
|
+
line.startsWith("❌ deft cache-fresh:") ||
|
|
201
|
+
line.startsWith("⚠ deft cache-fresh:")) {
|
|
202
|
+
return true;
|
|
203
|
+
}
|
|
204
|
+
if (line.startsWith("[deft scm]") && !/\bSCM ready\b/i.test(line)) {
|
|
205
|
+
return true;
|
|
206
|
+
}
|
|
207
|
+
if (line.startsWith("[deft] applying-host publish deferred:"))
|
|
208
|
+
return true;
|
|
209
|
+
if (line.startsWith("[deft] applying-host publish failed:"))
|
|
210
|
+
return true;
|
|
211
|
+
return false;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Final human-output selection (#4966): quiet success default is primary go-signal
|
|
215
|
+
* plus non-exhaustive always-on allowlist; `--verbose` / DEFT_SESSION_VERBOSE dumps
|
|
216
|
+
* ceremony. Fail/deny/steal/non-zero and disabled stay loud. --json is independent.
|
|
217
|
+
*/
|
|
218
|
+
export function selectSessionStartHumanLines(input) {
|
|
219
|
+
const verbose = resolveSessionVerbose({ verbose: input.verbose, env: input.env });
|
|
220
|
+
if (verbose || input.code !== 0) {
|
|
221
|
+
return [...input.lines];
|
|
222
|
+
}
|
|
223
|
+
if (input.payload.disabled === true) {
|
|
224
|
+
return [...input.lines];
|
|
225
|
+
}
|
|
226
|
+
const ready = input.payload.ready === true;
|
|
227
|
+
const posture = typeof input.payload.posture === "string" && input.payload.posture.length > 0
|
|
228
|
+
? input.payload.posture
|
|
229
|
+
: MUTATION_POSTURE;
|
|
230
|
+
const occupancy = typeof input.payload.occupancy === "object" &&
|
|
231
|
+
input.payload.occupancy !== null &&
|
|
232
|
+
typeof input.payload.occupancy.action === "string"
|
|
233
|
+
? String(input.payload.occupancy.action)
|
|
234
|
+
: null;
|
|
235
|
+
const sessionRef = typeof input.payload.session_ref === "object" && input.payload.session_ref !== null
|
|
236
|
+
? input.payload.session_ref
|
|
237
|
+
: null;
|
|
238
|
+
const branch = input.branch ?? (typeof sessionRef?.branch === "string" ? sessionRef.branch : null);
|
|
239
|
+
const head = input.head ?? (typeof sessionRef?.head === "string" ? sessionRef.head : null);
|
|
240
|
+
const primary = formatSessionReadyGoSignalLine({
|
|
241
|
+
ready,
|
|
242
|
+
posture,
|
|
243
|
+
branch,
|
|
244
|
+
head,
|
|
245
|
+
occupancyAction: occupancy,
|
|
246
|
+
});
|
|
247
|
+
const alwaysOn = input.lines.filter(isSessionStartAlwaysOnLine);
|
|
248
|
+
return [primary, ...alwaysOn.filter((line) => line !== primary)];
|
|
249
|
+
}
|
|
118
250
|
function asProcessCostSteps(steps) {
|
|
119
251
|
return steps.map((step) => ({
|
|
120
252
|
name: step.name,
|
|
@@ -1400,10 +1532,20 @@ function runSessionRearm(projectRoot, options, sessionId, instant, environment)
|
|
|
1400
1532
|
payload: {
|
|
1401
1533
|
ready: code === 0,
|
|
1402
1534
|
exit_code: code,
|
|
1535
|
+
posture: MUTATION_POSTURE,
|
|
1403
1536
|
ceremony_tier: REARM_CEREMONY_TIER,
|
|
1404
1537
|
rearm_eligible: true,
|
|
1405
1538
|
state_path: statePath,
|
|
1406
1539
|
...(freshnessBind ? { freshness: freshnessBind } : {}),
|
|
1540
|
+
// #4966: structured checkout fields for quiet-default go-signal (additive).
|
|
1541
|
+
session_ref: {
|
|
1542
|
+
branch: (() => {
|
|
1543
|
+
const ref = runGit(projectRoot, ["rev-parse", "--abbrev-ref", "HEAD"]);
|
|
1544
|
+
const name = ref.stdout.trim();
|
|
1545
|
+
return ref.code === 0 && name.length > 0 && name !== "HEAD" ? name : null;
|
|
1546
|
+
})(),
|
|
1547
|
+
head: eligibility.currentHead,
|
|
1548
|
+
},
|
|
1407
1549
|
quick_steps: quickSteps,
|
|
1408
1550
|
gated_steps: gatedSteps,
|
|
1409
1551
|
steps: stepTimings,
|
|
@@ -2272,6 +2414,7 @@ export function runSessionStart(projectRoot, options = {}) {
|
|
|
2272
2414
|
const resultPayload = {
|
|
2273
2415
|
ready: code === 0,
|
|
2274
2416
|
exit_code: code,
|
|
2417
|
+
posture: MUTATION_POSTURE,
|
|
2275
2418
|
ceremony_tier: COLD_CEREMONY_TIER,
|
|
2276
2419
|
ceremony_dial: dialDict,
|
|
2277
2420
|
...(preflightDict !== null ? { toolchain_preflight: preflightDict } : {}),
|
|
@@ -2294,6 +2437,11 @@ export function runSessionStart(projectRoot, options = {}) {
|
|
|
2294
2437
|
: {}),
|
|
2295
2438
|
state_path: statePath,
|
|
2296
2439
|
...(freshnessBind ? { freshness: freshnessBind } : {}),
|
|
2440
|
+
// #4966: structured checkout fields for quiet-default go-signal (additive).
|
|
2441
|
+
session_ref: {
|
|
2442
|
+
branch: branchSync.head,
|
|
2443
|
+
head: gitHeadValue,
|
|
2444
|
+
},
|
|
2297
2445
|
quick_steps: quickSteps,
|
|
2298
2446
|
gated_steps: gatedSteps,
|
|
2299
2447
|
steps: stepTimings,
|