docs(specs): Agent Inbox API v1.1 — adopt the designed UI contract (HT-25) - #24
Conversation
…ntract (HT-25) The Agent Inbox UI (Claude Design prototype, mock-api.js) was designed against a v1 surface extending v1.0 in eight documented ways. Decision 2026-07-11: build to the designed contract. This amends the spec to v1.1: status model active/pending/closed/spam with folder-semantics listing (HT-26), preview + number on summaries (HT-27), internal notes (HT-28), tags (HT-29), soft-delete endpoint (HT-30), single-Agent assignee (HT-31), and config-gated-default-OFF open tracking (HT-32). HT-16's shipped replay/lease semantics explicitly govern over the mock's simplification. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughThe Agent Inbox API specification is updated to v1.1 with expanded conversation and thread models, revised status filtering, new write endpoints, soft deletion, tagging, assignment, and configuration-gated open tracking. ChangesAgent Inbox API v1.1
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@specs/api/agent-inbox-v1.md`:
- Around line 316-320: Update the pixel endpoint contract in the section
describing its unauthenticated behavior to explicitly exempt it from the global
application/json response requirement. Specify Content-Type: image/gif, the
required cache policy, and the exact 1×1 GIF body, while preserving the existing
200 response, token-blindness, and first-view timestamp semantics.
- Around line 27-28: Update the deployment guidance near the HT-26 status
changes in the agent inbox specification to separate the status migration from
the additive-field partial-deployment note. Mark the active/pending/spam status
and filter changes as requiring coordinated rollout or an explicit compatibility
plan, while retaining the per-field degradation guidance only for nullable or
additive fields.
- Around line 313-318: Update the pixel tracking contract in §4a and the pixel
endpoint description to specify the exact HT-32 route, request shape, and token
format. Define the credential as an unguessable, signed token bound to the
outbound thread rather than exposing or accepting a bare thread UUID, while
preserving the unauthenticated endpoint’s constant 200/1×1 GIF response and
no-leak behavior.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 49cbeee8-1ce3-4d42-a5eb-aa89643d4959
📒 Files selected for processing (1)
specs/api/agent-inbox-v1.md
…ned pixel token, gif content-type exception Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Why
The Agent Inbox UI (Claude Design project "Helpthread Agent Inbox Design") was designed against a v1 surface that extends the shipped API in eight ways, each marked
CONTRACT ADDITIONin itsmock-api.js. Decision (maintainer, 2026-07-11): build to the designed contract for v1. HT-25.What
Amends
specs/api/agent-inbox-v1.mdin place to v1.1, with a changelog section. Spec only — no code changes. Each addition lands under its own ticket:active | pending | closed | spam; list filter keeps three folders (open= active + pending,closed,spam); PATCH accepts all four; reply-reopen covers closed AND spam → activepreview(derived latest-text excerpt) +number(per-deployment sequential, display-only) on summariesdirection: 'note'+POST …/notes; never emailed, never reopens; send-path boundary test requiredtags[]+PUT …/tags(replace-set; trim/lowercase/dedupe; 1–40 chars)DELETE …/{id}soft delete; indistinguishable-from-nonexistent everywhere after'me' | null+PUT …/assignee(deliberately not identity)customerViewedAt: config-gated, default OFF (privacy stance in the spec); pixel endpoint contract (always 200 + gif, first-view-only, no cookies); byte-identical mail when off, fixture-proven per charter invariant HT-8: mail threading behavioral spec #5Also on record in the changelog: the prototype's mock simplifies the §4a replay model — HT-16's shipped lease/replay/409 semantics govern, and the UI must handle the 409.
Review focus
🤖 Generated with Claude Code
Summary by CodeRabbit