ci(factory): run forensics — org-uniform redaction/upload + timeout split (toon-meta#278) - #155
Merged
Merged
Conversation
…l timeout split (toon-meta#278) agent-implement.yml: REPLACED the existing redact + upload steps (buzz's own port of connector's pattern) with the canonical org-uniform blocks — same nsec1 shape, now with the .sandcastle/worktrees/*/.sandcastle/logs/ sweep and upload glob; ADDED the wall-clock rationale comment on the job timeout (kept at 60) and a step-level timeout-minutes: 50 on the runner step. agent-review.yml: ADDED the forensics-split comment on the job timeout (kept at 30), a step-level timeout-minutes: 25 on the runner step, and the canonical redact + upload steps (previously absent). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…te was dropped as hidden (toon-meta#278) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds the infrastructure half of run forensics to both sandcastle runner workflows (
agent-implement.yml,agent-review.yml), uniform across the 11 factory repos; the prompt half (commit the handoff note withgit add -f) landed with toon-meta#273's sibling tickets.What changed
1. Redacted log artifact upload (
if: always()) — both workflows now end with:nsec1shape — three passes (exact secret values held by the job, known token/key shapes, BIP-39 mnemonics + labelled private keys). Actions masks secrets in step logs but never in artifact contents, and this repo is public, so redaction runs before every upload.actions/upload-artifact@v4step for.sandcastle/logs/and.sandcastle/worktrees/*/.sandcastle/logs/— the worktree glob captures the committed-but-never-pushedhandoff-<task-id>.mda killed run leaves behind (itssandbox.close()never ran, so the bind-mounted worktree survives on the host).2. Timeout vs
maxIterations, reconciled — decision (uniform fleet-wide): keepmaxIterations: 100, keep the job timeout, and split the wall clock with a step-level timeout on the runner step (implement 50/60, review 25/30; connector, which already mints a fresh push token mid-run, keeps 180 and gets 170). Rationale, also recorded as comments in the workflows:maxIterationsis a runaway-loop guard, not a time budget — an iteration has no fixed duration, so no iteration count can be made to "fit" a wall clock. The wall clock is the real budget.always()redact+upload steps — a job-level kill would take those down with it.Proof
The mechanism was proven in toon-meta (see toon-protocol/toon-meta#297): the redaction script against planted fake secrets locally (all shapes redacted, bare tx hash survives), and a live throwaway-branch run showing a step-timeout kill still runs the exact canonical redact + upload steps and the artifact contains the redacted logs plus the worktree handoff note. This repo's port is the same blocks verbatim, YAML-validated.
Part of toon-protocol/toon-meta#270
Part of toon-protocol/toon-meta#278