Skip to content

chore(guard): refresh discord/slack session-router digests after #4542 - #4563

Merged
Yeachan-Heo merged 2 commits into
devfrom
fix/issue-4528-dev-guard-digests
Aug 15, 2026
Merged

chore(guard): refresh discord/slack session-router digests after #4542#4563
Yeachan-Heo merged 2 commits into
devfrom
fix/issue-4528-dev-guard-digests

Conversation

@Yeachan-Heo

@Yeachan-Heo Yeachan-Heo commented Aug 14, 2026

Copy link
Copy Markdown
Owner

Summary

Verification

  • bun test scripts/telegram-daemon-generation-guard.test.ts — 75 pass
  • bun scripts/telegram-daemon-generation-guard.ts --validate-current-tree — pass
  • bun scripts/telegram-daemon-generation-guard.ts 9d2a2d2f2d8f074333bba92fe1fc4d6902f5b2df cae16160a4fa350c2f84ecdc1ea6cef67a0b1d88 — required generation bump verified
  • bun test packages/coding-agent/test/daemon-control.test.ts — 170 pass
  • bun --cwd=packages/coding-agent run check — pass
  • bun --cwd=packages/coding-agent run build — pass
  • Dev CI run 31831417583 — 27 product jobs pass, four structural skips; only the intentional needs-human bootstrap gate fails

Signed exact-head evidence: #4563 (comment)


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

Exact head: cae16160a4fa350c2f84ecdc1ea6cef67a0b1d88

gajae.pr-review-verdict.v1 merge-approved sha256:5369ed1ffecc1ce37cb3eb1b105457b0cbf5e19f3f4a70d10a7443192b841cd5 reviewer:human reviewer-id:probepark evidence:6 changed digests scoped exactly to #4542 symbols plus generation constants; bump rationale in source

PR #4542 changed SessionRouter.#attach and #publishAttachment without
refreshing the discord/slack semantic manifest digests, so the current-tree
manifest check fails on dev after #4558's merge surfaced it (dev CI 31820749528
Telegram daemon generation guard). The telegram digests all match. Refreshed
through the canonical --write-manifest generator; --fix-generations confirms
no generation bump is required (digest attestations are exempt from the policy
bump).

Lore-id: 6e3a1c04
Constraint: digest-only refresh, no generation bump, no source change
Confidence: high
Scope-risk: narrow
Reversibility: trivial
Tested: bun test scripts/telegram-daemon-generation-guard.test.ts (75 pass); --validate-current-tree pass at merged dev head
Not-tested: none
@Yeachan-Heo
Yeachan-Heo requested a review from probepark August 14, 2026 17:00
@Yeachan-Heo

Copy link
Copy Markdown
Owner Author

Guard digest repair for dev — follow-up to #4558 merge

The merge of #4558 (merge commit 9d2a2d2f2d8f074333bba92fe1fc4d6902f5b2df) exposed a pre-existing semantic-manifest staleness introduced by #4542: SessionRouter.#attach and SessionRouter.#publishAttachment changed without refreshing their discord/slack digests, so dev CI run 31820749528's Telegram daemon generation guard job fails its current-tree byte-match. All telegram digests match; this PR changes only the four stale discord/slack attestations.

Reproduced independently at pre-merge dev 21d0a44209805e061e8476551d2d317ed26ffe73 (identical mismatch), proving it predates #4558.

Refreshed through the canonical generator (--write-manifest); --fix-generations confirms no generation bump is required since digest attestations are exempt from the policy bump.

Verification: --validate-current-tree pass; bun test scripts/telegram-daemon-generation-guard.test.ts 75 pass.

Exact head 06cbd1a1501e7fbcb6d1ca9c7fc17477a9c4a51f, exactly one needs-human verdict with verifier-computed digest. Requesting authenticated APPROVED review on that exact head from @probepark.


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

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 06cbd1a150

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

"discord:packages/coding-agent/src/sdk/bus/discord-daemon.ts:stop": "c8bcd881cc0331fb0565a82d997805f939701b12a80e03177192dbd5935824ff",
"discord:packages/coding-agent/src/sdk/client/discovery.ts:readSdkSessionEndpoint": "c0f42dcf4843e6c79516b11927150e0fe827f6f4cfff400f04ab113ae0574022",
"discord:packages/coding-agent/src/sdk/router/session-router.ts:SessionRouter.#attach": "f01b84c3ab97d1123b4d7b85760ceb113fbb079f665e188cc7cabcda873e88fe",
"discord:packages/coding-agent/src/sdk/router/session-router.ts:SessionRouter.#attach": "d9e810776f1bd821e0c62730ae89fe71dc83d6f93b12d9ccebd2cb237dae08cf",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Bump both daemon generations before accepting these hashes

When users upgrade with a Discord or Slack daemon already running from before #4542, this digest-only refresh makes the current-tree validation pass while CHAT_DAEMON_GENERATIONS remains 64/67. Because the immediate base already contains the #attach and #publishAttachment changes, evaluate() now sees no protected declaration delta and cannot demand the missed bumps; the controller consequently classifies the old owners as compatible instead of replacing them. Increment both provider generations and regenerate the manifest so the protected endpoint-discovery change is actually fenced.

Useful? React with 👍 / 👎.

Refreshing only the protected declaration digests would let Discord and Slack daemons started before #4542 retain the older attachment contract. Bump both provider generations and regenerate their semantic attestations so stale owners are replaced.

Lore-id: 4f2ca8d1

Constraint: preserve the existing #4563 manifest repair and update the same PR branch

Rejected: digest-only refresh | does not invalidate pre-#4542 daemon owners

Confidence: high

Scope-risk: narrow

Reversibility: revert-safe

Tested: telegram daemon generation guard, daemon-control replacement tests, coding-agent check
@Yeachan-Heo

Copy link
Copy Markdown
Owner Author

Exact-head generation-fence repair

Codex P1 review comment 3785726810 identified a real product defect in the digest-only head: #4542 changed the generation-fenced SessionRouter.#attach / #publishAttachment contract, but Discord and Slack remained at generations 64/67. A pre-#4542 daemon could therefore survive the manifest refresh as compatible.

Fixed forward on the same PR branch without copying the repair into #4555:

  • exact head: cae16160a4fa350c2f84ecdc1ea6cef67a0b1d88
  • base: 9d2a2d2f2d8f074333bba92fe1fc4d6902f5b2df
  • exact diff digest: 5369ed1ffecc1ce37cb3eb1b105457b0cbf5e19f3f4a70d10a7443192b841cd5
  • CHAT_DAEMON_GENERATIONS.discord: 64 → 65
  • CHAT_DAEMON_GENERATIONS.slack: 67 → 68
  • semantic manifest regenerated through --write-manifest

Verification on this exact head:

  • bun test scripts/telegram-daemon-generation-guard.test.ts — 75 pass
  • bun scripts/telegram-daemon-generation-guard.ts --validate-current-tree — pass
  • bun scripts/telegram-daemon-generation-guard.ts 9d2a2d2f2d8f074333bba92fe1fc4d6902f5b2df cae16160a4fa350c2f84ecdc1ea6cef67a0b1d88 — required generation bump verified
  • bun test packages/coding-agent/test/daemon-control.test.ts — 170 pass
  • bun --cwd=packages/coding-agent run check — pass
  • bun --cwd=packages/coding-agent run build — pass

The earlier statement that no generation bump was required is superseded by this evidence. The PR remains needs-human until an authenticated independent reviewer approves this exact head.


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

@Yeachan-Heo

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Keep it up!

Reviewed commit: cae16160a4

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@Yeachan-Heo

Copy link
Copy Markdown
Owner Author

Terminal-green reminder — PR #4563 blocks dev guard and #4555

Exact head: 06cbd1a1501e7fbcb6d1ca9c7fc17477a9c4a51f · Base: dev @ 9d2a2d2f2d8f074333bba92fe1fc4d6902f5b2df

  • 20/20 product jobs green in Dev CI run 31821931240, including the Telegram daemon generation guard job this PR repairs; the sole red is the intentional needs-human contract gate.
  • One-file, generated-only manifest repair (four discord/slack session-router digests via canonical --write-manifest; no source mutation, no generation bump — --fix-generations confirms none required).
  • Fixes the pre-existing fix(sdk): run initial attachment replay off the reconcile tail (#4527) #4542 digest staleness currently failing dev's guard job and blocking dependent work including fix(sdk): keep Windows OS probes and slow syncs off the session-index lock (#4544) #4555.
  • Verdict: exactly one needs-human line with verifier-computed digest c9665ec4453f9172803c5b39f7628fddea7afbc075dba6bd51674e49e7124840; will flip to merge-approved bound to the actual reviewer the moment an authenticated APPROVED review targets this exact head.

Reviewers requested: @probepark and @HaD0Yun (backup). One authenticated APPROVED review on exact head 06cbd1a150 is the only remaining gate; merge follows immediately on approval + contract green.


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

@Yeachan-Heo

Copy link
Copy Markdown
Owner Author

@probepark Independent exact-head review requested for 06cbd1a1501e7fbcb6d1ca9c7fc17477a9c4a51f — the post-#4542 discord/slack session-router manifest digest refresh blocking dev CI's Telegram daemon generation guard (run 31820749528). Digest-only delta through the canonical --write-manifest generator; --fix-generations confirms no generation bump required; guard test suite 75/75; all product CI green at this head. Please approve exact head or name a concrete blocker.


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

@Yeachan-Heo

Copy link
Copy Markdown
Owner Author

@codex review — corrected exact head cae16160a4fa350c2f84ecdc1ea6cef67a0b1d88; please review the generation bumps and regenerated manifest.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Keep it up!

Reviewed commit: cae16160a4

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@Yeachan-Heo

Copy link
Copy Markdown
Owner Author

Correction — supersedes comments 5297482928 and 5297509185

The guidance in owner comments 5297482928 and 5297509185 is obsolete and must not be used for review or merge. Both comments referenced old head 06cbd1a1501e7fbcb6d1ca9c7fc17477a9c4a51f and incorrectly described the repair as digest-only with no generation bump.

Codex P1 3785726810 was valid. The corrected PR now includes the required generation fences:

  • exact head: cae16160a4fa350c2f84ecdc1ea6cef67a0b1d88
  • base: 9d2a2d2f2d8f074333bba92fe1fc4d6902f5b2df
  • CHAT_DAEMON_GENERATIONS.discord: 64 → 65
  • CHAT_DAEMON_GENERATIONS.slack: 67 → 68
  • exact diff digest: 5369ed1ffecc1ce37cb3eb1b105457b0cbf5e19f3f4a70d10a7443192b841cd5
  • signed verification evidence: chore(guard): refresh discord/slack session-router digests after #4542 #4563 (comment)
  • current Dev CI: run 31833702901, 27 product passes and four structural skips; only the intentional needs-human bootstrap gate fails

@probepark @HaD0Yun Independent review is requested only for exact head cae16160a4fa350c2f84ecdc1ea6cef67a0b1d88 with these generation bumps. Do not approve or rely on the superseded old-head/digest-only comments.


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

@probepark probepark left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Approve - a scoped generation fence, not a blind digest refresh

Reviewed cae16160a against base 9d2a2d2f2. +12/-8 across 3 files.

A PR that rewrites guard digests deserves suspicion by default: the guard exists to make a human
notice when protected symbols change, so refreshing it is exactly how you would silence it. I
checked the scope rather than the intent.

The digest changes are confined to what #4542 actually touched

All six changed entries:

discord:.../chat-daemon-control.ts:CHAT_DAEMON_GENERATIONS.discord
discord:.../session-router.ts:SessionRouter.#attach
discord:.../session-router.ts:SessionRouter.#publishAttachment
slack:.../chat-daemon-control.ts:CHAT_DAEMON_GENERATIONS.slack
slack:.../session-router.ts:SessionRouter.#attach
slack:.../session-router.ts:SessionRouter.#publishAttachment

#attach and #publishAttachment are the symbols #4542 modified when it moved the initial
attachment replay off the reconcile tail. No unrelated protected symbol drifted in alongside them,
which was the thing worth verifying.

The generation bump is the point, and it is justified in place

+ * Discord generation 65 / Slack generation 68 fence the off-reconcile-tail
+ * initial attachment replay introduced by #4542 so pre-upgrade daemon owners
+ * cannot retain the earlier SessionRouter attachment contract.
-	discord: 64,
-	slack: 67,
+	discord: 65,
+	slack: 68,

This is the correct ordering: #4542 changed the attachment contract, so daemon owners running the
previous contract have to be fenced out rather than left attached across the change. The two
CHAT_DAEMON_GENERATIONS digests then change because the constant itself changed - they are a
consequence of the bump, not an extra refresh.

Good that the rationale names the PR and the mechanism in the source comment rather than only in the
commit message. Someone auditing generation 65 a year from now can see why it exists without
archaeology.

Verdict

merge-approved.

Merge-order note: this should land with or after #4542, never before - bumping the fence while the
old attachment contract is still what ships would evict daemon owners for a change that has not
happened yet.

Reviewed by @probepark - method: enumerated every changed manifest key and cross-checked it against the symbols #4542 modified, read the generation-bump rationale in source, confirmed no unrelated protected symbol was refreshed.

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