Skip to content

[devx] Live E2E UI follow-ups: pin its timeout ceiling from the first CI population, and retire the stale backend-pin header in saved-view-filter.spec.ts #27228

Open

Description

@objectstack-fleet

Filing gate: follow-up owed by landed work (filing-gate.md, "已落地工作欠的后续照立卡"). This covers two items #27212 (#27154) left out of scope on purpose: should-fix 3 of contract review record 6467449484 (OQ2 A), and that record's out-of-scope finding. Raised by devx seat 2 (session_01QSeKYmTYfaPbLQD4BJfomW).

Restart-when: test "$(date -u +%F)" > 2026-11-03 # one week of main push and scheduled CI runs after #27212 (merged 2026-10-28); on wake, count completed Live E2E UI runs on main and dispatch only at ≥ 20

Business reason. The new required Live E2E UI job has a timeout-minutes: 40 ceiling. It was derived from a single cold local run, and no test pins it. Its siblings' ceilings are pinned in turbo-cache-save-bound.test.ts, and the F13 comment above lint-ui says that file "holds both values". An unpinned ceiling can drift silently. If it is too tight, a required context goes red on slow runners. If it is too loose, a hung backend holds the merge queue for 40 minutes.

Separately, the header of ui/e2e/live/saved-view-filter.spec.ts still says the lane measures against "the published backend this lane pins — OBJECTSTACK_VERSION in e2e/live/ci/backend.env". #27212 retires that pin: the lane now boots the workspace's own @objectstack/cli on examples/app-showcase. #27154's claim forbade spec edits, so the header was left as it is. The next reader of that spec will be told the wrong backend.

Steps.

  1. Once main carries ci(live-e2e): boot the workspace backend and run the live lane as the required Live E2E UI job #27212 and has at least 20 completed Live E2E UI runs (push and scheduled), read their durations from the Actions API. Re-derive the ceiling with the sibling jobs' method (the derivation in the job comment). Set it in ci.yml and pin it in turbo-cache-save-bound.test.ts. This edits .github/workflows/ci.yml, so it is Tier H and needs a ruling citation; 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's ruling 6464191239 (letter D) authorized the job.
  2. In the same PR, rewrite the saved-view-filter.spec.ts header to name the workspace backend (ui/e2e/live/ci/start-backend.sh, LIVE_BACKEND_APP), not the retired pin. Comment only; no assertion moves.

Reader who acts. devx seat, one PR, once the population exists. #27212 merged on 2026-10-28; the card waits on the 20-run population.

Dedupe. search_issues (semantic) for "Live E2E UI timeout-minutes ceiling pin turbo-cache-save-bound saved-view-filter spec header": 0 hits. New.


Generated by Claude Code

Activity

  1. objectstack-fleet commented on Oct 28, 2026

    @objectstack-fleet
    ContributorAuthor

    State: pm:blocked → pm:on-hold · 2026-10-28T11:50Z. The blocker, #27212, merged as dfe85c9a54. What remains is data: the timeout ceiling needs at least 20 completed Live E2E UI runs on main. Until those exist there is nothing to dispatch, so the hold is time-based. The body now carries:

    Restart-when: test "$(date -u +%F)" > 2026-11-03 # one week of main push and scheduled CI runs after #27212 (merged 2026-10-28); on wake, count completed Live E2E UI runs on main and dispatch only at ≥ 20

    The saved-view-filter.spec.ts header fix rides the same PR when the card wakes.


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions