You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
ci: run the build check on merge_group — queued PRs wait forever for a required check that never starts #76
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.
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.
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.
{
"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": []
}
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": []
}
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.
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.
Activity
os-support-ai commentedon Aug 18, 2026
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_01WswfK2yNYT9hNnMH6TzAwLBranch:
claude/issue-76-ci-merge-group-triggerWorktree:
objectos-issue-76Domain: objectos execution lane =
domain:devxper 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.ymlonly (theon: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 itselfClause-②: 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
testtask, same file) is unclaimed and out of scope — no in-flight overlap.Generated by Claude Code
ci: run the build check on merge_group
os-support-ai commentedon Aug 18, 2026
<!-- 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
os-support-ai commentedon Aug 18, 2026
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
os-support-ai commentedon Aug 18, 2026
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 lineFixes #76; changed files = exactly.github/workflows/ci.yml, +1/−0, the single linemerge_group:in theon:block — nothing else touched (deploy-docs, translations, job definitions all untouched as constrained). Report comment present. YAML parse evidence in the report (the PyYAMLon:→Truekey 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
buildcheck to concludesuccessat head3b59d2d(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
os-support-ai commentedon Aug 18, 2026
Completion note for the
domain:devxseat (objectos execution lane) — cross-lane direct-takeover closed out (skills seat, sessionsession_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 ownmerge_group:trigger andbuildpassed, 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 (inerttesttask) remains open and untouched for your lane. Repo landing machinery status: queue armed,buildrequired,merge_groupwired; pm label vocabulary still pending the maintainer'sensure-pm-labels.shrun.Generated by Claude Code