Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
205 commits
Select commit Hold shift + click to select a range
8d9f62c
Preserve complete Frame metadata in graph storage
MaxGhenis Sep 9, 2026
2ebca68
Merge commit 'a19582bd918829858a117f0d6aafa2b994e856ec' into microcos…
MaxGhenis Sep 9, 2026
f397e8a
Start US launch integration source staging ledger
MaxGhenis Sep 9, 2026
124fd68
Stage integration layer 01: SAFE-ADDITIVE.patch
MaxGhenis Sep 9, 2026
69b94b4
Stage integration layer 02: GRAPH-RESTORE.patch
MaxGhenis Sep 9, 2026
6e3907f
Stage integration layer 03: ACCEPTED-SHARED-RESTORE.patch
MaxGhenis Sep 9, 2026
d250c86
Stage integration layer 04: PUF-SUPPORT-MERGE.patch
MaxGhenis Sep 9, 2026
76d07d7
Stage integration layer 05: SOLVE-MERGE-PROPOSAL.patch
MaxGhenis Sep 9, 2026
036503c
Stage integration layer 06: J-GRAPH-COMPATIBILITY.patch
MaxGhenis Sep 9, 2026
4b79b5b
Stage integration layer 07: F-CATALOGUE-OPTIMIZATION.patch
MaxGhenis Sep 9, 2026
60714ba
Stage integration layer 08: GRAPH-ATTACHMENT-METADATA.patch
MaxGhenis Sep 9, 2026
6421fa3
Stage integration layer 09: F-JOINT-GEOGRAPHY-GATE.patch
MaxGhenis Sep 9, 2026
9fcce2b
Stage integration layer 10: SOURCE-CLOSURE.patch
MaxGhenis Sep 9, 2026
aa9dd94
Stage integration layer 11: PLACEMENT-ADDITIONS.patch
MaxGhenis Sep 9, 2026
bd236b7
Stage exact ordinary solver and fit test fixture closure
MaxGhenis Sep 9, 2026
93ff498
Add focused US launch integration regressions and changelog
MaxGhenis Sep 9, 2026
716980b
Record US launch integration source staging handoff
MaxGhenis Sep 9, 2026
84243d4
Include source definitions required by US launch integration
MaxGhenis Sep 9, 2026
dfa7f87
Correct full65 attachment replay identity and regression coverage
MaxGhenis Sep 9, 2026
a85c9cb
Prepare US graph build consolidation for public review
MaxGhenis Sep 9, 2026
c26098a
Merge remote-tracking branch 'origin/main' into microcosm-us-launch-i…
MaxGhenis Sep 9, 2026
8157300
Add canonical PUF donor and current survey predictor graph
MaxGhenis Sep 9, 2026
78d84f9
Specify declarative geography with shared operators
MaxGhenis Sep 9, 2026
adba803
Fix stored JSON corruption and grouped calibration validation
MaxGhenis Sep 9, 2026
8b076b1
Fix survey producer replay and accelerate frame identity checks
MaxGhenis Sep 9, 2026
a9895d8
Keep survey diagnostics aligned with grouped solver options
MaxGhenis Sep 9, 2026
ebb8db8
Add shared atomic geography assignment and graph operators
MaxGhenis Sep 9, 2026
4aaaeb9
Qualify survey Social Security totals and reporting semantics
MaxGhenis Sep 9, 2026
4bdc972
Preserve survey Social Security in an explicit PUF55 profile
MaxGhenis Sep 9, 2026
7481415
Project canonical PUF donors into the survey SS profile
MaxGhenis Sep 9, 2026
2ff0cff
Normalize US block support for shared geography assignment
MaxGhenis Sep 9, 2026
c1cee78
Place atomic geography before the survey support clone
MaxGhenis Sep 9, 2026
1ff11d5
Merge remote-tracking branch 'origin/main' into microcosm-us-launch-i…
MaxGhenis Sep 9, 2026
2f18fe8
Verify PUF55 whole-population attachment and replay
MaxGhenis Sep 9, 2026
0760c09
Qualify observed survey geography and verify its graph projection
MaxGhenis Sep 9, 2026
2120954
Carry atomic survey geography through cloning and age calibration
MaxGhenis Sep 9, 2026
de8783f
Normalize population-only Census responses for atomic support
MaxGhenis Sep 9, 2026
304453f
Qualify source demographics for survey financial imputation
MaxGhenis Sep 9, 2026
c107bf6
Update launch review scope and financial compatibility evidence
MaxGhenis Sep 9, 2026
c6f6b06
Compose atomic survey geography with financial imputation
MaxGhenis Sep 9, 2026
e071815
Add source-preserving Social Security conditioning for PUF55
MaxGhenis Sep 9, 2026
38eefa2
Verify national population-only Census block support
MaxGhenis Sep 10, 2026
d3a0c3b
Record financial successor CPU-limit failure
MaxGhenis Sep 10, 2026
9757f4a
Document measured financial fixture validation cost
MaxGhenis Sep 10, 2026
56d9bf4
Fix worker resource identity tests for lazy imports
MaxGhenis Sep 10, 2026
3a2edc8
Record guarded ACS memo comparison without adopting it
MaxGhenis Sep 10, 2026
640c1db
Preserve exact archived experiment patch bytes
MaxGhenis Sep 10, 2026
a5a066f
Capture bounded CI spec identities and isolate ACS compilation cost
MaxGhenis Sep 10, 2026
bcc60e7
Verify the financial successor positive control and retain source cit…
MaxGhenis Sep 10, 2026
3bc7c8b
Repair age-count fixtures and run bounded identity diagnostics in par…
MaxGhenis Sep 10, 2026
28d3b24
Record original successor control acceptance and the remaining callba…
MaxGhenis Sep 10, 2026
886eea7
Distinguish terminal diagnostic refusal from optional import probes
MaxGhenis Sep 10, 2026
c5a1db9
Reuse source compilation after paired fixture and mutation checks
MaxGhenis Sep 10, 2026
23866bc
Merge disjoint PUF raw routes before whole-cohort finalization
MaxGhenis Sep 10, 2026
b47209e
Keep identity diagnostics on the explicit CPU-only Torch path
MaxGhenis Sep 10, 2026
290082a
Document adopted validation optimization and remaining boundary propo…
MaxGhenis Sep 10, 2026
a8368eb
Expose bounded diagnostic failures without changing build permissions
MaxGhenis Sep 10, 2026
df10f24
Bind financial successors to issued runs and seal returned budget views
MaxGhenis Sep 10, 2026
eb72fcb
Retain diagnostic scratch space for runner cleanup
MaxGhenis Sep 10, 2026
ed96fb9
Prepare PUF recipient routes from the issued financial survey graph
MaxGhenis Sep 10, 2026
2ce0a3a
Declare bounded system metadata for isolated CI diagnostics
MaxGhenis Sep 10, 2026
2904f15
Record the verified native survey geography and financial pilot
MaxGhenis Sep 10, 2026
07858d3
Integrate current calibration and verified US enrichment components
MaxGhenis Sep 10, 2026
8905b2e
Integrate merged UK CGT and PR CI scheduling changes
MaxGhenis Sep 10, 2026
d80593b
Preserve missing merge metadata and record verified calibration controls
MaxGhenis Sep 10, 2026
c5b25a9
Add verified PUF donor graph and finalized output seals
MaxGhenis Sep 10, 2026
9d20d6e
Clarify post-clone geography and parallel release review
MaxGhenis Sep 10, 2026
7521581
Record agreed UK graph and dashboard sequencing
MaxGhenis Sep 10, 2026
7fa6377
Integrate current UK target reconciliation with US launch work
MaxGhenis Sep 10, 2026
f4e5ec4
Record merged UK target dependency in release plan
MaxGhenis Sep 10, 2026
b1626e1
Add shared UK atomic-area adapter and lazy runtime exports
MaxGhenis Sep 10, 2026
162869d
Align seed diagnostic with approved current lockfile
MaxGhenis Sep 10, 2026
b591280
Verify full and pruned US exports against their common parent
MaxGhenis Sep 10, 2026
94b7c2a
Record independent export review and adopted source hashes
MaxGhenis Sep 10, 2026
1cebe35
Assign atomic geography after initial survey cloning
MaxGhenis Sep 10, 2026
1511663
Bind survey replay dependencies in budget producer checks
MaxGhenis Sep 10, 2026
a2c50a9
Verify survey input ownership and calibration diagnostics
MaxGhenis Sep 10, 2026
7bfdb82
Add the ASEC v3-to-v4 exact-source restoration helper and its checkpo…
MaxGhenis Sep 11, 2026
cabcad4
Repair two stale test expectations after the post-clone geography change
MaxGhenis Sep 11, 2026
fe9a7bd
Install the engine-free US extra into the wheels gate after the bound…
MaxGhenis Sep 11, 2026
b979797
Record the incomplete native post-clone financial pilot observation
MaxGhenis Sep 11, 2026
4ffa523
Classify the launch integration's runtime modules in the spine-blindn…
MaxGhenis Sep 11, 2026
1734b9e
Re-pin the seed protocol and compiled seed map digests for the launch…
MaxGhenis Sep 11, 2026
a90965f
Review the launch integration's source-spine accesses in the blindnes…
MaxGhenis Sep 11, 2026
931ee20
Let the seed-identity diagnostic import the engine under its boundary
MaxGhenis Sep 11, 2026
123650f
Complete the seed-identity diagnostic's kernel-module roster
MaxGhenis Sep 11, 2026
1007c0e
Re-pin the AM/BE/UK bundle digests and the loader's golden semantic hash
MaxGhenis Sep 11, 2026
c2c6b37
Reuse the ASEC catalogue records identity over unchanged immutable le…
MaxGhenis Sep 11, 2026
9fba910
Merge remote-tracking branch 'origin/main' into microcosm-us-launch-v…
MaxGhenis Sep 11, 2026
d872960
Carry a calibration hierarchy on every national demographic count target
MaxGhenis Sep 11, 2026
72fbe7b
Inject the late manifest mutation through the stage alias, not the se…
MaxGhenis Sep 11, 2026
2ca11c8
Project record classes and the source member's value into the memo le…
MaxGhenis Sep 11, 2026
f4a212b
Merge remote-tracking branch 'origin/main' into microcosm-us-launch-v…
MaxGhenis Sep 11, 2026
77c9e78
Re-pin the merged UK bundle and the pool tool's country-spec digest; …
MaxGhenis Sep 11, 2026
2c5c64f
Mark the engine parameter-file pin control as requiring the US engine
MaxGhenis Sep 11, 2026
069d5ed
Restore the engine resolver by monkeypatch instead of reloading puf_s…
MaxGhenis Sep 11, 2026
3ad1b1a
Open the #893 reconciliation lane journal
MaxGhenis Sep 12, 2026
3010b77
Merge origin/main (0c3f4f651, amendment 19) into the #893 integration…
MaxGhenis Sep 12, 2026
0513579
Merge origin/amend-keyed-seed-and-uniform-draws (23ba24770, amendment…
MaxGhenis Sep 12, 2026
dc621c1
Re-pin the seed protocol and compiled seed map digests on the merged …
MaxGhenis Sep 12, 2026
cff8fbf
Re-pin the calibrate and simulate H1 parity cases the branch's kernel…
MaxGhenis Sep 12, 2026
752ab84
Re-apply the raw-byte source codec on main's graph package
MaxGhenis Sep 12, 2026
db1b782
Re-apply complete Frame metadata storage and non-finite JSON refusal …
MaxGhenis Sep 12, 2026
d101976
Re-apply executor execution states: gate exceptions leave their consu…
MaxGhenis Sep 12, 2026
a16eeac
Re-apply the private population observer on run_graph
MaxGhenis Sep 12, 2026
2e1857a
Bring the #893 reconciliation journal up to the piece commits
MaxGhenis Sep 12, 2026
c704a1b
Pin that unreached propagates through a structural node and its version
MaxGhenis Sep 12, 2026
07566eb
Re-pin the US implementation inventory for the reconciled graph package
MaxGhenis Sep 12, 2026
80fef22
Record the #893 reconciliation report and layer map (draft; build bat…
MaxGhenis Sep 12, 2026
a4b6fe8
Restore pinned resources for prepared ASEC stage manifests
MaxGhenis Sep 12, 2026
d44e048
Record interrupted reconciliation battery and independent review bloc…
MaxGhenis Sep 12, 2026
6f66fa5
Isolate graph population observers from execution and cache state
MaxGhenis Sep 12, 2026
cb27bdb
Show unavailable execution separately from graph cache reuse
MaxGhenis Sep 12, 2026
4d82528
Record reviewed graph dependency and current native release progress
MaxGhenis Sep 12, 2026
9e61d0d
Merge reviewed keyed-draw repairs and derive integration identities
MaxGhenis Sep 12, 2026
0acc786
Update joint PUMA fixture and record integration checks
MaxGhenis Sep 12, 2026
26e51d1
Restore PUF55 host over the combined survey population
MaxGhenis Sep 12, 2026
d35df9c
Integrate graph persistence contracts and record Frame dependency
MaxGhenis Sep 12, 2026
aea7b2e
Add declared US fiscal measurement graph stage
MaxGhenis Sep 12, 2026
cff9410
Fix fiscal measurement arithmetic, predicate inputs and cache identity
MaxGhenis Sep 12, 2026
852967c
Bind fiscal engine table transforms into cache identity
MaxGhenis Sep 12, 2026
ceae455
Update US release path with PUF and measurement progress
MaxGhenis Sep 12, 2026
e019557
Record passing native financial required replay
MaxGhenis Sep 12, 2026
d07eb7e
Add constrained dense fiscal calibration graph stage
MaxGhenis Sep 12, 2026
99543c3
Document integrated dense calibration validation
MaxGhenis Sep 12, 2026
eb1f1ca
Open the #908 lane journal for the per-target snapshot slice
MaxGhenis Sep 12, 2026
d91b899
Emit per-target calibration estimate snapshots from the solver
MaxGhenis Sep 12, 2026
46a64cf
Measure the snapshot path on synthetic matrices, and label it synthetic
MaxGhenis Sep 12, 2026
aaae9a9
Record the slice's state and the #908 scope it does not cover
MaxGhenis Sep 12, 2026
35fc76d
Re-pin only the calibrate parity case's source identity
MaxGhenis Sep 12, 2026
5e4f431
Merge accepted keyed draw foundation into US integration
MaxGhenis Sep 12, 2026
a18fd60
Retain checked PUF55 outputs for downstream graph stages
MaxGhenis Sep 12, 2026
d5cbe60
Update release path for retained PUF output checks
MaxGhenis Sep 12, 2026
fb6d1dc
Stop the snapshot observer from being able to break the run it watches
MaxGhenis Sep 12, 2026
bae1887
Record how this lane ran the suite without installing anything
MaxGhenis Sep 12, 2026
b7b5d89
Merge the completed #908 snapshot slice and re-pin identities on the …
MaxGhenis Sep 12, 2026
e3bbb7a
Open ASEC income reporting/routing source lane journal
MaxGhenis Sep 12, 2026
80342aa
Close the snapshot metadata, detachment, publication and codec findings
MaxGhenis Sep 12, 2026
7264ae4
Replay the review's own counterexamples against the fix, as evidence
MaxGhenis Sep 12, 2026
734c669
Pin passive parity on the sparse-selection paths too
MaxGhenis Sep 12, 2026
12ac3a7
Qualify current ASEC income reporting and routing sources
MaxGhenis Sep 12, 2026
bc9f7cf
Preserve the survey interest remainder before PUF enrichment
MaxGhenis Sep 12, 2026
eb41e79
Reuse bounded source string encodings without changing frame digests
MaxGhenis Sep 12, 2026
5b6810b
Make a validated snapshot a snapshot that serializes
MaxGhenis Sep 12, 2026
536f1ce
Record survey interest and remaining income source work
MaxGhenis Sep 12, 2026
4c4cc22
Record this lane's verification in its journal
MaxGhenis Sep 12, 2026
9a325c8
Record the measured red-regression split in the lane journal
MaxGhenis Sep 12, 2026
aa7bde7
Read printed money entries from the pinned domains artifact
MaxGhenis Sep 12, 2026
b8380c4
Reject null best-iterate metadata at the strict snapshot codec
MaxGhenis Sep 12, 2026
34a5e49
Merge commit '9a325c8b0' into snapshot-strict-best-metadata-20260912
MaxGhenis Sep 12, 2026
b43369d
Document target snapshot usage and remaining country integration
MaxGhenis Sep 12, 2026
7e2c7e7
Cover the income routing qualifier with invented-source regressions
MaxGhenis Sep 12, 2026
a8759b9
Document the current ASEC income routing source contract
MaxGhenis Sep 12, 2026
d19e976
Record the income routing lane outcome and review corrections
MaxGhenis Sep 12, 2026
c859e34
Retain both distribution recipiency literals with the age route
MaxGhenis Sep 12, 2026
a0cb39f
Assert the income routing evidence receipt round-trips as JSON
MaxGhenis Sep 12, 2026
fff20fc
Merge the reviewed target-snapshot head into the grouped US solver br…
MaxGhenis Sep 12, 2026
e64d5a8
Emit target snapshots from the grouped Adam solver
MaxGhenis Sep 12, 2026
1c64223
Separate an unresolved other-income receipt from a reported category
MaxGhenis Sep 12, 2026
b19a5b6
Qualify observed ACS income anchors from retained source
MaxGhenis Sep 12, 2026
8901ed3
Add deterministic reconciliation to signed component totals
MaxGhenis Sep 12, 2026
8efbf5b
Correct four printed-dictionary claims found by adversarial review
MaxGhenis Sep 12, 2026
7ac2b86
Recompute the source-derived identities the merged solver moves
MaxGhenis Sep 12, 2026
fbb1099
Fix snapshot iterate and selected probe identity
MaxGhenis Sep 12, 2026
16fc6cb
Merge shared graph consolidation into target snapshots
MaxGhenis Sep 12, 2026
805d366
Merge remote-tracking branch 'origin/main' into us-launch-income-batc…
MaxGhenis Sep 12, 2026
f92418a
Add source-qualified survey health coverage graph fragment
MaxGhenis Sep 12, 2026
091261c
Add checked survey amount and health enrichment host
MaxGhenis Sep 12, 2026
2f62bb8
Add the grouped x snapshot cross-product controls
MaxGhenis Sep 12, 2026
c71ea05
Stop completing amounts the printed dictionary leaves ambiguous
MaxGhenis Sep 12, 2026
84aed94
Record integrated survey enrichment and current release boundaries
MaxGhenis Sep 12, 2026
52805a4
Record corrected native pilot launch after harness verification
MaxGhenis Sep 12, 2026
d3ec6c2
Merge grouped calibration target snapshot core
MaxGhenis Sep 12, 2026
a585d70
Register the qualifier in the fail-closed US runtime rosters
MaxGhenis Sep 12, 2026
4d4b9ca
Record the adversarial review round in the lane journal
MaxGhenis Sep 12, 2026
c73ce38
Reconcile snapshot iteration identity and wire the fiscal host observer
MaxGhenis Sep 12, 2026
4b9ea61
Record the lane's scope, evidence and residual risks
MaxGhenis Sep 12, 2026
d6bb877
Merge commit '52805a4cf' into us-fiscal-target-snapshot-host-20260912
MaxGhenis Sep 12, 2026
13791d7
Record final fiscal snapshot evidence and historicize grouped lane notes
MaxGhenis Sep 12, 2026
c6277f6
Integrate qualified ASEC income routing sources
MaxGhenis Sep 12, 2026
2ab15db
Qualify ordinary and retirement-account ASEC interest sources
MaxGhenis Sep 12, 2026
4a8f1d9
Respect unpublished ASEC farm allocation code meanings
MaxGhenis Sep 12, 2026
9189ab5
Merge accepted US income source integration
MaxGhenis Sep 12, 2026
5075fdd
Merge accepted fiscal target snapshot integration
MaxGhenis Sep 12, 2026
adc8928
Expose signed component reconciliation in the calculation graph
MaxGhenis Sep 12, 2026
0e8d5a7
Declare pinned fiscal leaf policies with strict execution boundaries
MaxGhenis Sep 12, 2026
2be80c2
Classify reviewed US source graph modules and verify integration
MaxGhenis Sep 12, 2026
e097277
Integrate verified signed income reconciliation graph
MaxGhenis Sep 12, 2026
4f7284c
Merge verified US source integration before domain hardening
MaxGhenis Sep 12, 2026
bf7976d
Qualify received and paid ASEC child-support observations
MaxGhenis Sep 12, 2026
3b20175
Define shared columns for the property income bridge
MaxGhenis Sep 12, 2026
90bc1bf
Qualify current ASEC dividends and survivor property routes
MaxGhenis Sep 12, 2026
d20f25c
Connect joint property income draws to signed graph reconciliation
MaxGhenis Sep 12, 2026
f62c30f
Integrate reviewed fiscal leaf policy declarations
MaxGhenis Sep 12, 2026
2fc88c8
Bind delegated QRF implementation to property fit cache identity
MaxGhenis Sep 12, 2026
9a369a8
Harden ASEC amount metadata and domain agreement
MaxGhenis Sep 12, 2026
e2e38a3
Format the property graph regression imports
MaxGhenis Sep 12, 2026
bedc427
Integrate reviewed child support and immutable source domains
MaxGhenis Sep 12, 2026
749ca90
Integrate reviewed property income graph and cache repair
MaxGhenis Sep 12, 2026
68f49d5
Integrate qualified ASEC dividend and visible survivor routes
MaxGhenis Sep 12, 2026
80fcc7d
Build pure ASEC property donor basis and exclusion diagnostics
MaxGhenis Sep 12, 2026
bc278d9
Exclude unqualified extra survivor sources from property donors
MaxGhenis Sep 12, 2026
48507e8
Classify reviewed property and fiscal source boundaries
MaxGhenis Sep 12, 2026
a0895ec
Compose qualified original survey property income branches
MaxGhenis Sep 12, 2026
200a4fd
Record integrated property source and graph verification
MaxGhenis Sep 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Preserve exact unified-diff context markers in the archived measured experiment.
experiments/us-acs-code-memo-not-adopted-20260910.patch -whitespace
106 changes: 104 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ["3.13", "3.14"]
python-version: ["3.13", "3.14.4"]
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v6
Expand All @@ -220,6 +220,70 @@ jobs:
mapfile -t files < <(uv run --no-sync python tools/ci_test_groups.py --list shared-spec)
/usr/bin/time -v uv run --no-sync pytest "${files[@]}" -p no:cacheprovider

spec-seed-diagnostics:
# Produce bounded diagnosis immediately, independently of the full suite.
# This remains required by ci-ok and never updates assertion goldens.
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v6
with:
python-version: "3.14.4"
- name: Sync workspace with US and UK engines
run: uv sync --all-packages --locked --extra us --extra uk
- name: Check diagnostic bootstrap and failure reporting
timeout-minutes: 2
env:
PYTHONDONTWRITEBYTECODE: "1"
PYTEST_DISABLE_PLUGIN_AUTOLOAD: "1"
run: >-
uv run --no-sync pytest --noconftest -p no:cacheprovider -q
packages/microcosm-build/tests/test_spec_seed_identity_cpu_bootstrap.py
packages/microcosm-build/tests/test_spec_seed_identity_outer_failure.py
packages/microcosm-build/tests/test_spec_seed_identity_owned_temp.py
packages/microcosm-build/tests/test_spec_seed_identity_system_metadata.py
packages/microcosm-build/tests/test_spec_seed_identity_per_code_context.py
- name: Derive candidate spec and seed identities (diagnostic only)
id: spec_seed_diagnostics
timeout-minutes: 15
env:
DIAG_WORKFLOW_SHA: ${{ github.workflow_sha }}
DIAG_PR_HEAD_SHA: ${{ github.event.pull_request.head.sha }}
DIAG_PR_BASE_SHA: ${{ github.event.pull_request.base.sha }}
DIAG_MERGE_SHA: ${{ github.event.pull_request.merge_commit_sha }}
PYTHONDONTWRITEBYTECODE: "1"
PYTEST_DISABLE_PLUGIN_AUTOLOAD: "1"
OMP_NUM_THREADS: "1"
OPENBLAS_NUM_THREADS: "1"
MKL_NUM_THREADS: "1"
VECLIB_MAXIMUM_THREADS: "1"
NUMEXPR_NUM_THREADS: "1"
BLIS_NUM_THREADS: "1"
POPULACE_FIT_N_JOBS: "1"
POPULACE_FIT_PREDICT_WORKERS: "1"
run: |
DIAG_CHECKOUT_SHA="$(git rev-parse --verify HEAD)"
DIAG_UV_VERSION="$(uv --version)"
export DIAG_CHECKOUT_SHA DIAG_UV_VERSION
uv run --no-sync python tools/spec_seed_identity_diagnostics.py \
--output-dir "$RUNNER_TEMP/spec-seed-diagnostics"
- name: Retain bounded candidate identity evidence
if: ${{ always() && steps.spec_seed_diagnostics.outcome != 'skipped' }}
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: spec-seed-diagnostics-${{ github.run_id }}-${{ github.run_attempt }}-py3.14.4
path: |
${{ runner.temp }}/spec-seed-diagnostics/candidate-digests.json
${{ runner.temp }}/spec-seed-diagnostics/seed-protocol.json
${{ runner.temp }}/spec-seed-diagnostics/seed-map.json
${{ runner.temp }}/spec-seed-diagnostics/seed-bindings.json
${{ runner.temp }}/spec-seed-diagnostics/environment-and-source.json
${{ runner.temp }}/spec-seed-diagnostics/diagnostic-status.json
if-no-files-found: error
retention-days: 3
compression-level: 0
include-hidden-files: false

engine-us:
needs: changes
if: github.event_name == 'push' || needs.changes.outputs.us == 'true' || needs.changes.outputs.shared == 'true'
Expand Down Expand Up @@ -336,6 +400,43 @@ jobs:
PY
- name: Spec identity section digests (cross-environment diffing aid)
run: env -u PYTHONPATH /tmp/wheels-venv/bin/python -I tools/spec_envelope_digests.py be uk
- name: Add the engine-free US extra the source runtimes require
# microunit is microcosm-frame's `us` extra: the sanctioned tax-unit
# constructor, and the only optional dependency the US source runtimes
# need without a country engine. Every ACS/CREATE stage names it in
# us_runtime.graph_implementation.STAGE_DEPENDENCIES, so an installed
# constellation without it cannot hash those stages: the suite then
# fails closed (SOURCE_PREPARATION_REFUSED / CATALOGUE_ISSUANCE_REFUSED)
# instead of skipping, which is a false packaging verdict.
#
# This runs after the boundary check above, so that check still proves
# the base wheels import with no optional dependency installed at all.
# Requesting the extra against the built wheel — rather than naming
# `microunit` here — keeps the extra declared only in
# packages/microcosm-frame/pyproject.toml and makes this gate prove the
# wheel carries resolvable extra metadata. policyengine-us stays absent:
# it is declared by microcosm-build[us] and microcosm-frame[policyengine],
# and neither is requested.
run: |
frame_wheel="$(ls dist/microcosm_frame-*.whl)"
uv pip install --python /tmp/wheels-venv/bin/python \
--constraint /tmp/wheel-constraints.txt \
"microcosm-frame[us] @ file://$(realpath "$frame_wheel")"
env -u PYTHONPATH /tmp/wheels-venv/bin/python -I - <<'PY'
from importlib import metadata, util

assert util.find_spec("microunit") is not None, (
"microcosm-frame[us] must install microunit into the wheel venv"
)
assert util.find_spec("policyengine_us") is None
try:
metadata.distribution("policyengine-us")
except metadata.PackageNotFoundError:
pass
else:
raise AssertionError("policyengine-us must be absent from the base wheel gate")
print("microunit", metadata.version("microunit"))
PY
- name: Run the suite against the installed wheels
run: |
/usr/bin/time -v env -u PYTHONPATH /tmp/wheels-venv/bin/python -I -m pytest \
Expand All @@ -350,7 +451,7 @@ jobs:
# dependency-skip lets a failed `changes` take the engine lanes down without
# any required check going red: a lane skip is accepted only when
# classification itself succeeded.
needs: [changes, lint, fast, engine-shared, engine-us, engine-uk, wheels]
needs: [changes, lint, fast, engine-shared, spec-seed-diagnostics, engine-us, engine-uk, wheels]
if: always()
runs-on: ubuntu-latest
steps:
Expand All @@ -365,6 +466,7 @@ jobs:
require_success lint "${{ needs.lint.result }}"
require_success fast "${{ needs.fast.result }}"
require_success engine-shared "${{ needs['engine-shared'].result }}"
require_success spec-seed-diagnostics "${{ needs['spec-seed-diagnostics'].result }}"
require_success wheels "${{ needs.wheels.result }}"
for lane in "engine-us:${{ needs['engine-us'].result }}" "engine-uk:${{ needs['engine-uk'].result }}"; do
name="${lane%%:*}"; result="${lane#*:}"
Expand Down
6 changes: 6 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,12 @@ shard's real wheel, install into a clean uv-export-constrained venv, assert
the wheel/import boundary and spec digests, and run the suite against installed
wheels.

The shared engine lane also runs a bounded source/seed identity diagnostic on
Python 3.14.4 after its normal tests, including when those tests fail. Its six
JSON artifacts retain candidate digests and their complete canonical seed
records for review. They never replace the test assertions or certify coverage;
review the captured source and dependency identities before updating any pins.

New commits to a PR cancel older unfinished CI runs for that same PR.
Each main-push run has a unique concurrency group, so all main-push runs
remain independent and can finish validating their merged changes.
Expand Down
145 changes: 145 additions & 0 deletions PROGRESS-908-target-snapshot-fixes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
# microcosm#908 — closing the four reviewed findings on the snapshot slice

Lane journal for branch `calibration-target-snapshots-908-fixes-20260912`.
Journals are history, not state (see CLAUDE.md): check git/GitHub for current truth.

Historical note, 12 September 2026: this journal records the earlier repair
lane. The lane closed at `9a325c8b0`; root independently repaired the remaining
strict-null codec case in `b8380c475`, with 52 tests passing. Current scope and
remaining integration work are in [the maintained guide](docs/calibration-target-snapshots.md).
The earlier work-in-progress and not-pushed statements below are historical.

## State

Merged the completed slice (`bae1887ff`) onto `origin/main` `116d46ee9`, resolved
the four overlapping spec-engine identity pins by recomputing them on the merge
ref, and am now implementing the four reviewed findings. Not pushed, no PR.

## Review basis

`908-final-review-review-full-report.md` (head `bae1887ff`, merge base
`35fc76dd1`) with `probe.py` / `reproductions.json`. Four open findings:

1. **C1** — the aggregate-only claim is enforced by a denylist over arbitrary
nested JSON, so record-level vectors ride through `context` and a
mapping-valued `candidate_id`.
2. **A1** — nested metadata is copied only by `dict(...)`, so a sink mutating a
delivered payload changes the caller's mapping and the next snapshot.
3. **A2** — `_write_chunk` creates the final `history/<n>.json` name before
writing it, so a concurrent reader sees a partial chunk, and a failed write
leaves an invalid immutable chunk behind.
4. **A3** — the public codec admits impossible metadata: `epoch > epochs`, a
non-timestamp `created_at`, a non-string `candidate_id`, and a
`best_retained` whose availability, epoch and loss contradict each other.

## Done

- Merged `bae1887ff` into this branch and recomputed every conflicting
identity pin on the merge ref (table below).
- 14 red regressions in `packages/microcosm-calibrate/tests/test_target_snapshots.py`
(9 of them failing on the reviewed head), then the implementation:
- **C1** — a closed, typed, bounded aggregate metadata contract
(`normalize_metadata`, `normalize_best_retained`, `METADATA_LOCATIONS`,
`MAX_METADATA_*`) applied uniformly to `context`, `search`, `selection`
and `best_retained`, with string-only identifiers checked rather than
coerced. A list is not a scalar, so a record vector has no shape to ride
in at any depth. The record-level key-name rule is kept on top, because a
*scalar* `household_id` is still record-level identity.
- **A1** — every metadata container in a delivered payload is freshly built
from immutable scalars, pinned by a structural test asserting the payload
shares no mutable object with the caller, the observer, the bound view or
the next snapshot.
- **A2** — history chunks are written and `fsync`-ed to a hidden temporary
and then published atomically with `os.link`, which refuses rather than
overwrites an existing immutable chunk. Failed writes clean up their
temporary. Atomic `latest.json`, run ownership, duplicate refusal and
bounded retention are unchanged.
- **A3** — strict public-codec validation of `created_at` (timezone-aware
ISO-8601), identifiers, `epoch <= epochs`, `sequence >= 1`,
`non_finite_rows <= n_targets`, the closed `best_retained` triple's
availability/epoch/loss consistency, and a `selected` snapshot whose epoch
contradicts its own selection receipt — paired with normalization at the
emitting edge so honest nonfinite values still serialize as explicit nulls
and counts and the observer still cannot abort a run.
- `experiments/908_review_findings_recheck.py` replays the review's own four
counterexamples against this branch; receipt in
`experiments/908-review-findings-recheck.json`. All four report closed.

## Deliberately narrow choices

- `context` has **no in-tree producer**. Rather than invent a wider shape for a
caller that does not exist, it takes the same flat scalar contract as the
seams `solve.py` really emits. A caller that needs structure should add a
typed seam and extend the contract, in the PR that adds the caller.
- The metadata bounds (32 entries, 64-character keys, 256-character strings)
are the narrowest values that comfortably hold everything `solve.py` emits.

## Verification (isolated interpreter, no installs, threads=1)

`/Users/maxghenis/PolicyEngine/_worktrees/microcosm-us-launch-verified-lanes-20260910/.venv/bin/python -I -B -S`
with this worktree's shard `src` roots ahead of that venv's site-packages and
an import-path assertion, `OMP/MKL/OPENBLAS/NUMEXPR/VECLIB_NUM_THREADS=1`.

| battery | result |
| --- | --- |
| `packages/microcosm-calibrate/tests` | 307 passed (12 s) |
| `packages/microcosm-fit/tests` | 124 passed (13 s) — main's QRF pins intact |
| `test_spec_engine_loader.py` + `test_us_multispine_pool_tool.py` | 197 passed (309 s) |
| `packages/microcosm-build/tests -k "inventory or coverage or seed"` | 448 passed, 2 skipped (343 s) |
| `packages/microcosm-graph/tests -k parity` | 25 passed (88 s) |
| `tools/spec_engine_coverage.py --check` | 42156/42156 fields, 41/41 inventory |
| `tools/ci_test_groups.py --verify` | `verification=ok`; the snapshot test file lands in fast `rest` / engine `us-am`, never `[defaulted]` |
| `ruff check .` | clean; `ruff format --check` clean on both touched files |

`test_target_snapshots.py` holds 52 tests, 16 of them new here and 2 existing
ones updated to the closed contract's refusal points. Replaying the whole file
against the reviewed head's `target_snapshots.py` (the only source that
differs) gives **12 failed, 40 passed** — 10 new red regressions plus the 2
updated tests. Every finding has at least one red regression:

- **C1** — `test_context_refuses_the_record_vectors_the_review_smuggled_through`,
`test_metadata_refuses_arbitrary_nested_payloads`,
`test_identifier_fields_must_be_strings`,
`test_supported_scalar_metadata_survives_and_is_bounded`.
- **A1** — `test_metadata_refuses_arbitrary_nested_payloads` is the review's
own aliasing counterexample; the detachment invariant itself is pinned by
`test_a_delivered_snapshot_shares_no_mutable_object_with_its_caller` and
`test_sink_mutation_cannot_reach_caller_metadata_or_the_next_snapshot`,
which pass on both heads because the flat case was never the defect.
- **A2** — `test_a_history_chunk_is_published_only_after_its_bytes_are_complete`,
`test_a_failed_chunk_write_leaves_no_partial_or_leftover_file`.
- **A3** — `test_codec_refuses_the_impossible_payloads_the_review_reproduced`,
`test_non_finite_diagnostics_stay_null_statuses_rather_than_aborting`,
`test_the_codec_is_stricter_than_the_emitting_edge_and_says_so`,
`test_created_at_is_a_timezone_aware_timestamp`.

The remaining 6 new tests are preservation tests (the structured metadata
`solve.py` really emits, the epochs the solver really selects, duplicate chunk
refusal, and observer-off/observer-on weight parity on the L0, budget-search,
refit and proximal paths); they pass on both heads by design.

## Next

- Independent re-review by main before integration/PR updates.

## Identity pins recomputed on the merge ref

`microcosm.calibrate.solve` is attested (`_DIRECT_KERNEL_MODULES`); main's #912
edited the attested `microcosm.fit.qrf`, so both sides' pins were stale and the
merge conflicted on all four. Each was recomputed on the merged tree, after
first proving with the same interpreter that restoring **main's** `solve.py`
into the merged tree reproduces **main's** committed pins exactly — so the
drift is attributable to the slice's `solve.py` edit, not to an environment
leak.

| pin | main `116d46ee9` | slice `bae1887ff` | merged |
| --- | --- | --- | --- |
| `EXPECTED_HASHES["seed_protocol"]` | `553d5e0b…` | `f4dc507c…` | `d052fd87…` |
| `EXPECTED_HASHES["seed_map"]` | `20058e54…` | `32dea304…` | `d5a9694a…` |
| US resolved-spec `spec_sha256` | `1eeca53a…` | `35a3623b…` | `ff2c9703…` |
| minimal-spec loader golden | `b4659890…` | `a67bb78c…` | `8a240898…` |

`docs/evidence/spec-engine/us-f0-coverage.json` was regenerated with
`tools/spec_engine_coverage.py` (42156/42156 fields, 41/41 inventory checks).
The graph `calibrate.adam@1` parity pin merged cleanly and re-verified green
(25 parity tests). `fit.qrf` and `simulate` pins are untouched.
Loading
Loading