Skip to content

Align release proofs with the integrated producer tree - #13

Merged
VivienP merged 6 commits into
mainfrom
fix/release-evidence-integrity
Aug 14, 2026
Merged

Align release proofs with the integrated producer tree#13
VivienP merged 6 commits into
mainfrom
fix/release-evidence-integrity

Conversation

@VivienP

@VivienP VivienP commented Aug 14, 2026

Copy link
Copy Markdown
Owner

Summary

Align committed release proofs with the current producer tree: unique Alembic head rehearsal, OpenAPI/TypeScript contract, electrolysis CLI/HTTP adapters, producer-identity guards, and a regenerated synthetic-replay fault-campaign artifact.

Rationale

The integrated schema head, HTTP contract, and electrolysis operators had drifted from the committed proofs. Dirty or stale-base evidence runs could still look closed. Fail closed unless HEAD is clean and contains origin/main, including linked worktrees of a bare common directory, then record measured campaign reliability from that producer.

Validation

  • python .claude/tools/gates.py inventory used; scaffolded/deferred gates were not reported as passing.
  • Pre-commit on producer commits: ruff format/check, mypy --strict src/, offline pytest, check_docs.py --strict (2 pre-existing WARN on exactly-once wording), SHA256SUMS, validate-artifacts.
  • Real PostgreSQL migration rehearsal: 74e1b6a09d22d9c4e7a1b280, legacy row preserved, v2 constraint present.
  • python scripts/reproduce_campaign_reliability.py --campaigns 100 --master-seed 20260813 --database-name labbridge_phase7_fault_release3 --bucket labbridge-phase7-fault-release3 --output build/phase7-fault-campaign (no --allow-dirty).
  • Artifact artifacts/fault-campaign: producer git_head=376dc22, origin_main=2f090e71 contained, working_tree=clean; 100 campaigns; acceptance_met=true; 0 lost accepted observations, unintended duplicates, hard-budget overspends, projection mismatches, or Package-verification failures; 51 lease_lost; 100 suppressed redeliveries; restore 100/100 objects and Packages; migration passed.
  • python -m labbridge.cli validate-artifacts --bundle artifacts/fault-campaign: complete.
  • pytest -m data: NOT RUN — HER archive absent.
  • Independent repository/reliability/data-integrity reviews: NOT RUN.

Limitations and follow-up

  • Observed HER replay and live instrument execution were not run; measurements are synthetic replay only.
  • Source commit/quarantine concurrency (W-3) remains deferred; no unsafe reconcile CLI.
  • D-1–D-5 architectural refactors and a large public-docs rewrite are out of scope.
  • Independent reviews are still required before any public-release claim.

Checklist

  • The change is focused and contains no unrelated cleanup.
  • Tests cover the behaviour at the layer required by the claim.
  • Documentation, migrations, manifests, and failure semantics are updated where applicable.
  • Public claims match current evidence and state their limitations.
  • The diff contains no secrets, temporary planning material, fetched datasets, or temporary
    artifacts.

The integrated Alembic head, HTTP contract, and electrolysis adapters had
drifted from the committed proofs. Keep the rehearsal on the unique current
head, expose existing electrolysis ingestion through CLI and HTTP, and refuse
dirty or stale-base evidence runs.

Campaign reliability remains implemented until a clean producer commit
regenerates the fault-campaign artifact.
A linked worktree of a bare common directory reports core.bare=true.
Pin --git-dir and --work-tree from the gitfile so producer identity can
run git status on the checkout that actually holds the source tree.
The fault-campaign artifact was regenerated from commit 376dc22, a clean tree
that contains origin/main. Record the measured synthetic-replay results and
promote the capability to demonstrated. Observed replay and live execution
remain out of scope.
CI installs the latest Ruff, which stabilized PLR0917. Keep the HTTP factory at
one positional engine argument, and ignore positional-argument count the same
way too-many-arguments is already ignored.
CI installs the latest FastAPI, whose OpenAPI renderer no longer matches
contracts/openapi-v1.json byte-for-byte. Pin the generator to the version
that exported the committed contract.
… drift

Windows Path sorting and floating Pydantic 2.12 made the same bytes fail
Linux rebuild and OpenAPI checks. Inspect CLI options instead of Rich help
truncated at 80 columns.
@VivienP
VivienP marked this pull request as ready for review August 14, 2026 12:41
@VivienP
VivienP merged commit 9398dfa into main Aug 14, 2026
3 checks passed
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