idd-issue --blocked-by:改用 addBlockedBy 並原樣印出 GitHub 錯誤 (#353) - #358
Open
kiki830621 wants to merge 5 commits into
Open
kiki830621 wants to merge 5 commits into
kiki830621 wants to merge 5 commits into
Conversation
#353) Layer 1 called addBlockedByDependency(blockedByIssueId), which is not in GitHub's schema; the real mutation is addBlockedBy(issueId, blockingIssueId). The error was sent to /dev/null and the warning guessed three causes, none of them real, so no native dependency was ever created. - capture the GraphQL output and print it verbatim on failure - treat 'has already been taken' as success (re-runs; verified 2026-10-02) - correct the normative spec, bundle-flags reference and docs - new suite blocked-by-mutation runs the Layer 1 snippet against a stub gh, with positive controls; IDD_LIVE_GH=1 also introspects the real schema
- Layer 1 messages go to stderr (bundle mode captures stdout into CHILD_NUM) - node IDs bound with -f instead of -F (no @file reads) - only the exact "Target issue has already been taken" counts as already linked - inference wording for "never created" claims - test: runs the snippet in four stub modes, checks the outgoing request, stdout silence, NUL-safe file listing, extraction bounds; a positive control for every check - weekly live-schema workflow (IDD_LIVE_GH=1), Mondays 09:00 Taipei - spec example table and already-exists scenario corrected Refs #353
This was referenced Oct 2, 2026
- bundle-flags.md Layer 1 example captures output into GQL_OUT and points to SKILL.md for the branches; the suite checks the example's shape - already-exists branch prints GitHub's sentence as evidence - failure warning no longer claims Layer 2 succeeded - stderr rationale scoped to Layer 1; rest of the handler tracked in #359 - Idempotency Contract row matches the measured GitHub behaviour - test: two-target continuation with a break control, evidence control, reference-shape control; signals exit instead of continuing - CHANGELOG / workflow comment use inference wording; 60-day schedule note, manual first run, backfill note; checkout without credentials Refs #353
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refs #353
Summary
idd-issue --blocked-by的 Layer 1(GitHub 原生依賴)自 2.52.0 起呼叫addBlockedByDependency(blockedByIssueId),這個名稱不在 GitHub 現行 schema 裡;正確的是addBlockedBy(issueId, blockingIssueId)。錯誤被2>/dev/null吞掉、警告寫死三個猜測原因,據此判斷原生依賴應從未建立過。addBlockedBy,捕捉 GraphQL 輸出,失敗時原樣印出,不再猜原因Target issue has already been taken(2026-10-02 實測),視為成功,並把那一句印出來當依據;其他has already been taken照常警告CHILD_NUM=$(…)擷取 stdout);node ID 用-f傳openspec/specs/idd-issue-bundle/spec.md、references/bundle-flags.md、docs/commands.mdblocked-by-mutation:用假的gh實際執行 SKILL.md 的 Layer 1 片段(四種回應、兩個目標),檢查送出的 request 與 stdout 是否乾淨,每項檢查都有陽性對照;IDD_LIVE_GH=1時另做真 schema introspection.github/workflows/live-schema.yml:每週一 09:00(臺北時間)與手動觸發時跑 live 檢查Checklist
After merge
gh workflow run live-schema.yml一次,確認綠燈(排程只能在 default branch 上跑,所以合併前無法觸發)Related
--blocked-byhandler 的其餘缺陷(Layer 2 字面\n、stdout、目標編號驗證)Generated by /idd-implement on PR path. Do NOT add a GitHub close trailer — IDD discipline requires manual /idd-close after merge to enforce checklist gate + closing summary.