ZacharyZhang-NY
058cc0dc55
feat(02-01): implement connector-matching heuristic and DB schema extensions
...
- Create connector-matching.ts with matchConnector, inferTaskType, getConnectorStrengths
- Add TASK_TYPE_PREFERENCE mapping task types to ordered connector lists
- Add ROLE_DEPARTMENT_HINTS mapping departments to task types
- Add CONNECTOR_STRENGTHS with human-readable capability descriptions
- Add TaskType to shared/types.ts
- Add task_type, retry_count, last_failure_at columns to tasks table
- Add getTaskRetryCount, incrementTaskRetryCount, resetTaskRetryCount, setTaskType to AppDatabase
- All 34 unit tests pass
2026-03-22 03:43:30 -04:00
ZacharyZhang-NY
d09b7445e5
test(02-01): add failing tests for connector-matching heuristic
...
- 24 test cases covering matchConnector, inferTaskType, getConnectorStrengths
- Tests for preference mapping, fallback behavior, edge cases
- TDD RED phase: module does not exist yet
2026-03-22 03:41:41 -04:00
ZacharyZhang-NY
81965a697d
refactor(01-05): decompose hiring.tsx (321 lines) into 2 focused sub-components
...
- Extract hiring-helpers.ts (36 lines): HiringStage type, HiringCandidate interface, getHiringStage, stageColor, STAGE_ORDER
- HiringPipeline.tsx (293 lines): main hiring pipeline component
- hiring.tsx becomes re-export barrel (2 lines)
- All sub-components under 300 lines
2026-03-22 02:57:43 -04:00
ZacharyZhang-NY
d2ed17a81b
refactor(01-06): decompose inbox.tsx into focused sub-components
...
- inbox.tsx (489 lines) -> 4 files: Inbox, StandupView, PerformanceView, inbox-helpers
- All sub-component files under 300 lines
- Backward-compatible re-export barrel preserves all 3 named exports (Inbox, StandupView, PerformanceView)
- App.tsx imports unchanged and resolving correctly
2026-03-22 02:56:42 -04:00
ZacharyZhang-NY
36b0d39102
refactor(01-05): decompose CompanyOnboarding.tsx (686 lines) into 8 focused sub-components
...
- Extract ConnectorReadiness.tsx (84 lines): connector status display
- Extract CompanyStep.tsx (158 lines): company name, connector, workspace setup
- Extract MissionStep.tsx (97 lines): goal title and description panel
- Extract LaunchStep.tsx (91 lines): launch summary grid
- Extract ClaudeSettingsDialog.tsx (85 lines): Claude Code settings modal
- Extract LanguageStep.tsx (76 lines): language selection step
- Extract OnboardingHero.tsx (97 lines): left hero panel with step indicators
- OnboardingWizard.tsx (287 lines): main orchestrator with state and handlers
- CompanyOnboarding.tsx becomes re-export barrel (2 lines)
- All sub-components under 300 lines
2026-03-22 02:55:42 -04:00
ZacharyZhang-NY
93e599befd
refactor(01-06): decompose social.tsx and runs.tsx into focused sub-components
...
- social.tsx (541 lines) -> 5 files: SocialPanel, AccountCard, AddAccountDialog, ActionHistory, social-config
- runs.tsx (506 lines) -> 4 files: RunCenter, RunQueue, RunDetail, run-helpers
- All sub-component files under 300 lines
- Backward-compatible re-export barrels preserve existing App.tsx imports
2026-03-22 02:54:02 -04:00
ZacharyZhang-NY
d77486504d
feat(01-04): add TanStack Virtual list virtualization and keyboard navigation hook
...
- Install @tanstack/react-virtual for virtualized list rendering
- Create useRovingTabIndex hook in src/renderer/lib/keyboard.ts for arrow-key navigation
- Add virtualization to 6 lists: TaskQueue, ApprovalList, ActivityList, CostList, AgentRoster, MessageList
- MessageList uses measureElement for variable-height message items with auto-scroll
- All 6 lists have role="listbox" with role="option" on rows for accessibility
- All 6 lists support ArrowDown/ArrowUp/j/k/Home/End keyboard navigation
- Add 8 unit tests for useRovingTabIndex covering all key bindings and edge cases
2026-03-22 02:08:43 -04:00
ZacharyZhang-NY
7ff8dc70a2
refactor(01-02): decompose execution.tsx and automation.tsx into focused sub-components
...
- execution.tsx (1749 lines) -> 16 focused files under 300 lines each:
TaskQueue, TaskInspector, TaskCreator, TaskComments, ApprovalList,
ApprovalInspector, ActivityList, CostList, BudgetSummary, WorkspaceList,
WorkspaceInspector, WorkspaceCreator, SecretCreator, SettingsPane,
PendingReviewList, execution-utils
- automation.tsx (1697 lines) -> 6 focused files under 300 lines each:
AutomationPanel, RuleCard, RuleEditor, WorkflowList, WorkflowEditor,
automation-config
- Both original files replaced with backward-compatible re-exports
- All sub-components under 300 lines, TypeScript compilation passes
2026-03-22 02:01:33 -04:00
ZacharyZhang-NY
586593f0e4
feat(01-03): decompose company-operations.tsx into focused sub-components
...
- Split company-operations.tsx (725 lines) into 6 files: DocumentCenter, KnowledgeBaseManager, MeetingsManager, SprintManager, SectionHeader, helpers
- All sub-component files under 300 lines (max: 107 lines)
- Original file replaced with backward-compatible re-exports
- TypeScript compilation passes
- ARCH-02 requirement complete for all 3 targeted monolithic files
2026-03-22 01:58:09 -04:00
ZacharyZhang-NY
16d10c0814
feat(01-03): decompose organization.tsx and dashboard.tsx into focused sub-components
...
- Split organization.tsx (1395 lines) into 12 files: AgentRoster, AgentCreator, AgentEditor, GoalList, GoalCreator, GoalEditor, ProjectList, ProjectCreator, ProjectEditor, OrgChart, helpers, orgTreeLayout
- Split dashboard.tsx (1053 lines) into 11 files: Dashboard, HealthCard, MetricsGrid, ActivityFeed, QuickActions, DepartmentOverview, TaskPipeline, SprintProgress, GoalProgress, KanbanBoard, NeedsAttention
- All sub-component files under 300 lines (max: 239 lines)
- Original files replaced with backward-compatible re-exports
- TypeScript compilation passes
2026-03-22 01:54:20 -04:00
ZacharyZhang-NY
ccfdbe73a3
refactor(01-02): decompose communication.tsx into 6 focused sub-components
...
- CommunicationHub.tsx: main layout shell with sidebar + message area
- ChannelSidebar.tsx: channel list with unread badges and filter bar
- MessageList.tsx: message display with threading and empty states
- MessageItem.tsx: message bubble, task comment bubble, agent avatar
- MessageComposer.tsx: message input, task discussion composer, compose modal
- ChannelHeader.tsx: channel info bar with stats
- channel-utils.ts: shared channel derivation and message filtering logic
- Original communication.tsx replaced with backward-compatible re-exports
- All sub-components under 300 lines, TypeScript compilation passes
2026-03-22 01:50:15 -04:00
ZacharyZhang-NY and Claude Opus 4.6
0f72ea4c77
feat(01-01): migrate App.tsx from 31 useState calls to Zustand store
...
- Replace all 31 useState declarations with useAppStore selectors
- Add direct setters (setCommandPaletteOpen, setConsoleOpen, etc.) to NavigationSlice
- Replace IPC debounce with createEventBatcher (50ms window)
- Route shortcut events through store.getState() for toggle actions
- Remove unused type imports (SidebarBadges, CompanyMetrics, etc.)
- Zero useState calls remain in App.tsx (down from 31)
- TypeScript compilation passes with zero errors
- All 14 unit tests continue to pass
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 01:36:55 -04:00
ZacharyZhang-NY and Claude Opus 4.6
5e9d36c058
feat(01-01): create Zustand store with 6 slices, IPC batcher, and unit tests
...
- Install zustand 5.x and immer 11.x dependencies
- Create 6 Zustand slices: navigation, company, selection, ui, communication, social
- Create combined store with devtools + immer middleware
- Create IPC event batcher with 50ms debounce window (schedule/flush/dispose)
- Create typed selector hooks for narrow state subscriptions
- Add 14 unit tests covering store initialization, slice behaviors, and batcher timing
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 01:30:37 -04:00
ZacharyZhang-NY
a4de64b876
docs: create roadmap (4 phases, 9 remaining requirements after codebase audit)
2026-03-22 00:39:17 -04:00
ZacharyZhang-NY
6b47e95d36
update
2026-03-20 00:12:38 -04:00
ZacharyZhang-NY
9510e1c858
update
2026-03-19 17:06:47 -04:00
ZacharyZhang-NY
d126c4cf21
update
2026-03-19 16:51:44 -04:00
ZacharyZhang-NY
f482f25856
update
2026-03-19 16:29:22 -04:00
ZacharyZhang-NY
b28ed38b8d
update
2026-03-19 16:04:35 -04:00
ZacharyZhang-NY
da1fec8f2a
update
2026-03-18 17:52:51 -04:00
ZacharyZhang-NY
53e0f03c0c
update
2026-03-18 17:49:10 -04:00
ZacharyZhang-NY
48daca9ba0
update
2026-03-18 16:13:17 -04:00
ZacharyZhang-NY
0cd65521b8
update
2026-03-18 14:42:14 -04:00
ZacharyZhang-NY
1ba3147ed2
update
2026-03-18 01:15:58 -04:00
ZacharyZhang-NY
7a3db27ffa
update
2026-03-17 12:31:06 -04:00
ZacharyZhang-NY
54bcc77ef7
update
2026-03-16 13:07:14 -04:00
ZacharyZhang-NY
41eafc7c44
update
2026-03-16 00:22:21 -04:00
ZacharyZhang-NY
d067589276
update
2026-03-15 23:49:46 -04:00
ZacharyZhang-NY
53607f142d
Ignore homepage design scratch file
2026-03-15 22:20:20 -04:00
ZacharyZhang-NY
30ababdab3
Remove markdown docs from repository
2026-03-15 22:19:29 -04:00
ZacharyZhang-NY
2af82b6bb3
Initialize project and ignore local references
2026-03-15 22:17:07 -04:00
ZacharyZhang-NY
a11ac3eaba
Initial commit
2026-03-15 22:15:01 -04:00