Bohan Jiang
68e2a14ba2
feat(projects): add Project entity with full-stack CRUD support ( #552 )
...
Implements the Project concept as a higher-level grouping for issues.
Hierarchy: workspace → project → issue → sub-issue.
Backend:
- Migration 034: project table + issue.project_id FK
- sqlc queries for project CRUD
- Project handler with list/get/create/update/delete
- Issue handler updated to support project_id in create/update
- Routes at /api/projects, WebSocket event constants
Frontend (new monorepo structure):
- @multica/core: Project types, API client methods, queries/mutations,
status config, realtime sync
- @multica/views: Projects list page, detail page (overview + issues
tabs), project picker for issue detail panel
- apps/web: Route pages, sidebar navigation entry
All TypeScript type checks and tests pass.
2026-04-09 14:59:16 +08:00
Naiyuan Qing
f41a0cf423
feat(views): extract packages/views — shared business UI + navigation adapter
...
- Create NavigationAdapter interface (push, replace, back, pathname, searchParams)
- Create AppLink component replacing next/link in 4 files
- Replace useRouter → useNavigation in 3 files (issue-detail, create-issue, create-workspace)
- Create WebNavigationProvider wrapping Next.js useRouter/usePathname/useSearchParams
- Move ~85 feature UI files (issues, editor, modals, my-issues, skills, runtimes) to packages/views/
- Add store singleton registration pattern (registerAuthStore, registerWorkspaceStore)
- Create data-aware wrappers in packages/views/common/ (ActorAvatar, Markdown)
- Update all app-layer imports to @multica/views/*
- Add @source directive for Tailwind to scan views package
- packages/views/ has zero next/* imports
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 11:49:55 +08:00