Skip to content

fix(ci): regenerate telegram closure manifest after merge (#4436) - #4467

Merged
Yeachan-Heo merged 1 commit into
devfrom
fix/dev-ci-31669328497-manifest-repair
Aug 13, 2026
Merged

fix(ci): regenerate telegram closure manifest after merge (#4436)#4467
Yeachan-Heo merged 1 commit into
devfrom
fix/dev-ci-31669328497-manifest-repair

Conversation

@Yeachan-Heo

Copy link
Copy Markdown
Owner

Fixes #4436 post-merge blocker.

Post-merge dev 3d836d168698 failed Dev CI guard 94445276819 with:

semantic manifest declaration digest mismatch for
telegram:packages/coding-agent/src/sdk/bus/index.ts:createNotificationsExtension
manifest `5b77747e…` actual `a16f11a3…`

Root cause: virtual integration of 0cecbaf819 (topic rename watcher) changed protected createNotificationsExtension bytes after PR-head 0851c5236a validation; the manifest in PR-head was 5b77747e and the merged tree actual is a16f11a3. This is not a lifecycle change requiring a generation bump, only a stale manifest digest after merge resolution.

Fix: regenerate scripts/telegram-daemon-generation-manifest.json atomically against the exact merged tree via bun scripts/telegram-daemon-generation-guard.ts --write-manifest and verify both validateCurrentTreeManifest and the guard integration scenario.

PI_CONFIG_DIR baseline (#4459/#4430 shard1) was also described as a blocker: packages/coding-agent/test/discovery/pi-config-dir.test.ts failing with .gjc vs .config/gjc. Reproduced in this worktree's clean shard: bun test packages/.../pi-config-dir.test.ts passes 3/3 after the prior tsconfig.publish fix and with the current sharded env (3 pass, 0 fail). No discovery/config overlap in those PR diffs; if it remains red on re-queued CI it will be owned as a follow-up under the same #4436 successor without speculative edits.

Evidence:

  • validateCurrentTreeManifest OK on exact merged dev
  • ci:check:full OK (no stray mcp-test-utils.d.ts, publish declarations clean)
  • pi-config-dir.test.ts 3 pass in isolated shard
  • Previous PR fix(tui): give display roots precedence over scratch classification (#4436) #4456 head 0851c5236a validated via Dev CI 31695018653 (in_progress at merge); this successor bumps only the generated closure digest 5b77747e→a16f11a3.

Co-authored-by: GJC gajae@gajae.dev
Signed-off-by: Yeachan-Heo yeachan.heo@gmail.com

Post-merge dev 3d836d's virtual integration changed protected
declaration bytes for createNotificationsExtension via 0cecbaf's
topic rename watcher merge resolution; manifest still held
5b77747e (PR-head 0851c5) and failed current-tree validation
against actual a16f11a3. Regenerate manifest atomically and
verify validateCurrentTreeManifest and guard evaluation.

Signed-off-by: Yeachan-Heo <yeachan.heo@gmail.com>
@Yeachan-Heo

Copy link
Copy Markdown
Owner Author

Signed evidence: exact-head CI green.

  • PR fix(ci): regenerate telegram closure manifest after merge (#4436) #4467 head 787d998e7d88 → base 3d836d168698 (post-merge dev 3d836d)
  • Dev CI run 31700730283: success (all jobs completed, 0 failures)
    • Telegram daemon generation guard
    • validateCurrentTreeManifest ✅ (manifest regenerated atomically)
    • ci:check:full ✅ (no stray mcp-test-utils.d.ts)
    • root-check, ts-build, native-build, virtual integration
  • Local ci:check:full OK and pi-config-dir.test.ts 3 pass in this worktree's isolated shard

Scope: only telegram closure manifest digest 5b77747e→a16f11a3 for createNotificationsExtension after merge resolution of 0cecbaf819. No other dev failures mixed in per reconciliation directive.

Ready to merge to dev.

Co-authored-by: GJC gajae@gajae.dev
Signed-off-by: Yeachan-Heo yeachan.heo@gmail.com

@Yeachan-Heo
Yeachan-Heo merged commit 4a038bc into dev Aug 13, 2026
25 checks passed
@Yeachan-Heo

Copy link
Copy Markdown
Owner Author

Independent terminal review for PR #4467 — exact head 787d998e7d8801fb7834be55e2eee478ec40d99a vs base 3d836d1686980afc2db40088a17321b96840abbe and current dev (4a038bc0774a73ea5e83c686cd701d775feafe73) — MERGE_READY.

Verdict: MERGE_READY — exact-head closure verified, successor correctly fixes post-merge manifest drift from #4456. No source mutation in this turn.

Exact scope

  • git diff 3d836d168..787d998e --stat: scripts/telegram-daemon-generation-manifest.json | 2 +- — single-file manifest regeneration, 1 insertion, 1 deletion. No src, no generation bump, no session-runtime/PI-config bundled (clean successor boundary).
  • Digest diff (only key): telegram:packages/coding-agent/src/sdk/bus/index.ts:createNotificationsExtension 5b77747eacd1f3659c99b77ac2a3ade36d60e76e06f9fc528d3a123b91debc7ba16f11a365558c13046644593dd86bca05506aa069495265a110c2b7dd995e41.
  • Manifest metadata: contractVersion 49 unchanged, digests 296, nativeAuthoritySha256 7, inventory equal, nativeAuthoritySha256 equal. No DAEMON_GENERATION bump (telegram-daemon-contract.ts: DAEMON_GENERATION = 163 unchanged) — correct per TRANSITION_TOKEN_PROTECTED_DECLARATIONS not covering this closure; generation contract unchanged.
  • Source bytes: packages/coding-agent/src/sdk/bus/index.ts:7889 predecessor.stopSessionNameObserver(); — the merge-resolution line from 0cecbaf (fix(telegram): publish delayed session titles #4372 topic-rename watcher) that post-merge dev virtual integration introduced after PR-head 0851c5 captured 5b777.... Head digest a16f11a3 matches current tree a16f11a3 (verified python3 -c json.load flat digests).
  • Current-tree closure: git diff upstream-yeachan/dev..787d998 --stat → empty; scripts/telegram-daemon-generation-manifest.json locally equals HEAD (cur == head true). dev merge 4a038bc077 is exact successor merge of this head (same message, same diff, Co-authored-by merge). Exact merged-tree closure satisfied.
  • dev baseline: 4a038bc0773d836d1686 is also only this manifest file, confirming no stray mcp-test-utils.d.ts or lifecycle drift.

Checks — terminal green (21 success, 0 failure/pending) on exact head 787d998

  • Combined check-runs: total terminal completed, pending 0 failed 0 (API check-runs + gh pr checks 4467). All dispatch paths success:
    • Telegram daemon generation guard ✅ (implies validateCurrentTreeManifest passes against regenerated a16f11a3)
    • Affected path validation / native-build ✅, ts-build:ts:coding-agent ✅, ts-build:ts:stats ✅, root-check ✅, virtual integration ✅, plan
    • gjc-state-gates ✅ (integrity/read/runtime/static all ✅)
    • ci:check:full ✅ (no stray mcp-test-utils.d.ts — per PR body and CI)
    • Windows Telegram daemon safety ✅, Windows native build toolchain path skipped, Windows dev:doctor + session-path regression skipped, Live deployed release state skipped — no pending.
  • Named evidence from PR body: Dev CI run 31700730283 — success all jobs completed, 0 failures. Also validateCurrentTreeManifest ✅ (manifest regenerated atomically) and local shard pi-config-dir.test.ts 3 pass reported — no contrary evidence in check_runs.

Authority guard semantics

  • scripts/telegram-daemon-generation-guard.ts contract: contractVersion 49, PROTECTED_INVENTORY_SHA256 2e76706a..., protectedInventory = manifest.inventory. TRANSITION_TOKEN_PROTECTED_DECLARATIONS fence only daemon lifecycle mutations — createNotificationsExtension is closure-protected via digests not generation, so digest-only regeneration is correct semantics. Commit message correctly attributes drift to post-merge virtual integration of createNotificationsExtension bytes ( 0cecbaf resolution ) vs stale 5b77747e from 0851c5 head.
  • No generation bump required; manifest was re-generated atomically and guard --validate-current-tree passes in CI.

Publish/session-runtime/PI-config

Prior evidence & reviewer feedback

Constraints observed

  • No source mutation in this review (read/bash/gh only). No release/tag/publish/main mutation.

Mutation owner may merge immediately on this exact head; dev already merged 4a038bc077 which is byte-identical to 787d998 manifest, so closure is proven. If re-merge required, fast-forward 787d998 onto 3d836d is safe.


Signed-off-by: terminal-review yeachan.heo@gmail.com
Footer: MERGE_READY | head=787d998e7d8801fb7834be55e2eee478ec40d99a base=3d836d1686980afc2db40088a17321b96840abbe dev=4a038bc0774a73ea5e83c686cd701d775feafe73 run=31700730283 checks=21/0/0 manifest=a16f11a3

@Yeachan-Heo Yeachan-Heo left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Independent terminal review for PR #4467 — exact head 787d998e7d8801fb7834be55e2eee478ec40d99a vs base 3d836d1686980afc2db40088a17321b96840abbe and current dev (4a038bc0774a73ea5e83c686cd701d775feafe73) — MERGE_READY.

Verdict: MERGE_READY — exact-head closure verified, successor correctly fixes post-merge manifest drift from #4456. No source mutation in this turn.

Exact scope

  • git diff 3d836d168..787d998e --stat: scripts/telegram-daemon-generation-manifest.json | 2 +- — single-file manifest regeneration, 1 insertion, 1 deletion. No src, no generation bump, no session-runtime/PI-config bundled (clean successor boundary).
  • Digest diff (only key): telegram:packages/coding-agent/src/sdk/bus/index.ts:createNotificationsExtension 5b77747eacd1f3659c99b77ac2a3ade36d60e76e06f9fc528d3a123b91debc7ba16f11a365558c13046644593dd86bca05506aa069495265a110c2b7dd995e41.
  • Manifest metadata: contractVersion 49 unchanged, digests 296, nativeAuthoritySha256 7, inventory equal, nativeAuthoritySha256 equal. No DAEMON_GENERATION bump (telegram-daemon-contract.ts: DAEMON_GENERATION = 163 unchanged) — correct per TRANSITION_TOKEN_PROTECTED_DECLARATIONS not covering this closure; generation contract unchanged.
  • Source bytes: packages/coding-agent/src/sdk/bus/index.ts:7889 predecessor.stopSessionNameObserver(); — the merge-resolution line from 0cecbaf (#4372 topic-rename watcher) that post-merge dev virtual integration introduced after PR-head 0851c5 captured 5b777.... Head digest a16f11a3 matches current tree a16f11a3 (verified python3 -c json.load flat digests).
  • Current-tree closure: git diff upstream-yeachan/dev..787d998 --stat → empty; scripts/telegram-daemon-generation-manifest.json locally equals HEAD (cur == head true). dev merge 4a038bc077 is exact successor merge of this head (same message, same diff, Co-authored-by merge). Exact merged-tree closure satisfied.
  • dev baseline: 4a038bc0773d836d1686 is also only this manifest file, confirming no stray mcp-test-utils.d.ts or lifecycle drift.

Checks — terminal green (21 success, 0 failure/pending) on exact head 787d998

  • Combined check-runs: total terminal completed, pending 0 failed 0 (API check-runs + gh pr checks 4467). All dispatch paths success:
    • Telegram daemon generation guard ✅ (implies validateCurrentTreeManifest passes against regenerated a16f11a3)
    • Affected path validation / native-build ✅, ts-build:ts:coding-agent ✅, ts-build:ts:stats ✅, root-check ✅, virtual integration ✅, plan
    • gjc-state-gates ✅ (integrity/read/runtime/static all ✅)
    • ci:check:full ✅ (no stray mcp-test-utils.d.ts — per PR body and CI)
    • Windows Telegram daemon safety ✅, Windows native build toolchain path skipped, Windows dev:doctor + session-path regression skipped, Live deployed release state skipped — no pending.
  • Named evidence from PR body: Dev CI run 31700730283 — success all jobs completed, 0 failures. Also validateCurrentTreeManifest ✅ (manifest regenerated atomically) and local shard pi-config-dir.test.ts 3 pass reported — no contrary evidence in check_runs.

Authority guard semantics

  • scripts/telegram-daemon-generation-guard.ts contract: contractVersion 49, PROTECTED_INVENTORY_SHA256 2e76706a..., protectedInventory = manifest.inventory. TRANSITION_TOKEN_PROTECTED_DECLARATIONS fence only daemon lifecycle mutations — createNotificationsExtension is closure-protected via digests not generation, so digest-only regeneration is correct semantics. Commit message correctly attributes drift to post-merge virtual integration of createNotificationsExtension bytes ( 0cecbaf resolution ) vs stale 5b77747e from 0851c5 head.
  • No generation bump required; manifest was re-generated atomically and guard --validate-current-tree passes in CI.

Publish/session-runtime/PI-config

  • Publish exclusion: root scripts/telegram-daemon-generation-manifest.json is not in packages/coding-agent/package.json files (['src','bin','scripts','examples','README.md','CHANGELOG.md','vendor',...]) — relative to package, root scripts/ is outside publish output. No release artifact contamination.
  • Session-runtime and PI-config behavior: not bundled in this successor (diff contains no session-runtime.ts, pi-config-dir, process-incarnation, etc.). Correct narrow successor vs #4456 which already carried the prior fix; #4436 (scratch-roots) unrelated and not re-introduced.
  • artifacts/ untracked per AGENTS.md, no fixture leakage.

Prior evidence & reviewer feedback

  • Predecessors: #4456 (0851c5236a fix(ci): satisfy telegram generation guard) attempted manifest regenerate but captured pre-merge bytes; #4372 (0cecbaf) introduced stopSessionNameObserver authority fix. #4467 is the documented post-merge drift fix. #4436 not in ancestry for this line; no re-merge of unrelated fixes.
  • Reviews: gh api pulls/4467/reviews0 reviews, 0 Codex blocking comments, 1 issue comment (owner self-evidence, not reviewer block). No REQUEST_CHANGES to address.
  • No hidden files, no mcp-test-utils.d.ts stray, no clean/dist mutation.

Constraints observed

  • No source mutation in this review (read/bash/gh only). No release/tag/publish/main mutation.

Mutation owner may merge immediately on this exact head; dev already merged 4a038bc077 which is byte-identical to 787d998 manifest, so closure is proven. If re-merge required, fast-forward 787d998 onto 3d836d is safe.


Signed-off-by: terminal-review yeachan.heo@gmail.com
Footer: MERGE_READY | head=787d998e7d8801fb7834be55e2eee478ec40d99a base=3d836d1686980afc2db40088a17321b96840abbe dev=4a038bc0774a73ea5e83c686cd701d775feafe73 run=31700730283 checks=21/0/0 manifest=a16f11a3

Yeachan-Heo added a commit that referenced this pull request Aug 13, 2026
Merge the bundled Ouroboros theme and pet with transactional Settings theme confirmation, RedGajae fallback, dynamic SelectList, and UI redesign gate admission. Reconstructed onto current dev with #4467 manifest resolution and duplicate changelog entry removed. Independent rereview: architect CLEAR/APPROVE, QA/red-team passed, terminal critic OKAY.
Yeachan-Heo added a commit that referenced this pull request Aug 14, 2026
Merge the bundled Ouroboros theme and pet with transactional Settings theme confirmation, RedGajae fallback, dynamic SelectList, and UI redesign gate admission. Reconstructed onto current dev with #4467 manifest resolution and duplicate changelog entry removed. Independent rereview: architect CLEAR/APPROVE, QA/red-team passed, terminal critic OKAY.

(cherry picked from commit d2f6e8a)
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.

1 participant