Repository navigation
docs(qa): re-point three stale checklist lines (dataset editor, zh-CN template writes, built-in nav walk) - #30167
Merged
objectstack-fleet[bot] merged 4 commits intoNov 4, 2026
Conversation
…dget-and-filter-types Studio's New dataset entry sits beside the widget inspector's dataset picker and the New report dialog's (datasetCreate.tsx DatasetCreateEntry). The fixture stays API-written for a known shape. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017ihL2ebbZkr2QAEG1x7UC8
email-template-render and meta-read-doors-v18 author the zh-CN member of showcase_task_done_email into com.example.showcase.custom with no overrides, the recipe measured on a fresh showcase boot: the package-less PUT and the declared override both answer 403 NOT_OVERRIDABLE, the undeclared pair member writes, is served by ?member=zh-CN and renders for a zh-CN recipient. builtin-apps-nav-render steps[5] carries 46 Setup and 8 Account destinations, re-read at base, and steps[2] unfolds the icon rail before expanding groups. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017ihL2ebbZkr2QAEG1x7UC8
…ty matrix Studio's New dataset writes only a name, an object, the seed's count measure, group-by dimensions and sum measures, so the dataset row's keys still have no Studio control; only the reason it gave was stale. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017ihL2ebbZkr2QAEG1x7UC8
Contributor
Author
|
domain:devx#2 · marchtian · session_017ihL2ebbZkr2QAEG1x7UC8 席位核对 — ACCEPT ·
|
objectstack-fleet
Bot
deleted the
claude/issue-30129-stale-ledger-lines
branch
November 4, 2026 19:13
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by 田騏 · project thread
Fixes #30129
Clause-②: no
Metadata-protocol: none
维护者速读
node scripts/check-platform-checklist.mjs,应输出 OK(16 areas, 360 items),退出码 0。What changes
Each of the card's three lines was re-read at base
232d3bb5efbefore it was applied. None was already done at base, so all three are applied. Each edited item gets a revision bump and a history row withref#30129.studio-authoring.dashboard-widget-and-filter-types(rev 6 → 7),fixtures.requires[2]. The "Studio has no dataset editor (expected: the Interfaces card read it no-entry)" parenthetical is removed. checklist: re-point the ledger lines the 18.3.0 wave-5 re-check measured as stale, and add an item for the whole-deployment export #29906 removed the same text frominterfaces-create-dialogsandreport-authoring-options, and this edit uses the same wording. The new text cites Studio's New dataset entry,ui/packages/app-shell/src/views/studio-design/datasetCreate.tsx(DatasetCreateEntry,engine.studio.interfaces.newDataset.*). For a dashboard, the entry that matters is the one beside the widget inspector's dataset picker (DashboardWidgetInspector.tsx). The text also names the New report dialog's entry. The fixture stays API-written, for a known shape.integration-system.email-template-render(rev 14 → 15),fixtures.requires[2]: the "same name, locale zh-CN" scratch copy is now a zh-CN member written intocom.example.showcase.custom. The steps areensure-customization, thenPUT …?package=com.example.showcase.customwithlocale: 'zh-CN'in the body and nooverrides. To reset it:DELETE …?package=com.example.showcase.custom&member=zh-CN.api-backend.meta-read-doors-v18(rev 4 → 5),fixtures.requires[1]: the same recipe replaces the bare PUT.meta-read-doors-live.dogfood.test.tsalready authors the member this way.?package=….customwithoverrides, does not work for this member. The base shipsen-USonly, so a declared override of azh-CNmember answers 403NOT_OVERRIDABLE("ships no email_template named … with locale 'zh-CN'",declared_package_ships_no_such_item). A zh-CN member is the pair's own item, so the body carries nooverrides.platform-core.builtin-apps-nav-render(rev 12 → 13),steps[2]andsteps[5]. Revision 7's "steps[2] and steps[5] corrected" row is from docs(qa): 18.0 sweep anchor round 2 — expression-editors' RLS clauses to the engine's error tier, a consumed-changeset citation, and §3 accuracy corrections in five areas #24632 (2026-10-19). It fixes different findings, and comment 6600018008 on [sweep] v18.3.0 release test sweep #27377 (W5-P0, QA run QA run · release-18.3.0-w5-p0 (23/23) · 589049b0 · 2026-11-03 · 20 PASS / 2 PARTIAL / 1 FAIL / 0 BLOCKED / 0 NOT-RUN #29877, 2026-11-03) came after it. Both of the comment's findings were still stale at base:steps[5]: Setup now serves 46 destinations to the admin and Account 8, not 50 and 8. Since QA run QA run · priority:P0 (23/23) · eeec88d1 · 2026-11-01 · 20 PASS / 2 PARTIAL / 1 FAIL / 0 BLOCKED / 0 NOT-RUN #28545's reading, Setup's Packaged automation page retired under ADR-0146 D11 (feat(setup): retire Packaged automation's flows half; Packaged actions is its own Setup entry #28785; onlynav_packaged_actionsremains), and the unfiltered Packages entry moved to Studio (feat(platform-objects): Setup drops its unfiltered Packages entry; the full list lives in Studio #29547). Both commits are ancestors of589049b0and not ofeeec88d1(control:8cb8c7f461is an ancestor ofeeec88d1, exit 0). The count was re-read live at base.steps[2]: a window narrower than 1416 px (1280 px included) opens Setup and Account on the icon rail (consoleSidebarRail.tsCONSOLE_SIDEBAR_RAIL_BELOW_WIDTH). The walk now presses the sidebar toggle before it expands theexpanded: falsegroups. This was read from source, not driven live.Tests
This PR changes the checklist ledger only. No product code, test, seed or showcase file changes.
scripts/check-platform-checklist.mjsvalidates the ledger. Every edit was applied at text level. Each file was then re-parsed and compared item by item against the base, to prove that only the intended item changed and that itsrevisionequals its lasthistoryrow.Acceptance notes
232d3bb5ef. None was already applied, so none is skipped.overridesfor a member the base does not ship. Both the save-door refusal and the live send were measured.studio-authoring.no-entry-property-matrix(rev 6 → 7),variants[35]carried the same stale "dataset (Studio has no dataset editor)" parenthetical. It now names Studio's New dataset and why the row's keys still have no Studio control (commitecccdedfea, report delta 6639164497).NOT_OVERRIDABLE. Its sentence tells the caller to save into the pair "declaring overrides", and that write is refused 403 in turn. The docblock ofpackagelessCloseSubject(protocol-packageless-overlay-migration.ts) says the opposite: anemail_templatemember at a locale the base does not ship "stays open", and its package-less write is kept. Measured live; filed by the seat as metadata-protocol: a package-less write of an email_template member at a locale the base does not ship is refused, though packagelessCloseSubject documents it as open #30168 (domain:server,finding).Verification
node scripts/check-platform-checklist.mjs→OK — 16 areas, 360 items (354 active, 1 planned), exit 0.node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstackderived 16 commands atf9530757f7. All 16 ran and exited 0.--ranreconciliation: 16 derived, 16 run, 0 NOT-MEASURED, 0 UNRUN. This is a derived zero, because every line recorded an exit code.origin/mainwas merged once before opening (mergef9530757f7).Line 2: live probe on a fresh showcase boot at base (pnpm dev -- --fresh, admin)
PUT /api/v1/meta/email_template/showcase_task_done_emailpackage-less, en-US body (control)NOT_OVERRIDABLElocale: 'zh-CN'(the ledger's old recipe)NOT_OVERRIDABLEGET …?member=zh-CNPOST /api/v1/packages/com.example.showcase/ensure-customizationcreated: true, writable: truePUT …?package=com.example.showcase.custom, zh-CN body +overrides: {package: 'com.example.showcase', basedOn: '0.1.0'}NOT_OVERRIDABLE(ships no email_template … with locale 'zh-CN')PUT …?package=com.example.showcase.custom, zh-CN body, nooverridesSaved customization overlay … state=activeGET …?member=zh-CN/?member=en-US/ no memberpackageId: com.example.showcase.custom) / 200 shipped en-US / 200 en-UStype: 'api'flow, notify nodechannels ['email'],template showcase_task_done_email; adminsys_user.localezh-CN;POST /api/v1/automation/NAME/triggersys_emailrowsent, subject✅ 任务完成:QA zh probe, zh bodysys_user.localeen-US (control)sys_emailrowsent, subject✅ Task done: QA zh probeDELETE …?package=com.example.showcase.custom&member=zh-CN, thenGET …?member=zh-CN/?member=en-USLine 3: Setup / Account leaves on the same boot
GET /api/v1/meta/app→showcase_app, setup, account.?id=setup→ 46 leaves (groups excluded), includingnav_packaged_actionsand no packaged-automation or Packages entry.?id=account→ 8 leaves:nav_account_profile nav_account_notifications nav_account_approvals nav_account_linked nav_account_sessions nav_account_api_keys nav_account_oauth_apps nav_connect_agent. The server was stopped by its process group, and the--freshhome (/tmp/objectstack-dev-…) is gone.Derived gates (each exit 0, recorded before any pipe)
node scripts/check-adr-links.mjs, and the same with--self-testnode scripts/check-closing-keyword-parity.mjs, and the same with--self-testnode scripts/check-comment-mask-corpus.mjsnode scripts/ci/plan-test-core-shards.mjs --self-testpnpm --filter @objectstack/lint run check:doc-formula-expressionspnpm check:ci-filter-paritypnpm check:cross-package-test-inputspnpm check:doc-authoringpnpm check:driver-memory-censuspnpm check:gitlink-declaredpnpm check:nul-bytespnpm check:platform-checklistpnpm check:refd-timer-probepnpm check:watch-hint-literal🤖 Generated with Claude Code