Skip to main content

Module commit_lifecycle

Module commit_lifecycle 

Source
Expand description

Slice 9 skeleton: the order around a landed commit and a guarded Git child; not reachable until landing is merged. What: The call order around a guarded Git child: install the signal guard, run the child, release the locks and the transaction, drop the guard, then exit with the child’s code. Why: The incumbent releases the transaction before the signal guard goes away, so a signal sent during release is still relayed to the child. The order after a landed commit (automatic maintenance, then the post-commit hook) is not here: the incumbent runs maintenance without stopping on failure (src/policy-engine/commit-transaction-conclusion.ts), and the post-landing lane owns that sequence. Nothing calls this yet: the command path keeps refusing git commit until landing is merged.

In TS you’d write (pseudocode):

const guard = installSignalGuard(); const outcome = await run(child); await release(); guard.drop(); exit(exitCode(outcome));

Traits§

ReleaseSteps
What: The steps that release what a guarded child held, run after the child ends and before the guard drops. Why: Release runs while the guard still relays signals, so a signal sent during release reaches the child.

Functions§

run_guarded_child
What: Run a Git child under the signal guard, release what it held, and report its exit code. Why: Release runs even when the child fails to run, and each failure is reported, not hidden.