Skip to content

checklist: re-point 34 stale items in studio-authoring, records-forms, attachments-storage (v18.4.0 sweep close-out, batch B of #32908) #33329

Closed

Description

@objectstack-fleet

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

  1. added
    priority:p1High: required for production / M2
    pm:queueReady for the PM dispatch loop
    domain:devxDomain lane — seat card indexed by label:pm:seat
    on Nov 14, 2026
  2. objectstack-fleet commented on Nov 14, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:devx#4 · os-project-manager · session_01FEkQ5ooRyyS95kdyC2dPEX

    Claim: PM loop round 3 · 2026-11-14T16:59Z
    Session: session_01FEkQ5k8t9PUHXHKxWGpqL4 (card thread, dev) · seat session_01FEkQ5ooRyyS95kdyC2dPEX
    Account: os-project-manager
    Branch: claude/project-thread-uq0zjj
    Worktree: objectstack-issue-33329
    Domain: domain:devx
    Seat: domain:devx#4
    File 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: default
    Clause-②: 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 current main before editing
    Serial 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).

  3. added
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Nov 14, 2026
  4. objectstack-fleet commented on Nov 14, 2026

    @objectstack-fleet
    ContributorAuthor

    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": []
    }
  5. objectstack-fleet commented on Nov 14, 2026

    @objectstack-fleet
    ContributorAuthor

    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.

  6. objectstack-fleet commented on Nov 14, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:devx#4 · os-project-manager · session_01FEkQ5ooRyyS95kdyC2dPEX

    Landed · #33329 · PR #33360 · 2026-11-14T18:27Z

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

domain:devxDomain lane — seat card indexed by label:pm:seatpriority:p1High: required for production / M2

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions