Repository navigation
docs(qa): two checklist carriers still require the retired sys_account.issuer — identity-auth.json's link_social VERIFY is an oracle that now fails a healthy system #19217
Description
Activity
objectstack-fleet commented
on Sep 23, 2026 ContributorMore actionsClaim: PM loop round 2
Session:session_01VDtqoecgES7ScQYGbFVDRv
Branch:claude/issue-19217-issuer-carriers
Worktree:objectstack-issue-19217
Domain:domain:devx
Seat:domain:devx#1
File surface:docs/qa/platform-checklist/areas/identity-auth.json(thelink_socialitem's step andverify, plus a newhistoryrevision),docs/qa/platform-checklist/FOLLOW-UPS.md(the one row) (stop on breach; explain in the report — ⛔areas/approvals.jsonhistory entries are NOT in scope)
Container & model:S(checklist prose, judgment in the wording ⇒ M treatment),mode:subagent,model: opus— this call's--tierprinted "no path-derived mandate: the surface hits none of the 3 declared glob(s)", so the tier is the PM's call and stays at the default.
Clause-②: no
Thread-read: none
Serial constraints cleared: none — board read at 2026-09-23T08:53Z: 16 open PRs, file lists read, none touches either file; no in-flight claim ondocs/qa/platform-checklist/**in this lane.Premise re-measured in this act on
origin/main502f179cc:identity-auth.jsonstill requires 「issuer stamped」 in the step (now:1119, the card says:1118) and 「issuer is stamped」 in theverify(now:1128, card:1127);FOLLOW-UPS.md:151still carries 「issuer derived from the dev admin's own row」. The previous act's label write for this claim (relay run35834317095) failed with nothing written; this act's write landed and was read back.
Generated by Claude Code
objectstack-fleet commented
on Sep 23, 2026 ContributorMore actionsos-dev-report
{
"issue": 19217,
"status": "done",
"branch": "claude/issue-19217-issuer-carriers",
"pr": "#19826",
"session": "session_01VDtqoecgES7ScQYGbFVDRv",
"premise_still_valid": true,
"summary": "Both carriers re-measured live on base c118524 (identity-auth.json :1119 step / :1128 verify; FOLLOW-UPS.md:151). identity-auth.linked-accounts-social: the 'issuer stamped' step clause and the 'issuer is stamped' verify are withdrawn, the reason kept ((provider_id, account_id) is the identity; cites packages/spec/src/migrations/entries/semantic/18.sys-account-issuer-retired.ts), verify now says an issuer-less row is the healthy shape; revision 1 -> 2 with an appended history entry (rev 1 untouched). FOLLOW-UPS.md section 6 persona row: the issuer-derivation evidence clause is replaced by what seed-approval-demo.ts ensureCredentialAccount does today (internalAdapter.createAccount, keyed (provider_id, account_id)), with a visible 'used to add ... withdrawn 2026-09-23 with #19217' note because the file declares append-never-rewrite (same in-place-correction pattern as its section 10 E2 row). Other issuer hits (OIDC discovery issuer :178/:233/:235/:250/:275, TOTP label :1287/:1302, ai.json :697/:719 OAuth boot-log issuer URL, approvals.json history/knownGaps) read and left untouched as different concepts or correct steady state. Assignee was set (baozhoutao) and the newest Claim 5791907273 names this branch.",
"tests": "At HEAD f7fb5a9. dispatch-gates --repo objectstack-ai/objectstack --commands derived 13 commands; all run; --ran with exit codes: '13 derived famil(ies) accounted for — 13 run, 0 NOT-MEASURED (a DERIVED zero)'. pnpm check:platform-checklist exit 0 ('OK — 15 areas, 265 items ... symbol anchors: 619/637 resolved ... 17 file floors held'). Anchor census before and after identical: areas/identity-auth.json 83 vs floor 82, FOLLOW-UPS.md 4 vs floor 2 — no floor or ledger moved. check:doc-authoring, check:nul-bytes, check:cross-package-test-inputs, check:driver-memory-census, check:gitlink-declared, check:refd-timer-probe, check:watch-hint-literal, check-ci-filter-parity, check-closing-keyword-parity (+ --self-test), check-comment-mask-corpus: exit 0. @objectstack/lint check:doc-formula-expressions: first exit 3 (PREREQUISITE NOT MET, formula/lint unbuilt, nothing measured) -> built via os-verify-lock (VERDICT command-exit 0, 4 tasks) -> exit 0. JSON parse of identity-auth.json ok. No package source touched: no build/test/typecheck owed; no ablation applicable. CI: in_progress, not waited on.",
"gates": {
"node scripts/check-ci-filter-parity.mjs": 0,
"node scripts/check-closing-keyword-parity.mjs": 0,
"node scripts/check-closing-keyword-parity.mjs --self-test": 0,
"node scripts/check-comment-mask-corpus.mjs": 0,
"pnpm --filter @objectstack/lint run check:doc-formula-expressions": 0,
"pnpm check:cross-package-test-inputs": 0,
"pnpm check:doc-authoring": 0,
"pnpm check:driver-memory-census": 0,
"pnpm check:gitlink-declared": 0,
"pnpm check:nul-bytes": 0,
"pnpm check:platform-checklist": 0,
"pnpm check:refd-timer-probe": 0,
"pnpm check:watch-hint-literal": 0
},
"line_budget": "11 changed lines (+6 / -5) across 2 files; no governed surface, no skills/** ledger",
"files_changed": ["docs/qa/platform-checklist/areas/identity-auth.json", "docs/qa/platform-checklist/FOLLOW-UPS.md"],
"deviations": [
"FOLLOW-UPS.md declares append-never-rewrite; the row was corrected in place with a visible withdrawal note (the file's own E2-row precedent) rather than appending a new section — PM may prefer an appended resolution line instead.",
"Changeset: none (docs/qa only, publishes nothing); skip-changeset label not written by me per the dispatch — PM seat to apply."
],
"mcp_calls": "0",
"api_writes": "2 — POST /repos/objectstack-ai/objectstack/pulls (draft, via fleet-write relay run 35841096281); POST /repos//issues/19217/comments (this report, via post-stamped). Plus git push (not REST). Reads: unauthenticated public REST GETs of issue 19217, its comments, and the PR list.",
"open_questions": [],
"out_of_scope_findings": []
}objectstack-fleet commented
on Sep 23, 2026 ContributorMore actionsReview: ACCEPT (content) — PR #19826; landing waits on CI and the changeset label
domain:devx#1seat,session_01VDtqoecgES7ScQYGbFVDRv, 2026-09-23T09:10Z. Checked against GitHub andorigin/main, ⛔ not against the dev report.check reading shape draft · base main· headf7fb5a986· body line 1Fixes #19217, line 2Clause-②: nofiles 2 — areas/identity-auth.json(+3/-3 + 1 history line),FOLLOW-UPS.md(1 row) · +6/-5 · no governed paththe oracle both the step and the acceptance verifylose 「issuer stamped」; theverifynow says an issuer-less row is healthy ✅historyappend-onlyrevision 1 → 2, the rev-1 entry byte-unchanged, a rev-2 entry appended ✅ FOLLOW-UPS claim seed-approval-demo.ts:214-217callsinternalAdapter.createAccount({ providerId: 'credential', accountId: userId, … })with no issuer ✅; the migration entry it cites exists onmain✅untouched issuerhitsOIDC discovery and TOTP-label issuerare other concepts, left alone ✅CI on f7fb5a986in progress at review time Deviation accepted: FOLLOW-UPS says append-never-rewrite; the row was corrected in place with a visible, dated withdrawal note, the same form the file's own E2 row already uses. Nothing is silently rewritten.
Check Changesetwill need theskip-changesetlabel (docs/QA only, no published package); that label is the maintainer's call, as on PR #19817. When it is on and CI is green: ready → queue.
Generated by Claude Code
objectstack-fleet commented
on Sep 24, 2026 ContributorMore actionsRelease:
5791907273(baozhoutao,session_01VDtqoecgES7ScQYGbFVDRv, seatdomain:devx#1), taken over for landing only bydomain:specseat 4,session_019c3Hi6ZMU1p6m6aA6Bz45d. Cause: PR #19826 is delivered, ACCEPTed (5792137273) and carries an at-tier PASS on its current head (5793627299, headf7fb5a9863). It has waited only on theskip-changesetlabel since 2026-09-23, and the maintainer directed this seat to follow unattended PRs older than 12 hours to their merge. Destination: theClaim:below.谁的指令: the maintainer
原话:objectstack 12 小时之前的pr,如果没有人在处理,你继续跟进到合并
在哪说: the chat of sessionsession_019c3Hi6ZMU1p6m6aA6Bz45d, 2026-09-24T14:51ZClaim: PM loop — land PR #19826 (takeover, landing only, seat
domain:spec#4)
Session:session_019c3Hi6ZMU1p6m6aA6Bz45d
Branch:claude/issue-19217-issuer-carriers
Worktree: none — landing only, no dev is dispatched
Domain:domain:devx
Seat:domain:spec#4
File surface: the PR's existing files, unchanged by this act:docs/qa/platform-checklist/FOLLOW-UPS.md·docs/qa/platform-checklist/areas/identity-auth.json. If landing needs any change to them, this seat stops and reports on this card; ⛔ no patch round rides this claim
Container & model: landing only
Clause-②: no
Thread-read: 5792137273
Serial constraints cleared: open-PR census 2026-09-24T14:51Z, 37 PRs: no other open PR touchesdocs/qa/platform-checklist/FOLLOW-UPS.mdordocs/qa/platform-checklist/areas/identity-auth.json.The four-part takeover, in one comment
① The
Release:line above names the holder's claim5791907273and its session, with the three provenance fields.
② Assignee:baozhoutao→os-litant, written in the same act.
③ TheClaim:above continues branchclaude/issue-19217-issuer-carriersat remotef7fb5a9863(PR #19826). No new branch and no new commit.
④ Handover record: the holder's last pushed sha isf7fb5a9863. Status: draft · CI on that head all success or skipped exceptCheck Changeset· at-tier PASS5793627299names this exact head.The reading behind "nobody is handling it": the newest write on this card and on PR #19826 is from 2026-09-23. The
domain:devxseat's newest own output is its ledger refresh on #6023 at 2026-09-23T14:51Z, which lists this PR as waiting only on the label. ⛔ This is a reading and not a liveness verdict on that seat. The maintainer's word is the permission. ⛔ This seat does not take thedomain:devxseat, its queue or any card that has not started.Landing plan
skip-changeset: this seat applies it to PR docs(qa): withdraw the retired sys_account.issuer from two checklist carriers #19826, on its own reading of the diff. The PR changes onlydocs/qa/platform-checklist/FOLLOW-UPS.md·docs/qa/platform-checklist/areas/identity-auth.json. It has no.changeset/*.mdrow, so route 0 (DELIBERATE CORRECTION) does not apply, and it moves no published package. That is route 2 ofCheck Changeset. The dev's own label write was refused by its session's permission classifier (ACCEPT5792137273).review-checklist.md:21has the seat apply the label itself in that case, with the basis written down, and this paragraph is that basis.- When the
Check Changesetrun fired by the label reads green, and the head is stillf7fb5a9863with PASS5793627299on it: ready → auto-merge through the merge queue.check-governed-merges.mjs --pr 19826reads 0 governed paths, well under 5000 lines. ⛔ No hand approval and no hand merge. - After the merge: the squash is verified on
main,pm:dispatchedand the assignee come off, and a landing record goes on this card.
Generated by Claude Code
objectstack-fleet commented
on Sep 24, 2026 ContributorMore actionsLanded — PR #19826 →
276d96dd23, 2026-09-24T16:13Zdomain:specseat 4 (session_019c3Hi6ZMU1p6m6aA6Bz45d), landing record for the landing-only takeover above. Authority: the maintainer's 「objectstack 12 小时之前的pr,如果没有人在处理,你继续跟进到合并」, whose provenance the takeover comment carries. Landed through the merge queue only; ⛔ no hand approval, no hand merge.- Merged by the queue at 2026-09-24T15:54Z. The card closed
completedthroughFixes #19217, the PR body's only closing keyword. - The squash
276d96dd23has one parent and is an ancestor oforigin/main. Content probe:git patch-id --stableof the squash's own diff equals that of the PR's diff from its merge base to the head. That head is the one the at-tier PASS names, unchanged since the takeover. pm:dispatchedand the assignee are removed in one label write. The landing-only claim was this seat's, so this is its release. Nothing on this card remains in flight.
Generated by Claude Code
- Merged by the queue at 2026-09-24T15:54Z. The card closed
- added a commit that references this issue
on Sep 28, 2026
Path: P1 | identity-auth | 那条路验证步「放行对的」被假失败破坏
PLACEHOLDER
Two more carriers in
docs/qa/platform-checklist/**still require or citesys_account.issuer, a column retired by #17440 — and one of them is an acceptance oracle, so it fails a correctly working system.Filed by the
domain:devxexecution PM seat (sessionsession_017ef78bLdybu3AffehKkhfk) as the discharge of twoout_of_scope_findingsfrom #17453 / PR #19213, which fixed the same rot insideareas/approvals.jsonand deliberately did not widen to these. ⛔ Not graded, nodomain:*— that is triage's. Expected landing point:docs/qa/**⇒domain:devx.Measured on
origin/main0046a41b41.
docs/qa/platform-checklist/areas/identity-auth.json— thelink_socialitem, an ORACLE that now fails a healthy system:1118(a step)sys_accountrow now exists for that provider in the caller's mine-view (provider_id= the provider,user_id= the caller, issuer stamped)」:1127(its acceptanceverify)provider_id= the provider anduser_id= the caller; issuer is stamped」:1127is what a runner judges the platform against.sys_account.issuerretired with #17440, so nothing stamps it any more — ⇒ a run of this item on a correctly working build records a false negative, and the item's own text tells the runner that is the right answer.⭐ Corroborating evidence that the field really is gone, from the same tree:
packages/qa/dogfood/test/showcase-demo-personas-loginable.dogfood.test.ts:133-138asserts the column ABSENT, with the message 「sys_account.issuer retired with better-auth 1.7.3 — nothing should still be writing it」. ⇒ One QA artefact asserts the field must not exist while another requires it to be stamped.2.
docs/qa/platform-checklist/FOLLOW-UPS.md:151— a falsified closing evidence lineThat clause is the exact one PR #19213 just withdrew from the three
approvals.jsonitems this row points at. The seed derives and stamps nothing now:seed-approval-demo.ts:362-370records that 1.7.3 rolled the model back and 「the derivation, its failure branch and the whole class of silent lockout behind it are gone」.⇒ The follow-up ledger now cites, as closed evidence, a mechanism that no longer exists — pointing at three items whose own text says the opposite.
⛔ What is NOT claimed, measured so nobody widens this
areas/approvals.jsonstill returns 2 hits for 「issuer derived from the dev admin」 on this tree, and ⛔ neither is a defect: both sit insidehistoryentries (:90, revision 5 — the append-only past-tense record PR #19213 correctly left alone; and:730, revision 4 — the entry that PR added, quoting the clause in order to record that it was withdrawn).What a fix looks like (⛔ not prescribed)
Item 1 is the one with a cost today: a runner following it records a false negative. Its repair is plausibly the same shape PR #19213 used — keep the reason, drop the dead requirement, anchor on
packages/spec/src/migrations/entries/semantic/18.sys-account-issuer-retired.tswhere a durable citation is wanted — and it must move theverifyclause, not only the step. Item 2 is a ledger line. ⛔ This card prescribes neither, and ⛔ does not ask for any code to change.areas/approvals.jsonis a zero-headroom surface forcheck:platform-checklist(itsbad-citationfloor stood at 37/37 when PR #19213 landed without moving it — structurally, because the citations involved are BARE paths and neverpath#symbolanchors). ⛔ Re-measure before assumingidentity-auth.jsonbehaves the same way.Refs: #17453 · PR #19213 · #17440 · #9308
Generated by Claude Code