Commit Graph
6 Commits
Author SHA1 Message Date
Rakesh Utekar 0939fd6624 fix(teams): authorize attachment reads
Require attachment reads to resolve through an actor-visible item in the requested board space. Record authoritative attachment provenance so forged comment or transition refs cannot grant blob access, while preserving legacy refs through an atomic one-time migration.

BREAKING CHANGE: BoardDialect.attachment and the /v1/board/attachment endpoint now require a board space.
2026-08-28 15:35:55 -07:00
Rakesh Utekar e826b48a90 fix(teams): enforce worker item visibility 2026-08-28 14:47:07 -07:00
Rohit C Prasad aafb4f4291 Feed model: interest follows the assignment relation; notes are pure appends
Worker delivery is now a read-time feed over its slice (assigned ∪ filed) — send-backs, comment answers, reassignments, cancels, and acceptance all arrive through one relation; per-event recipient addressing retired.
Reassignment delivers before interest ends; a new assignee replays the item's story. Detail pane gains Add a note (never changes state); external pending/consume become space-scoped feed calls.
2026-08-17 16:05:16 -07:00
Rohit C Prasad 880c7859bd Work-item image attachments: content-addressed store + attach on every front door
Blobs live in state-dir attachments/ (sha256-named); the log carries only attachment:// refs on a normal comment event.
Attach authority = comment authority; images-only allowlist with magic-byte check, 10MB cap; in-app tool + API + CLI + MCP.
2026-08-16 18:34:04 -07:00
Rohit C Prasad f10bfca9d9 Workers see the claimable pool (drill-caught)
Worker list_items was slice-only, so an unassigned external worker saw an empty board — a pull queue nobody can see.
Open+unassigned items are now visible to workers while claims are open; hidden again under lead-only.
2026-08-16 18:20:44 -07:00
Rohit C Prasad 36aa1da728 ocw CLI + team-board MCP server on stdio
ocw board/journal verbs with server auto-discovery (remote-first; direct SQLite only headless).
ocw board mcp serves the role-scoped toolset to external harnesses; 21 tests incl. both dialects over the real app.
2026-08-16 17:48:30 -07:00