nexus/.planning/STATE.md
2026-04-02 15:08:50 +00:00

4.8 KiB

gsd_state_version milestone milestone_name status stopped_at last_updated last_activity progress
1.0 v1.3 milestone executing Completed 21-chat-foundation-21-05-PLAN.md 2026-04-01T17:00:47.388Z 2026-04-01
total_phases completed_phases total_plans completed_plans percent
6 1 6 6 0

Project State

Project Reference

See: .planning/PROJECT.md (updated 2026-03-30)

Core value: Fresh onboard asks for ONE thing (root directory), auto-creates PM + Engineer, drops you in dashboard — no corporate language anywhere. Current focus: Phase 21 — chat-foundation

Current Position

Phase: 21 (chat-foundation) — EXECUTING Plan: 6 of 6 Status: Ready to execute Last activity: 2026-04-01

Progress: [░░░░░░░░░░] 0%

Upstream Rebase Log

Date Commits Behind Conflicts Build Notes
2026-04-01 0 0 OK Already rebased from 120+ commits session; upstream hasn't moved

Performance Metrics

Velocity:

  • Total plans completed: 0
  • Average duration: -
  • Total execution time: 0 hours

By Phase:

Phase Plans Total Avg/Plan
- - - -

Recent Trend:

  • Last 5 plans: none yet
  • Trend: -

Updated after each plan completion | Phase 01-foundation P01 | 2 | 2 tasks | 7 files | | Phase 21-chat-foundation P02 | ~15min | 2 tasks | 5 files | | Phase 21-chat-foundation P01 | 2 | 2 tasks | 8 files | | Phase 21-chat-foundation P00 | 2 | 2 tasks | 4 files | | Phase 21-chat-foundation P04 | 4min | 2 tasks | 7 files | | Phase 21-chat-foundation P03 | 6 | 2 tasks | 6 files | | Phase 21-chat-foundation P05 | 4 | 3 tasks | 8 files |

Accumulated Context

Decisions

Decisions are logged in PROJECT.md Key Decisions table. Recent decisions affecting current work:

  • Roadmap: Company → Workspace (not Project) to avoid collision with existing Project entity
  • Roadmap: Display-only renames — all code identifiers, DB schema, routes, env vars unchanged
  • Roadmap: Branding package (packages/branding/) as single string mutation surface
  • Roadmap: Vite alias redirects OnboardingWizard import to Nexus-owned replacement (Phase 4)
  • Roadmap: ~/.nexus pointer file with read-both-paths fallback for migration safety (Phase 2)
  • [Phase 01-foundation]: Keep @paperclipai/branding package name for upstream sync compatibility
  • [Phase 01-foundation]: Use as const for VOCAB to enable TypeScript literal type inference on all values
  • [Phase 01-foundation]: Hook source tracked in scripts/nexus-commit-msg-hook.sh for post-clone reinstallation
  • [Phase 01-foundation]: rerere.autoupdate=true so resolved conflicts are auto-staged during future rebases
  • [Phase 21-chat-foundation]: Used object-syntax (table) => ({}) for Drizzle index callbacks to match existing codebase convention in documents.ts, agents.ts
  • [Phase 21-chat-foundation]: Use it.todo() (not it.skip()) for Wave 0 test scaffolding — vitest marks todos semantically, no false positives
  • [Phase 21-chat-foundation]: Minimal imports in test stubs — no service mocks until Plans 01-05 wire up implementations
  • [Phase 21-02]: Use ExtraProps from react-markdown for ChatCodeBlock type signature to satisfy ComponentType constraint
  • [Phase 21-02]: Add hljs CSS as plain rules (not @import) scoped to .dark, .theme-tokyo-night, :root selectors
  • [Phase 21-chat-foundation]: ChatPanelProvider inside PanelProvider so ChatPanel can call setPanelVisible to close PropertiesPanel
  • [Phase 21-chat-foundation]: Chat toggle button in desktop sidebar bottom controls with hidden md:inline-flex
  • [Phase 21-03]: Pitfall 3 (updatedAt bump): addMessage always updates chatConversations.updatedAt after inserting — ensures conversation list sort order stays correct
  • [Phase 21-03]: Pitfall 5 (auto-title idempotency): WHERE title IS NULL guard makes auto-title set safe to call multiple times
  • [Phase 21-03]: Missing export fix: createConversationSchema/updateConversationSchema/createMessageSchema were in validators/chat.ts but not re-exported from shared/src/index.ts
  • [Phase 21-chat-foundation]: Two-path handleSend in ChatPanel: direct chatApi for path 1 (no active conversation) avoids hook mutation needing a conversationId that does not exist yet
  • [Phase 21-chat-foundation]: messages array in useChatMessages flattened from pages and reversed so display is chronological (API returns desc by createdAt)

Pending Todos

None yet.

Blockers/Concerns

  • Phase 4: POST /api/companies required fields not fully documented — read server/src/routes/companies.ts before implementing new wizard
  • Phase 3: Exact count of test files asserting on old display strings unknown — grep audit needed as first step

Session Continuity

Last session: 2026-04-01T17:00:47.384Z Stopped at: Completed 21-chat-foundation-21-05-PLAN.md Resume file: None