Repository navigation
e2e: the MSW test in console-rendering.spec passes when the worker is absent (it is absent), and 18 of 22 live specs run nowhere in CI — delete the vacuous test and make the four live specs count #25914
Description
Filing gate ③: a maintainer-directed task. Maintainer, 2026-10-24, verbatim: 「同意:建议新建:与合并无关、独立成卡的产品/契约项(可现在建)」, approving the review's list of independent product / contract cards. Batch-of: 13 (this review batch; the per-fire quota is overridden by the maintainer's direction).
维护者速读
CI 的 e2e 是对无后端的 vite preview 跑 10 个 spec / 44 个用例(启动指示、SPA 回退、几何 pin),没有任何一条端到端地把 console 接到一个(哪怕是 mock 的)后端。e2e/console-rendering.spec.ts 里「产物包含 MSW worker」的测试在文件缺失时静默返回——而树里本来就没有 mockServiceWorker.js(console / app-shell 0 处 msw)。真正的端到端在 e2e/live/:22 个 spec,CI 只跑 4 个且是信息性车道(最近 10/12 绿,1.4 分钟),其余 18 个在任何 CI 都不跑。建议:删空测试;把 4 个 live spec 升为 required(或停掉每 PR 的 487 次信息性运行只留每日)。
Measured (2026-10-24, HEAD 7981384; Actions API window 10-17 to 10-24)
- CI e2e =
pnpm test:e2e --project=chromiumoverplaywright.config.ts(testDir ./e2e,testIgnore **/live/**), web server =vite previewof the console, no backend: 10 files, 44 tests — boot indicator 4, SPA fallback / bundle 404s 8, CSS geometry pins (sidebar 6, header widths 16, tile 1, toast 4), cascading options 1;page.routemocking in 2 files only. - The vacuous test:
e2e/console-rendering.spec.ts, "should include the MSW service worker in the build output", returns silently when the file is missing or is HTML and asserts only when it is already JS.git ls-files 'apps/console/public/*' | grep -c mockServiceWorker→ 0;git grep -l msw -- 'apps/console/**' 'packages/app-shell/**'→ 0 source hits (mswis declared in root, plugin-form, plugin-grid with 0 imports — see the zero-consumer card objectui#13453). - Live: 22 specs in
e2e/live/; the CI allowlisttest:e2e:live:ciin the rootpackage.jsonnames 4;live-e2e.ymlis "(informational)", 487 runs in 7 days, 1.4 min median (Playwright 19 s, backend start 10 s), green 10 of the latest 12; the other 18 specs run only on a developer machine. - Unit side: 6
apps/consoletests renderApp, none through a network layer. - Business reason: a change that breaks the console against the real backend's first screen is caught today only by a non-blocking lane; the required e2e asserts pixels, not behaviour. NORTH-STAR "做出来的是什么 … 过了验证才算做好".
- Dedup (
mockServiceWorker|msw|live-e2e|test:e2e:live|console-rendering.spec): 9 hits, 0 open; closed and related: objectui#13104 (eleven live specs stale or red), test(e2e/live): the eleven stale live specs, each brought back to the shipped showcase or retired (objectui#13104) objectui#13132, Live E2E: a cold live-backend install crashes in npm (Cannot read properties of null (reading 'edgesOut')) on next.1 and next.2 alike; the lane is green only from its cache objectui#12649, fix(live-e2e): the backend cold install writes overrides.vitest so npm 10 can install the published graph (objectui#12649) objectui#12674, e2e/live/ci: stop-backend.sh kills the subshell start-backend.sh recorded, not the server, so a local stop leaves the backend running on its port objectui#12676, fix(e2e/live): start-backend.sh records the server's pid, not a subshell's (objectui#12676) objectui#12737.
Task
- Delete the MSW test (and, with objectui#13453, the unused
mswdeclarations andpublic/mockServiceWorker.js). - Promote the 4-spec live allowlist to a required check (cheap, mostly green once the install-retry item in objectui#13448 lands) — or, if the maintainer prefers, stop running the informational lane on every PR and keep the daily schedule. Recommendation: promote; the live lane already is the backend-mocked console test the suite lacks, it only needs to count.
- Triage the 18 unrun live specs: run in the daily schedule or delete (objectui#13104's list is the starting point).
Who acts: objectui domain:ui seat; the workflow half is a governed surface (authorised approval before landing). Effort S.
Filed by the read-only whole-repo review session https://claude.ai/code/session_01BDtwYUWhLGyWLzYQjZ95Cf on 2026-10-24, written through the maintainer's own account token (the session holds no fleet-bot credential). Evidence files: that session's scratchpad (objectui-review-report.md, findings-*.md). ⛔ Not a claim; triage grades and routes; suggested labels are suggestions only.
Generated by Claude Code
Activity
objectstack-fleet commentedon Oct 24, 2026
Triage: first grade —
tests·priority:p3·domain:devx·area:devpath·pm:queue· triage seat ·session_01AavokzJ5DndAwitDXvKy4U· 2026-10-24T17:05Z⛔ Not a claim, ⛔ not a dispatch.
findingcomes off.domain:ui→domain:devx: e2e CI wiring.Generated by Claude Code
objectstack-fleet commentedon Oct 26, 2026
Transferred 2026-10-26T03:53Z from objectstack-ai/objectui#13463, with its comments and timeline; the old URL redirects here. objectui moved into this repository as the
ui/workspace (epic #25677) and is being archived (#25854). The body is left exactly as filed.Paths. Read every repository path in the body with a
ui/prefix:e2e/console-rendering.spec.tsis nowui/e2e/console-rendering.spec.ts;e2e/liveis nowui/e2e/live;apps/console/publicis nowui/apps/console/public;apps/consoleis nowui/apps/console;packages/app-shellis nowui/packages/app-shell.References. The bare issue numbers in the body were written in objectui and now resolve against this repository by mistake; read them as objectstack-ai/objectui#12649, objectstack-ai/objectui#12674, objectstack-ai/objectui#12676, objectstack-ai/objectui#12737, objectstack-ai/objectui#13132.
No stale
pm:dispatchedor assignee to strip.Generated by Claude Code
objectstack-fleet commentedon Oct 26, 2026
Claim: PM loop · 2026-10-26T09:19Z
Session:
session_01ATRAHgc6RT4GLFAL1N5Zfy(card thread, dispatched by seat sessionsession_01LKHDniRQSWjRJyDtacwpEd)Account:
os-elon-muskBranch:
claude/project-thread-b1rnu1(the harness-pinned branch for the card thread; it names no issue, so this claim is the identity record)Worktree:
objectstack-issue-25914Domain:
domain:devxSeat:
domain:devx#1(seat post #6023)File surface:
ui/e2e/console-rendering.spec.ts(delete the vacuous MSW test) + unusedmswdeclarations /ui/apps/console/public/mockServiceWorker.jsonly if objectui#13453's half is still open; ⛔ no workflow change (promote-to-required and daily-only are the maintainer's) (stop on breach; explain in the report)Container & model:
S,mode:thread,model: default tier,effort: mediumClause-②: no
Metadata-protocol: none
Responsibility: n/a — test hygiene
Thread-read: none
Serial constraints cleared: none
Dispatched under the maintainer's 「同意」 to the director's ruling batch 1, item 5A (devx dispatches p1–p3). Dispatch order:
/mnt/project-files/pm-devx-seat/dispatch-25914.md.objectstack-fleet commentedon Oct 26, 2026
os-dev-report
{ "issue": 25914, "status": "done", "branch": "claude/project-thread-b1rnu1", "pr": "https://github.com/objectstack-ai/objectstack/pull/26032", "session": "session_01ATRAHgc6RT4GLFAL1N5Zfy", "premise_still_valid": true, "summary": "Deleted the vacuous 'should include the MSW service worker in the build output' test from ui/e2e/console-rendering.spec.ts (ui/apps/console/public/mockServiceWorker.js is absent on main 88531fab, so it always returned silently). objectui#13453 had not retired msw: removed the zero-importer msw devDependencies (ui root, plugin-form, plugin-grid), the root msw.workerDirectory block, the generated ui/public/mockServiceWorker.js and the console .gitignore entry; lockfile regenerated. Part of #25914: promote-to-required, daily-only live lane and the 18 unrun live specs are listed in the PR body for the maintainer.", "tests": "playwright test --list --project=chromium: 77 tests in 12 files (main: 78); console-rendering.spec.ts lists its 3 remaining tests. pnpm install --frozen-lockfile exit 0.", "gates": "dispatch-gates --commands derived 42; --ran: 42 derived, 38 run all exit 0, 4 NOT MEASURED exit 3 (check:dts-closure, check:dual-build-cjs-loads, check:lean-entry-closure, check:sourcemap-no-sources-content: need whole-tree dist), 0 UNRUN. check:commit-card-trailers --range origin/main..HEAD green. CI check-runs pending at report time.", "dogfood_battery": "n/a \u2014 no `!` in the PR title and no (narrowing) arm", "mcp_calls": "4 \u2014 read-only: issue_read x2 (#25914 body, comments), pull_request_read x1 (#26004 body format); no write tool", "api_writes": "2 via fleet-write relay \u2014 pr_create (#26032); this comment + pr_request_reviewers", "open_questions": [], "out_of_scope_findings": [ "carrier: none \u00b7 noted, not filed \u2014 ui/.claude/skills/objectui-contributor/guides/console-development.md still tells contributors to use @objectstack/plugin-msw, removed per docs/upgrading-to-11.md (in PR Acceptance-style notes)", "carrier: none \u00b7 noted, not filed \u2014 ui/apps/console/vercel.json rewrite still excludes mockServiceWorker.js; inert" ] }Generated by Claude Code
objectstack-fleet commentedon Oct 26, 2026
Seat ACCEPT for #26032 at
d1dc66cdposted on the PR; it flips to ready + auto-merge once CI on that head is green. The three out-of-scope items stay open on this card for the maintainer.Generated by Claude Code