Skip to content

Commit aebddbb

Browse files
committed
docs: address round-11 codex review findings
- explanation + linear guide: plans are session updates, not a sixth agent activity; the five activities are thought/response/action/elicitation/error - interactive components: queued interactions can outlive trigger_id's 3-second lifetime before the handler runs; modal opens then fail
1 parent 266747e commit aebddbb

3 files changed

Lines changed: 11 additions & 3 deletions

File tree

‎docs/explanation.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ design deliberately diverges from Vercel Chat SDK.
3333
| [0005](adr/0005-rate-limit-handling.md) | Rate-limit retry lives in adapters, with typed `RateLimited` errors | Accepted |
3434
| [0006](adr/0006-multi-tenant-install.md) | Multi-tenant installs via app-implemented `InstallStore`; OAuth flows stay app-owned | Accepted |
3535
| [0007](adr/0007-teams-adapter.md) | Microsoft Teams adapter approach (Bot Framework, direct HTTP) | Proposed — gated on a spike |
36-
| [0008](adr/0008-linear-full-adapter.md) | Full Linear agent activity surface (thought/action/elicitation/error/plans) | Accepted |
36+
| [0008](adr/0008-linear-full-adapter.md) | Full Linear agent activity surface (thought/response/action/elicitation/error) plus session updates (plans, external URLs) | Accepted |
3737
| [0009](adr/0009-message-history.md) | Message history stays application-owned; optional storage-free `HistoryReader` | Accepted |
3838
| [0010](adr/0010-observability.md) | Optional `Observer` seam; no OpenTelemetry in core | Accepted |
3939
| [0011](adr/0011-resumable-streaming.md) | Resumable streaming deferred from core, not foreclosed | Proposed |

‎docs/how-to/interactive-components.md‎

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,14 @@ err := slackAdapter.OpenModalForTenantFromRaw(ctx, ev.Event.Tenant, ev.Interacti
135135
`trigger_id` string.) The same `Raw` values work from `ev.Command.Raw` in a
136136
slash-command handler.
137137

138-
Slack invalidates `trigger_id` after 3 seconds, so open modals promptly.
138+
Slack invalidates `trigger_id` after 3 seconds, so open modals promptly —
139+
and note that under `chat.ConcurrencyQueue` a queued interaction waits for
140+
the thread lock *before* your handler runs, so an interaction that queues
141+
behind a long-running handler can arrive with its `trigger_id` already
142+
expired and the modal open fails no matter how promptly the handler calls
143+
it. Keep handlers on modal-bearing threads fast, or accept that modals from
144+
lock-contended interactions may fail.
145+
139146
Modal *submissions* are not part of this slice: the synchronous
140147
`view_submission` response (`response_action`) requires responding in the
141148
webhook's HTTP response body, which is incompatible with ack-then-work, so

‎docs/how-to/linear-agent-sessions.md‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ The Linear adapter (experimental) turns Linear agent sessions into normal
44
Chat SDK Go threads: when a user mentions or delegates to your Linear app, a
55
session event arrives as a `MessageEvent`, and `Thread.Post` sends an agent
66
activity response. Beyond that portable surface, the full agent activity
7-
vocabulary — thoughts, actions, elicitations, errors, and plans — is exposed
7+
vocabulary — thoughts, responses, actions, elicitations, and errors, plus
8+
session updates carrying plans and external URLs — is exposed
89
through typed adapter access (see [ADR 0001](../adr/0001-linear-app-actor-slice.md),
910
[ADR 0008](../adr/0008-linear-full-adapter.md), and
1011
[ADR 0013](../adr/0013-linear-generic-comments.md)).

0 commit comments

Comments
 (0)