Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
651501e
Bind UK gate signing to a committed key registry
MaxGhenis Oct 22, 2026
a093b36
Give the national-build tests the test signing key
MaxGhenis Oct 22, 2026
fee05bd
Add a one-command, resumable UK cut runner with pinned inputs
MaxGhenis Oct 22, 2026
a1790ef
Script the policyengine.py certification handoff for a UK cut
MaxGhenis Oct 22, 2026
762c6e4
Document building a UK cut without the original builder's machine
MaxGhenis Oct 22, 2026
ac0a14d
Point the agent guide's release boundary at the UK cut runner
MaxGhenis Oct 22, 2026
1e4d31d
Allow the UK cut inputs manifest to name the gated data repository
MaxGhenis Oct 22, 2026
f89d22f
Allow the UK cut doc to name the upload destination
MaxGhenis Oct 22, 2026
8f611bd
Measure what area runs lose on an accepted regional mismatch
MaxGhenis Oct 22, 2026
bd53acb
Report pytest preflight checks by exit code and failing ids
MaxGhenis Oct 22, 2026
46d34ce
Bind the legacy schema-3 trust root to the key registry too
MaxGhenis Oct 22, 2026
5c5b47d
Move hosted inputs into place, and rerun a failed national dry run
MaxGhenis Oct 22, 2026
ea985e5
Add a Modal path for the UK cut runner
MaxGhenis Oct 22, 2026
bedd04e
Merge remote-tracking branch 'origin/main' into uk-cut-anyone
MaxGhenis Oct 22, 2026
61e25de
Pin the hosted Chronicle UK artifact
MaxGhenis Oct 22, 2026
bbe90ae
Make UK certification stackable, timed and fail closed on operational…
Oct 23, 2026
3fccb97
Expose timed preflight and stream long-running certification logs
Oct 23, 2026
ac0d747
Label certification handoff qualification pending and allow stacked P…
Oct 23, 2026
c64c0d4
Probe country input registry once at exact model and core versions
Oct 23, 2026
10ae2be
Avoid unrelated country initialization in constant rewrite and UC floor
Oct 23, 2026
f1114e5
Report measured UC floor status and request acceptance only for failures
Oct 23, 2026
ed8e730
Preserve upstream handoff coverage and discover rehearsal regressions…
Oct 23, 2026
ca29a1c
Adapt upstream fixtures to measured UC and immutable exact-pair inter…
Oct 23, 2026
97e4e1b
Expose full-suite test identities and slowest durations in streamed logs
Oct 23, 2026
f362667
Dump nonfatal worker tracebacks when full-suite tests exceed five min…
Oct 23, 2026
fa2a8c3
Refuse full-suite fixtures nested inside a Git repository before heav…
Oct 23, 2026
e00c055
Resume unfinished certification worktrees and stage only generated ar…
Oct 23, 2026
555fd2f
Report pytest startup stalls through original stderr without terminat…
Oct 23, 2026
4f5e80d
Fit the rehearsal patches to the repo's lint and to other hosts
MaxGhenis Oct 23, 2026
8554039
Measure the regional loss on the regional file's own columns
MaxGhenis Oct 23, 2026
300ce55
Keep failed attempts' evidence, resolve paths, bind stage 1, harden t…
MaxGhenis Oct 23, 2026
252c168
Register the team UK gate signing key (hold for María's agreement)
MaxGhenis Oct 22, 2026
34daa6d
Name Max Ghenis as the team signing key's custodian
juaristi22 Oct 26, 2026
96a9314
Pin the hosted NTS 2002-2024 and LCFS 2024-25 archives
juaristi22 Oct 26, 2026
b769292
Read the Chronicle artifact's Hub path from the feed pin
juaristi22 Oct 26, 2026
ef82ec8
Merge origin/main into the UK cut takeover
juaristi22 Oct 26, 2026
5e1650a
Keep the runner's national build off the Orrery
juaristi22 Oct 26, 2026
c212517
Chain the runner's certification on the national build's Logbook row
juaristi22 Oct 26, 2026
fc288e1
Import the UK gate signing key variable instead of copying it
juaristi22 Oct 26, 2026
810b2ec
Resume a UK cut only under the key that signed it
juaristi22 Oct 26, 2026
97bd378
Make the UK cut runner's host reservation check opt-in
juaristi22 Oct 26, 2026
ee91651
Take the certifier's host limits and policyengine.py clone from the o…
juaristi22 Oct 26, 2026
c28cd37
Catch every branch already certifying a UK cut
juaristi22 Oct 26, 2026
ad73a94
Refuse any incomplete UC floor receipt instead of crashing on it
juaristi22 Oct 26, 2026
61e20cb
Credit only the certification's own authors in its commit and PR body
juaristi22 Oct 26, 2026
1e54fa8
Repair the inputs table that the NTS and LCFS doc edit garbled
juaristi22 Oct 26, 2026
6c60399
Bring the UK cut doc and changelog up to date with the takeover
juaristi22 Oct 26, 2026
7a97104
Record that main's Chronicle artifact is hosted for the runner
juaristi22 Oct 26, 2026
c550496
Certify an accepted regional mismatch with policyengine.py's audited …
juaristi22 Oct 26, 2026
c3fe8f8
Give the gate signing key only to the steps that sign or verify
juaristi22 Oct 26, 2026
833ea03
Store a new gate signing key without ever printing it
juaristi22 Oct 26, 2026
89f513c
Send Modal the cut's credentials only on a deliberate run
juaristi22 Oct 26, 2026
9cddb43
Say what the UK cut signature, Modal and the input repositories expose
juaristi22 Oct 26, 2026
1de1e06
Point the signing-key limits at the Ed25519 follow-up (microcosm#1406)
juaristi22 Oct 26, 2026
74721a9
Refuse unreadable mismatch text before any certification work
juaristi22 Oct 26, 2026
c2c9d0a
Never let key generation overwrite a stored signing key
juaristi22 Oct 26, 2026
cb39f2c
Send the Chronicle rebuild's Hugging Face token only on a deliberate …
juaristi22 Oct 26, 2026
7eb54e8
Keep Hugging Face tokens out of the certifier's package installs
juaristi22 Oct 26, 2026
928874f
Register Vahid Ahmadi's UK gate signing key
juaristi22 Oct 26, 2026
17e8147
Merge origin/main into the UK cut takeover
juaristi22 Oct 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/uk-cut-modal.added.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
`tools/modal_uk_cut.py` runs the UK cut runner in a Modal container, with its work directory on a Modal volume so a rerun resumes, for when the build machine is busy or asleep.
1 change: 1 addition & 0 deletions changelog.d/uk-cut-pepy-certification.added.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
`tools/certify_uk_cut_in_policyengine_py.py` certifies a published UK cut into policyengine.py on a fresh branch: it refuses when another pull request or branch is already certifying the cut, checks the regional route before writing anything, runs certify-data, the lock, TRO, constant and snapshot regeneration and the strict bundle check, measures the UC floor and runs the tests, then drafts the pull request with every judgment call left as a checklist. An accepted regional model mismatch certifies with policyengine.py's audited input-surface evidence (policyengine.py#699). Its load limit, commit co-authors and pull request footer are the operator's to set.
1 change: 1 addition & 0 deletions changelog.d/uk-cut-runner.added.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
`tools/run_uk_cut.py` builds, signs and assembles a Microcosm UK national cut in one resumable command, fetching every input from Hugging Face by the pins the build already enforces (`tools/uk_cut_inputs.json` says only where each input lives; the Chronicle artifact's path follows `chronicle_feed.json`). It resumes a cut only under the key that signed it, chains the certification's Logbook row on the build's own row, and never submits an Orrery publication. `tools/modal_rebuild_uk_chronicle_artifact.py` rebuilds the pinned Chronicle UK consumer artifact on Modal and hosts it privately.
1 change: 1 addition & 0 deletions changelog.d/uk-gate-signing-key-registry.added.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
UK gate reports, release-cut certifications and dense gate reports now verify only under a signing key registered in `microcosm.data.gate_signing_keys`, and every UK signer refuses an unregistered or retired key. The national build checks its key before loading any input, instead of failing after the solve. `python -m microcosm.data.gate_signing_keys check` reports whether the key in the environment may sign.
1 change: 1 addition & 0 deletions changelog.d/uk-gate-team-signing-key.added.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Register a second UK gate signing key, `uk-gate-team-2026`, held by Max Ghenis in the agent store on his build Mac, so cuts can be built and signed without the first builder's key. The key that signed every earlier cut stays active.
1 change: 1 addition & 0 deletions changelog.d/uk-gate-vahid-signing-key.added.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Register a third UK gate signing key, `uk-gate-vahid-ahmadi-2026`, held by Vahid Ahmadi in his laptop's login keychain, so he can build and sign a cut.
41 changes: 41 additions & 0 deletions conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -130,3 +130,44 @@ def unexpected_start(*args, **options):
yield emitters
for emitter in emitters:
emitter.close()


@pytest.fixture(autouse=True)
def _admit_test_gate_signing_keys(request, monkeypatch):
"""Let tests sign with their own UK gate keys.

Production verifies only keys registered in
``microcosm.data.gate_signing_keys``. Tests sign with throwaway keys, so
every unregistered key counts as an active test key here, while the
committed entries keep their real status. A test marked
``committed_gate_key_registry`` sees the committed registry unchanged.
"""

if request.node.get_closest_marker("committed_gate_key_registry"):
return
try:
from microcosm.data import gate_signing_keys
except ImportError:
return
committed = gate_signing_keys._registry

class _AdmitTestKeys(dict):
def __missing__(self, key_sha256):
return gate_signing_keys.GateSigningKey(
key_sha256=key_sha256,
label="test-key",
status="active",
custodian="the test suite",
held_in="the test",
registered="test",
evidence="admitted by the root conftest",
)

def get(self, key_sha256, default=None):
return self[key_sha256]

def registry(country):
entries = committed(country)
return None if entries is None else _AdmitTestKeys(entries)

monkeypatch.setattr(gate_signing_keys, "_registry", registry)
5 changes: 4 additions & 1 deletion docs/agent-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,10 @@ grades every waiver register on the staged frame before the solve; see README
"Dry-running the release's registers". Publication also refuses a
release whose build recorded staging telemetry that never reached its repo
(`--allow-missing-staging` overrides); a build that declared `--no-staging`
publishes without the flag. Never publish or promote artifacts as a side
publishes without the flag. A UK national cut runs end to end with
`tools/run_uk_cut.py` ([uk-cut-anyone.md](uk-cut-anyone.md)): inputs fetched
by pin, a signing key registered in `microcosm.data.gate_signing_keys`, and
an inspection-only `--publish`. Never publish or promote artifacts as a side
effect of another task. A UK rowwise run's **staged** bundle
(`staged/<run_id>/` in the private repository, written by the build itself)
is inspection evidence, not a release: it never moves `releases/` or
Expand Down
Loading
Loading