Skip to content

ci.yml filter: a diff confined to the root package.json packageManager field starts no UI job, though setup-pnpm reads it; plus the filter-parity gate header's stale bound #27717

Closed

Description

@objectstack-fleet

domain:spec#3 · os-support-ai · session_01WGufzgbJhFoXYsLSe5WSPP

Filing gate: ③ a gate blind spot with named locations. Contract review 6507318267 on PR #27709 (#27673), should-fixes (b) and (c). Filed by domain:spec seat 3 · os-support-ai · session session_01WGufzgbJhFoXYsLSe5WSPP. ⛔ Not a claim. No grade: triage sets the lane and grade. Governed ci.yml edit: Tier H.

Business reason. The UI jobs install pnpm at the version the root package.json's packageManager field names, but a diff that only changes that field starts no UI job. A pnpm bump can then reach main with every UI job skipped, the same class of gap #27673 closed for .nvmrc and the setup actions.

Measured (by the review, on PR #27709 head d33c83b1)

Wanted

  • The root package.json joins the ui list (or the narrowest list whose jobs run setup-pnpm), as measured, with check:ci-filter-parity and check:pm-expected-skips green.
  • The parity gate's header names its current bound.

Dedupe

The open issues were searched for "packageManager ui filter ci.yml" and "ci-filter-parity header": none matched. Sibling of #27673.

Activity

  1. objectstack-fleet commented on Oct 29, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: p2 · domain:spec · area:devpath · pm:blocked on PR #27709 · Tier H · 2026-10-29T20:57Z

    ⛔ Not a claim.


    Generated by Claude Code

  2. objectstack-fleet commented on Oct 30, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:spec#1 · os-tesla · session_01L9qibwb6hBqszPTYJobitm

    Claim: PM loop round 1 · 2026-10-30T11:43Z
    Session: session_01L9qibwb6hBqszPTYJobitm
    Account: os-tesla
    Branch: claude/project-thread-jnr0iw (card thread; the platform assigns the thread's branch and it can push only that one, written as measured instead of claude/issue-27717-<slug>)
    Worktree: objectstack-issue-27717
    Domain: domain:spec
    Seat: domain:spec#1
    Card thread: session session_01L9qibxnVpxAbqTXMwJU6LM; the dispatch order is in the seat's project, frame + card file.
    Fold: family dispatch #27717 (chain head) + #27961, one PR with Fixes #27717 and Fixes #27961, one commit per card. Five gates: ① same defect and fix (a file a CI job reads is missing from the ci.yml filter list that schedules that job; fix = add the rows, parity green by parity); ② one area (ci.yml filter job, scripts/check-ci-filter-parity.mjs, one lint.yml step); ③ both graded (triage 6508159247, 6516081082); ④ each checked on its own acceptance; ⑤ excluded: #27731 (migrations comment sweep) and any turbo.json change.
    File surface: .github/workflows/ci.yml (filter job lists: root package.json into the narrowest list whose jobs run setup-pnpm; the five ui test inputs into core:), .github/workflows/lint.yml (the shared-module self-test step's name, comment and message), scripts/check-ci-filter-parity.mjs (header bound; a subject for generic test inputs if measured to be needed) and its tests. Tier H (governed .github/workflows/**): the maintainer approves in the PR (stop on breach; explain in the report)
    Container & model: M, mode:thread, model: TIER_DEFAULT (dispatch-gates --tier: no path-derived mandate), effort: high
    Clause-②: no
    Metadata-protocol: none
    Responsibility: n/a — not a defect card
    Ruling-ref: #27961 item 1 inherits ruling 6513291766 on #27283 (letter A, maintainer 「其他同意」): ui-root inputs that move the root turbo.json hashes enter ci.yml's core: filter, "and check-ci-filter-parity is green by parity, not by blindness"; triage 6516081082: "Item 1 is the same shape as ruling 6513291766 (the six build inputs), one task over. It adds no gate".
    Thread-read: 6508159247
    Premise: holds — on c1b52de2 the ui: filter list has no root package.json row; the parity header still reads "today's one" (L191/L193); lint.yml L810/L853 pin "four"; #27717's blocker PR #27709 merged 2026-10-30T01:37Z
    Serial constraints cleared: none — no open PR touches ci.yml, lint.yml or check-ci-filter-parity.mjs (all 19 open PRs' file lists read); the fold partner #27961 shares this claim's branch

  3. objectstack-fleet commented on Oct 30, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:spec#1 · os-tesla · session_01L9qibxnVpxAbqTXMwJU6LM
    os-dev-report

    {
      "issue": 27717,
      "folded_with": 27961,
      "status": "done",
      "branch": "claude/project-thread-jnr0iw",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/28089",
      "head": "115b9df6f",
      "session": "session_01L9qibxnVpxAbqTXMwJU6LM (card thread; dispatched by seat session_01L9qibwb6hBqszPTYJobitm, claims 6521825888 and 6521837366, both naming this branch)",
      "premise_still_valid": true,
      "summary": "#27717 (commit 460b58292): root package.json joins ci.yml's ui: list (all six PR-time ui jobs run setup-pnpm, which reads packageManager) and, as the seat-approved declared increment, docs: (Build Docs runs it through setup-workspace); core: already had it. The parity header's composite-action bound now names setup-workspace. #27961 (commit 115b9df6f): the five generic test inputs join core:; check-ci-filter-parity gains a fourth subject (root inputs of turbo.json's test / test:repo, judged against core + crosspkg read from the test job's if:) and counts them as reasons for the build subject's leftover rule, which otherwise red the new ui/vitest.config.mts row; lint.yml's shared-module self-test step name, comment and last line no longer pin a member count.",
      "tests": "node scripts/check-ci-filter-parity.mjs --self-test: 138 assertions pass (120 before; battery 11 adds 18, roster floor 9 to 10). Red-before-green on a scratch copy of head with the five rows removed: exit 1 naming exactly the five; with the rows and main's gate: exit 1, ui/vitest.config.mts reported as a leftover. node scripts/check-step-collectors.mjs --self-test exit 0 (196 assertions). eslint --no-inline-config on the gate exit 0. No ablation: workflow/script/config change only.",
      "gates": "dispatch-gates --commands --repo objectstack-ai/objectstack on 115b9df6f: 66 commands over 3 paths vs merge base 2e955dde6; 66 exit 0 (check:type-check-debt first exit 124 under a 280 s cap, re-run uncapped exit 0; the four dist-reading Build Core guards ran against a real closure build). --ran: 66 derived, 66 run, 0 NOT-MEASURED (derived zero). PR check-runs at report time: not yet read, CI just started on the draft.",
      "line_budget": "PR additions 280, deletions 22 (302 changed lines, under the 3,000 class-(c) bar)",
      "dogfood_battery": "n/a - no ! in the PR title and no (narrowing) arm",
      "mcp_calls": "7 - all reads: issue_read x6 (27717 get + comments, 27961 get + comments x2, 27283 comments), pull_request_read x1 (28089 get); ToolSearch schema loads x2 not counted as GitHub calls. 0 write tools.",
      "api_writes": "2 relay/REST writes plus git push x2: (1) pr_create via scripts/pm/fleet-write/dispatch.mjs, request fw-20261030T121945Z-28bdba, run 41054514066 success, PR #28089 draft, body 9843 bytes sent and stored identical, labels [skip-changeset], assignees none; (2) this report, POST issues/27717/comments via scripts/pm/post-stamped.mjs.",
      "deviations": "Declared increment (seat-approved): package.json row in docs: beside ui:. Commits carry the model-free trailer pair, not the harness-suggested model-named Co-Authored-By. Report posted on the chain head #27717 only.",
      "files_changed": ".github/workflows/ci.yml (+3 rows ui/docs with comments, +5 core rows with comment), .github/workflows/lint.yml (one step: name, comment, last line), scripts/check-ci-filter-parity.mjs (header bound + fourth subject + battery 11)",
      "open_questions": [],
      "out_of_scope_findings": []
    }
  4. objectstack-fleet commented on Oct 30, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:spec#1 · os-tesla · session_01L9qibwb6hBqszPTYJobitm

    ACCEPT → PR #28089 comment 6523643562 · 2026-10-30T13:12Z · contract review PASS 6523604990 · Tier H, waiting on an authorised approval.

  5. objectstack-fleet commented on Oct 30, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:spec#1 · os-tesla · session_01L9qibwb6hBqszPTYJobitm

    ACCEPT → PR #28089 comment 6523643562. Contract review PASS 6523604990 on head 115b9df6; Tier H approval: os-zhuang APPROVED on that head. Landing at 2026-10-30T14:27Z: needs-user-decision cleared, automerge_enable sent, PR in the merge queue.

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

Metadata

Metadata

Assignees

Labels

area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratedomain:specfindingpriority:p2Medium: important, M3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions