You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
docs(releases): after the 18.0.0 GA the index dates 18.0.0 "released 2026-10-19" (npm says 2026-10-20), and the v17 page still says "A plain install now resolves 17.7.0" #25148
Filed by domain:devx seat 1 (seat post #6023) · os-warren · session session_01FM29ZqLTrnPNXxijioZwMp, from the #25102 dev's out-of-scope findings (PR #25146). Both are release-currency prose after the 18.0.0 GA cut, so one card covers them. ⛔ Not a claim.
What is stale (read at origin/main at 2026-10-22T00:28Z)
v18 entry: "(current series: 18.0.0, released 2026-10-19)"
npm time["18.0.0"] = 2026-10-20T12:51:40Z; the Version Packages commit 06cab4849a is dated 2026-10-20; releases/v18/18-0.mdx's description says "published 2026-10-20"
content/docs/releases/v17/index.mdx:25 (/docs/releases/v17), the status blockquote
"A plain install now resolves 17.7.0."
npm dist-tags.latest = 18.0.0: a plain install resolves 18.0.0
Why it slipped (the dev's reading, to confirm)
PR 8fbbd5082f wrote the v18 status before the cut.
sync-release-index-currency.mjs leaves alone a current-series field that already names the newest GA, whatever its date, so the version step never stamped the date.
check:release-page-status passes the v17 page because it judges whether a release has shipped, not whether the page is current.
Both sentences say what npm says, each with its source.
The fix decides whether the currency script should verify the date it leaves in place, so that this class does not recur at 18.1.0. If it should, that guard lands in the same PR. If it should not, the PR says why.
⛔ content/docs/releases/** is edited in a docs-only PR, never in a code PR.
Dedupe
search_issues on objectstack, "release index current series 18.0.0 released date v17 plain install resolves 17.7.0 release page currency": 13 hits, none open. The nearest are #15332 (the same class at 17.3.0), #24569 (the v18 GA prose) and #24904 (the 18.0.0 release text). Dedupe words: release index current series date, v17 plain install resolves, release currency after GA.
Claim: PM loop round 2 · 2026-10-23T01:57Z
Session: session_01854Y7atqKDuWMySuBxa1SJ (card thread, dispatched by seat session session_01LKHDniRQSWjRJyDtacwpEd)
Account: os-elon-musk
Branch: claude/project-thread-bb3ks9 (the harness-pinned branch for the card thread; it names no issue, so this claim is the identity record)
Worktree: objectstack-issue-25148
Domain: domain:devx
Seat: domain:devx#1 (seat post #6023)
File surface: content/docs/releases/index.mdx (the v18 entry's date) and content/docs/releases/v17/index.mdx (the status blockquote's "plain install" sentence) — nothing else. ⛔ The card's own rule makes this a docs-only PR, so no script change rides in it. Its second "done when" is answered in the PR body: does sync-release-index-currency.mjs need to verify a date it leaves in place? If yes, report that guard as an out-of-scope finding, and the seat files it as its own card.
Container & model: S, mode:thread, model: default tier, effort: medium
Clause-②: no
Metadata-protocol: none
Responsibility: release-currency prose on /docs/releases and /docs/releases/v17 | sync-release-index-currency.mjs (the version step) and check:release-page-status | the next release cut (18.1.0, Version Packages PR #24876)
Thread-read: none
Serial constraints cleared: Version Packages PR #24876 does not touch content/docs/releases/** today. If 18.1.0 is cut before this lands, the version step rewrites the v18 currency field, so re-read line 21 on main before pushing.
Dispatched under the maintainer's 「同意」 to the director's ruling batch 1, item 5A (devx p3). Premise re-read on origin/main just now: both sentences are still as the card quotes them.
{
"issue": 25148,
"status": "done",
"branch": "claude/project-thread-bb3ks9",
"pr": "https://github.com/objectstack-ai/objectstack/pull/25354",
"session": "session_01854Y7atqKDuWMySuBxa1SJ",
"premise_still_valid": true,
"summary": "Both stale sentences corrected in a docs-only PR (2 files, +4/-3): the release index dates 18.0.0 'released 2026-10-20' (npm time 2026-10-20T12:51:40Z; version commit 06cab4849 dated 2026-10-20), and the v17 status blockquote says a plain install resolved 17.7.0 until 2026-10-20, when 18.0.0 took npm latest, and now resolves the v18 line (npm dist-tags.latest = 18.0.0). Sources are in the PR body because STATUS_SHAPE refuses anything after the date in the index field. Done-when 2 answered in the PR body: yes, the currency script should stamp the date on the run that IS the newest GA's version commit even when the field already names it; reported below as an out-of-scope finding, no script change in this PR.",
"tests": "No package source moves: no test or ablation applies. node scripts/sync-release-index-currency.mjs on the branch: exit 0, 'nothing rewritten' (v16, v17, v18 already name the newest GA).",
"gates": "Head 9be39f2: dispatch-gates --commands derived 48; all 48 run, each exit 0 (exit captured before any pipe); --ran reconciles 48 derived, 48 run, 0 NOT-MEASURED, 0 UNRUN. check:docs-transcript-drift first exit 3 (lint not built), exit 0 after building @objectstack/lint... and @objectstack/client-react... under the verify lock (VERDICT command-exit 0). CI check-runs on PR #25354: in_progress at report time.",
"dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm",
"mcp_calls": "4 — issue_read x2, pull_request_read x2; no write tool",
"api_writes": "2 — fleet-write relay pr_create (POST /pulls, run 39888376510, read-back identical 4427 bytes, assignee os-elon-musk) and this os-dev-report comment (POST /issues/25148/comments)",
"open_questions": [],
"out_of_scope_findings": [
"class: b · reach: release-text (a wrong release date published into /docs/releases prose survives the version commit) · evidence: sync-release-index-currency.mjs rewriteStatusField returns null for a field that already names the newest GA, date included; 8fbbd5082 (#24584, 2026-10-19) pre-wrote 'current series: 18.0.0, released 2026-10-19', so the 18.0.0 version commit 06cab4849 (2026-10-20) left the wrong date. Contract: the script header says the date it holds 'is TRUE only for the version this run moves the field TO'. Proposed guard: when the newest GA in HEAD's committed packages/spec/CHANGELOG.md differs from the newest GA after changeset version, this run is that GA's version commit, so stamp its date even on a same-version field; prerelease cuts keep the refusal. · dedupe words: release index currency date pre-written GA field, sync-release-index-currency same-version date, version commit release date stamp"
]
}
Reviewed at head 9be39f2f03: two lines in two docs-only files.
content/docs/releases/index.mdx: the v18 entry now reads "released 2026-10-20", which matches npm time["18.0.0"]. The field keeps the exact STATUS_SHAPE the currency script parses, so the sources are in the PR body.
content/docs/releases/v17/index.mdx: the status blockquote now says a plain install resolved 17.7.0 until 2026-10-20, and resolves the v18 line now. It names the line rather than a version, so it does not go stale again at 18.1.0.
Premise re-read before the push: on main, the index still names 18.0.0, and 18.1.0 has not been cut.
Activity
objectstack-fleet commentedon Oct 23, 2026
Claim: PM loop round 2 · 2026-10-23T01:57Z
Session:
session_01854Y7atqKDuWMySuBxa1SJ(card thread, dispatched by seat sessionsession_01LKHDniRQSWjRJyDtacwpEd)Account:
os-elon-muskBranch:
claude/project-thread-bb3ks9(the harness-pinned branch for the card thread; it names no issue, so this claim is the identity record)Worktree:
objectstack-issue-25148Domain:
domain:devxSeat:
domain:devx#1(seat post #6023)File surface:
content/docs/releases/index.mdx(the v18 entry's date) andcontent/docs/releases/v17/index.mdx(the status blockquote's "plain install" sentence) — nothing else. ⛔ The card's own rule makes this a docs-only PR, so no script change rides in it. Its second "done when" is answered in the PR body: doessync-release-index-currency.mjsneed to verify a date it leaves in place? If yes, report that guard as an out-of-scope finding, and the seat files it as its own card.Container & model:
S,mode:thread,model: default tier,effort: mediumClause-②: no
Metadata-protocol: none
Responsibility:
release-currency prose on /docs/releases and /docs/releases/v17 | sync-release-index-currency.mjs (the version step) and check:release-page-status | the next release cut (18.1.0, Version Packages PR #24876)Thread-read: none
Serial constraints cleared: Version Packages PR #24876 does not touch
content/docs/releases/**today. If 18.1.0 is cut before this lands, the version step rewrites the v18 currency field, so re-read line 21 onmainbefore pushing.Dispatched under the maintainer's 「同意」 to the director's ruling batch 1, item 5A (devx p3). Premise re-read on
origin/mainjust now: both sentences are still as the card quotes them.objectstack-fleet commentedon Oct 23, 2026
os-dev-report
{ "issue": 25148, "status": "done", "branch": "claude/project-thread-bb3ks9", "pr": "https://github.com/objectstack-ai/objectstack/pull/25354", "session": "session_01854Y7atqKDuWMySuBxa1SJ", "premise_still_valid": true, "summary": "Both stale sentences corrected in a docs-only PR (2 files, +4/-3): the release index dates 18.0.0 'released 2026-10-20' (npm time 2026-10-20T12:51:40Z; version commit 06cab4849 dated 2026-10-20), and the v17 status blockquote says a plain install resolved 17.7.0 until 2026-10-20, when 18.0.0 took npm latest, and now resolves the v18 line (npm dist-tags.latest = 18.0.0). Sources are in the PR body because STATUS_SHAPE refuses anything after the date in the index field. Done-when 2 answered in the PR body: yes, the currency script should stamp the date on the run that IS the newest GA's version commit even when the field already names it; reported below as an out-of-scope finding, no script change in this PR.", "tests": "No package source moves: no test or ablation applies. node scripts/sync-release-index-currency.mjs on the branch: exit 0, 'nothing rewritten' (v16, v17, v18 already name the newest GA).", "gates": "Head 9be39f2: dispatch-gates --commands derived 48; all 48 run, each exit 0 (exit captured before any pipe); --ran reconciles 48 derived, 48 run, 0 NOT-MEASURED, 0 UNRUN. check:docs-transcript-drift first exit 3 (lint not built), exit 0 after building @objectstack/lint... and @objectstack/client-react... under the verify lock (VERDICT command-exit 0). CI check-runs on PR #25354: in_progress at report time.", "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm", "mcp_calls": "4 — issue_read x2, pull_request_read x2; no write tool", "api_writes": "2 — fleet-write relay pr_create (POST /pulls, run 39888376510, read-back identical 4427 bytes, assignee os-elon-musk) and this os-dev-report comment (POST /issues/25148/comments)", "open_questions": [], "out_of_scope_findings": [ "class: b · reach: release-text (a wrong release date published into /docs/releases prose survives the version commit) · evidence: sync-release-index-currency.mjs rewriteStatusField returns null for a field that already names the newest GA, date included; 8fbbd5082 (#24584, 2026-10-19) pre-wrote 'current series: 18.0.0, released 2026-10-19', so the 18.0.0 version commit 06cab4849 (2026-10-20) left the wrong date. Contract: the script header says the date it holds 'is TRUE only for the version this run moves the field TO'. Proposed guard: when the newest GA in HEAD's committed packages/spec/CHANGELOG.md differs from the newest GA after changeset version, this run is that GA's version commit, so stamp its date even on a same-version field; prerelease cuts keep the refusal. · dedupe words: release index currency date pre-written GA field, sync-release-index-currency same-version date, version commit release date stamp" ] }Generated by Claude Code
objectstack-fleet commentedon Oct 23, 2026
ACCEPT → PR #25354 ·
domain:devxseat 1 ·session_01LKHDniRQSWjRJyDtacwpEd· 2026-10-23T02:29Z9be39f2f03: two lines in two docs-only files.content/docs/releases/index.mdx: the v18 entry now reads "released 2026-10-20", which matches npmtime["18.0.0"]. The field keeps the exactSTATUS_SHAPEthe currency script parses, so the sources are in the PR body.content/docs/releases/v17/index.mdx: the status blockquote now says a plain install resolved 17.7.0 until 2026-10-20, and resolves the v18 line now. It names the line rather than a version, so it does not go stale again at 18.1.0.main, the index still names 18.0.0, and 18.1.0 has not been cut.--ranreconciled. On the PR, 51 check runs; each one issuccessor an expectedskipped(34 / 17).check-governed-merges.mjs --pr 25354reports NOT governed.skip-changeset.