Repository navigation
Description
Filing gate: maintainer-directed task. Filed by the 18.2.0 release-assessment thread · session_01G3h9iZTpL8aCiXbfsp8H5u. ⛔ Not a claim, ⛔ not dispatched.
Maintainer's words (project thread, 2026-10-25, verbatim): 22:54Z 「约 300 条清单准确性问题:是不是应该开卡?」, then 22:55Z 「写issue,不派发」.
Parent: wave anchor #25807 (18.2.0 release test sweep). RUNNER's extraction obligation parks checklist-accuracy findings on the anchor; the maintainer asked for them as issues, so the wave's findings are split into one card per ledger file and the anchor links each card. This is not a release blocker, so it carries no target:v18.
Reader who acts: the lane owning docs/qa/platform-checklist/** (domain:devx). Dedupe (open and closed): no card holds these lines; the 18.0 precedent closed its accuracy rows on its anchor #24579.
Wanted
For each line below, edit docs/qa/platform-checklist/areas/approvals.json: revise the item's text, bump its revision, and append a history entry citing the run record the line comes from. Keep pnpm check:platform-checklist green. A line that turns out to describe a product defect rather than stale text gets its own card instead of a ledger edit.
Findings (19)
From #25812 — priority:P0, 23 items, at 6679644a, pin b41ed7f68956
approvals.account-app-entry: "drawer" wording in steps 6–7 and acc[1], acc[3], acc[4] is stale — objectui removed the side sheet (objectui#12484); a row click or?request=now opens/apps/APP/sys_approval_request/record/ID; the account app answers on two URL segments (accountandcom.objectstack.account), which matters for acc[5].
From #25815 — release-18.2.0-tier1, 156 items, at 6679644a, pin b41ed7f68956 (clause labels: aK = acceptance[K], nK = negative[K])
approvals.decision-only-via-serviceall clauses: the ref (kind 'test') is packages/services/service-automation/src/resume-authority-gate.test.ts, an AutomationEngine + InMemorySuspendedRunStore unit — every clause's oracle is the api (route status, run/actions reads); precedent QA run · tier1:24681-touched (63/82) · 307ce4c4 · 2026-10-20 · 10 PASS / 53 PARTIAL / 0 FAIL / 0 BLOCKED / 19 NOT-RUN #24840 scored rev 1 PASS from it before the layer rule. Needs an HTTP pin (generic resume route + approvals API) to be Tier 1.approvals.email-action-token-doora0: clause's live at-rest sys_notification read stays a run leg; FORBIDDEN arm is exercised with 'stranger' (not an approver at all) rather than a non-pending approverapprovals.email-action-token-doora1: pin asserts status pending + no decisions, not byte-identity of the actions timeline / token consumed_atapprovals.email-action-token-doora3: 'a decide that fails still burns it' (consume-first under a failing decide) is not asserted by any named pinapprovals.request-page-reply-and-reader-visibilitya1: no pin asserts the approval_comment reply landing in the timeline, or the pending-approver/submitter-only restriction on replyingapprovals.request-page-reply-and-reader-visibilitya2: ref says request-read-gate covers acceptance[2]; it drives ObjectQL/protocol in-process, never /data/sys_approval_request over HTTPapprovals.status-mirror-fielda2: the clause names the SLA auto-decision as a second user-less machine transition; the pin drives only the dead-run sweep (the verify asks only for the sweep)approvals.status-mirror-fielda0/a1/a3/a4: the ref is the only pin and covers a2/n2 alone; the api/log clauses have no automation
From #25817 — release-18.2.0-manual-set, 29 items, at 6679644a, pin b41ed7f68956
approvals.approver-resolution-matrix: The suggested fallback,org_membership_levelowner, does not discriminate on stock, because the owner is the sole admin. Use{type:'user', member}instead.- approvals.decision-action-matrix:
- knownGaps[0]: the "one untried candidate" (a schedule-triggered approval) is refuted, and so is an api-hook on an object with no organization column. No stock door mints an org-less request.
- N1 quotes "a reminder was sent recently"; the live text is "a reminder was already sent recently".
- A0 says "exactly one" row, but the maxRevisions auto-reject appends
revisethenreject.
- approvals.per-group-signoff:
- A3.verify says end nodes log no step, but the approve branch now logs
mark_approved. - Steps 3/4 say "drawer" and 待我审批. The row opens the served
sys_approval_requestrecord page, and the English tab is "My Pending". - The N0 contrast has no stock per_group collapsed-slate request; the unanimous invoice (admin×2) was used.
- A3.verify says end nodes log no step, but the approve branch now logs
- approvals.quorum-m-of-n: A2 says the reject edge is unobservable, but the run logs
return_to_drafton reject. On a fresh boot the fixture needed no unbinding. - approvals.inbox-metadata-actions:
- Steps 1/2/5 and A0 still say "drawer" and 待我审批/我发起的.
- The Record cell opens the subject record, which also renders the bar, while the Request cell opens the request page. The steps should name the cell.
Acceptance
- Every line above is either applied (item revised,
revisionbumped,historycites the record) or answered on this card with the reason it was not. pnpm check:platform-checklistis green.- The PR links this card and [sweep] v18.2.0 release test sweep #25807.
Generated by Claude Code
Activity
objectstack-fleet commentedon Oct 26, 2026
Claim: PM loop round 1 · 2026-10-26T12:19Z
Session:
session_01Q4MDXRbEJCNdPAP4SiXwp9(devx seat 2) · card threadsession_01VwduP3gdrCAQyEyLmPtrUNAccount:
os-steveBranch:
claude/project-thread-8mee5z(the harness-pinned branch of the card thread; it names no issue, so this claim is the identity record; amended on spawn)Worktree:
objectstack-issue-25838Domain:
domain:devxSeat:
domain:devx#2(seat post #20163)File surface:
docs/qa/platform-checklist/areas/approvals.jsononly (stop on breach; explain in the report)Container & model: M,
mode:thread,model: default tier (TIER_DEFAULT, from dispatch-gates --tier: no path-derived mandate),effort: highClause-②: no
Metadata-protocol: none
Responsibility: n/a — not a defect card
Thread-read: none
Premise: holds (action surface
git log origin/mainon the file since filing: no commit; the dev re-reads each line against main first)Serial constraints cleared: own ledger file only; seat 1 holds #25835 / #25836 on other files; #26035 left the retired objectui pin wording in these files to these cards; no other
Claim:names this fileGenerated by Claude Code
objectstack-fleet commentedon Oct 26, 2026
os-dev-report
{ "issue": 25838, "status": "done", "branch": "claude/project-thread-8mee5z", "pr": "https://github.com/objectstack-ai/objectstack/pull/26116", "session": "session_01VwduP3gdrCAQyEyLmPtrUN", "premise_still_valid": true, "summary": "All 19 approvals.json lines applied to ten items (one revision bump + one history row each, citing QA run 25812 / 25815 / 25817 and this card; refs swapped to #26116). Every line was re-read at origin/main 9753d163, with ui/ for the console paths; none is a product defect, so none was withheld. The retired objectui pin wording in the file (objectui:build, .objectui-sha, check:console-sha, 'at the console pin') is respelled to the in-tree pnpm console:build flow in account-app-entry and request-page-reply-and-reader-visibility. File premise holds: approvals.json has no commit on main since 73432299 (2026-10-21).", "tests": "no test or code changed; span-editor proof: the new document equals the old with exactly 52 declared field ops applied, every edited item revision +1 with one appended history row, every other item and top-level key value-equal, and the text outside the ten edited items byte-identical", "gates": "local, at head 55b1e1c7: pnpm check:platform-checklist exit 0 ('check-platform-checklist: OK — 16 areas, 329 items (324 active, 1 planned)'); dispatch-gates --commands derived 13 families, all 13 ran with exit 0 (check:doc-formula-expressions first exit 3 PREREQUISITE, re-run after the prescribed turbo build of @objectstack/formula + @objectstack/lint: exit 0); --ran: '13 derived famil(ies) accounted for — 13 run, 0 NOT-MEASURED (a DERIVED zero)'. CI families: in_progress on PR 26116 at report time", "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm", "line_budget": "1 file, +102 / -60 then +10 / -10 (ref swap); 172 changed lines in all, under the 3000 human-merge threshold", "files_changed": ["docs/qa/platform-checklist/areas/approvals.json"], "deviations": [ "same-item consistency edits beyond the card's literal field list: per-group-signoff acceptance[2], inbox-metadata-actions acceptance[1] and fixtures.requires[1] carry the same stale drawer / zh-only tab wording as the fields the card names; named in each history row and the PR body", "PR body gate section cites head 95fe453c; the gates were re-run on 55b1e1c7 (the ref-swap commit) with the same result; body not PATCHed per contract", "check:doc-formula-expressions needed a local build of @objectstack/formula and @objectstack/lint (under os-verify-lock) before it measured" ], "mcp_calls": "5 — mcp__github__issue_read x5 (get 25838, get_comments 25838 x3, get 26052); no write tool", "api_writes": "2 — POST /repos/objectstack-ai/objectstack/dispatches (relay stroke pr_create: POST /pulls, POST /issues/26116/assignees, POST /issues/26116/labels; read back identical, assignee os-steve, label skip-changeset) · this os-dev-report comment via post-stamped. git push x2 (not REST)", "open_questions": [], "out_of_scope_findings": [ "carrier: #25807 · noted, not filed — 'drawer' wording persists in five items the card does not name: quorum-m-of-n (steps[8], acceptance[4]; run 25817 A4 read the record-page tally '0 of 2 · 3 eligible'), viewer-gating-submitter-side, notification-deep-link (title + ten fields), dynamic-approver-routing steps[3], inbox-keyboard-flow (title + thirteen fields)", "carrier: #25807 · noted, not filed — decision-action-matrix acceptance[9].verify still calls an org-less row 'the shape every schedule / time-relative / api-trigger run mints'; run 25817 measured an api-hook approval on a tenancy-disabled object stamping the default organization", "carrier: #25807 · noted, not filed — per-group-signoff steps[5] still offers 'via the documented override path', which its knownGaps[0] says is no longer acceptable", "carrier: #26035 · noted, not filed — record-page-decisions source[0]-[2] cite objectui blobs 'at the console pin cf153eb2e535' (provenance of a past read, not a retired-script instruction); left alone" ] }Generated by Claude Code
objectstack-fleet commentedon Oct 26, 2026
devx seat 2 · review: ACCEPT → PR #26116 comment 6416691831. Landing: ready + merge queue once every check on the reviewed head is green or skipped.
Generated by Claude Code