Skip to content

Wave L28: hermetic child env, council timebox, lane worktrees outside the repo - #2091

Merged
remigiusz-antczak merged 3 commits into
mainfrom
land/wave-1028-agjk
Oct 28, 2026
Merged

remigiusz-antczak merged 3 commits into
mainfrom
land/wave-1028-agjk

Conversation

@remigiusz-antczak

Copy link
Copy Markdown
Collaborator

Lands three reviewed lanes as one commit.

  • Hermetic children: child commands in tests get an invalid GitHub token, an empty gh config and an unroutable proxy, so a test cannot post to a real PR. Background jobs are admitted only with a disk cap, a trap EXIT cleanup and a disk-pressure stop rule. Shadow-default policy flags past their promote-by date fail CI.
  • Council timebox: a stuck council returns a default action plus a blocking alarm instead of pausing delivery trains. Seats run in parallel, and critique rounds add an anonymized peer ranking.
  • Lane worktrees outside the repo tree: file watchers stop scanning lane worktrees. The stop hook removes a lane's own clean, pushed worktree, and the doctor warns on large worktree piles.

Verification (head 0681280)

  • bash scripts/run-ci-tests.sh: all suites passed except skill-index-split, which exceeded its bound by 105. The bound was raised by 150 for this wave's index rows, and python3 scripts/test_skill_index_split.py then passed 7/7.
  • ci-gates.sh size-ratchet: ok. ci-gates.sh mustload: ok.
  • shasum -a 256 -c SHA256SUMS: all OK.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Hi1ChtXVVrE8YEA2Ano93i

Remigiusz Antczak and others added 3 commits October 28, 2026 15:15
… the repo

Hermetic children: scrub_env.sh gives child commands an invalid GH_TOKEN and
GITHUB_TOKEN, an empty GH_CONFIG_DIR and an unroutable proxy, so a test cannot
post to a real PR even when it calls gh by absolute path. run-ci-tests.sh runs
every ci-test through it. bg_admit.py admits a background job only with a disk
cap, a trap EXIT cleanup and a disk-pressure stop rule, and lints mktemp without
a trap against a shrink-only baseline. promote-by.tsv fails when a shadow-default
policy flag is overdue with no recorded decision.

Veche council: a stuck council returns default_action (proceed when reversible,
else hold) plus a COUNCIL_BLOCKING_WORK alarm, so trains are not paused. Seats
run in parallel with atomic cap accounting; critique rounds add an anonymized
Borda peer ranking. Malformed --criteria shows the name:weight format.

Lane worktrees: lane_worktree.sh creates lanes under
${XDG_CACHE_HOME:-~/.cache}/perun-wt/<repo> so file watchers stop scanning them;
handback_cap.py removes the stopping lane's own clean, pushed worktree (never
forced); perun_doctor.py warns on many or large worktrees under the repo dir.

skill-index-split lookup bound raised by 150 for this wave's index rows.

Tests: run-ci-tests all green except skill-index-split, fixed by the bound
raise and re-run (7/7); test_hermetic_children 6/6, test_promote_by 4/4,
timebox 10/10, veche 17/17, test_lane_worktree_reap 8/8; size-ratchet ok,
mustload ok.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Hi1ChtXVVrE8YEA2Ano93i
… fixture out of the lint

The parallel seat runner now records each seat's stop reason, re-raises a cap
hit as "cap reached before call", and reports the first stop reason instead of
the generic parseable-count message. The hermetic-children test builds its
bare-mktemp fixture by concatenation so the shipped-script lint stays strict.

Tests: test_council 20/20 (5 runs), test_veche, test_veche_timebox, test-mktemp-tmpdir, run-ci-tests all green.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…tree row

Tests: test_perun_doctor 32/32, skill-index-split 7/7

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@remigiusz-antczak
remigiusz-antczak merged commit 7d46066 into main Oct 28, 2026
8 checks passed
@remigiusz-antczak
remigiusz-antczak deleted the land/wave-1028-agjk branch October 28, 2026 18:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant