How vizzaq23/sunny-hq works
Sunny HQ is a local Electron/React AI workspace for organizing projects, starting Codex missions, following conversations and tool activity, and reviewing or saving results. The main user path runs from the Home/crew interface through mission and task views to desktop IPC-backed services, then returns saved status and results for review. Other documented branches include project tools and history import, the local developer crew, and recovery/persistence. Some service wiring is unsampled, so only documented or indexed relationships are drawn; uncertain links are omitted.
Main entry points: App.tsx App shell · main.cjs Electron main · MissionBoard.tsx Mission board · fragment-store.cjs Fragment store
Components 29
Workspace UI
- Renderer entry
src/main.tsx - App shell
src/App.tsx - Navigation chrome
src/components/Chrome.tsx - Home and crew
src/views/DashboardViews.tsx - Crew island
src/views/IslandView.tsx - Crew journal
src/components/CrewJournal.tsx - Deck crew
src/components/DeckCrew.tsx
Workflows
- Crew catalog
src/data.ts - Mission board
src/views/MissionBoard.tsx - Workbench
src/views/Workbench.tsx - Task workflow
src/taskFlow.ts - Mission projection
src/missionProjection.ts - Draft state
src/useDraft.ts - Transcript state
src/transcriptState.ts - Transcript hook
src/useTaskTranscript.ts - Work context
src/workContext.ts - Domain types
src/shared.ts
Desktop services
- Electron main
desktop/main.cjs - Workspace core
desktop/core.cjs - Local crew services
desktop/local-crew.cjs - Codex integration
desktop/codex.cjs - Project tools
desktop/catalog.cjs - History import
desktop/import.cjs
Persistence
- Fragment store
desktop/fragment-store.cjs - Mission profile
desktop/mission-profile.cjs - Profile snapshot
desktop/profile-snapshot.cjs - SQLite persistence
desktop/copied-database.cjs - Local app data
Other components
- User
Connections 30
- User → Renderer entry: opens workspace
README.md - Renderer entry → App shell: mounts
src/main.tsx - App shell → Task workflow: derives work status
src/App.tsx - App shell → Home and crew: shows workspace views
src/App.tsx - App shell → Mission board: shows mission view
src/App.tsx - App shell → Workbench: shows workbench
src/App.tsx - App shell → Navigation chrome: renders navigation
src/App.tsx - Home and crew → Crew catalog: uses crew catalog
src/views/DashboardViews.tsx - Home and crew → Crew journal: renders journal
src/views/DashboardViews.tsx - Crew island → Deck crew: renders crew
src/views/IslandView.tsx - Crew journal → Crew catalog: uses crew catalog
src/components/CrewJournal.tsx - Mission board → Draft state: uses drafts
src/views/MissionBoard.tsx - Mission board → Work context: checks result state
src/views/MissionBoard.tsx - Task workflow → Mission projection: projects mission state
src/taskFlow.ts - Workbench → Transcript hook: shows conversation
src/views/Workbench.tsx - Transcript hook → Transcript state: loads transcript state
src/useTaskTranscript.ts - Mission board → Domain types: uses domain types
src/views/MissionBoard.tsx - App shell → Electron main: requests desktop operations
- Electron main → Workspace core: loads workspace core
desktop/main.cjs - Electron main → Local crew services: dispatches crew requests
desktop/main.cjs - Electron main → Codex integration: starts Codex missions
README.md - Electron main → Project tools: provides project tools
README.md - Electron main → History import: imports conversations
README.md - Workspace core → Fragment store: uses fragment store
desktop/core.cjs - Fragment store → Profile snapshot: references snapshots
desktop/fragment-store.cjs - Fragment store → Mission profile: references profiles
desktop/fragment-store.cjs - SQLite persistence → Fragment store: references store
desktop/copied-database.cjs - SQLite persistence → Mission profile: references profiles
desktop/copied-database.cjs - Workspace core → Local app data: persists workspace data
README.md - Mission profile → Local app data: stores mission state
README.md