Skip to content

Queue-flake anchor: src/domains/mcp-object-schema-mask.test.ts #31171

Closed

Description

@github-actions

src/domains/mcp-object-schema-mask.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
#31142 independent 42383103865
#31149 independent 42385456389

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.

A later queue build that went green on the same main is a control only if its
affected-only selection ran the failing package; a green group that never selected
it carried the same tree without testing it.

Last refreshed by queue build 42385456389 (PR #31149).


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

Activity

  1. added
    findingRecorded observation — held, not dispatchable until the findings triage round grades it
    on Nov 7, 2026
  2. objectstack-fleet commented on Nov 7, 2026

    @objectstack-fleet
    Contributor

    domain:server#4 · marchtian · session_017ihL2dLQEXWGsE2SZ3Qn5F

    Cause read from build 42385456389 (PR #31149's ejection): the failing assertion at mcp-object-schema-mask.test.ts:785 compares wireText(member) with wireText(staff), and the wire text includes the Last-Modified header. The two strings in the log differ only there: Sat, 07 Nov 2026 15:19:24 GMT vs 15:19:23 GMT. Two requests made in sequence straddled a second boundary.

    So this is a timing flake in the test, not a projection difference: the body and ETag are equal. A fix is to drop Last-Modified (or every date header) from wireText before comparing, or to freeze the clock for the pair. The test came in with #31104 (ADR-0106 D1).

  3. added
    domain:serverDomain lane — seat card indexed by label:pm:seat
    pm:queueReady for the PM dispatch loop
    priority:p1High: required for production / M2
    and removed
    findingRecorded observation — held, not dispatchable until the findings triage round grades it
    on Nov 7, 2026
  4. objectstack-fleet commented on Nov 7, 2026

    @objectstack-fleet
    Contributor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: audit · anchor · 2 independent hits · p1 · domain:server · 2026-11-07T15:57Z

    ⛔ Not a claim.


    Generated by Claude Code

  5. added
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Nov 7, 2026
  6. objectstack-fleet commented on Nov 7, 2026

    @objectstack-fleet
    Contributor

    domain:server#4 · marchtian · session_017ihL2dLQEXWGsE2SZ3Qn5F

    Claim: PM loop round 2
    Session: session_017ihL2dLQEXWGsE2SZ3Qn5F
    Account: marchtian
    Branch: claude/project-thread-6m6ski
    Worktree: card thread container (project thread form)
    Domain: domain:server
    Seat: domain:server#4
    File surface: packages/runtime/src/domains/mcp-object-schema-mask.test.ts (the wireText comparison helper and its callers in the ADR-0106 D1 action-entry describe); the projection under packages/runtime/src/domains/** / packages/rest/src/** only if a real nondeterminism is found there — then stop and report before widening (stop on breach; explain in the report)
    Container & model: M, mode:thread (a project card thread started by the coordinator), model: default, effort: high
    Clause-②: no
    Metadata-protocol: none
    Responsibility: objectstack (packages/runtime test) | the test compares whole wire texts including the second-precision Last-Modified header; two sequential requests straddling a second differ there only (build 42385456389, diagnosis 6709142041) | reached by every merge-queue build that selects @objectstack/runtime — two ejections today (#31142, #31149)
    Thread-read: 6709426629
    Premise: holds
    Serial constraints cleared: no open PR touches this test file (open-PR file scan, 24 PRs); #31104 (the test's origin) is merged

  7. objectstack-fleet commented on Nov 7, 2026

    @objectstack-fleet
    Contributor

    domain:server#4 · marchtian · session_017ihL2gH1g3Qk8UMKLnGKoq

    os-dev-report

    {
     "issue": 31171,
     "status": "done",
     "branch": "claude/project-thread-6m6ski",
     "pr": "https://github.com/objectstack-ai/objectstack/pull/31195",
     "head": "fc6ee741",
     "session": "session_017ihL2gH1g3Qk8UMKLnGKoq",
     "premise_still_valid": true,
     "summary": "wireText in the ADR-0106 D1 action-entry describe now reads a date-valued Last-Modified or Date header as the fixed token CLOCK; status, body, ETag, every other header, header order and the clock header's presence are still compared. Both ejections were this header: #31142 (build 42383103865, job 128435166865, line 801, usr_system item st_ping, 14:49:31 vs 14:49:30 GMT) and #31149 (line 785, diagnosis 6709142041). The protocol stamps lastModified with the time of the read (metadata-protocol protocol-search-and-cache.ts), so it is clock, not projection; no projection nondeterminism found (body, ETag and header key order equal in both logs).",
     "tests": "Ablation via scripts/ablation-replace.mjs on the member-vs-staff CONTROL (staff read under vi.useFakeTimers toFake Date + setSystemTime(now+1000), precondition on the REST cached arm that the two Last-Modified differ), -t 'CONTROL — a field-bound action', 3 tests: leg A new wireText + skew 3 passed; leg B old JSON.stringify + skew REST cached arm FAILS on st_rename, diff Last-Modified 16:14:07 vs 16:14:06 GMT; leg C new wireText, no skew, Last-Modified deleted on the staff side, REST cached arm FAILS (presence still compared). Each leg: mutation landed (anchor 1 to 0, blob moved) and restored (blob == HEAD 784ab7096c9c, git diff HEAD empty). Repeat: 15 sequential runs of the file on dbd57b69, 15 x Tests 45 passed (45), all exit 0. Package on fc6ee741: pnpm --filter @objectstack/runtime test exit 0, Test Files 554 passed (554), Tests 8918 passed / 19 skipped; typecheck exit 0.",
     "gates": "dispatch-gates --commands at fc6ee741: 50 commands, all exit 0 (full list with exit codes in the PR body Verification section). Two first exited 3 and were rerun after their prerequisite: check-plugin-teardown-shape --self-test (fetched positive-control commit 621a4876 into the shallow clone), check:dual-build-cjs-loads (full turbo build, 119/119). --ran reconciliation: 50 derived, 50 run, 0 NOT-MEASURED, 0 UNRUN. eslint packages/runtime --no-inline-config exit 0. CI check-runs: in_progress at report time.",
     "line_budget": "+21 / -1, 1 file (packages/runtime/src/domains/mcp-object-schema-mask.test.ts), test-only",
     "files_changed": [
      "packages/runtime/src/domains/mcp-object-schema-mask.test.ts"
     ],
     "deviations": [
      "Card-thread form: the pinned branch was checked out in the shared checkout, so I detached that checkout and added a linked worktree on the same branch (../objectstack-issue-31171) to satisfy worktree-first.",
      "Repeat runs as a 15-iteration shell loop: this vitest rejects --repeats (CACError: Unknown option).",
      "No changeset: @objectstack/runtime ships dist only and the diff is a test file; skip-changeset sent with pr_create and read back on the PR.",
      "dogfood_battery: n/a (no ! in the title, Clause-② no without a (narrowing) arm)."
     ],
     "open_questions": [],
     "out_of_scope_findings": [
      "carrier: none · noted in the PR Acceptance notes, not filed: the /meta item door's cached arm sends Last-Modified equal to the time of the read (protocol-search-and-cache.ts stamps new Date()), not the item's modification time, so the header carries no information; freshness is gated by ETag. Not one of the three filing classes as far as I can tell (no declared contract cites it); seat's call. Dedupe words: Last-Modified, lastModified, meta item door cache headers."
     ],
     "mcp_calls": "1 — mcp__github__get_job_logs (read, job 128435166865); no MCP write tool",
     "api_writes": "2 — relay pr_create (POST pulls #31195 + POST issues/31195/assignees + POST issues/31195/labels skip-changeset, one dispatched action, run 42394262925), and this os-dev-report comment via post-stamped",
     "security_findings": "none"
    }

    Generated by Claude Code

  8. objectstack-fleet commented on Nov 7, 2026

    @objectstack-fleet
    Contributor

    domain:server#4 · marchtian · session_017ihL2dLQEXWGsE2SZ3Qn5F

    Landed · PR #31195 merged by the merge queue as fe97d85b060b8314880e8ee5f6f897ffbb300bcd (second queue entry, after one ejection on the plugin-auth time-boundary signature #31175 / #31212; audit on the PR).

    Reading Value
    PR state merged, merged_at from the pulls API
    Card state closed completed by Fixes #31171
    origin/main content CLOCK_HEADERS in packages/runtime/src/domains/mcp-object-schema-mask.test.ts

    pm:dispatched removed with this record. Product half (Last-Modified = read time on the cached /meta item read) is #31196.

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

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions