62 lines
2.3 KiB
Markdown
62 lines
2.3 KiB
Markdown
|
|
---
|
||
|
|
kind: epic
|
||
|
|
slug: shipping-the-shell
|
||
|
|
title: Shipping the shell — wire stubs to real data, fix repo guardrails
|
||
|
|
plan_slug: daily-driver-finish
|
||
|
|
status: in_progress
|
||
|
|
priority: P0
|
||
|
|
tenant_id: global
|
||
|
|
cursor_epic_id: null
|
||
|
|
updated_at: "2026-06-01"
|
||
|
|
---
|
||
|
|
|
||
|
|
# Epic objective
|
||
|
|
|
||
|
|
Every page in `apps/web/app/(app)/[workspaceSlug]/` should serve real data from the existing tRPC routers, and `pnpm lint && pnpm type-check` should pass from a clean clone. Today both are partially broken (hardcoded mocks on the home page, `setTimeout` on the AI page, `next lint` interactive prompt, Node-API leak in shared).
|
||
|
|
|
||
|
|
## In scope / out of scope
|
||
|
|
|
||
|
|
**In scope**
|
||
|
|
|
||
|
|
- Wire `[workspaceSlug]/page.tsx` to tRPC.
|
||
|
|
- Wire `[workspaceSlug]/ai/page.tsx` to `routers/ai.ts` + `packages/ai`.
|
||
|
|
- Decide and implement the post-sign-in landing route.
|
||
|
|
- Smoke-test the collab editor against the deployed Hocuspocus instance.
|
||
|
|
- Fix `pnpm lint` (Next 16 ESLint CLI migration).
|
||
|
|
- Fix `pnpm type-check` (`@tasks/shared/utils/id.ts` Node API leak).
|
||
|
|
|
||
|
|
**Out of scope**
|
||
|
|
|
||
|
|
- New feature work. This epic is *finishing*, not extending.
|
||
|
|
|
||
|
|
## Related tasks
|
||
|
|
|
||
|
|
| Task | Link |
|
||
|
|
|------|------|
|
||
|
|
| Fix lint + shared types | `./Task-fix-lint-and-shared-types.md` |
|
||
|
|
| Wire workspace home dashboard | `./Task-wire-workspace-home-dashboard.md` |
|
||
|
|
| Wire AI chat to tRPC | `./Task-wire-ai-chat-to-trpc.md` |
|
||
|
|
| Pick workspace landing route | `./Task-pick-workspace-landing-route.md` |
|
||
|
|
| Smoke-test collab editor | `./Task-smoke-test-collab-editor.md` |
|
||
|
|
|
||
|
|
## Dependencies
|
||
|
|
|
||
|
|
- Depends on: nothing. Auth + workspace provisioning landed in `875b1cf`.
|
||
|
|
- Blocks: `Plan-multitenant-saas-hardening` (don't harden surfaces that are still stubs).
|
||
|
|
|
||
|
|
## Acceptance criteria
|
||
|
|
|
||
|
|
- [ ] `pnpm lint && pnpm type-check` exits 0 from a clean clone.
|
||
|
|
- [ ] No hardcoded mock data in any `(app)/[workspaceSlug]/*` page.
|
||
|
|
- [ ] AI chat page sends and receives messages through `routers/ai.ts`.
|
||
|
|
- [ ] Post-sign-in lands a user on a page that shows real state.
|
||
|
|
- [ ] Two browsers editing the same TipTap doc on the deployed Hocuspocus instance stay in sync for at least one full edit session.
|
||
|
|
|
||
|
|
## Proposed timeline
|
||
|
|
|
||
|
|
| Phase | Window | Notes |
|
||
|
|
|-------|--------|-------|
|
||
|
|
| Repo green | Day 1 | Lint + shared types fix |
|
||
|
|
| Stubs to data | Day 2 | Home + AI + landing route |
|
||
|
|
| Collab verify | Day 3 | Cross-browser smoke test |
|