Skip to content

plugin-security: delegated-admin-own-name-set.posture.test.ts L878 loops every state through every door inside one it() on the default 5 s timeout, and timed out on main push 529e5351 #31663

Closed

Description

@objectstack-fleet

triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

Path: none

Filing gate: a single red on main. Triage's rule is "a single flake gets a fix card"; the next push (6c6cfcc1) was green. ⛔ Not a claim.

维护者速读

今天 #31556 合入的一个权限测试,把所有状态 × 所有入口放在同一个用例里顺序跑,用的是默认的 5 秒超时。main 上 529e535 那次推送里它超时了一次(Test Core 第 8 片),下一次推送又过了。属于测试写法问题,不是权限逻辑错。要么拆成每个状态一个用例,要么给这一个用例一个按实测定的超时。

Measured

Fix (the dev picks, and measures first)

  • Split the L878 loop into it.each per state, so each state gets its own budget and its own failure line. Or give this one it a timeout sized from a measured p99 on CI, with a comment naming the measurement.
  • ⛔ Not a global testTimeout raise, and not a skip.
  • Check the other two postures' identical it (the loop is per posture) and fix all three the same way.

Acceptance

  • The file passes 20 consecutive local runs under --sequence.concurrent=false at CI's worker count, and its slowest case is reported in the PR body.

Reader: domain:server (plugin-security), from pm:queue.


Generated by Claude Code

Activity

  1. added
    bugSomething isn't working
    pm:queueReady for the PM dispatch loop
    domain:serverDomain lane — seat card indexed by label:pm:seat
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Nov 8, 2026
  2. objectstack-fleet commented on Nov 8, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:server#1 · os-steve · session_01ADHkmPF1skfu2kx89BEXZi

    Claim: PM loop round 1 · #31663 · 2026-11-08T21:30Z · test flake (p2)
    Session: session_01ADHkmPF1skfu2kx89BEXZi
    Account: os-steve
    Branch: claude/project-thread-h1rua8 (the card thread's harness-pinned branch; platform exception to claude/issue-<n>-<slug>)
    Worktree: objectstack-issue-31663
    Domain: domain:server
    Seat: domain:server#1
    File surface: packages/plugins/plugin-security/src/delegated-admin-own-name-set.posture.test.ts only (stop on breach; explain in the report)
    Container & model: S, mode:thread, model: default tier, effort: medium
    Clause-②: no
    Metadata-protocol: none
    Responsibility: PR #31556 (983abd98) introduced the one-it loop on the default 5 s timeout
    Thread-read: none
    Premise: holds (read at 5d1382a5: the it at about L878 loops every state through answersFor inside one it() with no timeout)
    Serial constraints cleared: no open PR touches this file. ⛔ No global testTimeout raise, no skip, no weakened assertion.
    Order: standard order + server-seat1/31663-delta.md (project files).

  3. objectstack-fleet commented on Nov 8, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:server#1 · os-steve · session_01ADHkmSaqpcZzCHVZRYpzpW
    os-dev-report

    {
      "issue": 31663,
      "status": "done",
      "branch": "claude/project-thread-h1rua8",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/31707",
      "session": "session_01ADHkmSaqpcZzCHVZRYpzpW",
      "premise_still_valid": true,
      "summary": "Preferred fix: in all three postures the one it that booted a rig per state for all 4 states is now a describe of the same title; a beforeAll asks every door once for the reference state (an id naming no user), one it holds the reference answer's envelope assertions unchanged, and an it.each over the other 3 states asserts toEqual(reference) per state. No timeout raised, no skip, no assertion weakened. Head c2516ef6, draft PR #31707 with skip-changeset.",
      "tests": "File test count 106 -> 115 (+3 per posture = 4 states - 1). 20 consecutive runs each side, vitest run --maxWorkers=3 --sequence.concurrent=false under os-verify-lock (VERDICT command-exit 0, every run exit 0). Base 5d1382a5, the one it, p50/p99/max ms: single 761/847/847, group 783/918/918, isolated 789/904/904. Head c2516ef6, slowest state it: single 209/271/271, group 212/298/298, isolated 222/281/281; slowest case 298 ms (group, 'a user whose business unit is outside the scope'); reference it 2-4 ms. Whole plugin-security suite on head under the lock: 1258 files, 5978 tests, 5933 passed, 45 skipped, 0 failed (slowest split case 242 ms there). typecheck (plugin-security) VERDICT command-exit 0, check:test-typecheck OK. Ablation n/a: the diff changes no behaviour a test pins; it regroups the same assertions.",
      "gates": "On c2516ef6: dispatch-gates --commands derived 53, all run, all exit 0; three first answered exit 3 (prerequisite) and were re-run green: check-plugin-teardown-shape --self-test (after git fetch of its pinned fixture commit 621a4876), check:dual-build-cjs-loads and check:i18n (after turbo build --filter='./packages/**', VERDICT command-exit 0). --ran reconciliation: 53 derived, 53 run, 0 NOT-MEASURED, 0 UNRUN. pnpm lint family: eslint --no-inline-config packages/plugins/plugin-security exit 0. CI check-runs on the PR: in_progress at report time (not waited on).",
      "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm",
      "mcp_calls": "4 — mcp__github__issue_read x3 (get, get_comments x2), mcp__github__pull_request_read x1 (get); no write tool",
      "api_writes": "2 — pr_create via fleet-write relay (PR #31707, read-back 6507 bytes sent == stored, label skip-changeset in the same stroke); this os-dev-report comment via post-stamped.mjs on #31663",
      "open_questions": [],
      "security_findings": "none",
      "out_of_scope_findings": [
        "carrier: none · noted, not filed: the sibling 'ground truth: the delegate reads the subject …' it in the same describe also loops (5 rigs, read door only); p99 705-782 ms base, 737-760 ms head on this box, outside this card's Fix; in the PR's Acceptance notes"
      ],
      "files_changed": [
        "packages/plugins/plugin-security/src/delegated-admin-own-name-set.posture.test.ts"
      ],
      "line_budget": "1 file, +29 / -16 (45 changed lines), inside the claim's file surface",
      "deviations": [
        "PR body's first two lines are the harness attribution block (marker comment + Requested-by line); Fixes #31663 follows them (os-dev clean-finish exception for the harness attribution line).",
        "The head 20-run loop shared the box with the unlocked derived-gate sweep for part of its window, so head timings are under extra load, not idle; base ran alone."
      ]
    }

    Stamped 2026-11-08T22:12Z.


    Generated by Claude Code

  4. objectstack-fleet commented on Nov 8, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: second hit, in the merge queue · p2 → p1 · 2026-11-08T23:52Z

    ⛔ Not a claim.


    Generated by Claude Code

  5. added
    priority:p1High: required for production / M2
    and removed on Nov 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingdomain:serverDomain lane — seat card indexed by label:pm:seatpriority:p1High: required for production / M2tests

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions