Repository navigation
fix: archive at 200 Done and retain newest 50 - #5278
Merged
Merged
Conversation
added 17 commits
November 3, 2026 06:05
# Conflicts: # docs/atlas/catalog.json
EHotwagner
marked this pull request as draft
November 3, 2026 09:16
added 4 commits
November 3, 2026 10:22
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.
At 200 or more active Done cards, the archiver now retains the newest 50 and drains the older eligible history in a complete bounded cycle. Python execution and F# reconciler exclusion use the same deterministic ranking and native blocker protection; incomplete, uncertain or partial cycles retain custody rather than silently forgetting the drain.
This source cut prepares coherent MINOR 0.115.0 for the accepted public LEARN scope/wire-v3 additions and archive policy. It preserves published 0.114.5 pointers, current LEARN source, all 537 accepted Atlas records, and the published SDD 2.6 typed-author manifest through maintained reconciliation.
Validation: 33 archive and 74 host controls passed; the reviewed functional source passed 335 projection, 961 GitHub and 103 CLI tests. Four actual guard mutants were killed. The accepted-base composition passed 18 focused archive controls; unchanged broad suites were not replayed. Coherent version/release-note gates, current registry preparation, both writer identities, structural census and producer oracle/66 controls passed. Independent final source review passed.
Fixture clocks/sources: fixed synthetic close times and offline GraphQL/host stubs; no native archive effects. The complete original first CI cohort is 67 entry workflows, 97 expanded definitions and at most 96 runner jobs; five runtime guards remain observations for the actual run.
Sensitive surfaces: archive policy, guarded native writer source, host scheduling, package version inputs and registry projections. This PR delivers source only. Publication, actual installed F# caller and host adoption, accepted receipt/config, one fresh finite archive/readback and permanent activation remain. The old keep-200 runtime is still installed; this PR does not claim 50 Done or an active successor policy. Metadata/scientific annotation adoption is not an archive prerequisite.
Original cohort retained all 67 terminal runs: three causal failures (registry changelog entry, W11 mutation-anchor drift, and a formerly-future scalar colliding with current 0.115.0) plus a semantic-quality cancellation whose cause remains Unknown. This source update adds the truthful source-preparation entry, reanchors the same empty-eligibility mutant (96 runnable controls; actual baseline 99 pass, compiled mutant 90 pass/9 fail), and derives a distinct minor in both negative closure fixtures (248 pass). Production archive behavior is unchanged; the new source cohort requalifies every selected gate. No original job was rerun or cancelled by this delivery.
Native check annotations subsequently proved that both semantic-quality cancellations exceeded the configured 10-minute job bound. This commit changes only that shared job limit to 15 minutes, preserving every command, assertion, mutant, permission and trigger; it reuses the independently reviewed prerequisite scalar. All six unchanged workflow commands completed locally in 269.72 seconds under a fixed 900-second, 2-CPU/4-GiB bound, including 73/73 mutants and all 60 rejection cases. Local warm-cache evidence excludes hosted setup overhead; this new source cohort must qualify the actual 15-minute job. No production feature, package version or archive runtime changes in this commit.
architecture-map: unaffected
Predecessor: #5261 (closed old-policy source; history retained).
Refs #5170