Commit Graph
85 Commits
Author SHA1 Message Date
ZacharyZhang-NYandClaude Opus 4.6 0bfbdec09b feat(07-02): implement sweepStaleReviews with escalation chain
- sweepStaleReviews queries tasks in in_review status exceeding 30-min timeout
- Escalation dispatched to reviewer's manager (manager's manager in chain)
- When reviewer is CEO (no higher manager), desktop notification sent to human
- Pending approvals auto-approved with documented timeout note
- Task status advanced from in_review to done after escalation
- Race condition with manual approval handled via try-catch (Pitfall 3)
- Tasks without assigneeAgentId skipped gracefully
- Exports REVIEW_TIMEOUT_MS (1800000ms) and SweepStaleReviewsDeps interface
- 8 comprehensive unit tests covering all TASK-04 behaviors

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 00:39:41 -04:00
ZacharyZhang-NYandClaude Opus 4.6 e1f8a3c9ab test(07-02): add failing tests for sweepStaleReviews escalation
- 8 tests covering TASK-04 stale review escalation logic
- Escalation to manager's manager, CEO fallback notification
- Auto-approve pending approvals, race condition handling
- Task status advancement, no-assignee skip, timeout constant

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 00:38:57 -04:00
ZacharyZhang-NYandClaude Opus 4.6 4d1085fc04 chore(07-02): bring in plan 01 prerequisites
Cherry-pick plan 01 task quality gate validation module and its
integration into IPC, API server, and automation service.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 00:37:36 -04:00
ZacharyZhang-NYandClaude Opus 4.6 c1de05a7f1 chore: bump version to 0.4.97, update build config
Build & Release / Lint & Typecheck (push) Successful in 35s
Build & Release / Unit Tests (push) Successful in 34s
Build & Release / Windows (arm64) (push) Failing after 14s
Build & Release / Windows (x64) (push) Failing after 5m51s
Build & Release / macOS (arm64) (push) Canceled after 0s
Build & Release / macOS (x64) (push) Canceled after 0s
Build & Release / Linux (arm64) (push) Canceled after 0s
Build & Release / Linux (x64) (push) Canceled after 0s
Build & Release / Publish Release (push) Canceled after 0s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
v0.4.97
2026-03-25 12:42:00 -04:00
ZacharyZhang-NYandClaude Opus 4.6 05c57be98f fix: prevent agents from running indefinitely after app quit
Agents kept running after closing AgentCompany because worker processes
auto-recreated on exit, retry timers were never cleared, child CLI
processes weren't terminated, and orchestration had no quit guards.

Changes:
- Add isQuitting guards to all orchestration/automation entry points
- Track and clear all setTimeout/setInterval timers on quit
- Send cancel-run to all active CLI processes before killing worker
- Add destroyed flag to prevent worker recreation after intentional destroy
- Add quit confirmation dialog: Stop All & Quit / Minimize to Background / Cancel
- Bump version to 0.4.96

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 12:40:58 -04:00
ZacharyZhang-NY 222c80e544 更新 README.md 2026-03-25 08:06:13 -04:00
ZacharyZhang-NY 8dd6dd09d6 update 2026-03-25 01:38:49 -04:00
ZacharyZhang-NYandClaude Opus 4.6 eda0e26adb feat: rebrand to website design, Apple HIG icons, ASCII onboarding animation
Build & Release / Lint & Typecheck (push) Successful in 38s
Build & Release / Unit Tests (push) Successful in 31s
Build & Release / Windows (arm64) (push) Failing after 11s
Build & Release / Windows (x64) (push) Failing after 27s
Build & Release / Linux (arm64) (push) Canceled after 0s
Build & Release / Linux (x64) (push) Canceled after 0s
Build & Release / Publish Release (push) Canceled after 0s
Build & Release / macOS (arm64) (push) Canceled after 0s
Build & Release / macOS (x64) (push) Canceled after 0s
- Align Electron CSS with website design schema (Inter font, #FBFAF5/#191919
  palette, #213448/#94B4C1 accent)
- Generate proper app icons from logo.svg via cairosvg (no more Pillow ladder)
- Square bg icons for Electron/tray (Apple HIG — OS applies squircle mask)
- Circle bg icons for website favicon only
- Add scrolling ASCII agent-activity animation to onboarding hero left panel
- Remove dock.setIcon() — let macOS use bundle .icns with system mask
- Fix goal title overflow with min-w-0 for flex truncation

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
v0.4.95
2026-03-24 16:39:28 -04:00
ZacharyZhang-NYandClaude Opus 4.6 273244817a feat: rebrand icons — #191919 circle bg, #FBFAF5 logo
Build & Release / Lint & Typecheck (push) Successful in 36s
Build & Release / Unit Tests (push) Successful in 34s
Build & Release / Windows (x64) (push) Failing after 34s
Build & Release / Windows (arm64) (push) Failing after 34s
Build & Release / macOS (x64) (push) Canceled after 0s
Build & Release / macOS (arm64) (push) Canceled after 0s
Build & Release / Linux (arm64) (push) Canceled after 50s
Build & Release / Linux (x64) (push) Canceled after 0s
Build & Release / Publish Release (push) Canceled after 0s
Replace all orange/red icon assets with new brand colors:
- Circle background #191919, logo mark #FBFAF5
- Regenerated: icon.png, icon.ico, icon.icns, all tray icons
- Updated generate-icons.py with new palette and circle shape
- Added source logo.svg
- Bump version to 0.4.92

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
v0.4.92
2026-03-24 14:24:20 -04:00
ZacharyZhang-NYandClaude Opus 4.6 02386999f7 docs: remove local-only tagline, drop Kimi CLI and OpenCode from README
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 11:58:43 -04:00
ZacharyZhang-NYandClaude Opus 4.6 69b25bbda5 docs: add screenshots and redesign README with feature showcase
- Add 7 product screenshots (Dashboard, OrgChart, Messages, Tasks, Approvals, Documents, Onboarding)
- Redesign README with centered logo, badge row, nav links, and feature sections with screenshots
- Add supported AI runtimes table, tech stack table, and architecture overview
- Add landing/ to .gitignore (deployed separately to Cloudflare Pages)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 11:57:30 -04:00
ZacharyZhang-NYandClaude Opus 4.6 a4fd98d934 fix: add system tray icon for all platforms (macOS, Windows, Linux)
Build & Release / Lint & Typecheck (push) Successful in 1m29s
Build & Release / Unit Tests (push) Successful in 31s
Build & Release / Windows (arm64) (push) Failing after 4m48s
Build & Release / Windows (x64) (push) Failing after 4m42s
Build & Release / Linux (x64) (push) Failing after 19s
Build & Release / macOS (arm64) (push) Canceled after 0s
Build & Release / macOS (x64) (push) Canceled after 0s
Build & Release / Publish Release (push) Canceled after 0s
Build & Release / Linux (arm64) (push) Failing after 1m9s
Tray was invisible on Windows/Linux (icon not bundled in asar) and
completely absent on macOS (early return guard). Generate dedicated
tray-sized icons, bundle them in the packaged app, and create tray
on all platforms with macOS Template image support.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
v0.4.91
2026-03-24 01:21:17 -04:00
ZacharyZhang-NYandClaude Opus 4.6 9fb0293099 fix(ci): enable macOS notarization — remove notarize:false
Build & Release / Lint & Typecheck (push) Successful in 1m28s
Build & Release / Unit Tests (push) Successful in 32s
Build & Release / Windows (x64) (push) Failing after 22s
Build & Release / Windows (arm64) (push) Failing after 1m13s
Build & Release / Linux (x64) (push) Failing after 21s
Build & Release / Linux (arm64) (push) Failing after 1m6s
Build & Release / macOS (arm64) (push) Canceled after 0s
Build & Release / macOS (x64) (push) Canceled after 0s
Build & Release / Publish Release (push) Canceled after 0s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
v0.4.90
2026-03-24 01:01:43 -04:00
ZacharyZhang-NYandClaude Opus 4.6 43700c6396 fix(ci): add author email for Linux deb, fix macOS cert as file path
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 00:00:59 -04:00
ZacharyZhang-NYandClaude Opus 4.6 888cf548e3 fix(ci): remove publish section from electron-builder.yml, fix macOS x64 runner
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 23:49:50 -04:00
ZacharyZhang-NYandClaude Opus 4.6 5b1fc8a105 fix(test): correct secret scoping test — literal fallback is expected behavior
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 23:45:01 -04:00
ZacharyZhang-NYandClaude Opus 4.6 590cefbc48 fix(ci): add missing test script to package.json
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 23:41:52 -04:00
ZacharyZhang-NYandClaude Opus 4.6 1668ff9ce4 fix(ci): exclude test files from typecheck — pre-existing Vitest mock type errors
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 23:38:38 -04:00
ZacharyZhang-NYandClaude Opus 4.6 d52985f61e feat: deliverable review gate, app lifecycle fixes, CI/CD pipeline
- Add deliverable review gate: pause workflow when agents produce important
  documents (PRDs, design docs, etc.) for human review before continuing
- Add company-level reviewDeliverables setting with onboarding card selector
- Block agent heartbeats when deliverable review is pending (agent + CEO)
- Trigger review at document creation time in API server for reliability
- Fix autoApproveHires vs reviewDeliverables conflict in approval-policy
- Fix app quit: force-exit on all platforms (macOS Dock, Windows tray, Linux)
- Add multi-platform CI/CD pipeline (macOS arm64/x64, Windows x64/arm64,
  Linux x64/arm64 with deb/AppImage/rpm/snap) with code signing support

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 23:31:48 -04:00
ZacharyZhang-NY 9e2c19259a update 2026-03-23 16:51:02 -04:00
ZacharyZhang-NY b56aaa1498 update 2026-03-23 16:27:55 -04:00
ZacharyZhang-NY b15f1c0e5e update 2026-03-23 12:37:22 -04:00
ZacharyZhang-NYandClaude Opus 4.6 b52e1017ad refactor(ui): remove Runs from sidebar, keep via command palette
Runs page is a developer debug tool. Console panel already shows run
output. Power users can still access via command palette or programmatic
navigation. Sidebar: 9 → 8 items.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 12:36:32 -04:00
ZacharyZhang-NYandClaude Opus 4.6 dff4c4791f refactor(ui): rename sidebar "Agents" to "Team"
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 12:26:45 -04:00
ZacharyZhang-NYandClaude Opus 4.6 144f35463b fix(ui): remove automated document spam and clean up Runs page
Remove "Create status report on schedule" default automation rule that
was creating empty draft documents every 60s. Simplify Runs page by
removing 3 summary cards and replacing 10-card metadata grid with
compact row layout.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 12:13:11 -04:00
ZacharyZhang-NYandClaude Opus 4.6 b6d92ac634 feat(ui): show OrgChart at top of Agents section
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 11:56:05 -04:00
ZacharyZhang-NYandClaude Opus 4.6 bb59eb0d45 refactor(ui): clean up Dashboard from 9 chaotic sections to 4 focused ones
Remove HealthRing, DepartmentOverview, TaskPipeline, SprintProgress,
GoalProgress, WorkforceGrid, ConnectorHealth. Move Needs Attention to
top. Reduce 9 metric cards to 4. Add Active Work section. -50KB bundle.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 11:54:19 -04:00
ZacharyZhang-NYandClaude Opus 4.6 d5c9440ab4 refactor(ui): consolidate sidebar from 24 items to 9 flat items
Remove 6 group headers and reduce navigation to: Dashboard, Agents,
Work, Messages, Documents, Approvals, Runs, Social Media, Settings.
Absorbed sections remain accessible via command palette.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 11:37:05 -04:00
ZacharyZhang-NY 9928efed81 update 2026-03-22 21:11:44 -04:00
ZacharyZhang-NYandClaude Opus 4.6 7e0f62afc9 build: v0.4.55 release with Phase 3+4 features
Phase 3: message search, social drafting pipeline, budget alerts
Phase 4: actionable notifications, cross-platform build validation

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 20:19:20 -04:00
ZacharyZhang-NY a2a110f0c5 fix(04): wire pending approval notifications in IPC and API server paths 2026-03-22 17:12:40 -04:00
ZacharyZhang-NY 9d01a7acc4 feat(04-03): add platform launch E2E test with screenshot capture
- Add second test to desktop.smoke.spec.ts validating app launch, window dimensions, and screenshot capture
- Screenshot saved to build/screenshots/launch-{platform}.png for D-07 evidence
- Update playwright.config.ts with outputDir for test artifacts and join import
- Add xvfb-run note for headless Linux CI environments
2026-03-22 16:50:59 -04:00
ZacharyZhang-NY 0f9042673f feat(04-03): add cross-platform build script and build:all npm script
- Create scripts/build-all-platforms.mjs that detects current platform, invokes electron-builder via build-desktop.mjs, verifies artifacts in build/release/, and reports remaining platforms
- Add "build:all" script entry to package.json for D-07 cross-platform build validation
2026-03-22 16:49:28 -04:00
ZacharyZhang-NY ec14f4a8ea feat(04-02): restyle RecoveryBanner with design tokens and update NeedsAttention label
- Replace all hardcoded Tailwind colors with CSS custom properties (--warn, --warn-soft, --text, --muted, --panel-soft, --success, --danger, --muted-strong)
- Use rounded-[10px] instead of rounded-lg for design system consistency
- Add aria-label on dismiss button for accessibility
- Update NeedsAttention label to 'Needs Your Attention' in en.ts and zh.ts
2026-03-22 16:44:12 -04:00
ZacharyZhang-NY 071eef43a2 feat(04-02): wire notification-click event handler in renderer
- Add notification-click handler in App.tsx IPC event subscription
- Calls navigateTo(section, entityId) for instant navigation to target entity
- Handler returns early to avoid unnecessary snapshot reload via batcher
2026-03-22 16:42:45 -04:00
ZacharyZhang-NYandClaude Opus 4.6 667ac48aa5 feat(04-01): refactor all notify() call sites to use structured NotificationOptions
- Change ipc-support.ts notify() from (title, body) to (options: NotificationOptions)
- Wire createNotificationService in bootstrap-application.ts with lazy service graph refs
- Update all 12 call sites with entity context, urgency, navigation, and batch keys
- Update dependency interfaces in service-graph, worker, orchestration, automation, updater, desktop-shell
- No string-based notify() calls remain in src/main/

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 16:37:07 -04:00
ZacharyZhang-NYandClaude Opus 4.6 9ebb489644 feat(04-01): create notification service with batching, urgency, and GC protection
- Add createNotificationService with 10s batch window, urgency mapping, click-to-navigate
- Extend DesktopEvent union with NotificationClickEvent type
- Add 10 unit tests covering batching, urgency, NEVER_BATCH, GC protection, Linux urgency
- Platform-specific: silent flag, Windows timeoutType, Linux urgency level

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 16:30:49 -04:00
ZacharyZhang-NY 7d5d1e5b30 feat(03-01): add SearchResults component with highlighting, scope toggle, and CommunicationHub integration
- Create SearchResults component with virtualized list, term highlighting via <mark>, keyboard navigation, loading/empty states
- Add search scope toggle (All Channels / This Channel) with radio group accessibility
- Integrate debounced (300ms) IPC search into CommunicationHub with stale response discard via requestId
- Update CommunicationSlice with search state (query, scope, results, loading, requestId)
- Modify FilterBar to accept scopeToggle prop and Escape key handler
- AnimatePresence cross-fade between SearchResults and MessageList views
2026-03-22 14:34:35 -04:00
ZacharyZhang-NY 43cb97ac6d feat(03-02): add SocialDraftPreview component and ApprovalInspector integration
- Create SocialDraftPreview with platform icon, color, content, char count, media URLs, schedule display
- Integrate SocialDraftPreview into ApprovalInspector for social_post approvals
- Add schedule picker with immediate/scheduled radio group and datetime-local input
- Add social_post to type badge with accent styling
- Approve button shows 'Approve & Post' for social_post approvals
- Accessibility: role=region, aria-label, aria-live=polite, role=radiogroup
- Fix test type annotation for TS compatibility
2026-03-22 14:33:47 -04:00
ZacharyZhang-NY 931e38c823 feat(03-03): add BudgetAlertBanner component and integrate into Dashboard
- Create BudgetAlertBanner with threshold detection (>=80% budget utilization)
- Display agent names with percentages, warn color for 80-99%, danger for 100%+
- Dismissible per session with auto-reset on new threshold crossings
- View Costs link navigates to costs section
- Accessible with role=alert, aria-live=assertive, keyboard-dismissible
- Framer Motion fade-in/slide-down animation, respects reduced motion
- Positioned after RecoveryBanner in Dashboard layout
2026-03-22 14:32:00 -04:00
ZacharyZhang-NY e0ee5bb5ad feat(03-02): implement social draft pipeline backend
- Add social_post to ApprovalType union in types.ts
- Add social_post to approvalInputSchema enum in contracts.ts
- Add POST /api/companies/:companyId/social/draft endpoint in api-server.ts
- Add social_post handling in handleApprovalResolved in automation-service.ts
- Browser action payloadJson includes scheduledAt for startup recovery (03-03 contract)
- Scheduled posts use setTimeout for deferred dispatch
- All 13 unit tests pass
2026-03-22 14:30:32 -04:00
ZacharyZhang-NY ce2c3be065 feat(03-01): add searchMessages backend with LIKE query, IPC channel, preload bridge, and tests
- Add searchMessages method to AppDatabase with LIKE query, wildcard escaping, channel scoping, ORDER BY created_at DESC with limit
- Add searchMessages IPC channel and searchMessagesSchema to contracts.ts
- Register IPC handler in ipc-agent-coordination-handlers.ts with Zod validation
- Wire searchMessages through preload bridge
- Add 8 unit tests covering body/subject search, wildcard escaping, channel scoping, empty results, limit, and ordering
2026-03-22 14:29:59 -04:00
ZacharyZhang-NY 14da6b5ede feat(03-03): add budget alert OS notifications and scheduled post recovery
- Add notify() calls at 80% budget threshold warning and 100% exhaustion auto-pause
- Compute percentage as Math.round(utilization * 100) for accurate display
- Add scheduled social post timer re-registration on app startup
- Add unit tests for budget threshold detection and notification logic
2026-03-22 14:29:43 -04:00
ZacharyZhang-NY 8558b113a2 test(03-02): add failing tests for social draft pipeline
- Social draft schema validation tests (valid input, defaults, rejections)
- social_post as valid ApprovalType test (currently fails - not yet added)
- payloadSummary truncation logic tests
- Approval resolution logic: immediate dispatch, deferred dispatch, rejected drafts
- Cross-plan contract: browser action payloadJson includes scheduledAt
2026-03-22 14:27:26 -04:00
ZacharyZhang-NY 07a0d54f77 fix: simplify connector matching - CEO auto-detects and uses available connectors silently
- Remove all user-facing messaging about connector selection
- CEO reads available connectors and assigns automatically
- No special-case logic for single vs multiple connectors
- Matching is invisible to the user
2026-03-22 13:08:48 -04:00
ZacharyZhang-NY 6f13d324e4 fix: handle single-connector case in matching heuristic and CEO prompt
- matchConnector returns honest reason when only one connector is ready
- CEO prompt detects single-connector scenario and tells CEO to use it for all agents
- Removes misleading 'Best match' language when there's no actual choice
2026-03-22 13:00:11 -04:00
ZacharyZhang-NY 51dbeb0cac feat(02-02): enhance agent prompts for non-code task deliverables
- Add deliverable requirement sections for research and content tasks in prompt-builder
- Research tasks instruct agents to produce knowledge entries, documents, or substantial comments
- Content tasks instruct agents to produce documents, social media drafts, or substantial comments
- Auto-infer task_type from assignee department on task creation in api-server
- Import inferTaskType in both prompt-builder and api-server
2026-03-22 03:59:09 -04:00
ZacharyZhang-NY 9a1671981a fix(02-03): include linter-applied changes for crash recovery
- Re-stage files that were modified by linter after previous commit
2026-03-22 03:58:19 -04:00
ZacharyZhang-NY 64183428ec feat(02-03): crash recovery detection and user notification
- Enhance interruptStaleRuns to return count and mark tasks as blocked
- Add lastInterruptedCount property for bootstrap recovery check
- Add getInterruptedRunsForRecovery query method
- Add retryInterruptedTask, dismissInterruptedTask, markInterruptedTaskFailed actions
- Add recovery-needed IPC event emission in bootstrap between heartbeat and resume
- Create ipc-recovery-handlers.ts with retry/dismiss/fail IPC handlers
- Register recovery handlers in domain handler chain
- Expose recoveryRetry, recoveryDismiss, recoveryFail in preload API
- Add recovery method types to DesktopApi contract
- Create RecoveryBanner component with retry/cancel per interrupted task
- Integrate RecoveryBanner at top of Dashboard view
- Add crash recovery unit tests (9 tests)
2026-03-22 03:57:58 -04:00
ZacharyZhang-NY 1eeb7a7669 feat(02-02): self-wake circuit breaker and non-code task deliverable enforcement
- Add consecutiveWakeMap with MAX_CONSECUTIVE_WAKES=5 circuit breaker in worker-service
- Circuit breaker resets on successful run completion, escalates to manager when tripped
- Add checkRunProducedDeliverable in automation-service to check for knowledge entries, documents, or substantial comments
- Non-code tasks (research/content) require deliverable artifact before auto-advancing to in_review
- Add public queryAll method to database for cross-service deliverable queries
2026-03-22 03:55:32 -04:00