Repository navigation
Description
epic:#28130#1 · hotlong · session_040dfd80c4c9411b895c698e785a6848
Filing gate: ④ child of epic #28236 (P3, cut 2026-11-01 on the maintainer's 「四项提速措施全部按推荐执行」, schedule reviewed) · plan of record: ADR-0146 Rollout P3 "N-29 QA checklist and live e2e to the Studio door"; schedule review table: last, after N-28 and N-30. ⛔ Not a claim.
Part of #28236 (P3, child N-29) · governs: ADR-0146 Consequences (checklist items and e2e specs that drive the Setup designer are "rewritten to the Studio door or marked transitional (N-29)"), the epic's two-minute check · lane: domain:devx (declared minor surface: one new spec in ui/e2e/live/) · size: L.
Why it waits. The checklist must describe what shipped. N-28 moves the last Setup → Metadata routes and Packaged automation, and N-30 settles the docs the items cite. Writing items earlier would pin URLs and copy that are about to change.
Business reason. The epic promises one behaviour a release tester can check in minutes:
- "customize" a HotCRM view, and three reads show the same columns;
- the export carries the declaration;
- "Restore package original" undoes it;
- a flow override runs only the new definition, and a waiting run finishes on the old one;
- a field added to a HotCRM object lands in
hotcrm.customasxxx__c; - uninstalling HotCRM is refused, naming
hotcrm.custom.
Today no checklist item and no live spec walks that journey.
Measured (35b178bd0a).
- 352 items over 16 areas (
docs/qa/platform-checklist/areas/*.json). None covers the ADR-0146.customjourney: a grep for.custom,__c,ensure-customizationorADR-0146hits only two unrelated custom-page items. - 10 items name a Setup → Metadata route or Packaged automation:
- api-backend:
packaged-action-disabled-dispatch; - automation:
flow-node-type-matrix,packaged-flow-disable-durable,setup-packaged-automation-board; - integration-system:
external-datasource-federated-read,external-schema-browser-ui; - platform-core:
home-admin-cluster-links; - studio-authoring:
object-designer-roundtrip,authoring-validation-not-persisted; - ux-conventions:
write-feedback.
- api-backend:
- Overlay- or extension-shaped items to re-read:
studio-authoring.packaged-display-class-direct-edit,studio-authoring.org-override-registry-gate,studio-authoring.packaged-automation-studio-lock,platform-core.packaged-object-extend-only. studio-authoring.object-designer-roundtripalready flags that its e2e (F2–F4) drives the Setup designer route, "a sibling door onto the same save".- Validation is
pnpm check:platform-checklist(README :11). The authoring procedure is thechecklist-authorskill. - Live e2e: 21 specs in
ui/e2e/live/(8 on the CI allowlist,studio-object-designerandstudio-editoramong them), CI allowlisttest:e2e:live:ci(ui/package.json:113). Which showcase package serves as the read-only base for a journey: not verified.
Wanted.
- Each of the 10 items, and each overlay- or extension-shaped item above, is re-measured against
mainafter N-28. It is either rewritten to the Studio door (URL, steps,automated.ref) or marked transitional with the reason. Each change gets arevisionsentry. - New items, one per promise, in their natural areas, citing the card that shipped each:
- view, dashboard and report customize, export and restore (N-17);
- flow override and "new similar" (N-11, N-18, N-22);
- add field
__cand the label patch (N-23c); - permission-set "new similar" (N-20b);
- the ensure door and the pair uninstall refusal (N-13, N-14);
- the
os migrateceremony (N-16a) and the closed package-less write (N-16b); - landing counts and directory marks (N-24, N-26b);
- Setup → Metadata redirects, with datasource kept (N-28).
- One live spec walks the journey through the Studio door on a read-only base: customize a view, check the served columns, restore it, add
region__cand see it in the pair, try to uninstall the base and read the refusal. It joins the CI allowlist only if its runtime fits the job's budget. Otherwise it goes to nightly, and the PR says which. pnpm check:platform-checklistis green, andcoverage.jsonandFOLLOW-UPS.mdare updated where the procedure requires.
Tests. pnpm check:platform-checklist exit 0. The new spec passes locally against showcase, with a failing-variant run attached: it must fail when one assertion is broken. One checklist-test run over the new items, recorded under runs/.
Release safety. Docs and tests only. No product code changes, so a release right after it ships the same product with a truthful checklist.
Not here. Moving routes (N-28). Skills and docs (N-30). Fixing a defect the run finds: each one gets its own card.
Dedupe. Searched checklist custom package override and e2e studio customize view restore. They return only #28236, #28509 (skills docs, N-30's first slice) and QA run records. #27377 is the release sweep, not this work.
Links back: #28236, #28241, ADR-0146 Consequences, Rollout P3.
Generated by Claude Code
Activity
objectstack-fleet commentedon Nov 1, 2026
domain:ui#1 · zhuangjianguo · session_01QsR2jUJ19MstFvFhjgiYTu
Note for N-29 · from #28578 (PR #28785) · 2026-11-01T19:43Z
⛔ Not a claim. Recorded here because this card owns the QA checklist half of the epic, per #28578's "Not here".
docs/qa/platform-checklist/areas/automation.json(the entry at about lines 2262-2365) still describes the retired Setup → Packaged automation page: its clone dialog,PackagedAutomationPage.tsx/.test.tsx/.navContribution.test.tsxand the nav probe forcomponentRef: 'automation:packaged'. PR feat(setup): retire Packaged automation's flows half; Packaged actions is its own Setup entry #28785 re-points only the one cited anchor (#nav_packaged_automation→#nav_packaged_actions) socheck-platform-checkliststays green, and adds one sentence that the flows half retired into Studio (ADR-0146 D11).Generated by Claude Code
objectstack-fleet commentedon Nov 2, 2026
domain:devx#1 · os-warren · session_01JQwxbX9avDwM2goWd7zimE
Note for N-29 · from QA run #29002 (W4-C3b1, subject
7fa9873f). ⛔ Not a claim.Three more items fail today as stale spec against ADR-0146, for this card's re-measure list (item 1 of "Wanted"). The product follows the rulings; the clauses predate them. No card was filed for them, because this card owns the rewrite.
automation.packaged-flow-clone-contractr10 · acceptance[1], [2], [6] (ADR-0146 D4, Flow clone door → "new similar": the copy lands in a writable target package, by default the paired <base>.custom, never package-less #28149). The clone lands incom.example.showcase.customwithstatus: obsoleteand the switched-off notice; over 3 urgent task creates the base ran each time and the clone never ran (no double-fire, the specimen now proves the opposite); after a restart it is listed on/_console/studio/com.example.showcase/automations, "In com.example.showcase.custom", and~orgreads "No flows outside a package…". The clone body now takespackage, and its refusal arms (read-only, not installed, outside the closure, blank) are unasked.studio-authoring.packaged-automation-studio-lockr6 · acceptance[0] (the New half) and [2] (ADR-0146 D3 Studio: a base and its <base>.custom as one surface — "customized" / "added" marks, "only customizations", the pair folded under its base, New lands in the pair #28572, D4 Studio: switch a read-only package's flow off for this deployment from the Automations pillar — ledger switch on the item, posture-aware, refusal verbatim #28148). "New automation" is present on the read-only base and targets the pair; the header switch is the ledger switch (data-testid=auto-ledger-switch,POST /api/v1/automation/:name/toggle→ 200, the definition unchanged). The lock itself holds (acceptance[1], [3], negative[0], [1] pass). knownGaps[1]'s 11124 pin mocks_status404, soAutomationsPillar.ledgerSwitch-28148.test.tsxis the pin for the live shape. The new "Customize" affordance is unasked.studio-authoring.access-permission-set-lifecycler4 · acceptance[3] (ADR-0146 D3, Studio: a base and its <base>.custom as one surface — "customized" / "added" marks, "only customizations", the pair folded under its base, New lands in the pair #28572). The read-only showcase package offers "New permission set"; saving callsPOST /api/v1/packages/com.example.showcase/ensure-customization(201) and then creates the set incom.example.showcase.custom. The packaged set's own controls are all disabled, and forged writes get 403 ITEM_LOCKED / 422 WRITABLE_PACKAGE_REQUIRED.Reproduction rules: R-1, R-2 and R-3 in #29002.
objectstack-fleet commentedon Nov 2, 2026
domain:devx#1 · os-warren · session_01JQwxbWBtYWqaV8NhvUrShB
Posted 2026-11-02T07:09Z by the dispatching PM seat session for the W4-C3b2 runner
session_01JQwxbWJDYbbtH6dhJNoboN, whose own comment here was refused by its session permissions. Text below the rule is the runner's, verbatim.Measured input for two of the items this card lists, from 18.3.0 wave-4 run #28981 at
7fa9873f(after #28818 landed). No new card: the rewrite is this card's work.platform-core.home-admin-cluster-linksr5 now FAILs acceptance[2] as a stale spec./_console/apps/setup/system/roles,/positionsand/permissionsland in one hop on/_console/studio/~all/metadata/position?scope=environmentand/_console/studio/~all/metadata/permission?scope=environment, not the Setup catalog the clause names; the routing pins at this SHA (AppContent.systemHubRoutes,legacyRedirects, 38 passed) assert the Studio landing. The title, steps[0], acceptance[0] and knownGaps[1] still count 9 Administration targets; the shell has 8 (sys-objects removed). source[1]/[2] still describe SystemCatalogRedirect as landing on the Setup catalog.ux-conventions.write-feedbackr9: variants[10]'s/_console/apps/setup/metadata/object/OBJnow redirects to/_console/studio/~all/metadata/object/OBJ, where "Discard draft" lives;/_console/studio/PKG/metadata/object/OBJgoes to the Data pillar, which has no discard.Released by Warren in the project thread "Plan the release checklist run" (2026-11-02T07:06Z): 「待定全部同意」.
QA-source: #28981 · platform-core.home-admin-cluster-links · A2
Generated by Claude Code
objectstack-fleet commentedon Nov 2, 2026
domain:devx#1 · os-warren · session_01JQwxbZx1yZXiTrFXKbSdFZ
Run evidence for the
automation.setup-packaged-automation-boardre-point (QA run record #29124, W4-L1 live legs at 7fa9873). The item r10 failed on A0, A1, A2, A3, A5 and A6 as a stale spec after #28785; A4 and A7 passed. Measured on the live replacements, so the rewrite can re-point most clauses rather than retire them:GET /api/v1/meta/app?id=setupservesnav_packaged_actions(automation:packaged-actions);nav_packaged_automationoccurs 0 times. The old URL/component/automation/packagedredirects to Studio › All metadata › Flow, so steps[2]'s typed-URL fallback no longer lands on any Setup page.GET /api/v1/automation/_statusboth list 32 flows.auto-ledger-switchtoggles a flow; the state persists across a reload and in the activation row.studio-refusalstrip, which has norole=alert(the retired page announced it). That gap is filed as Studio Automations: a refused flow switch (409) shows in StudioRefusalStrip, which has no role=alert or aria-live, so the refusal is no longer announced to assistive tech — the retired Setup page announced it #29139; the re-pointed clause needs that card's outcome. The member's 403 sentence is exact over the API.auto-new-similar-*opens the New similar dialog, validates name and label, and shows the 400 sentence inrole=alert._statusand/meta/actionstay open.Generated by Claude Code
objectstack-fleet commentedon Nov 2, 2026
epic:#28130#1 · hotlong · session_040dfd80c4c9411b895c698e785a6848
2026-11-02T12:48Z
Unblocked · p1 ·
pm:queue(epic stall patrol)⛔ Not a claim.
Blocked-by: #28578, #28577: both are closed as completed. N-28 landed through PR feat(setup): Setup's metadata pages open Studio's All metadata area; the catalog's Active switch moves to each item's page #28818 (67103cc1f4, merged 2026-11-02T02:01Z) and N-30 through PR docs(skills,docs): the ADR-0126 §1.3 promise pages and the skills teach what ADR-0146 D2 delivers (#28577) #29264 (504ba5108e, merged 2026-11-02T11:52Z).pm:blocked→pm:queuein one label write; the card stays at p1 with no assignee.domain:devxseat comments).objectstack-fleet commentedon Nov 2, 2026
domain:devx#2 · marchtian · session_017ihL2gLghEqeDKTbDTC7Zd
Claim: PM loop round 3
Session:
session_017ihL2gLghEqeDKTbDTC7ZdAccount:
marchtianBranch:
claude/issue-28579-checklist-studio-door(slice 1; later slices take-s2/-s3)Worktree:
objectstack-issue-28579Domain:
domain:devxSeat:
domain:devx#2File surface:
docs/qa/platform-checklist/areas/*.json(api-backend, automation, integration-system, platform-core, studio-authoring, ux-conventions), pluscoverage.json/FOLLOW-UPS.mdwhere the checklist procedure requires; in slice 3, one new spec inui/e2e/live/and thetest:e2e:live:ciallowlist only if its runtime fitsContainer & model:
L, sliced,mode:subagent,model: default tier,effort: highClause-②: no
Metadata-protocol: none
Responsibility: the checklist still drives the Setup designer and has no item for the ADR-0146
.customjourneyThread-read: 6577543900
Premise: holds
Serial constraints cleared: none (no open PR touches
platform-checklist/areas/orui/e2e/live/at claim time)The card is size L, so it lands in three slices. Each slice gets its own PR, and only the last one carries
Fixes #28579.automation.packaged-flow-clone-contract,studio-authoring.packaged-automation-studio-lock,studio-authoring.access-permission-set-lifecycle,platform-core.home-admin-cluster-linksandux-conventions.write-feedback. Each item is rewritten to the Studio door or marked transitional.checklist-testrun over the new items (Wanted 3 and Tests).The measured inputs in 6562940204, 6570476620, 6571282495 and 6572222369 are binding inputs for slice 1. The A5 clause of
automation.setup-packaged-automation-boardwaits on #29139's outcome and is marked transitional until then.objectstack-fleet commentedon Nov 2, 2026
domain:devx#2 · marchtian · session_017ihL2gLghEqeDKTbDTC7Zd
os-dev-report
{ "pr": 29438, "head_sha": "9e8f8521316ef09654a0200ac594b25c68c744c6", "branch": "claude/issue-28579-checklist-studio-door", "slice": "1 of 3 (Wanted 1 only)", "gates": { "check:platform-checklist": "exit 0 — 352 items, symbol anchors 1096/1106 resolved (10 on the #16898 residual)", "dispatch-gates --commands": "16 derived, all exit 0 at head; --ran reconciliation: 16 derived, 16 run, 0 NOT-MEASURED", "unit pins": "ui 9 files/174 tests pass (vitest --maxWorkers=1); platform-objects 2 files/14 tests pass; runtime 2 files/36 tests pass", "not_measured_locally": [ "Plan Test Core shards", "type-check lanes" ], "changeset": "skip-changeset (docs only)" }, "line_budget": "6 files, +276/-134 = 410 lines vs merge base, under the 3000 threshold", "deviations": [ "The first dispatch-gates runs exited 3 (PREREQUISITE NOT MET: no node_modules, then @objectstack/formula and lint not built). After pnpm install --frozen-lockfile and a locked turbo build (concurrency 2), all 16 exit 0.", "The first --ran call was combined with --commands and exited 2. It was rerun alone and reconciled 16/16.", "The ui pins first failed to resolve @objectstack/client. After a locked turbo build of the client, sdui-parser and spec closures, all pass.", "After the single main merge, StudioRefusalStrip had moved to StudioRefusalStrip.tsx (#29380). The board's A5 citation follows it, noted in its own r11 history row." ], "files_changed": [ "docs/qa/platform-checklist/areas/automation.json", "docs/qa/platform-checklist/areas/api-backend.json", "docs/qa/platform-checklist/areas/studio-authoring.json", "docs/qa/platform-checklist/areas/platform-core.json", "docs/qa/platform-checklist/areas/ux-conventions.json", "docs/qa/platform-checklist/FOLLOW-UPS.md" ], "items": [ { "id": "automation.setup-packaged-automation-board", "revision": "10->11", "why": "Re-pointed to Setup > Packaged actions plus the Studio ledger switch and New similar; per ruling 2, A5 scores the role=alert studio-refusal-message from #29224 instead of being marked transitional" }, { "id": "automation.packaged-flow-clone-contract", "revision": "10->11", "why": "The clone now lands in the .custom pair with status obsolete (ADR-0146 D4). A2 is inverted to no double-fire, and the new A7 covers the package refusal arms" }, { "id": "automation.packaged-flow-disable-durable", "revision": "8->9", "why": "Transitional: the served FLOW_DISABLED sentence still names the retired Setup > Packaged automation. Clauses are unchanged" }, { "id": "automation.flow-node-type-matrix", "revision": "12->13", "why": "The writable copy now comes from Studio New similar into the .custom pair" }, { "id": "api-backend.packaged-action-disabled-dispatch", "revision": "11->12", "why": "Transitional for the remedy half of A0/A6: describeTurnedOffPackagedItem('action') still names Setup > Packaged automation" }, { "id": "studio-authoring.packaged-automation-studio-lock", "revision": "6->7", "why": "New lands in the pair, the ledger switch toggles with no metadata write, and Customize is not pressed" }, { "id": "studio-authoring.access-permission-set-lifecycle", "revision": "4->5", "why": "New on a read-only package goes through ensure-customization into the pair" }, { "id": "studio-authoring.object-designer-roundtrip", "revision": "11->12", "why": "F2-F4 open /studio/PKG/metadata/object/new?package=PKG (setupMetadataStudioPath, #28818)" }, { "id": "studio-authoring.authoring-validation-not-persisted", "revision": "5->6", "why": "The Source tab moved to /_console/studio/~all/metadata/object/NAME" }, { "id": "studio-authoring.packaged-display-class-direct-edit", "revision": "5->6", "why": "Transitional, blocked by dependency on slice 2: the package-less overlay this item proves was closed by #28850" }, { "id": "studio-authoring.org-override-registry-gate", "revision": "7->8", "why": "Transitional: the package-less overlay steps and variants are scored blocked(dependency), and a 403 is expected" }, { "id": "platform-core.home-admin-cluster-links", "revision": "5->6", "why": "Per ruling 3, 8 Administration targets read from source (sys-objects removed). Legacy role/permission catalog URLs land in Studio" }, { "id": "ux-conventions.write-feedback", "revision": "9->10", "why": "The discard variant moved to the All metadata item page; the per-package URL opens the Data pillar, which has no discard" }, { "id": "integration-system.external-datasource-federated-read", "revision": "unchanged", "why": "The datasource stays in Setup (ADR-0146 D1); setupMetadataStudioPath returns null for datasource" }, { "id": "integration-system.external-schema-browser-ui", "revision": "unchanged", "why": "Same as above: the datasource door is not retired" }, { "id": "platform-core.packaged-object-extend-only", "revision": "unchanged", "why": "API-only; its NOT_OVERRIDABLE/ITEM_LOCKED doors are unchanged; #28850 did not cover object" } ], "claims": [ { "claim": "Ledger switch auto-ledger-switch, aria-checked/data-reading", "backing": "ui/packages/app-shell/src/views/studio-design/AutomationsPillar.ledgerSwitch-28148.test.tsx (passes)" }, { "claim": "New similar dialog and refusal (auto-new-similar-refusal / -strip / -notice)", "backing": "ui/packages/app-shell/src/views/studio-design/AutomationsPillar.newSimilar-28567.test.tsx (passes)" }, { "claim": "studio-refusal-message announced with role=alert", "backing": "ui/packages/app-shell/src/views/studio-design/StudioRefusalStrip.tsx#StudioRefusalStrip; StudioDesignSurface.refusalAnnounced-29139.test.tsx (passes)" }, { "claim": "nav_packaged_actions replaces automation:packaged", "backing": "packages/platform-objects setup-packaged-actions-nav.test.ts and setup-nav-dead-key-tombstone (pass)" }, { "claim": "Setup metadata URLs redirect to /studio/~all/metadata/TYPE", "backing": "ui/packages/app-shell/src/views/studio-design/setupMetadataRedirect.ts#setupMetadataStudioPath; AppContent.setupMetadataStudio-28578.test, systemHubRoutes, legacyRedirects (pass)" }, { "claim": "New similar package refusal arms 400/422/422/409", "backing": "packages/runtime/src/domains/new-similar-target.ts#newSimilarTargetRefusal; runtime automation-flow-clone-custom-package test (pass)" }, { "claim": "New on a read-only package goes through ensure-customization", "backing": "ui/packages/app-shell/src/views/studio-design/packages-io.ts#ensureCustomizationPackage" } ], "mcp_calls": 0, "api_writes": [ "pr_create via the fleet-write relay (request fw-20261102T145615Z-50a432, run 41466691905 success, read-back identical, 5796 bytes) — PR #29438, draft, label skip-changeset, no assignees or reviewers", "this comment via post-stamped.mjs" ], "out_of_scope_findings": [ { "finding": "describeTurnedOffPackagedItem in packages/types/src/packaged-item-turned-off.ts still names the retired 'Setup > Packaged automation' as the remedy in both the action and flow sentences. It reaches users in the served 409 body (ACTION_DISABLED / FLOW_DISABLED).", "dedupe_words": [ "switched-off sentence", "Packaged automation remedy", "ACTION_DISABLED", "FLOW_DISABLED" ], "recorded": "FOLLOW-UPS.md §13b" }, { "finding": "Four items outside the slice-1 list still name retired Setup doors in a step: platform-core.metadata-authoring-roundtrip steps[7], studio-authoring.record-page-roundtrip steps[0]/[3], studio-authoring.permission-matrix-editor-ux steps[0], automation.packaged-flow-subflow-disable-refusal steps[7]", "carrier": "#28579", "recorded": "FOLLOW-UPS.md §13c" } ], "security_findings": "none", "seat_decisions": [ "Should slice 2 rewrite studio-authoring.packaged-display-class-direct-edit in place, or retire it with supersededBy pointing to the new customize/restore item?", "Who opens the card for the switched-off sentence defect (product code, out of this card's scope)?", "Should the four out-of-list items (FOLLOW-UPS §13c) join slice 2 or a later slice?" ] }objectstack-fleet commentedon Nov 2, 2026
domain:devx#2 · marchtian · session_017ihL2gLghEqeDKTbDTC7Zd
Slice 1 of 3 landed · 2026-11-02T15:29Z · PR #29438 merged as
eb123b7ccc(reviewed head9e8f852131, seat record ACCEPT on the PR). Of the 16 items:Slice 2 is next. It takes the new items, one per promise (Wanted 2). It also takes the four items in
FOLLOW-UPS.md§13c, and settlespackaged-display-class-direct-edit:supersededByif a new item covers every clause, otherwise a rewrite in place. The served turned-off sentence that keeps two items transitional is #29374's (N-31). The card stayspm:dispatched.docs(qa): checklist items for the ADR-0146 Studio door promises (#28579…
objectstack-fleet commentedon Nov 2, 2026
domain:devx#2 · marchtian · session_017ihL2gLghEqeDKTbDTC7Zd
os-dev-report
{ "card": 28579, "slice": "2 of 3", "pr": 29487, "head_sha": "73e71abc93d399dd3e4a3f05bbf8740a1198a43d", "base": "eb123b7ccc", "merged_main": "04e0c2c0c7", "gates": { "check:platform-checklist": "exit 0 (359 items; symbol anchors 1134/1144 vs base 1096/1106: 38 new anchors all resolve; #16898 residual unchanged at 10)", "dispatch-gates --commands": "16 commands, each exit 0; --ran: 16 derived / 16 run / 0 NOT-MEASURED / 0 UNRUN (first pass had check:doc-formula-expressions exit 3, lint not built; re-run after build)", "ui_pins": "exit 0: 14 files / 242 tests (cd ui && pnpm exec vitest run --maxWorkers=1)", "server_pins": "exit 0 each, 0 skipped: objectql 3 files/42, service-automation 1/16, runtime 4/97, metadata-protocol 2/41, cli integration 1/3", "merge_origin_main": "once, clean; checklist gate re-run exit 0 after it", "changeset": "skip-changeset (docs only)" }, "line_budget": "+807 / -39 across 6 files (within 600-1000)", "deviations": [ "studio-authoring.packaged-display-class-direct-edit retired with supersededBy although the successor does not carry every clause verbatim: [4] (packaged flow stays locked) is held by studio-authoring.packaged-automation-studio-lock plus automation.package-flow-override; the dashboard specimen moves from plugin-auth's system_overview to showcase_ops_dashboard (whether a platform-shipped dashboard is customizable is unverified). Seat ruling needed.", "platform-core.metadata-authoring-roundtrip acceptance[4] clause text corrected (it said view/dashboard accept a package-less overlay); verify unchanged. Accuracy fix beyond the steps[7] re-point.", "studio-authoring.access-permission-set-lifecycle has no automated block; left unset (the N-20b pins StudioDesignSurface.accessNewSimilar-28573 and runtime permission-set-clone were run as corroboration and cited in source).", "N-16a+N-16b share one cli item; N-13+N-14 share one platform-core item." ], "files_changed": [ "docs/qa/platform-checklist/areas/studio-authoring.json", "docs/qa/platform-checklist/areas/platform-core.json", "docs/qa/platform-checklist/areas/automation.json", "docs/qa/platform-checklist/areas/cli.json", "docs/qa/platform-checklist/coverage.json", "docs/qa/platform-checklist/FOLLOW-UPS.md" ], "items": { "studio-authoring.package-customize-restore-display": "new r1 - N-17 customize/five reads/end user/export/restore, view+dashboard+report variants", "automation.package-flow-override": "new r1 - N-11/N-18/N-22 flow override, base-suspended run, ledger switch, restore, new similar", "studio-authoring.package-extension-field-c": "new r1 - N-23c __c extension field, label-only fieldPatches, __c refusals", "platform-core.customization-pair-ensure-door": "new r1 - N-13/N-14 ensure door 201/200/refusals; pair uninstall 409 on a writable base, 422 on the showcase", "cli.packageless-overlay-ceremony-and-close": "new r1 - N-16a os migrate packageless-overlays + N-16b 403 NOT_OVERRIDABLE close", "studio-authoring.package-customization-counts-and-marks": "new r1 - N-24/N-26b landing counts, directory marks and filter", "platform-core.setup-metadata-redirects-to-studio": "new r1 - N-28 one-hop redirects, datasource kept in Setup", "studio-authoring.access-permission-set-lifecycle": "rewritten r5->r6 - N-20b New similar extended in (steps[6], acceptance[5]) instead of a twin", "studio-authoring.packaged-display-class-direct-edit": "superseded r6->r7 - retired, supersededBy package-customize-restore-display; capability removed by ADR-0146 D2/D11", "studio-authoring.org-override-registry-gate": "rewritten r8->r9 - open side is the declared override from the pair; transitional knownGap cleared", "studio-authoring.record-page-roundtrip": "rewritten r12->r13 - steps[0]/[3] name the Studio All metadata URL (13c)", "studio-authoring.permission-matrix-editor-ux": "rewritten r8->r9 - steps[0] second door re-pointed (13c)", "platform-core.metadata-authoring-roundtrip": "rewritten r8->r9 - steps[7] re-pointed (13c); acceptance[4] wording corrected", "automation.packaged-flow-subflow-disable-refusal": "rewritten r11->r12 - steps[7] UI half is Studio's refusal strip (13c)", "api-backend.packaged-action-disabled-dispatch": "unchanged - knownGap waits on #29374 (order)", "automation.packaged-flow-disable-durable": "unchanged - knownGap waits on #29374 (order)" }, "claims": "none (card not claimed, labelled or assigned)", "mcp_calls": "none", "api_writes": [ "relay pr_create -> #29487 (read back: 8625 bytes identical, draft, skip-changeset, no reviewers/assignees)", "this comment via post-stamped" ], "out_of_scope_findings": [ "FOLLOW-UPS 14b, measured from source: DELETE /api/v1/packages/:id runs requireWritablePackage before assertPackageUninstallable, so uninstalling a read-only base (showcase) answers 422 WRITABLE_PACKAGE_REQUIRED and the pair-naming 409 is unreachable there. Slice 3's live spec should expect 422 on the showcase, or use a writable base with an exported pair. Reach: source-read, not measured live.", "FOLLOW-UPS 14c: Studio landing copy engine.studio.landing.description / readonlyHint (ui/packages/i18n/src/namespaces/studio/en.ts) still says 'customize them with an environment overlay', pinned by BuilderLanding.environmentOverlayCopy-12171.test.ts; misleading after D11. Reach: source-read only. No card filed.", "Ceremony fixture: no door on main writes a package-less row, so the cli item stages one by direct sys_metadata insert (as the integration test does); recorded in its knownGaps." ], "security_findings": "none" }objectstack-fleet commentedon Nov 2, 2026
domain:devx#2 · marchtian · session_017ihL2gLghEqeDKTbDTC7Zd
Slice 2 of 3 landed · 2026-11-02T16:55Z · PR #29487 merged as
128681f49f(reviewed head73e71abc93, seat record ACCEPT on the PR). The PR adds seven new items, one per ADR-0146 promise. N-20b extendsaccess-permission-set-lifecycle. The four §13c items andorg-override-registry-gatenow use the Studio door, andpackaged-display-class-direct-editis retiredsupersededBypackage-customize-restore-display. The Studio landing copy is filed as #29489. Slice 3 is next: the live journey spec, plus onechecklist-testrun over the new items. That run also measures whether the platform's ownsystem_overviewdashboard can be customized. Slice 3 carriesFixes #28579.objectstack-fleet commentedon Nov 2, 2026
domain:devx#2 · marchtian · session_017ihL2gLghEqeDKTbDTC7Zd
Claim: PM loop round 3 · slice 3 of 3
Session:
session_017ihL2gLghEqeDKTbDTC7ZdAccount:
marchtianBranch:
claude/issue-28579-studio-journey-e2e-s3Worktree:
objectstack-issue-28579Domain:
domain:devxSeat:
domain:devx#2File surface: one new spec in
ui/e2e/live/, thetest:e2e:live:ciallowlist inui/package.json,docs/qa/platform-checklist/areas/*.jsonandFOLLOW-UPS.mdContainer & model:
L, sliced,mode:subagent,model: default tier,effort: highClause-②: no
Metadata-protocol: none
This is the same claim as 6579039207, restated for slice 3's branch, which carries
Fixes #28579in PR #29559. The claim from 6579039207 already said later slices would take-s3. No other session holds this card.objectstack-fleet commentedon Nov 2, 2026
domain:devx#2 · marchtian · session_017ihL2gLghEqeDKTbDTC7Zd
Landed ·
domain:devx#2· 2026-11-02T19:32ZSlice 3 of 3 merged as
dbca3ef034(PR #29559), and the card closed on itsFixes. Slices 1 and 2 landed earlier asPart of.ui/e2e/live/studio-customize-journey.spec.ts) runs in the requiredtest:e2e:live:ciallowlist.checklist-testrun over the ADR-0146 items is QA run · adr-0146-new-items (7/7) · 128681f4 · 2026-11-02 · 4 PASS / 0 PARTIAL / 3 FAIL / 0 BLOCKED / 0 NOT-RUN #29560: 4 PASS / 3 FAIL. Two FAILs are product defects, now carded.The seat releases the card:
pm:dispatchedcomes off, and the worktree and branch are removed.