feat(hackathon): governed Pi parity and GPT-5.6 corrections#313
Merged
Conversation
Introduce ca-pi as a generated sibling host package so Pi can reuse the shared governance core without weakening trust, authentication, tool, or child-process boundaries. The promotion verifier keeps hosted support provisional until the exact cross-platform matrix and CodeQL attest the checkpoint SHA. CHANGELOG: Add governed Pi 0.80.5/0.80.6 support with fail-closed enforcement, isolated subagents, parity evidence, and promotion gates.
Document script-disabled dependency installation locally so the reviewed supply-chain posture matches the authoritative hosted workflow.
Preserve the append-only governance reminder emitted while aligning local Pi dependency installation with CI.
Merge current main while preserving Pi's trusted executable boundary and harden the shared git-hook registry against mixed-version downgrade, malformed identity state, and preview secret exposure. Ref: ADR-0015 CHANGELOG: Pi support now fails closed across mixed host versions and trusted executable identity failures, with PR-scoped CodeQL coverage.
Keep generated metadata byte-stable on Windows and suppress npm's best-effort notifier inside the offline package-isolation fixture. Align cross-platform identity and documentation expectations, and require aggregate CI evidence. CHANGELOG: Pi promotion now validates consistently across supported hosts.
Use Windows path semantics in the pure supervisor planner, compare command expansion against canonical filesystem identities, and give the real isolation fixture a runner-safe outer timeout without changing runtime safety bounds. CHANGELOG: Pi's supported-host verification is stable across Windows, Linux, and macOS.
Hosted runners expose canonical path aliases differently across macOS and Windows. Assert each boundary with the same realpath API used by production so promotion tests validate ownership instead of lexical spelling.
Hosted macOS and Windows runners expose temporary filesystem identities through aliases and short names. Build security fixtures from canonical roots and match each production resolver so exact containment assertions remain portable.
Pi records package sources relative to the configured agent directory, while Windows may place that directory on a different drive and macOS may expose a lexical temp alias. Mirror Node path semantics and force Pi text artifacts to LF so exact package evidence survives every hosted checkout. CHANGELOG: Make Pi package promotion deterministic across Windows drives and macOS temp-path aliases.
Cold hosted runners can spend longer than the cleanup default starting the constant PowerShell Job helper. Give launch admission its own five-second ceiling while preserving exact ATTACHED/WATCHING handshakes and fail-closed refusal before child start. CHANGELOG: Allow bounded cold Windows Job helper startup without weakening Pi process containment.
Hosted Windows can deliver the PID header and final output in one chunk. Keep the header and total-output bounds independent so valid evidence is retained while malformed or oversized protocols still fail closed.
Legacy Windows PowerShell can leave an external compiler behind long enough to miss hosted admission. Prefer the canonical PowerShell 7 host when installed, retain the stock fallback, and clean only a still-live helper subtree with bounded trusted tooling. CHANGELOG: Stabilize fail-closed Pi process containment on cold Windows hosts. Ref: ADR-0015
Give the canonical PowerShell Job helper a bounded fifteen-second cold-start window, add fixed admission-stage diagnostics, and return promotion evidence to preclosure until the new SHA earns hosted attestation. CHANGELOG: Stabilize fail-closed Pi process containment on cold hosted Windows runners. Ref: ADR-0015
Allow the assertion-heavy real Pi duplicate-host isolation test up to forty-five seconds on cold hosted Windows while preserving every offline, auth-isolation, counterfeit, and cleanup assertion. Return promotion to preclosure until the new SHA earns hosted evidence.
Document the conservative shadow-mode impact map, agent-facing CI receipt, and safe cancellation baseline before implementation planning.
Record conservative impact evidence and cancel superseded runs while preserving every existing validation condition. Make CI contracts legible and give agents a durable receipt for diagnosis.
Keep merge readiness strict for required validation while letting the latest Pi compatibility canary report failures without blocking a merge. Align the Pi security contract with the typed check-name schema. CHANGELOG: Pi latest compatibility warnings no longer block merge readiness.
The ca-pi-codeql job ran with upload:never and was absent from ci-passed needs/required_results, so with branch protection requiring only Merge readiness a Pi-touching PR could merge with an unresolved CodeQL finding. Same skipped-is-acceptable handling as sibling conditional jobs; a real failure now fails the gate. Closes #314 Claude-Session: https://claude.ai/code/session_015ZDVU1BzUqnnPVHbZ397bX
The call site was the one unguarded write in a hook whose contract is never brick session startup; an unwritable .markers path failed the whole SessionStart injection. Wrapped in the sibling swallow-and- continue idiom. Proven: .markers-as-file now exits 0. CHANGELOG: SessionStart no longer fails when the standup marker cannot be written. Closes #325 Claude-Session: https://claude.ai/code/session_015ZDVU1BzUqnnPVHbZ397bX
An interrupt mid-write left a truncated enforcement hook in a plugin hooks/ dir that a local session would then execute. Temp sibling + os.replace, cleanup on failure, byte-exact binary mode preserved. CHANGELOG: interrupted sync-core runs can no longer leave partially-written hooks. Closes #326 Claude-Session: https://claude.ai/code/session_015ZDVU1BzUqnnPVHbZ397bX
resolvePythonExecutable, compactionLimits, and the export on CHILD_ATTESTATION_DOMAIN had zero callers across src and test; dead public surface on a security adapter invites accidental coupling. Bundle rebuilt (4 lines removed). Closes #327 Claude-Session: https://claude.ai/code/session_015ZDVU1BzUqnnPVHbZ397bX
_trusted_environment_path had no direct unit test despite being the trusted-executable identity check; the ci-impact planner's except branch is the actual fall-back-to-broad-validation guarantee and only the success path was exercised. 8 new gitexec tests (Windows-safe symlink guard) and a malformed-map fallback test (exit 0, fallback=True, planner-error reason). Closes #322 Closes #323 Claude-Session: https://claude.ai/code/session_015ZDVU1BzUqnnPVHbZ397bX
Both new-this-branch modules lacked the mandated header convention that every other underscore-lib module carries; the header is the contract readers and reviewers navigate by. Comments only, zero behavior change, synced byte-identical to all three hosts. Closes #328 Claude-Session: https://claude.ai/code/session_015ZDVU1BzUqnnPVHbZ397bX
Full audit trail for the pre-merge tribunal: run/triage logs, 21 lens findings + 33 docs-sidecar findings, inventory, wave plans, report, manifest, and the executed issue-filing scripts (#314-#333). gate-events.log carries the append-only hook telemetry from the fix session. Claude-Session: https://claude.ai/code/session_015ZDVU1BzUqnnPVHbZ397bX
A hung or failed win32 taskkill left BridgeClient.call unsettled forever, wedging the gated tool call; taskkill now carries a 1s timeout with a SIGKILL fallback and an unref'd 2s settle deadline that force-finishes with the recorded failure reason. A validatePaths rejection before the first call crashed the process as an unhandled rejection; the constructor now observes ready separately without changing call() failure semantics. Test seam (spawn injection) is TS-source-only; bundlers strip it from the shipped extensions. CHANGELOG: a stuck Pi bridge child can no longer wedge a gated tool call or crash the extension host. Closes #319 Claude-Session: https://claude.ai/code/session_015ZDVU1BzUqnnPVHbZ397bX
Permit the append-only sprint decision log in the exact final-evidence allowlist. A regression proves untracked and committed audit entries are admitted while runtime drift remains rejected.
Rebuild the sanitized promotion pair from candidate-matched hosted jobs and fresh local supported-version timings. Reconcile the public parity ledger and append the governing SMARTS receipt.
Unify the Pi parity implementation and sixteen GPT-authored corrective pull requests behind one reviewable hackathon narrative. Preserve source provenance and append-only audit history while regenerating shared behavior across every supported host. CHANGELOG: Adds the complete Pi parity submission and incorporates the associated governance, security, telemetry, pruning, task-board, test-stability, and documentation corrections. Closes #335 Closes #333 Closes #353 Closes #352 Closes #355 Closes #311 Closes #312 Closes #361 Closes #339 Closes #364 Closes #366
Hosted generation checks exposed that the isolated context-creation scout contract existed only in one rendered host. Make the shared template authoritative so every generated host carries the reviewed boundary and clean checkouts remain deterministic. CHANGELOG: Keep isolated context-creation scout behavior synchronized across generated host surfaces.
The live containment proof gained one bounded admission retry, but its outer Vitest limit still expired before the existing admission, output, and cleanup budgets could complete on hosted Windows. Give only the test harness enough time to observe those unchanged product bounds.
This was referenced Jul 20, 2026
Give judges a clear submission-period boundary, Codex and GPT-5.6 evidence, and an immutable Pi install path without relying on the PR narrative.
Set the public release posture consistently across installation, parity, support, and site surfaces so passing the bounded promotion matrix is not mistaken for universal validation. Add contracts that keep the preview label, welcome language, and validation caveat from drifting.
This was referenced Jul 24, 2026
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.
Hackathon submission
This is the single review surface for the complete codeArbiter hackathon campaign: governed Pi parity plus the corrective work GPT-5.6 found while exercising and reviewing older implementation. It shows both new host capability and concrete defects discovered in existing work without asking reviewers to reconstruct a stack of side PRs.
Feature Forge release posture
ca-pi is a Feature Forge preview. It is available now, and people are welcome to install it, use it in real repositories, and file reports. The documented automated and hosted promotion matrix is green. That evidence proves the stated supported boundary, not 100% validation across every repository, provider, terminal, and workflow. Broader real-world testing is still required before ca-pi is presented as stable.
Pi parity delivered
allow | ask | denypermission policy; default confirmation behavior matches the established host.GPT-5.6 corrective campaign absorbed
The exact 16-PR / 29-commit / 126-path source manifest and conflict receipts live under
.codearbiter/reports/2026-07-20-hackathon-pr313/. The former monolithic H-05 hook change was ported into PR #313's extracted shared core and generated across Claude Code, Codex, and Pi. Source audit additions were appended without rewriting history. Dependabot PR #336 is intentionally excluded because automated dependency maintenance is not GPT-authored hackathon work.Issues closed by this submission
Pi parity:
Closes #314
Closes #315
Closes #316
Closes #317
Closes #318
Closes #319
Closes #322
Closes #323
Closes #324
Closes #325
Closes #326
Closes #327
Closes #328
Closes #330
Closes #331
Closes #332
Closes #340
Closes #341
Closes #343
Closes #344
Closes #345
Corrective work:
Closes #311
Closes #312
Closes #333
Closes #335
Closes #339
Closes #352
Closes #353
Closes #355
Closes #361
Closes #364
Closes #366
Verification and promotion
These receipts support the Feature Forge preview boundary. They do not promote ca-pi to stable or claim universal validation.
f764929e02fbb67b43a3b828686c0007445a0316.6173b1d4d2ae6380ef577fd631131c9469a898c1.ec64809c1b6c32f69e3d9787ab205f7bbd563d50.The first hosted candidate exposed generated-source drift in the #351 isolated-scout contract;
1451766moved that behavior into the canonical surface and regenerated Pi. The next candidate proved the Windows live proof's 20-second outer test ceiling did not encompass #367's bounded retry;64086bbraised only the harness ceiling to 60 seconds while leaving every product timeout unchanged. The first strict promotion replay then exposed that the verifier did not admit this campaign's approved plan and receipt as evidence-only descendants;f764929added only those two exact paths with a red/green regression while continuing to reject broad code, plan, and report drift.Candidate
f764929passed the exact six-cell supported Pi matrix, Pi security, CodeQL, all hook platforms, sandbox, docs, generators, references, version gates, and merge readiness. Fresh local Pi 0.80.5 and 0.80.10 platform receipts were bound with candidate-matched hosted durations in the sanitized promotion pair. The strict final verifier passed all 46 canonical repository gates and PI-AC-01 through PI-AC-38. Evidence head6173b1dand final governance headec64809each completed full exact-head hosted CI successfully.Security and lifecycle boundaries
All mutation paths retain final-wrapper permission, hard-rule, audit, trust, lifecycle, and native-tool ownership checks. Plan mode blocks non-planning writes. Background work is capped, redacted, and disposed before session state is released. Farm URLs reject credentials and cross-origin endpoint resolution. Provenance paths are confined before Git receives them. H-05 covers destructive
git checkoutandgit restorespellings, including separated-value global options.Scope and release state
PR #313 remains open and unmerged. After its final evidence head was green, all 16 absorbed source PRs were closed unmerged with durable redirect comments to this PR; a live post-closure audit verified their recorded heads and redirect coverage. This documentation update does not tag, release, publish, merge, or write directly to the default branch. Merge remains a separate maintainer action. Issue #342 remains the informational parity tracker.