Repository navigation
foundation: report currency age and check model-route references - #1201
Open
seathatflowsinourveins wants to merge 6 commits into
Open
seathatflowsinourveins wants to merge 6 commits into
seathatflowsinourveins wants to merge 6 commits into
Conversation
This was referenced Oct 16, 2026
seathatflowsinourveins
added a commit
that referenced
this pull request
Oct 17, 2026
…rance record Fold for the Claude-family read of 46fd06a (CHANGES_REQUESTED) and the CC's rulings posted on #1237 (issuecomment-6228929765), now cited in the record as its locator for "CC ruling N". 1. Dependabot's 7-day cooldown (.github/dependabot.yml:40-43) is listed under Kept as our own named supply-chain control, longer than Dependabot's 3-day default (GitHub's options reference), untouched. 2. Dates stay as the first fold set them. 3. A newer release a daily run finds triggers its layer's targeted sweep at once; a FINAL layer still reopens only through that sweep (protocol :62-63, unchanged). 4. Enforcement 3: the CC's review fails a change that introduces, re-records, or touches and leaves stale a pin; a change that touches no pin is not held for it. 5. Release watches: waiting ends only for the selection in use; NautilusTrader 2.0.0rc5 moves to v2.0.0rc7 through the trading lane's screen and the foundation re-pin (Q-NT1); Lumibot stays a reviewed candidate; the alpaca-mcp-server trigger stays; cites :37-43. 6. New section "The existing age failure": the record endorses #1201, which turns the age failure into a notice; until it lands, the daily runs keep each landscape_check fresh. 7. P3s: model-currency.md ranges narrowed to :15 (first clause) and :119-120; "normal pace" and the inserted "only" dropped; the 2026-09-30 line (:151-152) added; currency_due.py:116,119 cited; the 2026-10-15 record's own account (:4,48-49) replaces "failed every pull request"; the 2026-10-07 record quoted exactly (:56-57, :10); merge-options.adoc cited at :79-81 alone; the new WSL install claim replaced by the lifecycle install commands (:246-251). The record's manifests/evidence.json entry is re-registered through scripts/host_receipts.py register_file. Co-Authored-By: Claude Opus 5.5 <[email protected]>
seathatflowsinourveins
added a commit
that referenced
this pull request
Oct 17, 2026
Fold for the CC's 2026-10-17 ruling on the pending-age note in #1237: the 2026-10-15 direction covers every date-compared failure inside the required check. The section "The existing age failure" becomes "The existing date-compared failures" and names both known instances with their lines: - the model-currency age failure (scripts/validate.py:73-75,246-248), which PR #1201 converts to a notice; until it lands, the daily runs keep each landscape_check fresh; - validate_pending_age (scripts/validate.py:698-701, scripts/public_starred.py:139-155), which needs the same conversion in a follow-up PR owned by the public-starred maintainers; until that lands, the starred refresh keeps PENDING entries inside their window, each dispositioned within seven days of its first observation, since a refresh keeps the first observation (scripts/public_starred.py:142). No code change. The record's manifests/evidence.json entry is re-registered through scripts/host_receipts.py register_file. Co-Authored-By: Claude Opus 5.5 <[email protected]>
seathatflowsinourveins
added a commit
that referenced
this pull request
Oct 17, 2026
…e record Fold 4 for the Claude-family delta read of bf2b476 (CHANGES_REQUESTED) and the CC's comments on #1237. - P2: ruling 8 in its own order. Each PENDING entry is dispositioned within seven days of its first observation; a refresh alone cannot keep it inside the window, because the refresh keeps each row's first observation (scripts/public_starred.py:142; also :254-259 and :319). - P3: ruling 8 cited by its locator, issuecomment-6229313250, as "CC ruling 8". - P3: the required validate check needs every shard 0..7 (.github/workflows/validate.yml:26,454,476-480); "two are known" is scoped to scripts/validate.py and the modules it imports. - P3: ruling 6 as corrected by issuecomment-6229421934: until #1201 lands, each landscape_check is renewed by its lane's refresh, which the daily run prompts on day five (docs/model-currency.md:108-112). - P3: the base line names its exception: the PR #1201 citations are at its head 459bf4f. The record's manifests/evidence.json entry is re-registered through scripts/host_receipts.py register_file. Not pushed: a read of bf2b476 is still running. Co-Authored-By: Claude Opus 5.5 <[email protected]>
seathatflowsinourveins
added a commit
that referenced
this pull request
Oct 17, 2026
…tories (#1237) * docs(decisions): record zero tolerance for stale models, runtimes and repositories Draft decision record for the CC's review, on the owner's direction of 2026-10-17 (paraphrased, not quoted). A stale verdict now starts replacement work at once (the successor through the layer's screen, a smoke test, a measured trial, the switch, then removal with the inverse recorded) instead of ending at a proposal or a notice. It supersedes the proposal-only reading of docs/model-currency.md, normal review pace for a known successor, a same-publisher search as a pick's landscape, release watches that wait, and release age as a reason to keep an older pick. It keeps the 42-day/7-day rule in scripts/validate.py as is and adds no CI gate. The record is registered in manifests/evidence.json through scripts/host_receipts.py register_file. Co-Authored-By: Claude Opus 5.5 <[email protected]> * docs(decisions): apply the CC's review rulings to the zero-tolerance record Fold for the CC's 2026-10-17 rulings on #1237. Cooldown scope narrowed: each upstream's own documented cooldown and supply-chain gates stay (Dependabot's cooldown, a tool's minimum release age such as mise's minimum_release_age, the lanes' security and integrity gates). Inside such a window the pick is the newest release past it, and a security fix that exists only in the newer release overrides it. The record ends release age as a reason to keep an older pick beyond the upstream's window, including an age buffer of our own such as the 2026-09-25 seven-day tool cooldown where it is longer. Dates: each point is dated by the day the owner gave it (paraphrased): the no-new-mechanical-gate point 2026-10-15, the no-stale-pick and newer-release-fit points 2026-10-16, zero tolerance with immediate replacement 2026-10-17. The record's manifests/evidence.json entry is re-registered through scripts/host_receipts.py register_file. Co-Authored-By: Claude Opus 5.5 <[email protected]> * docs(decisions): apply the CC's second-round rulings to the zero-tolerance record Fold for the Claude-family read of 46fd06a (CHANGES_REQUESTED) and the CC's rulings posted on #1237 (issuecomment-6228929765), now cited in the record as its locator for "CC ruling N". 1. Dependabot's 7-day cooldown (.github/dependabot.yml:40-43) is listed under Kept as our own named supply-chain control, longer than Dependabot's 3-day default (GitHub's options reference), untouched. 2. Dates stay as the first fold set them. 3. A newer release a daily run finds triggers its layer's targeted sweep at once; a FINAL layer still reopens only through that sweep (protocol :62-63, unchanged). 4. Enforcement 3: the CC's review fails a change that introduces, re-records, or touches and leaves stale a pin; a change that touches no pin is not held for it. 5. Release watches: waiting ends only for the selection in use; NautilusTrader 2.0.0rc5 moves to v2.0.0rc7 through the trading lane's screen and the foundation re-pin (Q-NT1); Lumibot stays a reviewed candidate; the alpaca-mcp-server trigger stays; cites :37-43. 6. New section "The existing age failure": the record endorses #1201, which turns the age failure into a notice; until it lands, the daily runs keep each landscape_check fresh. 7. P3s: model-currency.md ranges narrowed to :15 (first clause) and :119-120; "normal pace" and the inserted "only" dropped; the 2026-09-30 line (:151-152) added; currency_due.py:116,119 cited; the 2026-10-15 record's own account (:4,48-49) replaces "failed every pull request"; the 2026-10-07 record quoted exactly (:56-57, :10); merge-options.adoc cited at :79-81 alone; the new WSL install claim replaced by the lifecycle install commands (:246-251). The record's manifests/evidence.json entry is re-registered through scripts/host_receipts.py register_file. Co-Authored-By: Claude Opus 5.5 <[email protected]> * docs(decisions): name both date-compared failures in the required check Fold for the CC's 2026-10-17 ruling on the pending-age note in #1237: the 2026-10-15 direction covers every date-compared failure inside the required check. The section "The existing age failure" becomes "The existing date-compared failures" and names both known instances with their lines: - the model-currency age failure (scripts/validate.py:73-75,246-248), which PR #1201 converts to a notice; until it lands, the daily runs keep each landscape_check fresh; - validate_pending_age (scripts/validate.py:698-701, scripts/public_starred.py:139-155), which needs the same conversion in a follow-up PR owned by the public-starred maintainers; until that lands, the starred refresh keeps PENDING entries inside their window, each dispositioned within seven days of its first observation, since a refresh keeps the first observation (scripts/public_starred.py:142). No code change. The record's manifests/evidence.json entry is re-registered through scripts/host_receipts.py register_file. Co-Authored-By: Claude Opus 5.5 <[email protected]> * docs(decisions): apply the delta read of bf2b476 to the zero-tolerance record Fold 4 for the Claude-family delta read of bf2b476 (CHANGES_REQUESTED) and the CC's comments on #1237. - P2: ruling 8 in its own order. Each PENDING entry is dispositioned within seven days of its first observation; a refresh alone cannot keep it inside the window, because the refresh keeps each row's first observation (scripts/public_starred.py:142; also :254-259 and :319). - P3: ruling 8 cited by its locator, issuecomment-6229313250, as "CC ruling 8". - P3: the required validate check needs every shard 0..7 (.github/workflows/validate.yml:26,454,476-480); "two are known" is scoped to scripts/validate.py and the modules it imports. - P3: ruling 6 as corrected by issuecomment-6229421934: until #1201 lands, each landscape_check is renewed by its lane's refresh, which the daily run prompts on day five (docs/model-currency.md:108-112). - P3: the base line names its exception: the PR #1201 citations are at its head 459bf4f. The record's manifests/evidence.json entry is re-registered through scripts/host_receipts.py register_file. Not pushed: a read of bf2b476 is still running. Co-Authored-By: Claude Opus 5.5 <[email protected]> * docs(decisions): write every zero-tolerance locator so a reader resolves it Fold 5 for the Claude-family delta read of the fold-4 head (CHANGES_REQUESTED, one P3); Muse's read of that head passed with no findings. - P3: "which shard 0 runs" now cites .github/workflows/validate.yml:173-178 in full; the bare :173-178 resolved to scripts/validate.py. - The citation check now resolves each bare :N to the last path the text names before it, as a reader does, and requires every resolved range to be a checked entry and every checked entry to be reached. Its first run exposed 13 more locator tokens in six places, fixed here: - the 2026-10-15 record's :4,48-49 (now linked); - the 2026-10-13 record's three re-pin triggers (now linked); - the 2026-09-27 record's holds, :67-84 (now linked); - the protocol's :62-63 and :92-94 in Enforcement 4 (now linked); - the 2026-10-07 record's :56-57 in Alternatives (now linked); - five locators on short unit names, now written with their adoption/templates/systemd/ paths. The record's manifests/evidence.json entry is re-registered through scripts/host_receipts.py register_file. Co-Authored-By: Claude Opus 5.5 <[email protected]> --------- Co-authored-by: Claude Opus 5.5 <[email protected]>
This branch has not been deployed
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.
Scope
The October 15 UTC rollover made nine landscape exceptions eight days old, causing publication failures from elapsed time. This supersedes the October 7 enforcement behavior: age-due model currency is reported with exit 0, remains visible in JSON output and the CI step summary, and persists in the daily
models_past_windownotice. Unreadable or structurally invalid inventories remain visible coverage gaps. Recoverable model findings from the same resolved checkout are carried forward, marked with their origin, alongside newly known due counts. Parser-depth failures also become coverage gaps. The 42-day/seven-day maintenance windows remain; malformed JSON, structural, date-format and source errors still fail publication validation.Model-route candidates also gain explicit inventory references for the carried routes, the GPT-half manifest and C2's merged output. Missing or malformed joins fail consistency validation; an older or otherwise different selected model produces a nonblocking notice.
Adds held inventory rows for GPT-6 Luna, Haiku 5.5, Muse Wonder, Wonder Full and hosted Spark 1.3. The background-Haiku entry becomes a held Haiku 5.5 proposal for normal refresh; this PR applies no runtime setting.
5bab63233ef90260bec4a8ee0cec4f5e4431776c. Combined review round incorporates main at30542e70560147c19049016d19aa3f264515c92f, including merged foundation: retain GPT-only initial model-routes sweep #1177; evidence registrations from both sides are retained.lane:foundation.scripts/validate.py,scripts/currency_due.py, their tests, custody tests, the model-currency guide, dated decisions/evidence and registrations. The edited October 7 decision and two linked records now cite private records by name only.SOTA sources
Primary sources read 2026-10-16.
evidence/artifacts/model-route-currency-consistency-20261016/UPSTREAM-PINS-20261016.jsonindexes dated primary captures in fourUPSTREAM-SRC-*.mdfiles, separate from the findings insources.json. The co-op also has the reproducible public base-validator source copy for independent review.gpt-6-lunarelease on 2026-09-22; current model page.claude-haiku-5-5; current model specification.muse-wonder-1.0and the subscription Full product. The exactmuse-wonder-full-1.0identifier is bound by the published native Muse 1.4.7 fence receipt; gateway availability remains unverified.5bab63233ef90260bec4a8ee0cec4f5e4431776c:scripts/validate.py,tests/test_model_currency.py,tests/test_validate.py. python/cpython v3.13.16 unittest supplies the installed test runner and assertions; no new package or script is introduced.scripts/host_receipts.py:547at that base suppliesnormalize_repository()for equivalent GitHub component identities. The same base'spin_blob_digests()intests/test_provenance_digest_custody.pyis corrected to account for modified checkout paths during a pending merge; its public run pin remains unchanged.c1e30b7676975feb298b49eff6ff58923c04b89e: Codex registry and Muse registry declare the four normalized routing prefixes. This citation establishes names, not availability.GITHUB_STEP_SUMMARY.scripts/starred_protected.py::package_name()at94b4ba5515da5159c3b50d8b7edef40b7c4bbbc2. Exact retained proposal spelling remains the separate coverage key.direction-cc-20261015T1946Z-north-star-new-wsl-takeover.addendum-19.md, item 4, cited by name and paraphrased only. The new decision records the supersession and the old decision links forward to it.Evidence-class table
Local commands run
Fail-first results include the publication age failure, missing step-summary visibility, missing-row join, ignored GPT manifest, omitted C2 table/coverage, removal of the binding declaration and the background proposal. The age-window failure is explicitly superseded by reporting. Structural, date-format, source and malformed-JSON failures remain blocking; the maintenance windows remain 42 and seven days.
Decision record
2026-10-16-model-route-currency-consistency.md.
C2 emits
route-currency.jsonbeside its mergedreturns.json. Every route ID must resolve through the shared registry, its inlinemodel_currency_idmust agree, and its repository must match that registry entry's exact retained route identities and kind. A gateway proposal cannot borrow a model route ID to omit its package row. Component-only proposals may omitroutes; they name apackage_currency_idand match its canonical GitHub/PyPI identity. Their repository identities must cover the retained discovery proposals exactly, without duplicates. The dated decision includes the shape. The existing reviewed halves are consumed without rewriting their votes.The withheld subscription route keeps its rejection and emits a nonblocking difference notice for its non-model placeholder. A reference to the Full inventory row establishes identity only. The Muse fence HOLD and approval requirements remain in force.
Combined review closure
The complete closure table is review-closure.md; independent approval is still the reviewers' gate.
active_models: unknownThe timer prerequisite is met. No timer install or speculative timeout change is part of this round.
Round 3 is one normal commit on
94b4ba5515da5159c3b50d8b7edef40b7c4bbbc2, with no rebase. It folds the two local P2s, the CC micro items and GPT FULL2:handbook-projection.jsonandfill-checks.jsonretain historical residue under addendum-22. Those records were not edited.pr1201-public-upstream: 14 public capture/source/index files plusSHA256SUMS. Any file excluded by packet privacy checks remains a named unmirrored-source gap.F5-G-ACTIVE-MODEL-FAILURE-CATEGORYremains a bounded, nonblocking GAP; no host rerun or timeout attribution.The subsequent small follow-up to
MICRO-delta-1b62f8e7.mdfixes the three-gap notice-budget regression. A fail-first unit case raisedCheckError, and the CLI reproduced exit 2 without writing. Notices now try full gaps, compact named gaps and a gap count with the actual supplied commands/pointers. If no real command fits, only its inline display is omitted; the full command and coverage fields remain in the report. Notice length cannot block collection.The same commit fixes unreadable prior history blocking current known counts, shows retained origins in text, and corrects the preservation wording. It adds seven binding-shape and seven PyPI mismatch negative cases for existing correct guards. Recoverable model findings still carry forward; unreadable history is explicitly unavailable, while current known counts persist. Incomplete runs with no known counts keep the previous file. One normal commit on
1b62f8e7d501846abb974622c89111f6f794ae9b, no rebase.The final dependency-registration commit directly follows
cc308901f327b04cdd47c356d0726b00c88f0f07, with no rebase. It addsscripts/starred_protected.pyto the verdict gate's transitiveTRUST_PATHSinventory and appends a native advisory observation under advisory-gate-deltas.md.GitTree/derive_ci_protectedat the published source pin derives 354 entries, one more than the previous observation. The new item is conservative accounting for the imported module's path-shape helper; the normalizer itself remains a pure string operation. Earlier observations and their baseline bytes are unchanged.Both existing enforced-inventory checks failed first on
cc308901and passed with the registrations. After commit4107f379529411c87e4cd5568d4ee57139a582c3, all 127 owning push-gate tests passed, with no errors or skips, run serially through the stdlib unittest loader/TestResult under idle CPU scope. The held precommit run was 126/127 because its outer-history fixture cloned the old committed index; the committed append resolves that limitation. Required publication validation passed with 12,232 registered files. The new advisory delta records the native derivation and each classification.The next small commit directly on
4107f379529411c87e4cd5568d4ee57139a582c3closes two collector boundaries. Retained findings require the cachedrootto equal the current report's resolved checkout; foreign, missing and malformed cache identities cannot supply findings for another checkout.inventory_duecatchesRecursionError, following the existingread_recordparser handling at that pin (scripts/currency_due.py:287). Two fixture checkouts sharing state and a 200,000-level JSON fixture failed first with three cache assertions and one recursion error. Both new cases and the existing retention controls pass, and all 105 currency tests pass. Raw logs and exit files are retained privately by name, without published digests. No rebase or runtime deployment is included.Host evidence
Not applicable: no evidence/hosts/ or platform-status changes.
Checklist