2.9 KiB
2.9 KiB
id, title, status, wave, depends_on, plan, spec
| id | title | status | wave | depends_on | plan | spec |
|---|---|---|---|---|---|---|
| 01-queue-attachment-rendering | Render queued attachment IDs | done | 1 | plan.md | ../../specs/tasks/requirements/prompt-attachments.md |
Task 01: Render queued attachment IDs
Acceptance
- A queued image descriptor with
attachment_idand no inlinedatarenders from/api/v1/attachments/<id>/contentin both thumbnail and full-size preview contexts for callers authorized to read the owning task. - Legacy inline image descriptors continue to render from their MIME-qualified
data URL, and missing image sources do not produce a broken
<img>URL. - Existing queue thumbnail dimensions, dialog behavior, edit-mode read-only behavior, and desktop/mobile row interaction remain unchanged.
Verification
cd apps && pnpm --filter @kandev/web test -- --run components/task/chat/queued-ghost-message.test.tsx
cd apps/web && pnpm run typecheck
Files likely touched
apps/web/lib/state/slices/session/types.tsapps/web/components/task/chat/queued-attachment-row.tsxapps/web/components/task/chat/queued-ghost-message.tsxapps/web/components/task/chat/queued-ghost-message.test.tsxapps/backend/internal/task/service/attachment_service.goapps/backend/internal/task/service/attachment_service_lifecycle_test.goapps/backend/internal/backendapp/orchestrator.go
Dependencies
None.
Parallelism
Sequential. The type, renderer, and regression test form one shared frontend contract.
Inputs
docs/specs/tasks/requirements/prompt-attachments.md, queued preview scenariodocs/plans/queued-message-attachment-preview/plan.md- Existing source resolution in
apps/web/components/task/chat/messages/chat-message.tsx
Output contract
Report the final source-resolution behavior, files changed, exact test and typecheck results, any mobile verification limitation, and synchronized task and plan status.
Results
- RED:
rtk pnpm exec vitest run components/task/chat/queued-ghost-message.test.tsxfromapps/webfailed as expected with 2 failures: staged descriptors becamedata:image/png;base64,undefined, and source-less images rendered a preview trigger. - GREEN:
rtk pnpm --filter @kandev/web test -- --run components/task/chat/queued-ghost-message.test.tsxfromappspassed with 44 tests. - Typecheck:
rtk pnpm run typecheckfromapps/webpassed. - Backend authorization regression:
rtk go test -v ./internal/task/service -run 'TestAttachment(OpenClaimedAllowsAuthorizedTaskReader|OpenClaimedAuthorizesByBinding|OpenReturnsBytesAndScopes)' -count=1passed, 3 tests. - Formatting:
rtk git diff --checkpassed. - Mobile verification: no new Playwright test was needed because the repair
only changes attachment source resolution inside the existing row; the
existing
mobile-message-queue-management.spec.tsremains the relevant mobile surface. - Cleanup: no temporary diagnostic or capture artifacts were created.