Skip to content

Queue-flake anchor: src/hook-run-as.test.ts #26049

Closed

Description

@github-actions

src/hook-run-as.test.ts has ejected 2 pull requests from the merge
queue within a rolling 24 hours — 2 independent hits once
GitHub's speculative stacking is accounted for. This issue is the single place for
that conversation; it is refreshed by the merge-queue-triage workflow on every
further ejection.

PR stack queue build
#26007 independent 40302541664
#26012 independent 40300684735

This issue is a NAME, not a diagnosis. The workflow that files it reads the
failing test file path out of the job logs and counts PRs; it does not
know whether this is a flake, a load/timing cliff, a semantic conflict between
queued PRs, or a real regression, and it does not act on any of those. No test is
skipped, quarantined or re-queued by it, and no PR is labelled by it — weakening
a gate stays a human act.

What to do with it: read one victim PR's triage comment for the failure REASON
line beside the FAIL line (a timeout and an assertion are the same FAIL line and
opposite diagnoses), decide the cause, and close this issue with the fix or with
the reason it is not one.

Last refreshed by queue build 40302541664 (PR #26007).


Filed by the merge-queue-triage workflow (#4859, aggregation #10128).

Activity

  1. objectstack-fleet commented on Oct 26, 2026

    @objectstack-fleet
    Contributor

    Triage: first grade — bug · tests · priority:p2 · domain:server · area:access · pm:queue (finding removed) · triage seat · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-26T10:54Z

    ⛔ Not a claim, ⛔ not a dispatch.


    Generated by Claude Code

  2. added
    area:accessPermissions that actually hold — RLS/FLS, sharing model, write-path guards
    bugSomething isn't working
    domain:serverDomain lane — seat card indexed by label:pm:seat
    and removed on Oct 26, 2026
  3. objectstack-fleet commented on Oct 26, 2026

    @objectstack-fleet
    Contributor

    Claim: PM loop round 8 · card thread
    Session: session_01R1q2xdtYgU6FKrZ7LgjPCC (the seat); the card thread is session_01AN1CuLrAYkcsfrh1N5ffLT
    Account: os-project-manager (the seat's linked user; the card's assignee)
    Branch: claude/project-thread-xhxwl6 (the card thread's harness-pinned branch; it names no issue, so this claim is the identity record)
    Worktree: the card thread's own container checkout
    Domain: domain:server
    Seat: domain:server#1
    Ruling-ref: triage first grade (2026-10-26T10:54Z): fix the cost of the [#24497] case (what it boots or seeds per run). ⛔ No quarantine, no skip, no raised timeout. Every assertion the block makes today stays. Split agreed with domain:server#2: p1/p2 intake resumes ahead of p3.
    File surface: packages/objectql/src/hook-run-as.test.ts. Product code on the hook path only after a ruling (report needs_decision first with the measured first-call cost). ⛔ No packages/spec/** (stop on breach; explain in the report)
    Container & model: S, mode:thread, default model and effort (set at thread open)
    Clause-②: no
    Metadata-protocol: none
    Responsibility: the [#24497] block's first case times out at 5000 ms under merge-queue load (#26007 and #26012 ejected)
    Thread-read: none
    Premise: holds (read 2026-10-26T12:20Z at origin/main 9753d1637f: card open, unassigned, pm:queue, no claim; the block runs on a recording fake engine, so the time is not data)
    Serial constraints cleared: no open PR touches packages/objectql/src/hook-run-as.test.ts; the dev re-measures before pr_create

  4. objectstack-fleet commented on Oct 26, 2026

    @objectstack-fleet
    Contributor

    os-dev-report

    {
      "issue": 26049,
      "status": "done",
      "branch": "claude/project-thread-xhxwl6",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/26132",
      "session": "session_01AN1CuLrAYkcsfrh1N5ffLT",
      "premise_still_valid": true,
      "summary": "The flake is real, but the order had the wrong case and the wrong mechanism. Both queue ejections (job 121497737902 of build 40300684735, job 121503879002 of build 40302541664) time out at src/hook-run-as.test.ts:389:5, the 'seed is no nameable member of the published face' case, not the block's first case: the triage FAIL lines were cut off after the describe title, and the ::error annotation carries the full name and line. That case did await import('./index.js'), cold-loading the package entry's module graph inside its 5000 ms window. resolveUserAuthzGrants is a static import in engine.ts and the first case runs in 1 ms, so there is no product cost on the hook path and no needs_decision. Fix (test-only): import * as entry from './index.js' at the top of the file (the package's *-code-constant.test.ts idiom); the case is now synchronous with all five assertions unchanged. No skip, quarantine, retry or timeout change. The load moved to file collection rather than disappearing: under load the import phase grew from 12.8-17.9 s to 20.3-26.3 s, and whole-file wall time stayed in the same 18-27 s band.",
      "tests": "Red first on origin/main 9753d163: 'vitest run --maxWorkers=2 --reporter=verbose src/hook-run-as.test.ts' under os-verify-lock with 8 node busy loops on 4 cores (shared-box seconds). Quiet box: the case 2513 ms, 29/29. Under load, main, 5 runs: 5016/5021/5366/5413/5070 ms, each 'Error: Test timed out in 5000ms.', 1 failed / 28 passed, 5 of 5 red. Under the same load at d8e4f756c, 5 runs: 1/0/0/0/1 ms, 29/29, 5 of 5 green; tests phase 5.27-5.73 s before vs 0.20-0.37 s after. At d8e4f756c: pnpm --filter @objectstack/objectql test VERDICT command-exit 0, Test Files 470 passed (470), Tests 8748 passed (8748); pnpm --filter @objectstack/objectql typecheck VERDICT command-exit 0 (check:test-typecheck OK, debt held at 39 files / 233 errors / 64 signatures). No ablation: no tested product behaviour changed.",
      "gates": "Local at d8e4f756c: dispatch-gates --commands derived 58; each exit recorded before any pipe; --ran reconciles 58 derived, 57 run exit 0, 1 NOT MEASURED, 0 UNRUN. NOT MEASURED: check:dual-build-cjs-loads exit 3 (PREREQUISITE NOT MET, needs a full pnpm build). Re-run after fixing prerequisites: check-engine-split-ratio --days 90 (exit 2 on the shallow clone, 0 after fetch --shallow-since), check-plugin-teardown-shape --self-test (exit 3, 0 after fetching control 621a4876), check:lean-entry-closure (exit 3, 0 after the objectql build), check:query-options-erasure and check:type-check-debt (exit 124 at my 300 s cap on a shared box, 0 on rerun). Scoped lint: eslint packages/objectql --no-inline-config exit 0. CI check-runs on #26132: in_progress at report time.",
      "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm",
      "mcp_calls": "2 — mcp__github__get_job_logs x2 (reads; the proxy refuses the REST log blob redirect). No MCP write.",
      "api_writes": "2 relay strokes (write budget 3 of 3 counting git push): fleet-write pr_create (POST pulls plus the issue-assignees and issue-labels legs, run 40328838623, read-back identical, assignee os-project-manager, label skip-changeset); this os-dev-report comment via post-stamped.mjs. git push is not a REST write.",
      "open_questions": [],
      "out_of_scope_findings": [
        "carrier: none (承接者:无) · noted in PR Acceptance notes, not filed · packages/objectql/src/bound-action-collision-report.test.ts:111 has the same shape (await import('./index.js') inside a 'no nameable member of the published face' case); no queue ejection seen, not measured under load, outside this claim's file surface · dedupe words: bound-action-collision-report, import index.js, Test timed out, published face"
      ]
    }

    Generated by Claude Code

  5. objectstack-fleet commented on Oct 26, 2026

    @objectstack-fleet
    Contributor

    Landed

    PR #26132 merged at 2026-10-26T14:13Z by the merge queue as a9253a2086 on main (Fixes #26049; ACCEPT 6417471072).

    Reading Probe Result
    Queue membership git ls-remote origin 'refs/heads/gh-readonly-queue/main/pr-26132-*' 0 refs
    origin/main by content git cat-file -e origin/main:packages/objectql/src/hook-run-as.test.ts present
    Ancestry git merge-base --is-ancestor a9253a2086 origin/main holds

    State: this card closed by Fixes (completed); pm:dispatched removed. Fixed by a test-only static import of the package entry: the line-389 case no longer pays the module-graph load inside its 5 s budget.


    Generated by Claude Code

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

Metadata

Metadata

Labels

area:accessPermissions that actually hold — RLS/FLS, sharing model, write-path guardsbugSomething isn't workingdomain:serverDomain lane — seat card indexed by label:pm:seatpriority:p2Medium: important, M3queue-flake-anchortests

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions