Reactions & comments
One annotation subsystem serves every share type, with type-specific anchors (see ADR-0006 and SPEC-0006).
Reactionsโ
Emoji reactions (๐ฅ ๐ ๐ ๐ โฆ) with a ๏ผ picker, anchorable to almost anything โ
a markdown block or bullet, a code line or selection, an image region, a webhook
request, a trajectory turn / tool call / span, or the whole artifact.
Commentsโ
Threaded comments, anchored to a text selection (they land in the right margin / panel), a code line, an image-region pin, or the whole artifact.
Anchors by typeโ
| Share type | Reaction anchors | Comment anchors |
|---|---|---|
| Markdown | block, bullet, whole | text selection, whole |
| Code | line, selection, whole | line, selection, whole |
| Image | region pin, whole | region pin, whole |
| File | whole | whole |
| Webhook | single request, whole | โ (reactions only) |
| Trajectory | turn, tool call, span, whole | span, text selection, whole |
:::note The webhook exception Webhook requests are reactable but not comment-threaded โ a shared triage signal, by design. "Discussion happens on the artifacts they produce, not here." :::
How it's modeledโ
Anchors are polymorphic โ {artifact_id, anchor_type, anchor_ref}, where
anchor_ref is a type-specific locator (a line range, a block id, a region, a span
id, a request id, or character offsets). Reactions are idempotent per identity +
anchor; counts are aggregated and surfaced in the Bin (๐ฌ 2 ยท ๐ 3) and in headers
(6 comments ยท 16 reactions).