You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[ui] promote the nightly Studio live specs (object designer, page editor) into Live E2E UI under the promotion rule, so a Studio save path regression blocks merge #27554
Filing gate ③ (maintainer-directed). Maintainer, this session's chat, 2026-10-29, verbatim: 「同意,立卡」, answering the seat's Live E2E UI assessment (B: widen the gate to the server packages the Console depends on; C: the scenarios below), after the seat measured that neither adds CI wall-clock time. This is C, scenario 3.
Business reason. Studio is where customers and AI authors write metadata, and its save path breaks often after merge: #27459 (an empty autosaved item is refused 422, and every later edit is lost), #27461 (an unconfigured rollup is autosaved), #26917 (a blank draft over a published flow). studio-object-designer.spec.ts (F1–F4) and studio-editor.spec.ts already drive the real editor against the real stack, but only in test:e2e:live:nightly, where a red blocks nothing.
Task.
Measure both specs' stability: the last ≥ 10 nightly readings, or ≥ 10 local runs on the workspace backend (ui/e2e/live/ci/start-backend.sh).
Promote what passes the rule into test:e2e:live:ci: 3/3 consecutive green, plus a 5/5 run of the enlarged allowlist. Leave a test that does not pass in nightly, with the reason in its header.
Add one assertion each spec lacks, if it is cheap: after a save, re-read the item through /meta and assert what was stored (the save round trip, not only the UI state).
Claim: PM loop round 1
Session: session_01Utp6CaJoinvGQSbHeDaWBe
Account: os-bill
Branch: claude/project-thread-urez9i (the card thread's designated push branch, the recorded platform exception to claude/issue-<n>-<slug>)
Worktree: objectstack-issue-27554
Domain: domain:ui
Seat: domain:ui#3
File surface: ui/e2e/live/studio-object-designer.spec.ts, ui/e2e/live/studio-editor.spec.ts, the test:e2e:live:ci / test:e2e:live:nightly lists where they are declared under ui/ (stop on breach; explain in the report)
Container & model: M, mode:thread, model: TIER_DEFAULT (dispatch-gates --tier on 178b5238: no path-derived mandate), effort: high
Clause-②: no
Metadata-protocol: none
Responsibility: ui code produces the defect | no platform path covers it | every Studio / console author reaches it today
Thread-read: none
Premise: holds
Serial constraints cleared: seat-3 siblings #27551 and #27552 touch ui/e2e/live/ and the live lists: coordinate through the seat thread, merge origin/main before the PR
Filing gate ③ (maintainer 「同意,立卡」 on the card). Promotion rule and #27550 budget bind; ui/.github/** and root ci.yml out of bounds.
Dispatched 2026-10-29T22:00Z to a card thread of the seat's project; the order lives in the project. ⛔ The thread posts no claim and writes no assignee.
{
"issue": 27554,
"status": "done",
"branch": "claude/project-thread-urez9i",
"pr": "https://github.com/objectstack-ai/objectstack/pull/27770",
"head": "75f8060cd334d2bb4bf823dec7dc860a0dc37523",
"session": "session_01Utp6CaYrosoxy8gyWwRM83 (card thread; seat session_01Utp6Ca91qzUJokpqNjhJeu)",
"premise_still_valid": true,
"summary": "studio-object-designer.spec.ts and studio-editor.spec.ts move from test:e2e:live:nightly to test:e2e:live:ci (ui/package.json); both passed the promotion rule. F4 now authors a writable package (the showcase is code-provided: save answers 422 WRITABLE_PACKAGE_REQUIRED), saves the new object's draft and re-reads GET /meta/object/NAME?state=draft: exactly one select field, options equal [{value:open,label:Open}], the empty row not stored. The page editor's Add block test now picks Card, waits for the autosave PUT ?mode=draft (2xx) and re-reads ?state=draft: first region holds one more block, the last is page:card. Both fit #27550's 2-minute budget, so no higher-yield-only choice was needed.",
"readings": "Workspace backend (start-backend.sh, port 4010) + Console vite build served by vite preview (5190), --retries 0, one long-lived backend. Baseline unchanged specs: 10/10 green, 60/60 tests, 16.4-17.9 s. Changed specs: 10/10 green (3/3 consecutive included), 19.1-20.0 s. Enlarged allowlist pnpm run test:e2e:live:ci: 5/5 green, 55/55 tests, 33.9-37.2 s (wall 35.3-38.7 s). Incumbent four alone: 3/3, wall 18.0-19.3 s. Nightly: at most 2 scheduled runs since the live tier was wired, both failed on other shards; job logs not downloadable through the proxy, so the readings are local.",
"tests": "Test-only diff (two live specs + one private script list). No ablation: no product behaviour changed. Runs as in readings, at the pre-rebase tree; the rebase onto 6d8372a8 touched no file in ui/e2e/live or ui/package.json.",
"gates": "head 75f8060c: dispatch-gates --commands derived 31 families; all 31 ran locally exit 0, plus node scripts/check-sdui-manifest.mjs exit 0 (32 lines, listed in the PR body). --ran: 31 derived, 31 run, 0 NOT-MEASURED, 0 UNRUN. PR check-runs: in_progress at report time (Live E2E UI is the first CI reading of the enlarged step).",
"line_budget": "3 files, +89 / -26 (115 changed lines), under the 3000 human-merge threshold",
"files_changed": [
"ui/e2e/live/studio-object-designer.spec.ts",
"ui/e2e/live/studio-editor.spec.ts",
"ui/package.json"
],
"deviations": [
"F4 now targets an environment-authored package (created and deleted per run through /api/v1/packages) instead of com.example.showcase, because a save into the code-provided showcase is refused; its banner assertions are unchanged.",
"The harness's after-PR assignee/review-request step skipped, per the dispatch order (no assignees, no review request).",
"Commit trailers are the AGENTS.md model-free pair, not the harness's model-named Co-Authored-By."
],
"dogfood_battery": "n/a: no ! in the PR title and no (narrowing) arm",
"mcp_calls": "0",
"api_writes": "2: fleet-write relay pr_create (POST /repos/objectstack-ai/objectstack/pulls, labels skip-changeset; via workflow_dispatch of the relay), this report comment (POST /repos/objectstack-ai/objectstack/issues/27554/comments)",
"open_questions": [],
"out_of_scope_findings": [
"carrier: seat · noted, not filed: .github/workflows/ci.yml live-e2e-ui comment says the four allowlisted live specs (now six); examples/app-showcase/test/console-live-specs.live.test.ts header says Four of its specs; docs/qa/platform-checklist/areas/studio-authoring.json says F4 never reads the stored options (it now reads the stored draft). All three are prose, read by no gate, outside this card's file surface."
]
}
Activity
objectstack-fleet commentedon Oct 29, 2026
domain:ui#3 · os-bill · session_01Utp6CaJoinvGQSbHeDaWBe
Claim: PM loop round 1
Session:
session_01Utp6CaJoinvGQSbHeDaWBeAccount:
os-billBranch:
claude/project-thread-urez9i(the card thread's designated push branch, the recorded platform exception toclaude/issue-<n>-<slug>)Worktree:
objectstack-issue-27554Domain:
domain:uiSeat:
domain:ui#3File surface:
ui/e2e/live/studio-object-designer.spec.ts,ui/e2e/live/studio-editor.spec.ts, thetest:e2e:live:ci/test:e2e:live:nightlylists where they are declared underui/(stop on breach; explain in the report)Container & model:
M,mode:thread,model: TIER_DEFAULT(dispatch-gates --tieron178b5238: no path-derived mandate),effort: highClause-②: no
Metadata-protocol: none
Responsibility: ui code produces the defect | no platform path covers it | every Studio / console author reaches it today
Thread-read: none
Premise: holds
Serial constraints cleared: seat-3 siblings #27551 and #27552 touch
ui/e2e/live/and the live lists: coordinate through the seat thread, mergeorigin/mainbefore the PRFiling gate ③ (maintainer 「同意,立卡」 on the card). Promotion rule and #27550 budget bind;
ui/.github/**and rootci.ymlout of bounds.Dispatched 2026-10-29T22:00Z to a card thread of the seat's project; the order lives in the project. ⛔ The thread posts no claim and writes no assignee.
Generated by Claude Code
objectstack-fleet commentedon Oct 29, 2026
domain:ui#3 · os-bill · session_01Utp6CaYrosoxy8gyWwRM83
os-dev-report
Posted 2026-10-29T22:45Z.
{ "issue": 27554, "status": "done", "branch": "claude/project-thread-urez9i", "pr": "https://github.com/objectstack-ai/objectstack/pull/27770", "head": "75f8060cd334d2bb4bf823dec7dc860a0dc37523", "session": "session_01Utp6CaYrosoxy8gyWwRM83 (card thread; seat session_01Utp6Ca91qzUJokpqNjhJeu)", "premise_still_valid": true, "summary": "studio-object-designer.spec.ts and studio-editor.spec.ts move from test:e2e:live:nightly to test:e2e:live:ci (ui/package.json); both passed the promotion rule. F4 now authors a writable package (the showcase is code-provided: save answers 422 WRITABLE_PACKAGE_REQUIRED), saves the new object's draft and re-reads GET /meta/object/NAME?state=draft: exactly one select field, options equal [{value:open,label:Open}], the empty row not stored. The page editor's Add block test now picks Card, waits for the autosave PUT ?mode=draft (2xx) and re-reads ?state=draft: first region holds one more block, the last is page:card. Both fit #27550's 2-minute budget, so no higher-yield-only choice was needed.", "readings": "Workspace backend (start-backend.sh, port 4010) + Console vite build served by vite preview (5190), --retries 0, one long-lived backend. Baseline unchanged specs: 10/10 green, 60/60 tests, 16.4-17.9 s. Changed specs: 10/10 green (3/3 consecutive included), 19.1-20.0 s. Enlarged allowlist pnpm run test:e2e:live:ci: 5/5 green, 55/55 tests, 33.9-37.2 s (wall 35.3-38.7 s). Incumbent four alone: 3/3, wall 18.0-19.3 s. Nightly: at most 2 scheduled runs since the live tier was wired, both failed on other shards; job logs not downloadable through the proxy, so the readings are local.", "tests": "Test-only diff (two live specs + one private script list). No ablation: no product behaviour changed. Runs as in readings, at the pre-rebase tree; the rebase onto 6d8372a8 touched no file in ui/e2e/live or ui/package.json.", "gates": "head 75f8060c: dispatch-gates --commands derived 31 families; all 31 ran locally exit 0, plus node scripts/check-sdui-manifest.mjs exit 0 (32 lines, listed in the PR body). --ran: 31 derived, 31 run, 0 NOT-MEASURED, 0 UNRUN. PR check-runs: in_progress at report time (Live E2E UI is the first CI reading of the enlarged step).", "line_budget": "3 files, +89 / -26 (115 changed lines), under the 3000 human-merge threshold", "files_changed": [ "ui/e2e/live/studio-object-designer.spec.ts", "ui/e2e/live/studio-editor.spec.ts", "ui/package.json" ], "deviations": [ "F4 now targets an environment-authored package (created and deleted per run through /api/v1/packages) instead of com.example.showcase, because a save into the code-provided showcase is refused; its banner assertions are unchanged.", "The harness's after-PR assignee/review-request step skipped, per the dispatch order (no assignees, no review request).", "Commit trailers are the AGENTS.md model-free pair, not the harness's model-named Co-Authored-By." ], "dogfood_battery": "n/a: no ! in the PR title and no (narrowing) arm", "mcp_calls": "0", "api_writes": "2: fleet-write relay pr_create (POST /repos/objectstack-ai/objectstack/pulls, labels skip-changeset; via workflow_dispatch of the relay), this report comment (POST /repos/objectstack-ai/objectstack/issues/27554/comments)", "open_questions": [], "out_of_scope_findings": [ "carrier: seat · noted, not filed: .github/workflows/ci.yml live-e2e-ui comment says the four allowlisted live specs (now six); examples/app-showcase/test/console-live-specs.live.test.ts header says Four of its specs; docs/qa/platform-checklist/areas/studio-authoring.json says F4 never reads the stored options (it now reads the stored draft). All three are prose, read by no gate, outside this card's file surface." ] }Generated by Claude Code
objectstack-fleet commentedon Oct 29, 2026
domain:ui#3 · os-bill · session_01Utp6CaJoinvGQSbHeDaWBe
ACCEPT → PR #27770 comment 6510524064 · 2026-10-29T23:00Z