Skip to content

ci: run the build check on merge_group — queued PRs wait forever for a required check that never starts #76

Closed

Description

@os-support-ai

Maintainer-ordered (2026-08-18, PM chat with the skills seat, session session_01WswfK2yNYT9hNnMH6TzAwL): this repository adopted a merge queue today and the ruleset now requires the build check (maintainer confirmation in chat: 「已完成 objectos ruleset 里必查项勾 build」). Cross-repo decision trail: objectstack-ai/objectstack#9551 (queue adoption = Option A, comment 5327457987).

The defect

.github/workflows/ci.yml declares:

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

No merge_group: trigger. A merge queue validates candidates on a temporary merge-group ref whose checks come from workflows listening to the merge_group event — with build required and never produced there, every queued PR hangs as permanently "expected". The queue is armed today, so this is live, not latent.

The fix

Add the trigger to on: in ci.yml:

  merge_group:

Nothing else. The fix PR can land through the queue itself: merge-group runs execute the workflow as defined at the merge-group ref, which includes the PR's own change.

Notes for the implementer

  • Repo facts (per the objectstack protocol's dispatch-expectations notice): no changeset flow, no packages/, CI shape differs from the sibling repos.
  • deploy-docs.yml (push-to-main deploy) and translations.yml (path-filtered, correctly NOT required) need no change — do not widen scope.
  • Adjacent but distinct: The CI test job executes nothing and cannot go red #72 records that the test turbo task executes nothing; that is a separate finding, not this card's scope.
  • pm label vocabulary is not yet seeded in this repository (pending ensure-pm-labels.sh run); state is carried by assignee + comments on this card in the meantime.

Activity

  1. os-support-ai commented on Aug 18, 2026

    @os-support-ai
    CollaboratorAuthor

    Claim: skills seat, cross-lane simple-blocked-item direct takeover (standing channel, maintainer 2026-08-13; this card blocks the objectos landing sequence from objectstack#9551, is mechanical, fully specified, S-tier; maintainer chose the card route in chat this hour)
    Session: session_01WswfK2yNYT9hNnMH6TzAwL
    Branch: claude/issue-76-ci-merge-group-trigger
    Worktree: objectos-issue-76
    Domain: objectos execution lane = domain:devx per objectstack#9551 (label vocabulary not yet seeded here — assignee + this comment carry the claim; completion note will be left for the devx seat)
    File surface: .github/workflows/ci.yml only (the on: block) (stop on breach; explain in the report)
    Container & model: S mechanical, mode:subagent, model: sonnet — outside every fable path mandate (not .claude/skills/pm-dispatch/**, no contract surface); correctness is machine-judged by the queue run itself
    Clause-②: no — CI trigger addition; changes no contract accept/reject behaviour, widens no public surface
    Serial constraints cleared: zero open PRs in this repository; adjacent finding #72 (inert test task, same file) is unclaimed and out of scope — no in-flight overlap.


    Generated by Claude Code

  2. os-support-ai commented on Aug 18, 2026

    @os-support-ai
    CollaboratorAuthor

    <!-- os-dev-report -->

    {
      "issue": 76,
      "status": "done",
      "branch": "claude/issue-76-ci-merge-group-trigger",
      "pr": "https://github.com/objectstack-ai/objectos/pull/77",
      "premise_still_valid": true,
      "summary": "Confirmed on fetched origin/main that ci.yml's on: block lacked merge_group: (premise valid). Added exactly that one trigger line to .github/workflows/ci.yml's on: block; no other lines, jobs, or workflow files touched. Opened as a draft PR against main with Fixes #76, noting the self-landing property (the merge-group run executes the workflow as defined at the merge-group ref, i.e. including this change).",
      "tests": "YAML parse: `python3 -c \"import yaml; d=yaml.safe_load(open('.github/workflows/ci.yml')); print(d[True])\"` -> `{'push': {'branches': ['main']}, 'pull_request': {'branches': ['main']}, 'merge_group': None}` (PyYAML 1.1 parses the on: key as boolean True; noted as a known quirk, not an error). yamllint not available in this environment. Diff reviewed manually: `git diff` shows a single-line addition, `+  merge_group:`, nothing else. Control-byte self-scan on the edited file (grep -naP '[\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]') found none. Commit 3b59d2d.",
      "open_questions": [],
      "out_of_scope_findings": []
    }

    Generated by Claude Code

  3. os-support-ai commented on Aug 18, 2026

    @os-support-ai
    CollaboratorAuthor

    os-dev-report (marker note: the previous comment's HTML-comment marker was posted with escaped entities and won't match a literal scan — this comment is the sanitizer-safe fallback, literal text starting with os-dev-report, pointing at the same report below)

    {
      "issue": 76,
      "status": "done",
      "branch": "claude/issue-76-ci-merge-group-trigger",
      "pr": "https://github.com/objectstack-ai/objectos/pull/77",
      "premise_still_valid": true,
      "summary": "Confirmed on fetched origin/main that ci.yml's on: block lacked merge_group: (premise valid). Added exactly that one trigger line to .github/workflows/ci.yml's on: block; no other lines, jobs, or workflow files touched. Opened as a draft PR against main with Fixes #76, noting the self-landing property (the merge-group run executes the workflow as defined at the merge-group ref, i.e. including this change).",
      "tests": "YAML parse: `python3 -c \"import yaml; d=yaml.safe_load(open('.github/workflows/ci.yml')); print(d[True])\"` -> `{'push': {'branches': ['main']}, 'pull_request': {'branches': ['main']}, 'merge_group': None}` (PyYAML 1.1 parses the on: key as boolean True; noted as a known quirk, not an error). yamllint not available in this environment. Diff reviewed manually: `git diff` shows a single-line addition, `+  merge_group:`, nothing else. Control-byte self-scan on the edited file (grep -naP '[\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]') found none. Commit 3b59d2d.",
      "open_questions": [],
      "out_of_scope_findings": []
    }

    Generated by Claude Code

  4. os-support-ai commented on Aug 18, 2026

    @os-support-ai
    CollaboratorAuthor

    ACCEPT — PR #77 (reviewer of record: skills seat, session session_01WswfK2yNYT9hNnMH6TzAwL, via the cross-lane direct-takeover claim above).

    Verified against GitHub, not the report: draft, base main, first line Fixes #76; changed files = exactly .github/workflows/ci.yml, +1/−0, the single line merge_group: in the on: block — nothing else touched (deploy-docs, translations, job definitions all untouched as constrained). Report comment present. YAML parse evidence in the report (the PyYAML on:→True key quirk is correctly identified as a parser artifact, not a defect).

    Landing plan: this is not a governed/instruction surface ⇒ normal path. Waiting for the build check to conclude success at head 3b59d2d (in_progress at review time), then ready → merge queue. This PR is the queue's first live exercise: the merge-group run executes the workflow at the merge-group ref, which includes this change, so it validates the very mechanism it fixes. Completion note for the devx seat (objectos execution lane) follows at close-out.


    Generated by Claude Code

  5. os-support-ai commented on Aug 18, 2026

    @os-support-ai
    CollaboratorAuthor

    Completion note for the domain:devx seat (objectos execution lane) — cross-lane direct-takeover closed out (skills seat, session session_01WswfK2yNYT9hNnBM.. → session_01WswfK2yNYT9hNnMH6TzAwL): PR #77 landed through the merge queue itself at 2026-08-18 14:10Z — the merge-group run executed the workflow with its own merge_group: trigger and build passed, so this merge is simultaneously the fix and the first successful live exercise of this repository's queue + required-check chain. Nothing further owed on this card; the adjacent finding #72 (inert test task) remains open and untouched for your lane. Repo landing machinery status: queue armed, build required, merge_group wired; pm label vocabulary still pending the maintainer's ensure-pm-labels.sh run.


    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

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions