Show unanswered decision counts on Projects sidebar rows #378Mergedlavaman131merged 9 commits intomainfromrefs/pull/378/headConversationFiles changed54 files changed+4677-161StackedSplitAGENTS.md+2 −1apps/server/src/channels/routes.test.ts+96 −0apps/server/src/channels/routes.ts+16 −8apps/server/src/chat/incoming.ts+13 −4apps/server/src/main.ts+240 −64apps/server/src/plan/decision-counts.test.ts+329 −0apps/server/src/plan/service.ts+125 −2apps/server/src/questions-service-durability-1.test.ts+4 −1apps/server/src/questions/unanswered.test-fixtures.ts+97 −0apps/server/src/questions/unanswered.test.ts+23 −0apps/server/src/questions/unanswered.ts+36 −0apps/server/src/socket/admission.ts+37 −4apps/server/src/socket/decision-watch.test.ts+313 −0apps/server/src/socket/decision-watch.ts+218 −0apps/server/src/storage/contract.ts+128 −0apps/server/src/storage/memory/adapter.ts+41 −9apps/server/src/storage/model.ts+12 −1apps/server/src/storage/port.ts+8 −0apps/server/src/storage/postgres/adapter.test.ts+72 −0apps/server/src/storage/postgres/adapter.ts+77 −6apps/server/src/storage/postgres/migrations.ts+7 −0apps/server/src/storage/postgres/migrations/017_unanswered_decisions.sql+3 −0apps/server/src/storage/postgres/migrations/017_unanswered_decisions.ts+69 −0apps/server/src/storage/postgres/research.ts+8 −1apps/server/src/wire.ts+36 −3apps/web/src/api.ts+8 −2apps/web/src/decision-view-control.tsx+20 −0apps/web/src/document-actions.tsx+165 −4apps/web/src/navigation-shell.tsx+46 −2apps/web/src/navigation.css+65 −4apps/web/src/project-sidebar.tsx+35 −1apps/web/src/room-workspace.tsx+2 −12apps/web/src/sidebar-decision-counts.test.ts+468 −0apps/web/src/sidebar-decision-counts.tsx+67 −0apps/web/src/sidebar-decision-plan.ts+55 −0apps/web/src/sidebar-decision-watch.test.ts+232 −0apps/web/src/sidebar-decision-watch.ts+214 −0apps/web/src/use-project-documents.ts+101 −4apps/web/src/use-sidebar-decisions.ts+134 −0apps/web/src/wire.ts+5 −4docs/authentication.md+4 −1docs/channels.md+62 −1docs/storage.md+7 −1e2e/database.ts+25 −3e2e/document-creation.e2e.ts+6 −1e2e/document-navigation.e2e.ts+9 −6e2e/github.ts+3 −1e2e/hosted.e2e.ts+5 −2e2e/playwright.config.ts+2 −0e2e/shell.e2e.ts+3 −1e2e/sidebar-decision-counts.e2e.ts+822 −0e2e/smoke.e2e.ts+3 −1packages/protocol/index.d.ts+96 −3scripts/design-contract/exceptions/dynamic-web.json+3 −3