fix(ci): regenerate telegram closure manifest after merge (#4436) - #4467
Conversation
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>
|
Signed evidence: exact-head CI green.
Scope: only telegram closure manifest digest Ready to merge to Co-authored-by: GJC gajae@gajae.dev |
|
Independent terminal review for PR #4467 — exact head Verdict: MERGE_READY — exact-head closure verified, successor correctly fixes post-merge manifest drift from #4456. No source mutation in this turn. Exact scope
Checks — terminal green (21 success, 0 failure/pending) on exact head 787d998
Authority guard semantics
Publish/session-runtime/PI-config
Prior evidence & reviewer feedback
Constraints observed
Mutation owner may merge immediately on this exact head; Signed-off-by: terminal-review yeachan.heo@gmail.com |
Yeachan-Heo
left a comment
There was a problem hiding this comment.
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:createNotificationsExtension5b77747eacd1f3659c99b77ac2a3ade36d60e76e06f9fc528d3a123b91debc7b→a16f11a365558c13046644593dd86bca05506aa069495265a110c2b7dd995e41. - Manifest metadata:
contractVersion 49unchanged,digests 296,nativeAuthoritySha256 7,inventoryequal,nativeAuthoritySha256equal. NoDAEMON_GENERATIONbump (telegram-daemon-contract.ts: DAEMON_GENERATION = 163unchanged) — correct perTRANSITION_TOKEN_PROTECTED_DECLARATIONSnot covering this closure; generation contract unchanged. - Source bytes:
packages/coding-agent/src/sdk/bus/index.ts:7889predecessor.stopSessionNameObserver();— the merge-resolution line from0cecbaf(#4372 topic-rename watcher) that post-mergedevvirtual integration introduced after PR-head0851c5captured5b777.... Head digesta16f11a3matches current treea16f11a3(verifiedpython3 -cjson.loadflat digests). - Current-tree closure:
git diff upstream-yeachan/dev..787d998 --stat→ empty;scripts/telegram-daemon-generation-manifest.jsonlocally equalsHEAD(cur == headtrue).devmerge4a038bc077is exact successor merge of this head (same message, same diff,Co-authored-bymerge). Exact merged-tree closure satisfied. devbaseline:4a038bc077→3d836d1686is also only this manifest file, confirming no straymcp-test-utils.d.tsor lifecycle drift.
Checks — terminal green (21 success, 0 failure/pending) on exact head 787d998
- Combined check-runs:
totalterminal completed,pending 0 failed 0(APIcheck-runs+gh pr checks 4467). All dispatch pathssuccess:Telegram daemon generation guard✅ (impliesvalidateCurrentTreeManifestpasses against regenerateda16f11a3)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/staticall ✅)ci:check:full✅ (no straymcp-test-utils.d.ts— per PR body and CI)Windows Telegram daemon safety✅,Windows native build toolchain pathskipped,Windows dev:doctor + session-path regressionskipped,Live deployed release stateskipped — no pending.
- Named evidence from PR body:
Dev CI run 31700730283— success all jobs completed, 0 failures. AlsovalidateCurrentTreeManifest✅ (manifest regenerated atomically) and local shardpi-config-dir.test.ts 3 passreported — no contrary evidence incheck_runs.
Authority guard semantics
scripts/telegram-daemon-generation-guard.tscontract:contractVersion 49,PROTECTED_INVENTORY_SHA256 2e76706a...,protectedInventory = manifest.inventory.TRANSITION_TOKEN_PROTECTED_DECLARATIONSfence only daemon lifecycle mutations —createNotificationsExtensionis closure-protected viadigestsnot generation, so digest-only regeneration is correct semantics. Commit message correctly attributes drift to post-merge virtual integration ofcreateNotificationsExtensionbytes (0cecbafresolution ) vs stale5b77747efrom0851c5head.- No generation bump required; manifest was re-generated atomically and
guard --validate-current-treepasses in CI.
Publish/session-runtime/PI-config
- Publish exclusion: root
scripts/telegram-daemon-generation-manifest.jsonis not inpackages/coding-agent/package.jsonfiles(['src','bin','scripts','examples','README.md','CHANGELOG.md','vendor',...]) — relative to package, rootscripts/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 perAGENTS.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) introducedstopSessionNameObserverauthority 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/reviews→0 reviews,0 Codexblocking comments,1 issue comment(owner self-evidence, not reviewer block). NoREQUEST_CHANGESto address. - No hidden files, no
mcp-test-utils.d.tsstray, noclean/distmutation.
Constraints observed
- No source mutation in this review (
read/bash/ghonly). Norelease/tag/publish/mainmutation.
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
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.
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)
Fixes #4436 post-merge blocker.
Post-merge dev
3d836d168698failed Dev CI guard94445276819with:Root cause: virtual integration of
0cecbaf819(topic rename watcher) changed protectedcreateNotificationsExtensionbytes after PR-head0851c5236avalidation; the manifest in PR-head was5b77747eand the merged tree actual isa16f11a3. 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.jsonatomically against the exact merged tree viabun scripts/telegram-daemon-generation-guard.ts --write-manifestand verify bothvalidateCurrentTreeManifestand the guard integration scenario.PI_CONFIG_DIRbaseline (#4459/#4430 shard1) was also described as a blocker:packages/coding-agent/test/discovery/pi-config-dir.test.tsfailing with.gjcvs.config/gjc. Reproduced in this worktree's clean shard:bun test packages/.../pi-config-dir.test.tspasses 3/3 after the priortsconfig.publishfix and with the current sharded env (3 pass, 0 fail). Nodiscovery/configoverlap 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:
validateCurrentTreeManifestOK on exact merged devci:check:fullOK (no straymcp-test-utils.d.ts, publish declarations clean)pi-config-dir.test.ts3 pass in isolated shard0851c5236avalidated via Dev CI31695018653(in_progress at merge); this successor bumps only the generated closure digest5b77747e→a16f11a3.Co-authored-by: GJC gajae@gajae.dev
Signed-off-by: Yeachan-Heo yeachan.heo@gmail.com