Repository navigation
qa(checklist): unblock 4 fixture-blocked items with the recipes the follow-up run #21845 proved, and re-point the clauses it found mis-asserted #21851
Description
Activity
objectstack-fleet commented
on Oct 5, 2026 ContributorAuthorMore actionsPath: fleet decision — the checklist verifies the definition (North Star, "what counts as done") | the items listed on this card | none
Triage: first grade —
documentation·priority:p2·domain:devx·area:devpath·pm:queue. The same grade as #21797 and #21735Triage seat (objectstack-wide, seat post #6015) ·
session_01AavokzJ5DndAwitDXvKy4U· 2026-10-05T09:01Z. ⛔ Not a claim, ⛔ not a dispatch.Triage: lands in
docs/qa/platform-checklist/areas/*.json⇒domain:devx; rationale: checklist changes only. The product defects from the same run are carded separately (#21846–#21850, objectstack-ai/objectui#11650).- Why p2. Fixture-blocked items are never run, and mis-asserted clauses produce false fails. This is the same grade as the two earlier halves.
- Direction. Each entry is revised as the card states, with a
historyentry citing QA run · follow-up: 6 previously unrun or published-only items (6/6) · 316be321 + 53021e3a · 2026-10-05 · 4 PASS / 0 PARTIAL / 2 FAIL / 0 BLOCKED / 0 NOT-RUN #21845.- ⛔ No product change rides this card.
- The wall-clock offset shim is a test fixture, not product code, and stays in the item's recipe.
Generated by Claude Code
- addedarea:devpathThe road — create, dev, verify, publish/install, connect an agent, iterateThe road — create, dev, verify, publish/install, connect an agent, iteratedocumentationImprovements or additions to documentationImprovements or additions to documentationpriority:p2Medium: important, M3Medium: important, M3
on Oct 5, 2026 objectstack-fleet commented
on Oct 5, 2026 ContributorAuthorMore actionsClaim: PM loop round 1 (17.7 pre-release follow-up, dispatched on the maintainer's direct order)
Session:session_018zT8d8NpiQ1ExhuNd5TxY6
Account:hotlong(the seat's linked user asGET /useranswers it; always the card's assignee)
Branch:claude/issue-21851-checklist-unblock-followup
Worktree:objectstack-issue-21851
Domain:domain:devx(card label, as triage set it)
File surface:docs/qa/platform-checklist/areas
Container & model:M,mode:subagent,model: opus(default tier; no path-derived mandate)
Clause-②: no
Thread-read: 5991347782
Serial constraints cleared: none namedProvenance: the maintainer, in Claude Code session
session_018zT8d8NpiQ1ExhuNd5TxY6, 2026-10-05, verbatim: 「都开单派发」; landing per the standing order 「开发完整就进队列合并」. Dispatched one at a time within the session's load cap. Where the card withholds detail, this session holds it and the dispatch carries it privately.
Generated by Claude Code
objectstack-fleet commented
on Oct 5, 2026 ContributorAuthorMore actionsRelease: session
session_018zT8d8NpiQ1ExhuNd5TxY6· cause: re-route before dispatch (no dev was started on this card) · destination: back topm:queuefor thedomain:devxlane seat to claim.Provenance: the maintainer, in Claude Code session
session_018zT8d8NpiQ1ExhuNd5TxY6, 2026-10-05, verbatim: 「只有不能公开的才需要你派发处理」. This card withholds nothing, so its dispatch belongs to the lane. The claim above is withdrawn, the assignee is cleared, and the triage grading stands.
Generated by Claude Code
objectstack-fleet commented
on Oct 5, 2026 ContributorAuthorMore actionsClaim: PM loop round 61
Session:session_01VDtqoecgES7ScQYGbFVDRv
Branch:claude/issue-21851-checklist-unblock-followup(cut fromorigin/maine864db56df)
Worktree:objectstack-issue-21851
Domain:domain:devx
Seat:domain:devx#1
File surface:docs/qa/platform-checklist/areas/*.json, only the items entries 1–11 of the card name. Each revised item gets ahistoryentry that cites #21845.- ⛔ No product change. The wall-clock offset shim and the local OIDC provider are fixture recipes written in the item text. Neither is committed as code.
identity-auth.linked-accounts-social(entry 3) is a region thedomain:enginecross-lane declaration on identity: the "Link Social Account" action is dead on every boot — it navigates to a GET of the POST-only social sign-in route (404) and offers a fixed provider list regardless of configuration #21849 also names. This claim holds it. Under that declaration's own terms, identity: the "Link Social Account" action is dead on every boot — it navigates to a GET of the POST-only social sign-in route (404) and offers a fixed provider list regardless of configuration #21849's checklist half waits and is revised frommainafter this lands. Entry 3 links through the authenticatedPOST /api/v1/auth/link-socialendpoint and never through thesys_accountlink_socialaction, which identity: the "Link Social Account" action is dead on every boot — it navigates to a GET of the POST-only social sign-in route (404) and offers a fixed provider list regardless of configuration #21849 retires.
Stop on a breach and explain it in the report. That includes an entry the area file cannot hold as the card states it, and a checklist gate that needs a non-checklist edit.
Container & model:M(checklist-only, 4 area files plus cli/i18n items),mode:subagent,model: opus
Clause-②: no
Thread-read: 5995833474
Serial constraints cleared: board read at 2026-10-05T14:52Z. None of the 10 open PRs touchesdocs/qa/platform-checklist/**(each file list read byfilename). The release of claimsession_018zT8d8NpiQ1ExhuNd5TxY6back topm:queuewas read on this card.Priority rule 3 reading:
domain:devxhas no open P0/P1. This is the oldest p2 in the lane queue.docs/qa/**is not a review face, soskip-changesetapplies and no contract review is owed.
Generated by Claude Code
objectstack-fleet commented
on Oct 5, 2026 ContributorAuthorMore actionsos-dev-report
{
"issue": 21851,
"status": "done",
"branch": "claude/issue-21851-checklist-unblock-followup",
"pr": "#21891",
"head_sha": "4f0fb3a8e0",
"session": "session_01VDtqoecgES7ScQYGbFVDRv",
"premise_still_valid": true,
"summary": "Checklist-only edits to 5 area files (approvals, identity-auth, records-forms, cli, i18n). 8 items revised, each with a revision bump and a history entry. Entries 1-10 cite run #21845; entry 11's evidence is the #21782 re-run, so its history ref is #21782 and the change text names #21851/#21845. blocked was lifted only on the 4 entry 1-4 items, and each one's fixture recipe went into fixtures.requires. The old fixture knownGaps were rewritten as CLOSED-for-runs, not deleted. No product code, no scripts, no changeset; the shim and the OIDC provider exist only as recipe text. Card premises were checked against e864db5: the toggle door POST /automation/:name/toggle, sys_user_position fields, ESCALATION_SCAN_INTERVAL_MS = 5 min plus the boot sweep in approvals-plugin.ts, applyConfigPatch/oidcProviders, the 'auth:configure' trigger, POST /api/v1/auth/link-social in the route ledger, nav_account_linked 'Linked Accounts', the import-job routes, and the scaffolder's pnpm-or-npm install. Run #21845 contradicts none of the card's entries.",
"per_entry": [
"1 approvals.quorum-m-of-n (rev 4): blocked removed; runtime fixture added to requires (Ada->finance via POST /api/v1/data/sys_user_position, third signed-up holder->legal, POST /api/v1/automation/showcase_expense_signoff/toggle enabled:false, fresh request draft+6000 line+PATCH submitted); seed knownGap marked CLOSED-for-runs",
"2 approvals.sla-escalation (rev 3): blocked removed; offset-shim recipe in requires; flows registered via POST /api/v1/automation, one per action, no writable package; 5-minute sweep and boot catch-up named in a knownGap and in the steps",
"3 identity-auth.linked-accounts-social (rev 3): blocked removed; local auth-code+PKCE OIDC provider via applyConfigPatch({oidcProviders}) from a scratch app plugin ('auth:configure' fires too early), up before the first auth request; step 2 = authenticated POST /api/v1/auth/link-social, then navigate to the returned URL; nav label 'Linked Accounts' (Account app); the sys_account link action is no longer named anywhere in the item; unlink/mine-view/read-only kept",
"4 records-forms.import-job-undo-cancel (rev 3): blocked removed; stock console meets the client gate (pin 2e818d0b51ec); scratch copy of import-console-undo.spec.ts with goto /_console/apps/{app}/{object} and IMPORT_CONSOLE_LIVE=1; API routes under /api/v1/data/import/jobs (create stays POST /api/v1/data/:object/import/jobs per the route ledger); revertedAt absent, not null, until reverted",
"5 quorum negative[0]: non-privileged repeat actor; an admin decision is the #3424 override (via_override:true) and finalizes by design",
"6 quorum acceptance[2]: the run goes paused -> completed and the request is rejected; the reject edge is not observable",
"7 quorum acceptance[3]: 'My Pending' tab; the drawer half ('Approvals — x of y' is the tally, '(2 of 3)' is static flow text) landed on acceptance[4] plus the screenshot step, because [4] is the drawer-tally clause",
"8 both cli items: option chosen = drop the trailing npm install. The scaffolder installs itself (pnpm when found, npm otherwise), and its exit code is the install evidence. This does not depend on the host package manager, does not change the published command or the quick-start, and matches the published canary job in scaffold-e2e.yml",
"9 cli.scaffold-first-run (rev 3): pre-release local-registry variant in requires (no upstream for @objectstack/* and create-objectstack, repo bin, lockfile-integrity proof); acceptance[3] compares unique skill names",
"10 cli.scaffold-console-first-paint (rev 3) acceptance[3]: limit stated (blank scaffold has no app/action, so that half is not-applicable and never a FAIL); record-create half still scored; points to studio-authoring.first-run-loop and says it covers app/nav but no action",
"11 i18n.surface-matrix (rev 5) / i18n.studio-follows-app-locale (rev 4): avatar-menu switcher wording added to the switch steps"
],
"files_changed": [
"docs/qa/platform-checklist/areas/approvals.json",
"docs/qa/platform-checklist/areas/cli.json",
"docs/qa/platform-checklist/areas/i18n.json",
"docs/qa/platform-checklist/areas/identity-auth.json",
"docs/qa/platform-checklist/areas/records-forms.json"
],
"tests": "At head 4f0fb3a: pnpm check:platform-checklist exit 0, 'OK — 15 areas, 270 items (266 active, 2 planned) ... symbol anchors: 657/667 resolved' (baseline e864db5: 653/663, so all 4 new anchors resolve). dispatch-gates --commands derived 13 families and all 13 ran to exit 0: ci-filter-parity, closing-keyword-parity (+self-test), comment-mask-corpus, lint check:doc-formula-expressions, cross-package-test-inputs, doc-authoring, driver-memory-census, gitlink-declared, nul-bytes, platform-checklist, refd-timer-probe, watch-hint-literal. dispatch-gates --ran: '13 run, 0 NOT-MEASURED (a DERIVED zero)'. Before pnpm install, 6 gates exited 3 (PREREQUISITE NOT MET); doc-formula exited 3 again until formula/lint were built under os-verify-lock (VERDICT command-exit 0); those exits are not measurements. checklist-select resolves each of the 4 unblocked items as 1 runnable item. No package touched, so there is no unit/typecheck step; the CI type-check lanes and Test Core are left to CI (NOT MEASURED locally, not owed for a docs-only diff).",
"mcp_calls": "0",
"api_writes": "4 — git push (branch, 3 pushes); pr_create via fleet-write relay (run 37331465259, POST /repos/objectstack-ai/objectstack/pulls -> #21891, 7505 bytes read back identical); label-write --assign baozhoutao via relay (run 37331588777, POST /repos//issues/21891/assignees, read back matches); this os-dev-report comment via post-stamped",
"deviations": [
"Entry 11 history ref is #21782, not #21845, because #21845 has no i18n evidence; the change text names #21851/#21845",
"Entry 3 also rewords acceptance[3]/negative[3]/the degradation step/the source note to 'the link affordance' so the item names no sys_account link action anywhere; meaning and indices unchanged (the #21849 Extracted lines still resolve)",
"Entry 7's drawer half is on acceptance[4], not [3]",
"No labels written: the PM adds skip-changeset"
],
"open_questions": [],
"out_of_scope_findings": [
"carrier: the next editor of cli.scaffold-first-run (no one else is named) · acceptance[1] still says 'six templates' while variants is [blank] · noted in PR Acceptance notes, not filed",
"carrier: the checklist owner (already raised on #21782) · i18n.surface-matrix variants string still calls emptyState blocked(fixture) · noted, not filed",
"carrier: none · pending_approvers is not de-duplicated, so the drawer's eligible count reads high before the first vote (from run #21845, not extracted, cosmetic) · noted, not filed"
]
}
Generated by Claude Code
objectstack-fleet commented
on Oct 5, 2026 ContributorAuthorMore actionsLanded: PR #21891 →
67c544ccca, verified onorigin/mainby content at 2026-10-05T15:54Z.- All 5 files on
mainare blob-identical to the landing head4f0fb3a8e0:approvals.json,cli.json,i18n.json,identity-auth.jsonandrecords-forms.jsonunderdocs/qa/platform-checklist/areas/. There is no product, script or.changesetfile;skip-changesetapplies. - Entries 1–4:
blockedlifted onapprovals.quorum-m-of-n,approvals.sla-escalation,identity-auth.linked-accounts-socialandrecords-forms.import-job-undo-cancel. Each carries its fixture recipe infixtures.requires, and the old fixture gaps are kept as CLOSED-for-runs. - Entries 5–11: re-pointed as the card states. Entry 8 took the "drop the trailing
npm install" option. Entry 11's history cites QA run · surface:browser (61/61) · 316be321 · 2026-10-04 · 38 PASS / 8 PARTIAL / 15 FAIL / 0 BLOCKED / 0 NOT-RUN #21782, where its evidence lives. - Dev deviations, reviewed:
- The import-job
createroute is stated asPOST /api/v1/data/:object/import/jobs, per the route ledger. The card had filed it under/api/v1/data/import/jobs. identity-auth.linked-accounts-socialno longer names thesys_accountlink action anywhere. Clause indices are unchanged, so identity: the "Link Social Account" action is dead on every boot — it navigates to a GET of the POST-only social sign-in route (404) and offers a fixed provider list regardless of configuration #21849's clause pointers still resolve.
- The import-job
- Gates (dev, at the head):
check:platform-checklistOK, with 15 areas and 270 items; symbol anchors 657/667, all 4 new anchors resolving. 13 of 13 derived dispatch gates exited 0. CI was green, and the merge queue passed.
Releases: the
identity-auth.linked-accounts-socialregion held for #21849 (domain:enginecross-lane declaration). That PR's checklist half may now be revised frommain.Noted, not filed:
cli.scaffold-first-runacceptance[1] still says "six templates" whilevariantsis[blank]. It is for the next editor of that item.pm:dispatchedremoved.Seat
domain:devx#1·session_01VDtqoecgES7ScQYGbFVDRv
Generated by Claude Code
- All 5 files on
- added 2 commits that reference this issue
on Oct 7, 2026
QA-source: #21845 (17.7 pre-release follow-up) · #21782 (re-run comment)
Follows #21797 (closed by #21811). Owning repo: this one (
docs/qa/platform-checklist/areas/*.json). Every entry is a checklist change only; the product defects found in the same run are carded separately (#21846–#21850, objectstack-ai/objectui#11650).Lift
blockedand add the fixture notePOST /api/v1/data/sys_user_position {user_id: <Ada>, position: "finance", organization_id}) and, for 2-of-3, invite + sign up a third user bound tolegal; disable the competing per-group sign-off flow for the process (POST /api/v1/automation/showcase_expense_signoff/toggle {"enabled":false}) — otherwise any ≥5000 report opens that flow's request and the quorum run failsDUPLICATE_REQUEST; open a fresh request (slates are fixed at open): draft report + a 6000 line + PATCH status submitted.NODE_OPTIONS=--require <shim>(wrapsDate/Date.nowwith a file-read offset, setsDate.prototype.constructorto the proxy; timers untouched — no product logic changes); register one approval flow per action withescalation {enabled:true, timeoutHours:1, action, notifySubmitter:true}viaPOST /api/v1/automation(no writable package needed); advance +2h and wait for the 5-minute sweep (or restart for the boot sweep). Name the sweep interval and boot catch-up in the item.applyConfigPatch({oidcProviders:[…]});auth:configurefires too early); the provider must be up before the first auth request. Step 2 must link through the authenticatedPOST /api/v1/auth/link-socialand navigate to the returned URL. Nav label is "Linked Accounts" (Account app).e2e/import-console/import-console-undo.spec.tswithIMPORT_CONSOLE_LIVE=1from a scratch copy whose goto path is/_console/apps/{app}/{object}; API half under/api/v1/data/import/jobs(create, progress, results, cancel, undo).revertedAtis absent, not null, until reverted.Re-point
via_override:true).npm installfails on that layout (17.6.0 and 17.7 alike). Drop the step, or usepnpm install, or scaffold with--skip-installbefore an npm install.@objectstack/*andcreate-objectstack, run the repo's bin against it, prove the candidate via lockfile integrity; the published path only measures what is released. A4: "installed set" means unique skill names.studio-authoring.first-run-loopor state the limit.Generated by Claude Code