Skip to content

docs(qa): wave-3 accuracy slice S2 — studio-authoring.json - #28351

Merged
objectstack-fleet[bot] merged 2 commits into
mainfrom
claude/issue-27377-w3-accuracy-s2
Oct 31, 2026
Merged

objectstack-fleet[bot] merged 2 commits into
mainfrom
claude/issue-27377-w3-accuracy-s2

Conversation

@objectstack-fleet

Copy link
Copy Markdown
Contributor

Part of #27377

Clause-②: no
Metadata-protocol: none

维护者速读

What changes

Wave-3 accuracy slice S2: every census STALE row for docs/qa/platform-checklist/areas/studio-authoring.json, re-verified against the code at base a0f865491d (later merged up to 3fd803379) and edited to what the code does today. Each touched item takes revision +1, keeps main's history as an exact prefix, and gains one history row citing the run record the finding came from and #27377. No clause is weakened. Where a clause changed, it became more precise or stronger (draft-publish-lifecycle A10, multi-package-item-rows A3, removed-key-save-door-refusal A0, flow-edge-type-authoring A0, record-page-roundtrip A0 and N0). No product code is touched.

Item Census row(s) Old → new (brief) Record
removed-key-save-door-refusal 18 A0 verify accepted only "was removed in" → also the rename tombstone ("was renamed to refreshIntervalSeconds … Rename the key"); an aged-out key is reported by unrecognized_keys at the PARENT path, with the key named #27392
access-facets-runtime 79, 81, 82 qa_cap (runtime create 403 NOT_CREATABLE) → a declared, ungranted CAP (showcase.restricted_ops); the gated action is inline on OBJ's actions[]; knownGaps[0] "launcher half FAILS TODAY" → no longer a gap (since #27021 the launcher reads /me/apps) #27441
access-owd-and-suggestions 83 A2 statuses pending → accepted → revoked → pending → confirmed → dismissed #27441
access-permission-set-lifecycle 84 steps[1] "Create" → "Save as draft" #27441
api-written-keys-survive-studio-save 85 permission variant "FAILS today (#26837)" → holds (repaired by #27080); set-level allowExport dropped (a per-object key; set-level is 422) #27441
app-and-nav-properties 86 visible example 'org_admin' → 'org_owner' (the seeded admin's position); steps[4] says the Interfaces pillar shows only the package's FIRST app and its top-level navigation #27441
authored-page-slots-and-variables 87 "details OR tabs" → slots.tabs is retired (ADR-0085), with the slot key list #27441
dashboard-widget-and-filter-types 88 the sankey "source/target pair" → root to the first dimension's categories (plus a second column for a pivoted second dimension); a lookup filter needs optionsFrom #27441
flow-edge-type-authoring 90, 91 knownGaps[0] "half" → the edge inspector shows the server verdict (flow-edge-server-error), only Problems stays silent; A0 Normal stores no type key, with the option labels as drawn #27441
draft-publish-lifecycle 92 A10 "attempts (allowed and denied)" → names the audited denials (item_locked, metadata_conflict, batch_aborted, namespace_prefix, stored_type_not_canonical); 422 and 404 NO_DRAFT write no row; verify gains the stale-If-Match metadata_conflict row #27441
no-entry-property-matrix 93 form-view buttons "never rendered" → renders (submit label, hidden cancel) #27441
held-edit-leave-guard 95 steps[6] gains the autosave window: 1.5 s after the last edit (useDraftAutoSave.ts) #27441
report-authoring-options 96 "(POST the equivalent query)" → POST /api/v1/analytics/dataset/query with datasetName + selection {…, order: {MEASURE: 'desc'}} #27441
view-authoring-live 97 requires[0] lists the four sharingModel values; read_write answers 422 #27441
first-run-loop 148 "Home → Build an app" → the build chip, 'Build an app' or 'New in Studio' by agent catalog; steps[6] Home is the top bar's product mark ('PRODUCT home'); steps[2] "before Create" → "Save as draft" #27481
object-api-tab-curl 168, 226 N0 "(a value of the wrong type)" → also a right-typed dangling reference / owner_id; a required reference's placeholder is substituted like the token (#27490, repaired by #27613) #27438
multi-package-item-rows 178, 179 A3 "a single sentence" → the exact ruled two-sentence text; steps[2] the A-owned object carries A's namespace prefix #27438
org-override-registry-gate 180 steps[4] the new object declares sharingModel (else 422 security-owd-unset) #27438
object-designer-roundtrip 217 "Keep the pre-selected OWD choice and Create" → "… and click 'Save as draft'" #27438
record-page-roundtrip 218, 219 create with Kind = full (default slotted saves regions [] by design); A0 and N0 scoped to a full create; automated.ref gains the cold-console note (5 s timeout, a warm rerun passes) #27438
permission-matrix-editor-ux 220, 221 'Read all' → 'Read-only all'; min-w-[960px] → min-w-[1304px] #27438
automations-rail-and-new-flow 224 a schedule flow needs a Start-node cadence; Advanced → Schedule writes none and the rail shows Autolaunched #27438

Skipped by order (the census holds them out of the slices): studio-authoring.expression-editors (rows 71, 89, 165, 222, 223), the SCOPE-negatives sweep (rows 80, 167), and studio-authoring.validation-rules-authoring A3 (rows 160, 225, UNCLEAR). Not edited: row 94 (FIXED upstream at r3) and row 75 (GAP: the no-entry matrix needs a re-run, not a fixture-text edit).

Tests

No code changed, so the only measurement is the ledger's own gate and the derived gate families, taken on the final head.

pnpm check:platform-checklist
check-platform-checklist: OK — 16 areas, 352 items (347 active, 1 planned); coverage: 40 kinds mapped, 3 waived; traps: 19 documented, 19 in use; provisioning: 10 area recipes, 15 item references resolved (2 area-qualified), 10/10 recipes referenced
EXIT=0

A shape check over the parsed file, against the base copy: 22 items changed, each with revision +1, history[:-1] equal to the base history, and the new last row's revision equal to the item's. No other item and no area-level key moved.

Acceptance notes

  • held-edit-leave-guard. The record put the autosave window at "about 150 ms". The source says 1.5 s (useDraftAutoSave.ts, the same at the run subject c4c515a), and the step uses the source.
  • access-facets-runtime. The run measured a standalone runtime action item with objectName rendering on no surface. The item now authors the action inline. The rendering gap itself goes to the seat in the report; it is not edited here.
  • draft-publish-lifecycle. The sys_metadata_audit object's field doc lists the denied codes not_overridable, not_creatable, invalid_metadata and destructive_change, and nothing in packages/ writes them at this base. This is documentation drift with no consumer, noted here and not filed.
  • record-page-roundtrip. The second test in ui/e2e/live/studio-editor.spec.ts is now titled "… and the added block is stored". It may also reach acceptance[2]. The ref is not widened here.
  • automations-rail-and-new-flow. Advanced → Schedule writes triggerType: 'schedule' with no cadence, so the rail shows the flow as Autolaunched. The ledger states this as authoring guidance only; no defect is claimed.

Verification

Derived gate families (dispatch-gates --commands, final head), each exit captured before any pipe
node scripts/check-adr-links.mjs :: exit 0
node scripts/check-adr-links.mjs --self-test :: exit 0
node scripts/check-closing-keyword-parity.mjs :: exit 0
node scripts/check-closing-keyword-parity.mjs --self-test :: exit 0
node scripts/check-comment-mask-corpus.mjs :: exit 0
node scripts/ci/plan-test-core-shards.mjs --self-test :: exit 0
pnpm --filter @objectstack/lint run check:doc-formula-expressions :: exit 0   (first run exit 3, PREREQUISITE NOT MET; re-run after building formula + lint)
pnpm check:ci-filter-parity :: exit 0
pnpm check:cross-package-test-inputs :: exit 0
pnpm check:doc-authoring :: exit 0
pnpm check:driver-memory-census :: exit 0
pnpm check:gitlink-declared :: exit 0
pnpm check:nul-bytes :: exit 0
pnpm check:platform-checklist :: exit 0
pnpm check:refd-timer-probe :: exit 0
pnpm check:watch-hint-literal :: exit 0
--ran: 16 derived famil(ies) accounted for — 16 run, 0 NOT-MEASURED (a DERIVED zero)

Changeset: none. docs/qa/ publishes nothing, so this PR carries skip-changeset.


Generated by Claude Code

Twenty-two studio-authoring items re-read against the code and re-pointed
to what it does today, from the checklist-accuracy findings of QA runs
#27392, #27438, #27441 and #27481 parked on wave anchor #27377. Each item
takes revision +1 and one history row citing its run record; main's
history stays an exact prefix. No clause is weakened.

Claude-Session: https://claude.ai/code/session_01QSeKYmTYfaPbLQD4BJfomW
Co-Authored-By: Claude <noreply@anthropic.com>
@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

domain:devx#2 · os-justin · session_01QSeKYmTYfaPbLQD4BJfomW

席位核对 — ACCEPT · domain:devx#2 · head 452a0cbf23 · 2026-10-31T06:14Z

维护者速读

  • 改了什么:测试清单 studio-authoring.json 里 22 个 Studio 测试项共 29 处写法过时,按当前代码改正。改法与 wave 2 相同:revision +1,原有历史一字不动,新增一行写明依据的测试记录。例如:草稿自动保存的间隔是 1.5 秒;审计行只记协议真正会审计的那几类拒绝;新建记录页要写 Kind = full。
  • 为什么改:v18.3.0 发版测试(wave 3)的 runner 照这些写法跑时撞了墙,结论挂在锚卡 [sweep] v18.3.0 release test sweep #27377 上,按规则要回填进清单。
  • 风险与回滚:只改一个 json 清单文件(+180/−83),不动产品代码,也不发布任何包。回滚 = 还原本 PR。
  • 先看:PR 正文的逐项表。
  • 两分钟验证:pnpm check:platform-checklist 输出 OK。
  • 需要你做的:无。席位落地。

席位意见:合入。席位抽查了被替换的条款:审计那条从「允许和拒绝都记一行」收窄为「协议真正审计的才记」,这是把条款改成与代码一致,不是放松断言;自动保存的 1.5 秒对照了源码 useDraftAutoSave.ts:164 的 1500。dev 报出的两个产品侧问题,席位已立 finding 卡。

Shape: draft → main, Part of #27377. 1 file, +180/−83. Label skip-changeset. Non-governed; the seat lands it. Report 6539872216, claim 6539432865 (slice S2).

Checked:

  • Census coverage: 29 STALE rows are fixed across 22 items. Every row still held at a0f865491d.
  • Not edited:
  • Source over record: row 95's value follows the source (1500), not the record's "about 150 ms".
  • Gate: the seat's local pnpm check:platform-checklist at 452a0cbf23 exits OK.

Gates: on head 452a0cbf23, 47 check-runs: 27 success, 20 skipped, 0 failure; mergeable_state: clean. check-expected-skips --pr 28351: OK, all 20 skips are in main's roster (exit 0). check-governed-merges --pr 28351: NOT governed, 263 changed lines. Dev's union: 16 derived, 16 run, all exit 0.

Out of scope:

Landing: non-governed. In this act the seat readies the PR and arms auto-merge. Part of #27377; the seat verifies the merged diff.


Generated by Claude Code

@objectstack-fleet
objectstack-fleet Bot marked this pull request as ready for review October 31, 2026 06:15
@objectstack-fleet
objectstack-fleet Bot enabled auto-merge October 31, 2026 06:16
@objectstack-fleet
objectstack-fleet Bot added this pull request to the merge queue Oct 31, 2026
Merged via the queue into main with commit 476319f Oct 31, 2026
48 checks passed
@objectstack-fleet
objectstack-fleet Bot deleted the claude/issue-27377-w3-accuracy-s2 branch October 31, 2026 06:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/m skip-changeset PR has no user-facing published change; bypasses the changeset gate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants