You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
docs: fix stale text in the example READMEs and one doc comment #127
Fix stale text in the example READMEs and one doc comment. The EGM README drift review found these in text that predates that PR, so it left them unchanged.
Wrong tutorial step numbers.examples/slack-nats-state/README.md (L16-L19), and the same paragraph in slack-postgres-state and slack-redis-state, say "Step 5 exposes your machine", "Step 6 subscribes to events", and "Step 8's channels:history scope". In docs/tutorials/slack-bot.md, Step 5 is "Talk To Your Bot", channels:history and message.channels are in Step 6 "Make It Yours", the tunnel setup is in "Use HTTP Instead Of Socket Mode", and there is no Step 8.
Reply shown without its Markdown markers. The same three READMEs show hello world from <X> state. ... (nats L88), but each main.go posts chat.Markdown("**hello** _world_ from <X> state. ..."). examples/slack-hello-world/README.md shows the raw Markdown form.
"adds" a link that the code replaces.examples/linear-agent-hello-world/README.md (L115) says the app "adds a Draft PR external link". main.go sets ExternalURLs through UpdateSession (main.go#L153), which replaces the whole list. On a fresh session the visible result is the same.
Doc comment disagrees with the code. The comment on newFirstThoughtDeadline says it returns nil when the timestamp does not parse (raw.go#L87-L89). The code uses now() in that case when now is set (raw.go#L96).
Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: xhigh
Triage: ready-for-agent. The four fixes are fully specified. Start this after #128 merges, because #128 extends the same example READMEs, and starting earlier causes merge conflicts.
Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: medium
Two more items from the code review of #128. Both are in text that predates that PR, so it left them unchanged:
Deferred dispatch does not acknowledge before the handler runs.README.md (L123-L125) says DispatchDeferred runs handlers "after the event is acknowledged", and doc.go (L79-L81) describes acknowledgement, then the handler. In the code, dispatchDeferred calls startDetachedTail, which starts the handler goroutine before it returns to the adapter. The acknowledgement and the handler run at the same time.
The ack-window claim covers only the backoff sleep.adapters/slack/doc.go (L80-L83) says synchronous retry "stays inside Slack's 3-second ack window", and the SleepCtx comment in internal/ratelimit/ratelimit.go (L55-L57) says retry never blows the ack window. The deadline check and MaxElapsed bound the sleep between attempts, not the HTTP attempts. The window holds only when the request context or the HTTP client bounds those attempts.
Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: xhigh
Two citation fixes in the root README blueprint that #128 adds. The independent merge check on #128 found them, and both still point near the right code:
Routing step citation. Step 6 of the dispatch list (README.md#L223-L227) cites only [runtime.go:Chat.route]. Command and interaction routing happens in Chat.prelude (runtime.go#L887-L925); Chat.route handles only messages. Add runtime.go:Chat.prelude to the citation.
Poll interval citation. The lock-waiter rule (README.md#L302-L304) cites Chat.pollForLock. The ThreadLockTTL/20 value and its 1ms–1s clamp are in Chat.queuePollInterval (runtime.go#L1429). Cite both.
Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: xhigh
Activity
ThomasK33 commentedon Oct 29, 2026
Triage:
ready-for-agent. The four fixes are fully specified. Start this after #128 merges, because #128 extends the same example READMEs, and starting earlier causes merge conflicts.Generated with
xum• Model:anthropic:claude-opus-5-5• Thinking:mediumThomasK33 commentedon Oct 29, 2026
Two more items from the code review of #128. Both are in text that predates that PR, so it left them unchanged:
README.md(L123-L125) saysDispatchDeferredruns handlers "after the event is acknowledged", anddoc.go(L79-L81) describes acknowledgement, then the handler. In the code,dispatchDeferredcallsstartDetachedTail, which starts the handler goroutine before it returns to the adapter. The acknowledgement and the handler run at the same time.adapters/slack/doc.go(L80-L83) says synchronous retry "stays inside Slack's 3-second ack window", and theSleepCtxcomment ininternal/ratelimit/ratelimit.go(L55-L57) says retry never blows the ack window. The deadline check andMaxElapsedbound the sleep between attempts, not the HTTP attempts. The window holds only when the request context or the HTTP client bounds those attempts.Generated with
xum• Model:anthropic:claude-opus-5-5• Thinking:xhighThomasK33 commentedon Oct 29, 2026
Two citation fixes in the root README blueprint that #128 adds. The independent merge check on #128 found them, and both still point near the right code:
[runtime.go:Chat.route]. Command and interaction routing happens inChat.prelude(runtime.go#L887-L925);Chat.routehandles only messages. Addruntime.go:Chat.preludeto the citation.Chat.pollForLock. TheThreadLockTTL/20value and its 1ms–1s clamp are inChat.queuePollInterval(runtime.go#L1429). Cite both.Generated with
xum• Model:anthropic:claude-opus-5-5• Thinking:xhighdocs: add EGM README contracts for every code directory (#128)