Feature Backlog
All planned work for the Sprinter Platform, organized by priority and category.
This is the single source of truth for all planned work on the Sprinter Platform. Before starting new work, agents and developers should check this backlog for priority items and existing specs.
Items flow from this backlog into scoped specs when they are ready for implementation. See the spec-first workflow for how features move from idea to code.
Total open items: ~65 across all sources. P0: 10, P1: 20, P2: 27, P3: 18.
Last audited: 2026-03-30. See documents/QA-REPORT-2026-03-30.md for browser QA report.
2026-05-01 — PR #1100 punted items
- Embed-form auth redirect (P2):
/embed/v/...form confirmation redirects to the wrong branch preview because SupabaseSITE_URLis fixed per environment. The form-flow date fix (form-flow-summary.tsx) was verified by code inspection only. Verify on production after merge — no code change needed.
2026-05-01 — Chat
Chat panel sidebar lifecycle tests (pending orphan-chat fix)
Status: Deferred — waiting on Phase 1c UX agent fix.
features/chat/components/chat-panel.tsx needs component tests covering the sidebar session lifecycle: specifically the eager-session-creation bug that caused duplicate chat entries in the sidebar. The regression was in the persistence layer (orphan chats created before the user sends a message), and the UX agent (Phase 1c) is fixing that behavior. Adding component tests before the fix lands would mean testing the broken behavior and then having to rewrite them immediately.
Action: Once the orphan-chat fix lands in dev, add component tests for chat-panel.tsx that verify:
- A new chat entry does NOT appear in the sidebar until the first message is sent
- Switching agents on an unsent chat does not create a duplicate sidebar entry
- The sidebar list reconciles correctly after the first message persists the chat
Files: features/chat/components/chat-panel.tsx, features/chat/persistence.ts
2026-04-17 — Unified tool platform follow-ups (PR #755)
PR #755 (feat: unified tool platform foundation) shipped Phases 1–8 of the unified tool platform. The full follow-up list lives in the spec at docs/superpowers/specs/2026-04-16-unified-tool-platform.md under "Follow-ups & deferred work" — IDs FU-1 through FU-13. Highlights:
- FU-1 to FU-3 — pre-merge: verify build + visual on Vercel preview; unskip the Playwright e2e once a runner is wired up
- FU-8 — wire chat route + agent runner into
getUserFacingToolSetWithTenant/resolveAgentToolsWithTenantso tenant_custom tools become callable from chat (otherwise authoring a tool doesn't actually surface it to agents) - FU-9 — reconcile
content/docs/features/tool-system.mdx(legacy 667 lines preserved below the new section) - FU-4 / FU-5 —
[slug]/testand[slug]/versionsAPI routes (currently runToolPreview server action covers preview) - Phase Roadmap — MCP caching, webhook execution, extension UI, AI sandbox, defer_loading, FieldDefinition adoption in entity_types/criteria_sets, Fields-as-table — each is a separate spec when prioritized
2026-03-30 Production QA Audit
Browser QA testing of app.sprinter.ai plus code-based design system audit. Key findings and fixes:
Fixed in this audit
| ID | Description | Fix |
|---|---|---|
| QA-1 | Custom tools tenant scoping -- IMS + OCI tools showing on all tenants | Added tenantSlugs field to ToolDefinition, filtering in getAvailableToolMeta(), getAvailableTool(), and getUserFacingToolSet() |
| QA-2 | Audit log 403 for admins -- requirePermission("audit_logs.team.read") failing due to stale user_permissions table | Switched to requireAdmin() which checks role directly (item 2.11) |
| QA-3 | Tenant logo proxy 502 -- Upstream fetch failures returning hard 502 on every page load | Added timeout + graceful 204 fallback instead of error response |
| QA-4 | Hardcoded Tailwind colors -- text-emerald-600, text-amber-600, text-blue-600 in schema-check components | Replaced with text-status-success, text-status-warning, text-primary |
Remaining P2 findings (not blocking)
| Finding | Description | Severity |
|---|---|---|
| Quick Wins empty | Dashboard + Insights "Quick Wins" panel shows empty with no explanation | P2 |
| Tab truncation mobile | View switcher tabs clipped on 375px viewport (Opportunity list, Admin) | P2 |
| Inbox overflow | Long conversation preview text overflows card boundary | P2 |
| Chat prompt overflow | Suggested prompt buttons clipped on mobile viewport | P2 |
| Components >200 lines | 15+ components exceed 200-line limit (chart-block-renderers 608, schema-config-fields 442, etc.) | P2 |
2026-03-30 Audit Refresh
This refresh uses current origin/dev (5cd134a6) plus the dedicated cleanup worktree branch tech-debt-pass-5, and it focuses on the places where recent exploratory work still leaves unnecessary bug surface.
What changed in the audit
- The March 27 pass successfully reduced tool-layer drift, but current
devstill has route/service gaps where writes bypass shared enforcement. - Recent churn is now concentrated in record detail, views/blocks, chat APIs, import/ingestion flows, and oversized admin/entity modules.
- The highest-value cleanup for this pass is to tighten route auth, collapse direct write paths onto shared entity services, and remove hidden ownership assumptions from chat APIs.
Current priority queue after the audit
| ID | Priority | Status | Description | Why it matters |
|---|---|---|---|---|
| TD5-1 | P0 | COMPLETED | CSV import route bypasses explicit auth/permission checks | POST /api/entities/import now fails closed through route-level RBAC before any write path runs |
| TD5-2 | P1 | COMPLETED | CSV import bypasses shared entity services and tenant entity-type resolution | Import now reuses keyed entity creation, preserving shared side effects and tenant-scoped resolution |
| TD5-3 | P1 | COMPLETED | Chat REST endpoints rely on downstream auth/ownership instead of explicit route/service checks | Chat routes now require auth explicitly and reuse shared owned-chat verification helpers |
| TD5-4 | P2 | COMPLETED | Inbound email routing still depends on an O(n) membership scan as a self-heal fallback | Signed addresses now resolve directly; legacy hash-only addresses use lookup rows or one-shot backfill |
| TD5-5 | P2 | IN PROGRESS | Oversized, high-churn modules remain concentrated in views/entities/responses/admin tooling | Inbox conversation shaping is now extracted, but broader views/entities/responses/admin decomposition remains |
2026-03-27 Audit Refresh
This audit used current origin/dev (220de12a) plus a dedicated cleanup worktree (tech-debt-pass-4) to re-rank platform debt against the North Star and recent churn.
What changed in the audit
- Recent churn is concentrated in
features/entities,features/blocks,features/views,app/api,features/tools, andfeatures/agents. - Several historical auth items in this file are already fixed on current
devand should no longer drive priority by themselves:1.4,1.5,1.7,1.12, and1.13. - The most immediate active risk found on current
devwas tool-layer tenant scoping drift in admin-client record access. That was fixed intech-debt-pass-4along with shared-service consolidation for entity tools.
Current priority queue after the audit
| ID | Priority | Status | Description | Why it matters |
|---|---|---|---|---|
| TD4-1 | P0 | COMPLETED (2026-03-27) | Tool-layer tenant scoping gaps -- entity, response, and tool-run reads/writes were not consistently tenant-scoped when using admin clients | High-risk cross-tenant bug surface in agent-facing tooling |
| TD4-2 | P1 | COMPLETED (2026-03-27) | Entity tool CRUD drift -- entity tools duplicated mutation logic instead of reusing shared keyed entity services | Duplicate write paths had already drifted from platform rules |
| TD4-3 | P1 | PARTIAL | Record detail north-star drift -- record detail still mixes schema-first detail UX with exploratory workspace-view customization | The client no longer recomputes custom-detail view selection; server selection and block resolution now flow through one unified state object, but the optional workspace editor/custom-view surface still exists by product choice |
| TD4-4 | P1 | PARTIAL | Legacy extraction surface area -- deprecated extraction routes/types/actions remain live beside workflow + responses | Workflow routes now have API-key parity and the deprecated extraction trigger/history/rerun wrappers are gone, but extraction audit/result compatibility endpoints and legacy extraction tables still exist |
| TD4-5 | P1 | PARTIAL | View/block compatibility layers -- deprecated resolvers and migration shims still carry a large part of the presentation stack | Legacy field-card/stat-card config is canonicalized on parse/write, entity-single resolution is fully collapsed into resolveView(), the old resolve.ts helper is now an internal resolveServerBlocks() path, and list pages no longer mutate the DB to materialize legacy dashboards; the remaining debt is mostly historical schema/config compatibility code and old docs/plans |
| TD4-6 | P2 | PARTIAL | Verification baseline drift -- local typecheck relied on generated .source/ output and had a localized graph hook test typing regression | Makes cleanup work harder to verify; graph test fixed in this pass |
P0 -- Blocking / Security
These items block production readiness or represent security vulnerabilities. They should be addressed before any P1+ feature work.
Security and Auth Hardening
| ID | Description | Status | Source |
|---|---|---|---|
| 1.1 | Fix build: auth.ts "use server" exports class -- AuthenticationError/AuthorizationError class exports violate Next.js "use server" constraint, breaking build with 40+ errors | FIXED (uses plain Error objects now) | Codebase review |
| 1.2 | Harden agent/tool authorization -- Code-defined agents, delegation, workflow, heartbeat can execute tools without permission filters | FIXED (audit 2026-03-30) | TECH_DEBT TD-001 |
| 1.3 | Lock down tenant member mutation routes -- POST/PATCH/DELETE on members without requireAdmin() | FIXED (audit 2026-03-30) | TECH_DEBT TD-002 |
| 1.4 | Lock down webhook CRUD and redact secrets -- No auth gate, secrets returned in responses | FIXED (audit 2026-03-30) | TECH_DEBT TD-003 |
| 1.5 | Lock down API key routes and redact sensitive data -- No admin guard, key_hash exposed | FIXED (audit 2026-03-30) | TECH_DEBT TD-004 |
| 1.6 | Fix notification tenant isolation -- Reads/updates by user_id only, no tenant scoping | FIXED (audit 2026-03-30) | TECH_DEBT TD-006 |
| 1.7 | Auth blind spots on agent/model routes -- Manual run, rollback, models routes lack explicit auth | FIXED (GET /api/agents now requires auth; admin=true requires requireAdmin) | TECH_DEBT TD-007 |
| 1.8 | Tenant scoping on single-record entity/view reads -- Missing explicit tenant filters | FIXED (audit 2026-03-30) | TECH_DEBT TD-008 |
| 1.12 | Skills route auth -- Add requireAdmin() to skills POST/PATCH/DELETE | FIXED (audit 2026-03-30) | RBAC Plan |
| 1.14 | Fix deleteUserMemory scope -- Add user_id check | FIXED (audit 2026-03-30) | RBAC Plan |
Config and Data (OCI)
| ID | Description | Status | Source |
|---|---|---|---|
| 6.1 | OCI tenant setup -- Create tenant, configure branding, invite members | NOT STARTED | New |
P1 -- High Value
These items deliver significant value to users or enable important capabilities.
Security and Auth (P1)
| ID | Description | Status | Source |
|---|---|---|---|
| 1.9 | Viewer role enforcement -- Viewers can write via RLS (membership-only check) | NOT STARTED | BACKLOG T007 |
| 1.10 | Guest role as default signup -- New guest role with viewer permissions, replace member as default | NOT STARTED | RBAC Plan |
| 1.11 | Admin Roles and Permissions page -- Permission matrix UI (roles x permissions), toggle editing | NOT STARTED | RBAC Plan |
| 1.13 | Fix getViewById -- .single() to .maybeSingle() | FIXED (uses .maybeSingle() in getTenantView) | RBAC Plan |
Architecture and Code Quality (P1)
| ID | Description | Status | Source |
|---|---|---|---|
| 2.1 | Shared API route wrapper -- 40+ routes repeat auth + Zod + error handling boilerplate | PARTIAL | TECH_DEBT TD-041 |
| 2.2 | Unified agent execution runtime -- Chat, inbox, heartbeat, workflows, extraction duplicate model/tool execution | NOT STARTED | TECH_DEBT TD-042 |
| 2.3 | Entity/relation mutation orchestration -- Writes/activity scattered across routes, actions, tools, imports | PARTIAL | TECH_DEBT TD-043 |
| 2.4 | Platform/custom boundary violations -- Platform modules import features/custom/* directly | NOT STARTED | TECH_DEBT TD-009 |
| 2.5 | Fail-open permission in tool execution -- No permissions = no enforcement | FIXED (executeTool now fails closed) | TECH_DEBT TD-010 |
| 2.9 | Remove risky default-tenant fallback -- Silent fallback to default tenant on errors | NOT STARTED | TECH_DEBT TD-014 |
| 2.11 | Enforce audit permissions -- Audit routes do not use RBAC | FIXED (2026-03-30, uses requireAdmin) | TECH_DEBT TD-016 |
| 2.18 | Fix view CRUD scoping and test coverage -- Important but lightly tested | NOT STARTED | TECH_DEBT TD-024 |
| 2.19 | Remove global entity type assumptions -- Platform code restricts to tenant_id IS NULL | NOT STARTED | TECH_DEBT TD-025 |
Features (P1)
| ID | Description | Status | Source |
|---|---|---|---|
| 4.1 | Entity embeddings and hybrid search -- pgvector, HNSW index, embedding generation, hybrid RRF search | PARTIAL (column exists) | BACKLOG T020 |
UI Polish (P1)
| ID | Description | Status | Source |
|---|---|---|---|
| 3.2 | Agent version tracking fix -- updateAgent() never calls createVersion() | NOT STARTED | Admin Cleanup Plan |
| 3.5 | Radix Select empty value audit -- agent-dialog model select, entity-form dynamic selects | PARTIAL | POLISH-PLAN |
| 3.7 | Raw UUIDs in Activity entries -- Some activity entries show raw UUIDs in user-facing text. Resolve to display names. | FIXED (QA Sprint) | QA Audit 2026-03-30 |
| 3.8 | Empty views showing "Empty canvas" -- 5 named views show empty canvases. Either populate with blocks or remove from views list. | NOT STARTED | QA Audit 2026-03-30 |
| 3.9 | Activity copy uses internal jargon -- "Linked entities (uses)" should be "Connected records". "blocks" should be "components". | FIXED (QA Sprint) | QA Audit 2026-03-30 |
Config and Data (P1)
| ID | Description | Status | Source |
|---|---|---|---|
| 6.2 | Entity type optimization -- Review/tune opportunity fields, scoring weights, extraction instructions | NOT STARTED | New |
| 6.3 | Seed more opportunity data -- Enrich existing entities, extract from documents | NOT STARTED | New |
| 6.4 | Agent prompt tuning -- Customize default agent prompts for PE consulting context | NOT STARTED | New |
| 6.5 | View configuration -- Create useful saved views (pipeline by stage, high-score, recent activity) | NOT STARTED | New |
| 6.6 | Dashboard customization -- Tune dashboard KPIs and charts for PE workflow | NOT STARTED | New |
Plans with Remaining Tasks (P1)
| ID | Plan | Tasks Remaining | Status | Source |
|---|---|---|---|---|
| 7.1 | RBAC Admin and Guest Role | 12 tasks (all) | NOT STARTED | docs/superpowers/plans/2026-03-19-rbac-admin-and-guest-role.md |
| 7.2 | Agent version tracking fix | Tasks 1-2 from admin cleanup | NOT STARTED | docs/superpowers/plans/2026-03-18-admin-cleanup.md |
P2 -- Quality
These items improve code quality, developer experience, or system reliability.
Architecture and Code Quality (P2)
| ID | Description | Status | Source |
|---|---|---|---|
| 2.6 | Persist rich AI SDK message parts -- Autonomous paths flatten tool traces to text | NOT STARTED | TECH_DEBT TD-011 |
| 2.7 | Fix unread-count semantics in chat -- Self-authored messages count as unread | NOT STARTED | TECH_DEBT TD-012 |
| 2.8 | Clarify workflow retry semantics -- Implicit node status changes | NOT STARTED | TECH_DEBT TD-013 |
| 2.10 | Normalize API key scope semantics -- Canonical scopes do not match UI choices | NOT STARTED | TECH_DEBT TD-015 |
| 2.12 | Fix webhooks secret lifecycle -- No rotation, delivery not fully logged | NOT STARTED | TECH_DEBT TD-017 |
| 2.13 | Consolidate memory data access -- Different access paths, admin client leaks | NOT STARTED | TECH_DEBT TD-018 |
| 2.14 | Finish shared-context runtime -- LESSONS/ROUTING exist but not loaded into prompts | NOT STARTED | TECH_DEBT TD-019 |
| 2.15 | Fix skills admin/edit behavior -- Disabled skills vanish, metadata.tools mishandled | NOT STARTED | TECH_DEBT TD-020 |
| 2.16 | Fix realtime presence math -- Multi-tab dedup, typing logic duplication | NOT STARTED | TECH_DEBT TD-021 |
| 2.17 | Remove business logic from route layer -- Entity/relation/extraction routes mix concerns | NOT STARTED | TECH_DEBT TD-022 |
| 2.20 | Unify navigation metadata -- Labels/icons/routes in 4+ places | NOT STARTED | TECH_DEBT TD-032 |
| 2.21 | Consolidate document UI -- 4 document list components duplicate logic | NOT STARTED | TECH_DEBT TD-035 |
| 2.23 | Raise route and interaction test depth | NOT STARTED | TECH_DEBT TD-038 |
| 2.24 | Clean up model metadata ownership -- Multiple truth sources | NOT STARTED | TECH_DEBT TD-039 |
| 2.25 | Add stronger service-role guardrails | NOT STARTED | TECH_DEBT TD-040 |
| 2.26 | Scale cost reporting -- 10k-row cap, overlapping APIs | NOT STARTED | TECH_DEBT TD-026 |
| 2.27 | Documents robustness -- No overlap >= chunkSize guard, naive CSV preview | NOT STARTED | TECH_DEBT TD-027 |
| 2.28 | Stop bypassing shared AI abstractions in documents | NOT STARTED | TECH_DEBT TD-028 |
| 2.29 | Improve MCP fidelity -- Discards input schemas, no health tracking | NOT STARTED | TECH_DEBT TD-030 |
Features (P2)
| ID | Description | Status | Source |
|---|---|---|---|
| 4.2 | Tool permissions system -- tool_permission_rules table, isToolAllowedForUser() | NOT STARTED | PLATFORM-BACKLOG 4.4 |
| 4.3 | Extraction results SQL dedup -- Switch to DISTINCT ON via RPC | NOT STARTED | BACKLOG T016 |
| 4.4 | Entity creation from documents -- Upload PDF, extraction agents create entities | NOT STARTED | STATUS |
| 4.7 | Langfuse integration -- LLM observability (Phase 2 of cost tracking) | DEFERRED | PLATFORM-BACKLOG |
UI Polish (P2)
| ID | Description | Status | Source |
|---|---|---|---|
| 3.1 | IconPicker component -- Shared visual icon grid replacing text selects | NOT STARTED | Admin Cleanup Plan |
| 3.3 | Responsive fixes -- notification-bell, tag-input popover, entity detail tablet, ViewEditor mobile | NOT STARTED | BACKLOG T011 |
| 3.10 | Graph auto-fit and node visibility -- Graph nodes are tiny dots at default zoom. Auto-fit to viewport or increase default zoom. | FIXED (QA Sprint) | Design Review 2026-03-30 |
| 3.11 | Dashboard green banner violates design system -- Transformation Snapshot card uses saturated green. Use navy primary or neutral. | FIXED (QA Sprint) | Design Review 2026-03-30 |
| 3.12 | Hide empty activity stats on Feed -- When all values are zero, hide the stats grid. | FIXED (QA Sprint) | Design Review 2026-03-30 |
| 3.13 | Admin nav visible to non-admin users -- Admin items should be hidden from sidebar for users without admin role. | NOT STARTED | Design Review 2026-03-30 |
Venture Factory (P2, Deferred)
| ID | Description | Status | Source |
|---|---|---|---|
| 5.1 | Venture templates -- Export/import tenant configurations | DEFERRED | PLATFORM-BACKLOG 5.1 |
| 5.2 | Portfolio dashboard -- Cross-tenant metrics for system_admin | DEFERRED | PLATFORM-BACKLOG 5.2 |
| 5.3 | Governance/approvals -- Approval gates for high-impact agent actions | DEFERRED | PLATFORM-BACKLOG 5.3 |
P3 -- Nice to Have
| ID | Description | Status | Source |
|---|---|---|---|
| 2.22 | Share auth page form logic -- Login/signup/reset repeat validation | NOT STARTED | TECH_DEBT TD-037 |
| 2.30 | Improve shared error handling UX -- Mixed ErrorCard + bespoke pages | NOT STARTED | TECH_DEBT TD-036 |
| 3.4 | RTE polish -- Link toolbar, mode indicator, toolbar overflow, editor min-height | NOT STARTED | BACKLOG T012 |
| 3.6 | Console.log cleanup -- 16 console statements in features, wrap with DEBUG flag | NOT STARTED | Codebase review |
| 4.5 | Document page tagging -- Tag pages with entity refs, categories, sections | NOT STARTED | STATUS |
| 4.6 | Document thumbnail generation -- PDF page thumbnails via pdfjs-dist | NOT STARTED | STATUS |
| 4.8 | Subdomain-based tenant routing -- Alternative to path-based /t/[slug] | DEFERRED | STATUS |
| 5.4 | A2A protocol support -- Full agent-to-agent protocol | PARTIAL (adapter exists) | PLATFORM-BACKLOG 5.4 |
Cross-References
These documents contain additional context for backlog items:
- TECH_DEBT_BACKLOG.md -- 40 items (4 archived in pass-3, 7 in next batch, 8 P0, 8 P1, 13 P2)
- BACKLOG.md -- 10 open items (2 active sprint verification, 3 next-up, 5 platform features)
- PLATFORM-BACKLOG.md -- Tier 1-4 complete; Tier 5 deferred; entity workflow orchestration done
- POLISH-PLAN.md -- 7 sections (error boundaries done, loading states done, empty states done, responsive partial, RTE partial, Radix partial, console partial)
- STATUS.md -- Last updated 2026-03-16, needs refresh
Scoped Specs
These features have been scoped into full design specs ready for implementation.
Active Specs
| Spec | Priority | Status | Target Doc |
|---|---|---|---|
| Entity Card System | P1 | approved | /docs/features/entity-system |
| Feed v2 | P1 | approved | /docs/features/feed |
| Entity Graph Overhaul | P1 | approved | /docs/features/entity-system |
| Entity Sharing System | P1 | approved | /docs/features/entity-system |
| View and Block System v2 | P1 | approved | /docs/features/views |
Legacy Specs
These design documents were written before the spec-first workflow was established. They live in docs/superpowers/specs/ and contain useful architectural context, but do not follow the current frontmatter format.
| File | Topic | Date |
|---|---|---|
2026-03-17-auth-permissions-design.md | Auth and permissions system design | 2026-03-17 |
2026-03-17-agent-orchestration-engine-design.md | Agent orchestration engine | 2026-03-17 |
2026-03-18-datatable-design.md | DataTable component design | 2026-03-18 |
2026-03-18-datatable-v2-design.md | DataTable v2 redesign | 2026-03-18 |
2026-03-18-chat-redesign-design.md | Chat system redesign | 2026-03-18 |
2026-03-18-external-agents-design.md | External agents integration | 2026-03-18 |
2026-03-18-realtime-entity-fix-design.md | Realtime entity fix | 2026-03-18 |
2026-03-18-realtime-presence-messaging-design.md | Realtime presence and messaging | 2026-03-18 |
2026-03-18-models-admin-enhancement-design.md | Models admin enhancements | 2026-03-18 |
2026-03-19-chat-dock-design.md | Chat dock panel design | 2026-03-19 |