Files
Claude 8923ede673 feat(projects): library tab in the project sidebar
Before: the project sidebar's Library tab was an empty placeholder, and
a project had no place to put a file that does not belong to an issue.

After: the tab lists every file the project's issues carry in two
collapsible groups with counts, Deliverables (agent uploads) and Files
(member uploads). It filters by kind, switches between list and grid
(remembered per workspace), opens a file in the full-screen deliverable
focus, jumps to its issue from the identifier chip, pages with "Load
more", and stays current when files are added or removed. "Add" uploads
to the project's "Project files" issue and comments the file card there
so it shows in that issue's timeline.

How: one query per page (projectAttachmentsOptions, keyed by workspace)
whose first page also carries both group totals, so the groups are
labelled without a second round trip; realtime invalidates the
workspace's libraries on attachment changes and on comments that add or
remove files. The category filter reuses deliverableCategory on the
loaded rows. The view mode lives in a small persisted core store. Zod
schemas default every optional field and drop a malformed row alone.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
Claude-Session: https://claude.ai/code/session_017deksZDSzZBA4QSqZZoBip
2026-10-21 07:52:19 +00:00
..