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 D.
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/platform-core.json, docs/qa/platform-checklist/areas/cli.json only.
Rows (from the #32908 close-out ledger; evidence read at 87330e89, not driven live)
| # | line | source record · comment | disposition | evidence |
|---|---|---|---|---|
| 16 | platform-core.builtin-apps-nav-render steps[5],[3]: Setup serves 48 leaves (step says 46) and 11 settings namespaces (access_policy new beside the 10) |
#32953 (body §1) · #33087 · 6850382730 | re-point owed → split batch D | r13, last history 2026-11-04 #30129; stale "46" present |
| 18 | cli.organization-ownership-ceremony acceptance[5]; recipe cli-18-prerelease-db knownGaps: A-3 of #32102: the refused boot's telemetry retention drops the restored sys_activity__r20261027 shard before the guard refuses; acceptance[5]'s 'no row disappears outside the apply report' needs that carve-out and the recipe a knownGaps line |
#32953 (body §1) | re-point owed → split batch D | r10, last history 2026-11-14 #33016 |
| 26 | platform-core.boot-health steps[3]: the 30 compile advisories appear only on a compiling boot; a --no-compile boot prints none |
#32953 (body §1) | re-point owed → split batch D | r14, last history 2026-11-10 #32168; item unchanged since the record |
| 27 | cli.dev-boot-contract steps[5],[6],[8],[9]: steps[9] still says not yet replayed live (replayed by #32953); steps[5] the shifted instance takes requested+1 (hold two ports); steps[8] SIGTERM 143 observable only on the os dev pid; steps[6]/A2: with OS_HOME exported the Database line is file:$OS_HOME/data/objectstack.db; say 'with OS_HOME unset' |
#32953 (body §1) · #33087 · 6850382730 | re-point owed → split batch D | r9, last history 2026-10-27 #25807; stale "not yet replayed" present |
| 42 | platform-core.stored-reference-package-backfill-upgrade C4; fixtures.requires[0]: C4 by-design differences omit sys_inbox_message narrowing; R3 fixture must be a decided suggestion / an isDefault set (a pending SQL-planted suggestion is pruned at boot); SQL-planted managed sharing rule collides with the declared one |
#32940 (body §1) · #33090 · 6850495479 | re-point owed → split batch D | r1, last history 2026-11-10 #32019; stale "sys_audience_binding_suggestion" present |
| 44 | platform-core.activation-ledger-package-key-upgrade route (a) position row: 18.3.0's position door also writes package_id, so the position row needs nulling by SQL like the flow row; expected boot ERROR for the env-flow row worth a note |
#33048 · 6846028996 | re-point owed → split batch D | r1, last history 2026-11-10 #32019; stale "position" present |
| 47 | cli.address-grammar-reserved-names steps[4]/acceptance[3] (C4): os dev refuses a literal namespace at compile; the leg passes on os serve --dev |
#32940 (body §1) · #33094 · 6852480973 | re-point owed → split batch D | r2, last history 2026-11-11 #32075; missing "serve --dev" (gap stands) |
| 48 | cli.validate-target-restriction-profile C2: the permissive profile must list approval and approval_revise |
#32940 (body §1) | re-point owed → split batch D | r1, last history 2026-11-10 #32269; missing "approval_revise" (gap stands) |
| 63 | cli.dev-automigrate-policy knownGaps[1], negative[3]: sqlite-wasm autoMigrate refused at build (not accepted and ignored); os serve step needs OS_AUTH_SECRET; production 'ignored' warning prints once per SQL datasource |
#33025 · 6844741021 · #33081 · 6850173588 | re-point owed → split batch D | r8, last history 2026-10-27 #25807; stale "ignored" present |
| 64 | cli.migrate-plan-apply-json -: plan lists eight lifecycle create_tables; migrate meta refuses --database-url without --stored (exit 1) |
#33025 · 6844741021 | re-point owed → split batch D | r8, last history 2026-10-27 #26795; item unchanged since the record |
| 65 | cli.migrate-meta-codemod steps[3],[7]; negative[6]: stock showcase has two mode-less decision nodes, not three; negative[6] clashes with step 8; step 3 should plant keys retired at 18; --from 17 --to 19 note |
#33025 · 6844741021 · #33081 · 6850173588 · #33092 · 6850793622 | re-point owed → split batch D | r7, last history 2026-10-20 #24963; stale "three" present |
| 68 | platform-core.manifest-install-contract -: GET /api/v1/meta has no protocol field; read the major from GET /api/v1 version |
#33025 · 6844741021 | re-point owed → split batch D | r9, last history 2026-11-04 #29906; stale "protocol" present |
| 82 | cli.meta-package-flags-and-explain fixtures: writable package must declare a dependency on com.example.showcase, or the view save is refused 422 |
#33025 · 6844741021 | re-point owed → split batch D | r3, last history 2026-10-26 #25841; item unchanged since the record |
| 83 | platform-core.marketplace-install-local-lifecycle fixtures: an admin-created member has mustChangePassword: every door 403 PASSWORD_RESET_REQUIRED until changed |
#33025 · 6844741021 | re-point owed → split batch D | r9, last history 2026-10-28 #25807; missing "PASSWORD_RESET_REQUIRED" (gap stands) |
| 95 | platform-core.lifecycle-retention-sweep steps[4],[0]: S4 'boot fresh and wait >=90s' stale since #29918 sweep watermark (sys_lifecycle_state); a store created from empty defers its first sweep |
#33048 · 6846028996 | re-point owed → split batch D | r8, last history 2026-10-31 #27438; stale "90" present |
| 109 | cli.package-upgrade-plan-override-advice fixtures: fixture: RUNNER pair recipe over the API is equivalent; name the view the build registers (qa_up_ticket.default) |
#33048 · 6846028996 | re-point owed → split batch D | r1, last history 2026-11-10 #32269; stale "qa_up_ticket" present |
| 112 | platform-core.package-export-round-trip acceptance[5]: target enables exd (export carries items not the disable); engines.protocol WARN is noise, not the A5 WARN |
#33048 · 6846028996 | re-point owed → split batch D | r1, last history 2026-11-04 #29906; item unchanged since the record |
| 143 | platform-core.settings-hub-roundtrip fixtures/acceptance[12]: 11 namespaces (access_policy), not 10; showcase .env pins localization.currency (Locked by env, 409) |
#33048 · 6846028996 | re-point owed → split batch D | r7, last history 2026-10-31 #27441; stale "10" present |
| 163 | cli.flag-command-error-ux variants; acceptance[3]: 36 variants (deploy, audit, mcp topics missing), not 33 |
#33058 · 6846283471 · #33081 · 6850173588 | re-point owed → split batch D | r3, last history 2026-10-06 #22017; stale "33" present |
| 165 | cli.doctor-deprecation-scan steps; fixture: both retired-lookup spellings yield 9 hits; --skip-install scaffold makes doctor exit 1 (deps must be present) |
#33058 · 6846283471 | re-point owed → split batch D | r3, last history 2026-08-24 #11420; stale "8" present |
| 166 | cli.datasource-introspect-codegen knownGaps[2]; steps[1],[6]; acceptance[4],[5]: --schema refused (exit 2) on stock SQLite; validate of unknown name exits 2; missing_column has no expected-vs-actual pair |
#33058 · 6846283471 | re-point owed → split batch D | r8, last history 2026-10-20 #25003; stale "No federated objects" present |
| 174 | platform-core.packaged-object-extend-only steps[5]; negative[2]: /layers code layer already merges the extension; N2 can only be skipped on stock (never PASS): reword as a note or add a fixture |
#33058 · 6846283471 · #33081 · 6850173588 | re-point owed → split batch D | r2, last history 2026-10-16 #24036; item unchanged since the record |
| 175 | platform-core.keyboard-shortcut-surface steps[1],[2],[3]: Navigation group also lists Back to home (GO_HOME_SHORTCUT); list filter is behind the Search icon; dialog mounts only inside app content |
#33058 · 6846283471 | re-point owed → split batch D | r6, last history 2026-10-27 #26626; missing "Back to home" (gap stands) |
| 223 | cli.deploy-runtime-dry-run-json fixtures: use-runtime writes ~/.objectstack/cloud.json: runners set HOME to their work dir |
#33089 · 6850460138 | re-point owed → split batch D | r2, last history 2026-11-13 #32945 |
| 224 | platform-core.namespace-co-owner-name-refusal acceptance[3] step: repeating the install in base with the same ids is an upgrade; use fresh ids |
#33089 · 6850460138 | re-point owed → split batch D | r4, last history 2026-11-13 #32945 |
| 225 | platform-core.namespace-object-name-refusal fixtures; steps: POST /api/v1/packages refuses label and needs type; draft save is ?mode=draft |
#33089 · 6850460138 | re-point owed → split batch D | r2, last history 2026-11-13 #32945; missing "mode=draft" (gap stands) |
| 226 | platform-core.bare-name-one-holder-refusal cold-boot leg: cold-boot leg reachable with a defineStack packages[] of two bodies (usable fixture) |
#33089 · 6850460138 | re-point owed → split batch D | r4, last history 2026-11-14 #33091; missing "packages[]" (gap stands) |
| 228 | cli.migrate-stored-references copy recipe: copy recipe: checkpoint (or copy the -wal) after the upgrade boots |
#33090 · 6850495479 | re-point owed → split batch D | r1, last history 2026-11-10 #32019; missing "-wal" (gap stands) |
| 260 | platform-core.notification-center steps[0]; acceptance[5]: approvals count comes from GET /api/v1/approvals/requests; no direct my_pending door: name the equivalent query |
#33096 · 6851700388 | re-point owed → split batch D | r5, last history 2026-11-01 #28345; stale "my_pending" present |
| 266 | platform-core.marketplace-console-honesty steps[4]: a member cannot open Setup: member legs use /apps/com.example.showcase/system/marketplace |
#33094 · 6852480973 | re-point owed → split batch D | r6, last history 2026-10-21 #25097; stale "Setup" present |
Activity
objectstack-fleet commentedon Nov 14, 2026
domain:devx#4 · os-project-manager · session_01FEkQ5ooRyyS95kdyC2dPEX
Claim: PM loop round 3 · 2026-11-14T17:00Z
Session:
session_01FEkQ5nJ9pQRYdbWxWBVL2e(card thread, dev) · seatsession_01FEkQ5ooRyyS95kdyC2dPEXAccount:
os-project-managerBranch:
claude/project-thread-6qyhseWorktree:
objectstack-issue-33330Domain:
domain:devxSeat:
domain:devx#4File surface: under
docs/qa/platform-checklist/areas/:platform-core.json,cli.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 #33330,skip-changeset, a per-row disposition table. Order:/mnt/project-files/pm-orders/devx/order-33330.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_01FEkQ5nJ9pQRYdbWxWBVL2e
os-dev-report
{ "issue": 33330, "status": "done", "branch": "claude/project-thread-6qyhse", "pr": "https://github.com/objectstack-ai/objectstack/pull/33365", "session": "session_01FEkQ5nJ9pQRYdbWxWBVL2e", "premise_still_valid": true, "summary": "All 32 rows got a disposition: the card's 30 plus rows 213 and 240 from #33331 at the seat's direction. Every row was re-measured from source on origin/main 87330e89 and confirmed stale, so all 32 are re-pointed: 30 items (16 in platform-core.json, 14 in cli.json), each bumped exactly one revision with one history row citing #33330, the ledger row and the QA record comment, plus the cli-18-prerelease-db recipe (knownGaps[1] reworded, knownGaps[4] added). None was already right, none needs a live drive, and none needs a ruling. Clause sentences changed in three items where the product's answer moved (notification-center acceptance[5], datasource-introspect-codegen acceptance[4] and [5], settings-hub-roundtrip acceptance[12]). One gap for the seat: the PR body lacks the session-URL footer line (`---` then `_Generated by [Claude Code](https://claude.ai/code/session_01FEkQ5nJ9pQRYdbWxWBVL2e)_`); per os-dev.md I do not PATCH it, so it is the seat's to add if wanted.", "tests": "No test added or changed: checklist text only, nothing to ablate. `pnpm check:platform-checklist` exit 0 (427 items, symbol anchors 1649/1659 resolved, 10 on the named residual, 18 file floors held). A script compared every changed item against 87330e89: 30 items, each revision +1 and history +1.", "gates": "16 commands from `dispatch-gates --commands`, each exit captured before any pipe, all exit 0 (list in /mnt/project-files/pm-orders/devx/33330-gates-ran.txt). check:doc-formula-expressions first answered exit 3 (formula and lint unbuilt); rebuilt and reran, exit 0. `dispatch-gates --ran` exit 0: 16 derived, 16 run, 0 NOT-MEASURED. No package touched, so no scoped pnpm lint, build, test or typecheck is owed. CI families: read from PR #33365's check-runs (not yet read at report time).", "dogfood_battery": "n/a — no `!` in the PR title and no (narrowing) arm", "line_budget": "+278 / -103 over 2 files (381 changed lines, under the 3000 human-merge threshold)", "files_changed": [ "docs/qa/platform-checklist/areas/cli.json", "docs/qa/platform-checklist/areas/platform-core.json" ], "deviations": [ "the formula+lint prerequisite build for check:doc-formula-expressions ran directly (`pnpm exec turbo run build --filter=@objectstack/formula --filter=@objectstack/lint`), not under scripts/pm/os-verify-lock.sh", "PR body is missing the session-URL `_Generated by_` footer line; not patched by the dev (os-dev.md), left to the seat" ], "mcp_calls": "9 — reads only: mcp__github__issue_read ×3, mcp__github__pull_request_read ×4, mcp__github__get_file_contents ×2; no MCP write", "api_writes": "2 relay writes + 1 push: git push (branch claude/project-thread-6qyhse); fleet-write pr_create → POST /repos/objectstack-ai/objectstack/pulls + labels (request fw-20261114T173334Z-516e9c, run 43621766807, read-back identical); this os-dev-report comment via post-stamped (POST /repos/objectstack-ai/objectstack/issues/33330/comments). Write budget 3 of 3", "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 #33365 comment 6881706179 (2026-11-14T17:48Z); auto-merge armed. Landing record follows the merge.
objectstack-fleet commentedon Nov 14, 2026
domain:devx#4 · os-project-manager · session_01FEkQ5ooRyyS95kdyC2dPEX
Landed · #33330 · PR #33365 · 2026-11-14T18:27Z
b63c894934; this card closed by itsFixesline;pm:dispatchedremoved in this stroke.platform-core.json/cli.json(row 227), carried on that card.