Commit Graph
947 Commits
Author SHA1 Message Date
ZacharyZhang-NYandClaude Opus 4.6 cae241a978 feat(02-02): create GitHub REST API skill fetcher and database skill CRUD
- Add skill-github.ts with resolveGitHubCommitSha and fetchGitHubSkills
- Add migration 16 for agent_skill_assignments table with FKs and cascade delete
- Add 9 skill CRUD methods to AppDatabase (upsert, list, get, delete, assign, remove)
- Add agent_skill_assignments cleanup to deleteCompany cascade

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 00:35:43 -04:00
ZacharyZhang-NY 3a1698195d chore: remove accidental worktree submodule 2026-03-26 00:31:09 -04:00
ZacharyZhang-NY e3a5e20d90 merge: wave 1 executor (02-01) into main 2026-03-26 00:31:03 -04:00
ZacharyZhang-NY a8db40180c feat(02-01): create canonical key derivation and skill source resolution
- deriveCanonicalSkillKey handles all 5 source types deterministically
- normalizeSkillSlug with lowercase, hyphen-delimited, edge case handling
- hashSkillValue produces 10-char SHA-256 hex digests
- parseSkillImportSource resolves GitHub, skills.sh, URL, local path inputs
2026-03-26 00:27:39 -04:00
ZacharyZhang-NY 77480374fd test(02-01): add failing test for canonical key derivation
- Tests normalizeSkillSlug for edge cases (empty, null, special chars)
- Tests hashSkillValue determinism and 10-char hex output
- Tests deriveCanonicalSkillKey for all 5 source types
- Tests parseSkillImportSource for GitHub, skills.sh, URL, local paths
2026-03-26 00:26:56 -04:00
ZacharyZhang-NY b1008be0e4 feat(02-01): create SKILL.md format parser and trust level derivation
- parseFrontmatterMarkdown with CRLF normalization and minimal YAML parser
- classifyInventoryKind with directory prefix and extension-based classification
- deriveTrustLevel deriving trust from file inventory (script > asset > markdown)
- estimateTokens with 1:4 char-to-token ratio for budget enforcement
2026-03-26 00:26:19 -04:00
ZacharyZhang-NY 58d3f4a039 test(02-01): add failing test for SKILL.md format parser
- Tests parseFrontmatterMarkdown with frontmatter, no frontmatter, CRLF normalization
- Tests classifyInventoryKind for all file type classifications
- Tests deriveTrustLevel for script/asset/markdown-only derivation
- Tests estimateTokens for token estimation logic
2026-03-26 00:24:53 -04:00
ZacharyZhang-NY e6d5cd82eb feat(02-01): create skill type definitions and constants
- SkillSourceType union with 5 source kinds (github, local_path, url, skills_sh, managed)
- TrustLevel union with 3 levels (markdown_only, assets, scripts_executables)
- FileInventoryEntry with 6 kind classifications
- SkillRecord interface matching company_skills table columns
- TOKEN_BUDGETS constant with per-adapter token caps
- RuntimeSkillEntry, ManagedSkillRef, SkillAssignment, SkillUpdateStatus interfaces
2026-03-26 00:24:16 -04:00
ZacharyZhang-NY f16ddc44f9 test(02-01): add failing test for skill type definitions
- Tests TOKEN_BUDGETS constant values for 5 adapter types
- Tests type shapes for SkillRecord, RuntimeSkillEntry, ManagedSkillRef
- Tests SkillSourceType (5 members), TrustLevel (3 members), FileInventoryEntry (6 kinds)
2026-03-26 00:23:45 -04:00
ZacharyZhang-NYandClaude Opus 4.6 122cf8db04 feat(01-02): session data migration and backward compatibility verification
Adds migration 15 - eager copy session_json to task_sessions table.
Handles corrupt rows gracefully, maintains idempotency.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 23:46:33 -04:00
ZacharyZhang-NYandClaude Opus 4.6 aa1a78d7d9 merge: wave 2 executor (01-02) into main
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 23:46:16 -04:00
ZacharyZhang-NYandClaude Opus 4.6 a5b8fcf9d3 merge: wave 1 executor (01-01) into main
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 23:38:02 -04:00
ZacharyZhang-NY ec2e0528d4 feat(01-01): add migrations 13-14 and update deleteCompany cleanup
- Migration 13: add checkout_run_id, execution_locked_at, active_session_id to tasks; add project_id with index to cost_entries
- Migration 14: create company_skills, budget_policies, budget_incidents, task_sessions, wakeup_requests tables with indexes
- Update deleteCompany() to delete from all 5 new tables in FK-safe order (budget_incidents before budget_policies)
2026-03-25 23:35:22 -04:00
ZacharyZhang-NY a4bd40c2b0 feat(01-01): set busy_timeout and extend migration runner type
- Set 5000ms busy_timeout via DatabaseSync constructor option in openConnection()
- Extend migration runner type to support both sql string and fn callback migrations
- fn-based migrations execute inside existing transaction for atomicity
2026-03-25 23:33:59 -04:00
ZacharyZhang-NY 981b4dd19e docs: create roadmap (10 phases) 2026-03-25 23:11:25 -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