Repository navigation
release(draft): integrate deployed ancestry, guarded queue recovery and exact-head CodeQL - #64
echoomegaprime wants to merge 41 commits into
Conversation
Successful hostile acceptance reports omitted the completed_phase_gate field required by the master collector. Publish P4 only after every core check and cleanup succeeds, and keep exact-wrapper reports pending until enrichment returns. Failed verification, malformed capture, interruption and nonzero exit cannot leave a newly completed report for the master consumer. Keep master validation, exact-source and signing rules, release verdicts and historical acceptance reports unchanged. Add producer/wrapper/consumer integration coverage including pending publication and failure paths. Validation: 24 focused and adjacent tests pass; full suite 637 pass, 2 skip, 1 existing symlink test blocked by Windows privilege 1314. P1 acceptance passes all 3 scenarios using a byte-identical source copy outside historical artifacts. Hosted CI, dual certification and deployment remain pending.
…#22) Release hardening so the P4 hostile acceptance gate can seal again: - Bump the pinned python:3.12-alpine base for all six role images, the sandbox default image and the P4 gate to sha256:4c47124a8391cb7a9f571164147d154777cf012a4ece5f86097130d7a4478111 (Trivy: 0 HIGH/CRITICAL findings on the new base). - Bump the hash-locked cryptography pin to 50.0.0 (all PyPI wheel and sdist hashes locked). - deploy_forge.sh: the dispatcher unit uses Wants= instead of Requires= on the API service so an API restart no longer tears down in-flight runs; the source-fetch git credential helper is configurable (CERTFORGE_GIT_CREDENTIAL_HELPER); the trusted manifest default is the canonical-JSON digest that run_worker pins (08ba068c...), not the raw file-bytes digest. - Opt the repository into its own CertForge gate with a stdlib-only journey (scripts/certforge_journey.py) and pin tests (tests/test_release_pins.py). The worker environment identity digest is label-derived and does not change with this release (8e6466d2...). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0152mN1wMwj9vE2YmV2xZF4F
…space (#22) The fresh P4 hostile-acceptance run for bc1b8ad built and sealed all 12 images and passed the scans, the static and runtime attack matrices and the custody and anchor service probes. It then stopped as INFRA_FAILED: the worker container exited before /healthz answered. Cause: since P6 (bfc2159) the worker app opens its deployment ledger at import time. Its default path, <package root>/var/deployments.sqlite3, resolves to /opt/var on the read-only image root, so uvicorn died with "Read-only file system: '/opt/var'". The last green P4 (9c07eb7) predates P6, so no P6-era source could pass P4 until now. Fix: the hardened probe sets ECHO_CERTFORGE_DEPLOYMENT_LEDGER to /workspace/state/deployments.sqlite3, next to the other state paths. Only the harness changes; production and the image stay as they are. Reproduced with the sealed worker image: exit 1 without the variable, healthy with it. A new test pins every worker state path to the writable workspace; it fails without this change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0152mN1wMwj9vE2YmV2xZF4F
…actional rollback
…ndependent review Preserve deployed trust roots, production DB safeguards, worker dispatcher resilience, and the mainline 90-second configurable startup/rollback readiness probes with staging failure log custody. Source-only reconciliation; NO deployment or gate approval.
…wnership evidence
Fail closed on lease expiry and retry errors when worker ownership, reservation consumption or execution markers exist. Preserve run/reservation/metering evidence and add synthetic negative and positive recovery controls. Reviewed locally: 30 focused pytest cases passed; Git diff check clean.
|
Independent exact-head gate update (2026-11-12 UTC): candidate Corrective exact-head update, 2026-11-12 UTC: Integration parent Final current-head check reconciliation (2026-11-12 UTC): CertForge draft PR #64 head |
Replace bare SHA-256 on the replayable dispatch claim token with existing server-peppered HMAC-SHA256, and assert the audit record never contains the raw token or its unkeyed digest. Addresses high CodeQL finding py/weak-sensitive-data-hashing at prior integrated head. Exact focused FORGE test: 2 passed, 30 deselected; immutable source/test blobs verified.
|
Independent CertForge release-gate readback, 2026-11-12 22:23 UTC, exact PR #64 head This re-confirms fail-open cross-check behavior after GHAS reported failure. To address it without touching CertForge or Swarm production, I published a separate DRAFT, source-only ECHO Release Sentinel PR #4 at exact head HOLD. Sentinel patch is not reviewed, merged or deployed and cannot retroactively validate #64. CI and CodeQL workflow success are not security or production release admission. No protected merge, production service restart, DB change, signer operation or Swarm #16 deployment. |
|
Independent exact-head security triage (2026-11-12 23:29 UTC; release remains HOLD) Candidate e6b51c6 still has GHAS CodeQL/failure (check 131509086490), while Actions CodeQL (131508527314) and CI (131508526846) pass; CertForge is neutral (131508687933), and deployed ECHO Release Sentinel incorrectly reports success (131542803913, 22:36:18 UTC). No independent PR review is submitted/approved. I read the exact-commit source of the flagged HMAC-SHA256 helper at Required independent disposition: verify the GHAS alert's exact dataflow and threat model, confirm runtime pepper provenance and credential lifecycle without exposing secret values, choose a reviewed source fix or a narrowly justified security-owner disposition, rerun GHAS at the frozen candidate SHA, and require GHAS success plus CertForge production certification before releasing. Do not suppress scan, change required-check semantics, or treat the Actions CodeQL uploader as the GHAS result. The outstanding Sentinel fix is draft echo-release-sentinel#4; its hosted tests do not change the deployed verdict. No database/service/runner/signing operations performed. |
|
Independent release-gate evidence (2026-11-13 01:22–01:27 UTC; read-only on FORGE), pinned to PR #64 head
Source-review follow-up: this PR fetches all eligible historical orphans and reconciles them in one transaction. Present live cohort is small (7), but please explicitly review the batch/lock budget or establish a bounded batch acceptance test before enabling on a larger tenant set. HOLD pending independent security and release review. No deployment, cancellations, worker simulation, or paid 40-seat execution was attempted. |
|
Independent CertForge release-gate source review — 2026-11-13 02:30 UTC; pinned exact draft head New scope-safety acceptance question (separate from the earlier batch-size concern): in Fresh read-only FORGE verification shows the existing cohort is narrowly consistent with expected legacy history: exactly seven Review/acceptance needed before promotion: document why every otherwise-unowned FAILED dispatch should immediately terminalize, even if it is recent, has fewer than maximum attempts, or has an unrecognized failure reason; otherwise narrow the predicate to the proven terminal pre-execution cohort. Add negative regression(s) using disposable fixtures for recent one-attempt FAILED/QUEUED/BOUND and unknown error, explicit ownership conflicts, and a stable historical exhausted cohort. Preserve exactly-once metering/audit and lock-budget guarantees; test a cohort larger than the current five-row batch fixture. No raw DB edits, arbitrary cancellations, fabricated heartbeats, or policy bypass. CI success at this SHA cannot satisfy the failed GitHub Advanced Security CodeQL check (ID 131509086490), neutral CertForge check, or independent review. Deployed CertForge remains |
Independent CertForge release-gate integration — DRAFT / NO DEPLOYMENT
Purpose: Combine the verified deployed/GitHub ancestry reconciliation (#60) with the guarded historical queue recovery, ownership custody, deterministic regressions, and exact-head CodeQL workflow (#63, stacked on #62/#61/#49/#41). This is a review-only integration branch, not a production authorization or Swarm #16 deployment.
Immutable identity and reproducibility
4f7d99e2dd4422f3d81cf5b709581be963f5818ad8ad9fd881365801354b78a758632d2a31ab68283648116c15d67616f0296a376696fc114b401708and fix(subscriber): preserve non-secret dispatcher claim custody during lease recovery #63a0515d875c2a384965229eb5716331a776ab8190ccf59365cb2987f2e2bc2da5e33f4fbd30eb985be6b51c683c0027cab3ed446a26fdd614476a32c6(security follow-up)3745b34cb593134dccd99db46f34ff4892879a47.dc7e69a253d586eee578d2560bf12eabb51ea63f.Safeguards and release gates
f65935510f35b035536e08b6ae292cd821f02327remains independent andNOT_READY; authentic full-40 proof, signed HAMMER production attestation, and exact-targetPRODUCTION_READYare absent. No costly 40-seat validation without approved budget/cost preflight.This PR creates no production restart, signing operation, release exception, queue mutation or protected merge.
Current-head security follow-up and release blocker (2026-11-12)
The current SHA
e6b51c683c0027cab3ed446a26fdd614476a32c6updates two files: prior dispatcher claim-token custody now uses the existing server-peppered HMAC-SHA256 helper rather than unkeyed SHA-256, with explicit negative regressions. An isolated FORGE disposable checkout of the exact modified source/test blobs passed 2 focused tests (30 deselected). This new head has its own hosted CI run #43311519833.Important: the GitHub Actions CodeQL job passed, but the separate GitHub Advanced Security CodeQL check is failing with one HIGH-severity alert (alert #1,
py/weak-sensitive-data-hashing) atsubscriber.py:889. That line is the existing_token_digestHMAC-SHA256 API-key helper, not the added historical custody code. API-key secret material is generated withsecrets.token_urlsafe(policy.api_key_secret_bytes)where policy requires at least 24 bytes, and_token_pepperrequires at least 32 bytes. It may be a classification false positive for random API credentials, but do not suppress or dismiss it without independent security-owner verification. Passing a scanner job does not mean the security analysis gate passed. Production promotion remains HOLD, independent approvals remain missing, and signed production E2E, fresh worker capacity and full-40 evidence are outstanding.