Repository navigation
Verification: an OMP update alone keeps it current; verify again only when OMP no longer publishes a routed model - #270
Merged
Conversation
… when OMP no longer publishes a routed model
…ule; the browser proof, words and docs follow the new freshness rule
…d the evidence says the republish is synthetic
Owner
Author
Verdict: passHead
|
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.
Problem
A verified model list went stale (
omp-changed) whenever the destination's OMP runtime artifact or OMP's bundled catalog revision moved, and the workbench then refused to save or launch until a paid re-verification ran. Every OMP update on a machine therefore asked every workspace on it to verify again, even when the catalog, the accounts and every routed model were unchanged. The session door never depended on that: it refuses only a routed model the present OMP does not publish (code_model_unpublished).Observed on the preview: a workspace verified under OMP 18.8.6 read "OMP changed since models were verified. Verify again." Its catalog revision and accounts were unchanged and both routed models were still published; only the destination's runtime artifact had moved.
Change
domain/routing.ts:routedModels(catalog, routes)(leads and fallbacks, each once) andunpublishedModels(routed, published)(by provider and id together, each once, sorted) are the one rule.composeSessionnow uses them forcode_model_unpublished; its behaviour is unchanged.generator/verification.ts:verificationStatetakesunpublished, and the statusunpublishedreplacesomp-changed. An OMP update alone (another artifact, or another catalog revision that still publishes every routed model) leaves the verificationcurrent, withchanges.runtimeChanged/catalogChangednoting it. A dropped routed model outranks an account change.VerificationState.observedis removed; nothing read it.generator/model-verification.ts: readsreadModelCatalogfor the routed providers only once the catalog revision moved past the recorded one, which publishes every model the verification laddered. The answer is judged only when it is for that same revision. The read fails open to the session door's re-check, and the docs say so.generator/workbench-model.ts: the routed models are the local review's. It does not prune unserved fallbacks as the door does, because a verified list's provider that no account serves has changed the pool, which already asks to verify again.verified 1h ago · OMP updated sinceafter an update the routes survived. When a routed model was dropped, the head readsOMP dropped 1 model since verifiedand the verify step names the model (OMP dropped sol).workflow.ts: words forcode_model_unpublished.failureWordskeeps a detail as written after words that end in a colon, so a model address is not capitalised.scripts/verify-browser.ts: the OMP upgrade phase now asserts the new rule in both directions.docs/configuration.mdanddocs/status.mdstate the rule and its evidence.Account changes and unverified lists still verify first. No contract, schema, manifest, persisted format, door input or output, or OMP dependency changes.
Evidence
Head
b70e3dba448f59a6eef5c8226df0f1a9b4fe40ca, on main94c6d44ad3(#269).scripts/gate.shwith Bun 1.4.2 beside the pinned Manifold checkout, exit 0. It ran frozen installs, exact OMP preparation,tsc, 429 tests, the four Code bundles, the isolated packed consumer, the real browser verifier (PASS (412s)) and the native phase. The native results wereatyrode.ompstandalone-native-and-packaged-worker-boundariesandatyrode.codecode-omp-native-model-tools.Bundles at this head:
atyrode.code7f34759c10a445590fa4831c98bea010108d59e20f3ef2a5c6800529d1f50225atyrode.code.accounts419fc1971898c1fb10662d0c6c2300118f73f2ce3f390d03227e1d8031bb6413atyrode.code.generator22a239624bc502e97094f1dfaea19698d0a61b568a7fcea884db97ab35c24f40atyrode.code.usage1a0aa1824f3e3f24e6d0c7d622d7418fd022a3f5637ba3a6403bf6cbfb2b70ecRegression:
an OMP update the routed models survive keeps the verification current, so the launch goes on without verifying(test/verification.test.ts) fails under main's rule, which returnsomp-changedand makesverifythe next step.The workflow test runs a real fixture verification over an OMP that publishes its inventory's models. Moving the runtime artifact keeps it
current; a republish that keeps every model givescurrentwithcatalogChanged; dropping Claude Opus givesunpublished: ["anthropic/claude-opus-5"].domain/catalog-routing.test.ts: a fallback-only model (the audit advisor'sa2) dropped from the published list is named once.Real browser (gate): on a verified list's destination, a runtime-only upgrade keeps the launch the step, and Models reads
… · OMP updated since. The catalog republished without the default lead makesverify modelsthe ready step, and Models names it (OMP dropped <alias>). Nothing is saved.Design lab (this branch's packed Code bundles, the pinned OMP bundles, a disposable server, Chromium), scenarios
omp-updatedandomp-dropped:10 models · verified 59m ago · OMP updated since, and a warning withOMP dropped retired(the lab's renamed id).Preview, read-only: the rule applied to the preview workspace's live reads (destination pins, catalog revision, account pool; owner dispatch, nothing written) gives
current, withruntimeChanged: true,catalogChanged: falseandunpublished: []; the next step is review.Current-head CI at
b70e3dba44:test(run 38228923272),plugins / verify(run 38228923897, including the real browser verifier and the composed native proof) andagent-policy(run 38228924185) passed.Acceptance