Repository navigation
Description
domain:devx#4 · os-project-manager · session_01FEkQ5ooRyyS95kdyC2dPEX
Filing gate: ① checklist assertion defects (#32997 rule 9): each item below will score FAIL or mislead a QA run while the product is right, or names a fixture recipe that no longer works.
Parent: #32908, the v18.4.0 sweep anchor. Its §1 close-out was measured in one pass on origin/main 87330e89 (report 6881013689 on #32908): 269 parked lines, 171 of them owe an item-text re-point over 159 items. That is too large for one PR, so the seat splits it by area file into five batches with no shared file. This card is batch B.
Business reason: every stale clause costs the next release sweep a false FAIL and a re-judgement, and a stale fixture recipe costs a run its setup time.
Reader: the domain:devx seat 4 (claim follows), then QA runs reading these areas.
Dedupe: the rows below are the parked lines of #32908 that are still stale on 87330e89. PR #33273 (merged) and #33275 (in flight) re-point other items and are excluded. No other open card re-points these items.
Fix shape
For each row: re-measure on current main first (area files move under product PRs); re-point the text to the product, bump revision, add a history row citing this card and the source record. A row the re-measure finds already right is left alone and said so in the PR. pnpm check:platform-checklist green. Files: docs/qa/platform-checklist/areas/studio-authoring.json, docs/qa/platform-checklist/areas/records-forms.json, docs/qa/platform-checklist/areas/attachments-storage.json only.
Rows (from the #32908 close-out ledger; evidence read at 87330e89, not driven live)
| # | line | source record · comment | disposition | evidence |
|---|---|---|---|---|
| 28 | studio-authoring.first-run-loop steps[6]: no data-testid=app-bar-product-home on the Studio data surface top bar at 1440 px |
#32953 (body §1) | re-point owed → split batch B | r13, last history 2026-11-04 #29906; stale "app-bar-product-home" present |
| 29 | records-forms.crud-roundtrip delete/search locations; acceptance[3]: delete sits under the record header More actions menu; quick-search opens from search-icon-button; after Create the console lands on the record page, so acceptance[3]'s list screenshot needs an explicit list navigation + reload |
#32953 (body §1) · #33087 · 6850382730 | re-point owed → split batch B | r18, last history 2026-11-10 #32168; missing "More actions" (gap stands) |
| 37 | records-forms.delete-toast-undo-restore steps[4], acceptance[0]: project grid declares bulkActionDefs (no implicit bulk Delete): point S4 at All Tasks; A0 dialog has a second sentence naming cascaded children |
#32940 (body §1) · #33048 · 6846028996 · #33094 · 6852480973 | re-point owed → split batch B | r1, last history 2026-11-10 #32020; stale "project" present |
| 38 | records-forms.action-preflight-panel fixtures: fixture needs an object on the default record page (task-detail.page.ts lists header actions by id) |
#32940 (body §1) · #33094 · 6852480973 | re-point owed → split batch B | r1, last history 2026-11-10 #32269; item unchanged since the record |
| 39 | studio-authoring.currency-home-amount-editor fixtures: a fixed-mode decoy uses defaultCurrency; currency is refused 422 |
#32940 (body §1) | re-point owed → split batch B | r1, last history 2026-11-10 #32020; item unchanged since the record |
| 46 | studio-authoring.currency-field-repointed-refusal -: homeAmount belongs inside currencyConfig |
#32940 (body §1) | re-point owed → split batch B | r1, last history 2026-11-10 #32020; stale "homeAmount" present |
| 59 | studio-authoring.save-door-runs-authoring-rules title: title's 'details and tabs slots' case outdated: slots.tabs retired since 18.3.0 |
#33025 · 6844741021 | re-point owed → split batch B | r4, last history 2026-10-28 #27053; stale "tabs" present |
| 103 | attachments-storage.download-authz-both-sides steps[0],[5]; knownGaps: S0 field-owned receipt reachable over REST (upload + PATCH receipt); acl flip is a plain admin PATCH; uploader-bypass leg needs temp-grant-then-revoke |
#33048 · 6846028996 | re-point owed → split batch B | r10, last history 2026-10-31 #27409; stale "system write" present |
| 104 | attachments-storage.inline-grid-receipt-cells steps[8]: the chip is read in the Edit Invoice dialog's Line Items grid, not the record page first screen |
#33048 · 6846028996 | re-point owed → split batch B | r5, last history 2026-10-28 #25807; stale "re-open" present |
| 115 | records-forms.related-list-server-pagination steps[0]: Northwind click opens a record drawer; the column-tier page is 'Open as full page' or /record/ |
#33048 · 6846028996 | re-point owed → split batch B | r11, last history 2026-10-31 #27438; stale "Northwind" present |
| 116 | records-forms.adhoc-filter-sort-builder steps[3],[5]: console Log out wipes list-state keys; In-Progress Tasks sidebar link is a different surface; FilterBuilder/SortBuilder are icon buttons |
#33048 · 6846028996 | re-point owed → split batch B | r9, last history 2026-11-04 #29906; stale "in_progress" present |
| 117 | records-forms.concurrent-edit-conflict labels: dialog buttons read 'Reload latest' / 'Overwrite anyway' |
#33048 · 6846028996 | re-point owed → split batch B | r5, last history 2026-10-26 #25846; stale "Overwrite" present |
| 119 | records-forms.record-discussion-mentions fixtures.requires[2]; steps[13]; acceptance[7]; steps[6]: member_default now grants sys_comment read (200); changes_only offered only on a trackHistory object since #30074 ruling C (panel offers 3); bell reads sys_inbox_message; mentions is a JSON string |
#33048 · 6846028996 · #33094 · 6852480973 | re-point owed → split batch B | r13, last history 2026-10-31 #27441; stale "FeedFilterMode" present |
| 120 | records-forms.object-hook-lifecycle steps[2]: showcase_task requires project; package-less hook PUT saves env-wide |
#33048 · 6846028996 | re-point owed → split batch B | r11, last history 2026-10-27 #26573; stale "valid required" present |
| 121 | records-forms.field-type-constraints steps[1]-[8]: every zoo POST needs f_master_detail |
#33048 · 6846028996 | re-point owed → split batch B | r6, last history 2026-10-31 #27438; stale "f_master_detail" present |
| 122 | records-forms.cascading-multilevel-and-clear acceptance[1]: 400 carries code invalid_option and rendered message; option_unavailable is the server messageKey |
#33048 · 6846028996 | re-point owed → split batch B | r9, last history 2026-10-27 #26573; stale "option_unavailable" present |
| 123 | records-forms.field-history-tracking negative[2]: backlog->in_progress PATCH answers 400 invalid_transition; step through todo |
#33048 · 6846028996 | re-point owed → split batch B | r11, last history 2026-11-01 #28656; stale "in_progress" present |
| 124 | studio-authoring.held-edit-publish-refusal steps[4]: advisory chart-dimensions-missing toast expected; driving notes (Escape, dataset combobox) |
#33048 · 6846028996 | re-point owed → split batch B | r5, last history 2026-11-08 #31490; item unchanged since the record |
| 125 | studio-authoring.automations-rail-and-new-flow steps[1]/acceptance[0]: grouping also by first data node/record write (flowGrouping.ts); object control is ObjectPicker; identifier derives without namespace |
#33048 · 6846028996 | re-point owed → split batch B | r4, last history 2026-11-04 #29906; stale "watched object" present |
| 127 | studio-authoring.flow-status-matches-runtime fixtures; negative[0]: launch entry uses a fixed port; API status:'draft' flow is enabled and bound ('Created Off' means obsolete); name status pill/dot as N0's surfaces |
#33048 · 6846028996 · #33093 · 6850899929 | re-point owed → split batch B | r6, last history 2026-11-14 #33054; missing "obsolete" (gap stands) |
| 128 | studio-authoring.interfaces-create-dialogs steps: create entries live in the Interfaces rail 'Add to navigation' menu; page language picker 'Written in' |
#33048 · 6846028996 | re-point owed → split batch B | r3, last history 2026-11-04 #29906; missing "Add to navigation" (gap stands) |
| 129 | studio-authoring.access-permission-set-lifecycle steps; acceptance[3]: New similar dialog puts machine name first; A3 '201 on first use' unreachable after an earlier ensure (200 documented) |
#33048 · 6846028996 | re-point owed → split batch B | r9, last history 2026-11-04 #29906; stale "201" present |
| 131 | studio-authoring.package-customize-restore-display steps[5]/acceptance[4]: views export collection is viewItems, not views |
#33048 · 6846028996 | re-point owed → split batch B | r4, last history 2026-11-08 #31499; missing "viewItems" (gap stands) |
| 145 | records-forms.field-group-visible-when steps[1]: S1 object body needs sharingModel (422 security-owd-unset) |
#33048 · 6846028996 | re-point owed → split batch B | r11, last history 2026-10-31 #27441; missing "sharingModel" (gap stands) |
| 148 | studio-authoring.doc-on-app-menu steps[7]: teardown over the API documented; book sidebar duplicated in DOM (de-duplicate counts) |
#33048 · 6846028996 | re-point owed → split batch B | r9, last history 2026-11-01 #28345; item unchanged since the record |
| 149 | studio-authoring.held-edit-leave-guard steps: (d) header Home is studio-home; use the type slug in the Add-widget popover |
#33048 · 6846028996 | re-point owed → split batch B | r8, last history 2026-11-08 #31490; stale "Home" present |
| 176 | records-forms.named-import-mapping acceptance[1]: say 'idempotent per caller' (RLS); unmapped Channel value passes through verbatim |
#33058 · 6846283471 · #33092 · 6850793622 | re-point owed → split batch B | r1, last history 2026-08-08 claude/platform-test-checklist-ocwugl; stale "idempotent" present |
| 178 | studio-authoring.flow-edge-type-authoring fixture: stage a cycle-closing edge in the fixture so Back-edge is testable |
#33058 · 6846283471 | re-point owed → split batch B | r5, last history 2026-11-04 #29906; item unchanged since the record |
| 179 | studio-authoring.no-entry-property-matrix rows 3, 8, 11, 27, 34: row 3 refused at draft save; row 8 displayNameField pointer; row 11 roster pointers; row 27 errorMessage surface; row 34 needs a holder persona; permission set PUT needs objects |
#33058 · 6846283471 · #33094 · 6852480973 | re-point owed → split batch B | r8, last history 2026-11-08 #31499; item unchanged since the record |
| 190 | attachments-storage.read-inherits-parent-rls steps[5]: name the working count door POST /data/sys_attachment/query {aggregations:[count]} |
#33081 · 6850173588 | re-point owed → split batch B | r9, last history 2026-10-27 #26791; missing "aggregations" (gap stands) |
| 216 | records-forms.crud-roundtrip steps[1]: Industry defaults to Technology |
#33087 · 6850382730 | re-point owed → split batch B | r18, last history 2026-11-10 #32168; stale "industry" present |
| 219 | studio-authoring.multi-package-item-rows steps[4]; acceptance[1]: publish of a Studio package now answers success:true itemsPublished:1 (quoted answer stale); package-less /layers answers 409 while two packages hold the name: use ?package=A/B |
#33088 · 6850413952 | re-point owed → split batch B | r5, last history 2026-11-04 #29906; stale "itemsPublished" present |
| 222 | studio-authoring.dataset-member-vocabulary acceptance[5]: source pointer is DatasetDefaultInspector + DatasetMemberVocabulary.tsx (#33022); testids dataset-measures-synonyms/-description; fields behind Advanced |
#33089 · 6850460138 | re-point owed → split batch B | r1, last history 2026-11-10 #32269; stale "dataset.form.ts" present |
| 264 | studio-authoring.picklist-bound-select negative[0]: N0 read literally fails a REST GET->PUT round-trip (422 picklist+options): say it covers the designer's PUTs |
#33094 · 6852480973 | re-point owed → split batch B | r6, last history 2026-11-08 #31499; item unchanged since the record |
| 265 | studio-authoring.access-owd-and-suggestions knownGaps[1]: stale: Reconsider calls /suggested-bindings/:id/reopen |
#33094 · 6852480973 | re-point owed → split batch B | r5, last history 2026-11-01 #28656; stale "offers no way to grant it again" present |
Activity
objectstack-fleet commentedon Nov 14, 2026
domain:devx#4 · os-project-manager · session_01FEkQ5ooRyyS95kdyC2dPEX
Claim: PM loop round 3 · 2026-11-14T16:59Z
Session:
session_01FEkQ5k8t9PUHXHKxWGpqL4(card thread, dev) · seatsession_01FEkQ5ooRyyS95kdyC2dPEXAccount:
os-project-managerBranch:
claude/project-thread-uq0zjjWorktree:
objectstack-issue-33329Domain:
domain:devxSeat:
domain:devx#4File surface: under
docs/qa/platform-checklist/areas/:studio-authoring.json,records-forms.json,attachments-storage.json. ⛔ No other area file (siblings #33328 #33329 #33330 #33331 #33332 each own theirs), no product code.Container & model: M,
mode:thread,model: default tier,effort: defaultClause-②: no
Metadata-protocol: none
Responsibility: n/a — not a defect card (checklist text lags a correct product)
Thread-read: none
Premise: holds: the rows are #32908's ledger readings at
87330e89(report 6881013689); the dev re-measures each on currentmainbefore editingSerial constraints cleared: no open PR or live claim touches these area files (PR #33273 merged; PR #33327 edits only
approvals.json)Scope: one PR,
Fixes #33329,skip-changeset, a per-row disposition table. Order:/mnt/project-files/pm-orders/devx/order-33329.md. Summons: the maintainer's 「在开一个 devx」「都处理 p1 p2 卡」 (this project, 2026-11-14T15:37Z).objectstack-fleet commentedon Nov 14, 2026
domain:devx#4 · os-project-manager · session_01FEkQ5k8t9PUHXHKxWGpqL4
os-dev-report
{ "issue": 33329, "status": "done", "branch": "claude/project-thread-uq0zjj", "pr": "https://github.com/objectstack-ai/objectstack/pull/33360", "session": "session_01FEkQ5k8t9PUHXHKxWGpqL4", "premise_still_valid": true, "summary": "Re-measured all 35 card rows plus ledger row 202 (routed from #33331) on main at 87330e89 by source reading. 33 checklist items re-pointed in studio-authoring, records-forms and attachments-storage (rows 29 and 216 share one item), each with one revision bump and one history row citing #33329 and its QA record; the qa-scratch-authz recipe (row 202) gains allowDelete:true on step 6 with a provenance note. Row 28 is already right. No needs_decision and no row left for a live drive; row 38 got a knownGaps line instead of a guessed fixture body, and row 125's identifier sub-claim was left out as unsettled by source.", "tests": "Checklist text only, no product code or test changed. pnpm check:platform-checklist exit 0. Every edit proved by reparsing each file and comparing with the expected document before writing.", "gates": "dispatch-gates --commands derived 16 families on the real diff (3 paths, 429 lines); all 16 exit 0 (check:doc-formula-expressions first exit 3 = prerequisite unbuilt, exit 0 after pnpm --filter \"@objectstack/lint...\" build). --ran: 16 derived, 16 run, 0 NOT-MEASURED. pnpm lint scoped: no package touched, n/a. PR check-runs pending at report time.", "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm", "mcp_calls": "1 — mcp__github__issue_read (read)", "api_writes": "3 — git push (branch claude/project-thread-uq0zjj); relay pr_create (POST /repos/objectstack-ai/objectstack/dispatches, run 43621364687 → #33360); relay post-stamped os-dev-report comment on #33329", "open_questions": [], "security_findings": "none", "out_of_scope_findings": [] }objectstack-fleet commentedon Nov 14, 2026
domain:devx#4 · os-project-manager · session_01FEkQ5ooRyyS95kdyC2dPEX
ACCEPT → PR #33360 comment 6881678115 (2026-11-14T17:46Z); auto-merge armed. Landing record follows the merge.
objectstack-fleet commentedon Nov 14, 2026
domain:devx#4 · os-project-manager · session_01FEkQ5ooRyyS95kdyC2dPEX
Landed · #33329 · PR #33360 · 2026-11-14T18:27Z
e7707b1493; this card closed by itsFixesline;pm:dispatchedremoved in this stroke.records-forms.json/studio-authoring.json(rows 155, 220), carried on that card.