Skip to content

fix(ci): restore SDK closure checks - #4614

Closed
sj0618 wants to merge 2 commits into
Yeachan-Heo:devfrom
sj0618:agent/fix-sdk-guard-test-cwd
Closed

fix(ci): restore SDK closure checks#4614
sj0618 wants to merge 2 commits into
Yeachan-Heo:devfrom
sj0618:agent/fix-sdk-guard-test-cwd

Conversation

@sj0618

@sj0618 sj0618 commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Resolve Telegram daemon guard fixtures from the repository root so the guard suite works from both the root and package working directories.
  • Refresh the generated Telegram baseline manifest with the three discovered inbound notification suites, moving the baseline from 54 to 57 commands.

Root cause

The package-level check:sdk-closure command invokes the root guard test while the working directory is packages/coding-agent. Two fixture reads used cwd-relative paths, which incorrectly resolved beneath a duplicated packages/coding-agent segment.

The committed Telegram baseline had also drifted from generator discovery and omitted three existing inbound notification test files.

Commit structure

Each modified file has its own commit as required:

  • a82b61d43scripts/telegram-daemon-generation-guard.test.ts
  • 749111d0cpackages/coding-agent/test/manifests/telegram-baseline-v1.json

Validation

  • Guard suite from repository root: 75 passed
  • Guard suite from packages/coding-agent: 75 passed
  • Three newly registered inbound notification suites: 17 passed
  • Telegram baseline generator --check: passed
  • Coding-agent package check: passed with 11 pre-existing lint warnings
  • SDK adapter parity manifest: all 582 row receipts passed
  • Telegram baseline manifest: all 57 command receipts passed
  • SDK downgrade and rollback tests: 4 passed

The full check:sdk-closure run reaches the final canonicalization gate, which fails with 27 existing mcp-serve.ts dependency violations. The same gate was run against upstream/dev; exit status, violation count, and complete output are identical, so this branch does not introduce that failure.

Review status

  • Independent architecture review: CLEAR
  • Additional reviewer: no severity-rated code findings
  • Required code-reviewer lane: unavailable because this deployment rejects that operation

This PR remains draft because the required independent review lane could not return evidence.

sj0618 added 2 commits August 17, 2026 03:38
The SDK closure check runs the root guard test from the coding-agent workspace, so cwd-relative fixture reads failed before validating the generation pin. Anchor disk reads to the test module repository root while preserving repo-relative repair-plan keys.

Lore-id: 4c9f2a71
Constraint: repair-plan maps must retain repository-relative file identifiers
Rejected: change the check:sdk-closure working directory | later package-local commands depend on it
Confidence: high
Scope-risk: narrow
Reversibility: simple
Tested: bun test ../../scripts/telegram-daemon-generation-guard.test.ts from packages/coding-agent
The generated Telegram baseline omitted three existing inbound-notification suites, so check:sdk-closure rejected the committed manifest after the cwd fix exposed the next gate. Regenerate the manifest from the canonical inventory.

Lore-id: b7138de4
Constraint: generated test manifests must exactly match their canonical inventory
Rejected: bypass the manifest check | would leave inbound notification coverage outside the baseline gate
Confidence: high
Scope-risk: narrow
Reversibility: simple
Tested: bun scripts/generate-telegram-baseline-manifest.ts --check; three added inbound notification suites
@Yeachan-Heo

Copy link
Copy Markdown
Owner

PR #4614 — Terminal disposition: SUPERSEDED (fixes already on dev)

Exact head 749111d0c846deeda4f6ce57c4da255eda48347e / base dev @ c83ffe3d7fd72f1710de59ce155e7bd995d181d8 (branch agent/fix-sdk-guard-test-cwd on sj0618/gajae-code). Verified before disposition; no head/base mutation was performed by the disposition.

Supersession record

Both changes this PR carries landed on canonical dev independently, in equivalent form:

PR change Dev carrier Equivalence evidence
a82b61d435 — resolve guard fixtures from repo root e8393b9020 (fix(gates): anchor generation-guard fixture reads to repo root, Yeachan-Heo, 2026-08-17 12:20:53 +0900) Same two reads pinned to path.*join(import.meta.dir, "..") under the same scripts/ dir. Only deltas: dev hoists the root into a module-level repositoryRoot const and keeps the .text(); semicolons — no behavioral difference (git diff -w 749111d0c8 origin/dev -- scripts/telegram-daemon-generation-guard.test.ts = 3 lines of cosmetics)
749111d0c8 — refresh Telegram baseline 54 → 57 commands 9bfb62521a (fix(gates): regenerate Telegram baseline manifest for the three inbound suites, Yeachan-Heo, 2026-08-17 12:31:50 +0900) git diff --quiet 749111d0c8 origin/dev -- packages/coding-agent/test/manifests/telegram-baseline-v1.jsonbyte-identical

The exact check:sdk-closure failure mode this PR fixes is therefore already closed on canonical dev; merging the conflicting head would add zero functional delta and reintroduce a cosmetic conflict in scripts/telegram-daemon-generation-guard.test.ts (merge base c83ffe3d7f has both sides changed: .our = dev's hoisted const, .their = this PR's inline variant — mergeStateStatus: DIRTY, mergeable: CONFLICTING).

Exact-head reproduction (2026-08-17, dedicated worktree, Bun 1.3.14)

  • bun test scripts/telegram-daemon-generation-guard.test.ts from repo root → 75 pass / 0 fail.
  • Same suite with cwd packages/coding-agent (the check:sdk-closure wrapper condition) → 75 pass / 0 fail.
  • bun ../../scripts/telegram-daemon-generation-guard.ts --validate-current-tree from packages/coding-agent → exit 0.
  • bun scripts/generate-telegram-baseline-manifest.ts --check from packages/coding-agent → exit 0.
  • The PR's technical claim (guard fixtures now resolve under both cwds) is confirmed correct — the failure was never the code.

Dev-tip control (8711c555da490ad36475f94368bcdd8d8f01048e): identical results — 75/75 from both cwds, validate exit 0, --check exit 0; Dev CI at that tip is green (run completed success at 2026-08-17T11:19:18Z).

Exact-head CI findings (run 31965676727 / 31965676723)

  • PR contract bootstrap — FAIL (reproduced locally, exit 1): Expected exactly one verdict line; found 0. The PR body contains no gajae.pr-review-verdict.v1 merge-approved … line, and the contract additionally requires an effective exact-head APPROVED review from a non-author write-authorized reviewer (0 reviews exist; sj0618 holds read). Structural for an unreviewed draft, by design — not a code defect.
  • All 21 material jobs pass: affected-path plan/cargo/ts-build/native-build/cli-smoke/coding-agent check/test:scripts/telegram-daemon-generation-guard.test.ts, evidence producer, Telegram daemon generation guard, Windows Telegram daemon safety, virtual integration validation, all four gjc-state-gates shards + aggregate, local public surfaces. (Windows dev:doctor and darwin tab-worker jobs skipped by matrix condition.)

Review status

0 reviews; reviewDecision empty. The PR body already records needs-human-equivalent status ("remains draft because the required independent review lane could not return evidence").

Sole-carrier scan

None of the 36 other open PRs touch scripts/telegram-daemon-generation-guard.test.ts or packages/coding-agent/test/manifests/telegram-baseline-v1.json (nearest sibling #4613 is disjoint: packages/utils/src/env-file.ts + utils test/changelog). dev is the sole carrier of the fix.

Disposition

  • CLOSED as superseded. No fix-forward, no successor PR: the exact change set is already on canonical dev (e8393b9020, 9bfb62521a), byte-identical manifest and behaviorally identical guard test; a successor would duplicate 9bfb62521a's content and violate the one-change-one-carrier rule. Author credit for the correct root-cause diagnosis (cwd-relative fixture resolution under the package-level check:sdk-closure wrapper) is preserved in this record — the dev commits implement the same diagnosis.
  • Fix-forward on the existing branch was not taken: authority is limited to maintainer-canonical dev (this session operates the Yeachan-Heo owner account; sj0618/gajae-code head-branch pushes are not authorized), and the branch's content is already merged upstream in equivalent form — pushing a rebase would churn an exact head whose delta is zero.
  • Human-only blocker (terminal): none outstanding for dev — the fix is live and gated green at 8711c555da. The only remaining actor-optional step is author-side: close/delete the fork branch at the author's discretion.


[repo owner's gaebal-gajae (clawdbot) 🦞]

@Yeachan-Heo

Copy link
Copy Markdown
Owner

Closing as superseded: both changes landed on canonical dev in equivalent form (e8393b9020 — repo-root fixture anchoring; 9bfb62521a — baseline 54→57, byte-identical manifest). Full exact-head evidence and disposition: #4614 (comment)


[repo owner's gaebal-gajae (clawdbot) 🦞]

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants