Commit Graph
119 Commits
Author SHA1 Message Date
ZacharyZhang-NYandClaude Opus 4.6 72cb921069 feat(05-01): BudgetEnforcementService factory with policy evaluation and incident lifecycle
- evaluateBudgetGate: strictest-wins blocking (D-01), no-policy=unlimited (D-02)
- checkAndCreateIncidents: warn + hard-stop thresholds with dedup (D-07, D-08)
- checkAutoResolve: auto_resolved_limit_increase when limit increases (D-06)
- autoCloseExpiredIncidents: window rollover cleanup (D-06)
- getBudgetStatus: summary of all policies with current spend
- Notifications with budget_warning and budget_exhaustion batch keys
- Factory pattern matching createAutomationService convention

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 20:48:37 -04:00
ZacharyZhang-NYandClaude Opus 4.6 3a68cfa707 feat(05-01): budget enforcement types, schemas, IPC channels, and database CRUD
- Add BudgetPolicyRecord, BudgetIncidentRecord, BudgetStatusSummary types
- Add 6 IPC channels for budget operations in contracts.ts
- Add Zod schemas for all budget payloads
- Add DesktopApi entries for budget methods
- Add database CRUD: saveBudgetPolicy, deleteBudgetPolicy, listBudgetPolicies,
  getBudgetPolicy, getActivePoliciesForRun, getSpentInWindow (cents aggregation),
  upsertBudgetIncident (D-08 dedup), resolveIncidentsForPolicy,
  resolveWarnIncidentsForPolicy, autoCloseExpiredIncidents
- Update recordRunCompletion to include project_id in cost_entries INSERT
- Add migration 18: convert agent budgetMonthlyUsd to budget_policies rows
- Add preload bridge stubs for budget IPC channels

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 20:47:20 -04:00
ZacharyZhang-NYandClaude Opus 4.6 245eb4ccf3 test(05-01): add tests for budget policy evaluation and incident lifecycle
- Budget policy CRUD (save, update, delete)
- getActivePoliciesForRun with multi-scope matching
- getSpentInWindow with cents aggregation per scope (company/agent/project)
- evaluateBudgetGate strictest-wins logic (D-01)
- upsertBudgetIncident with deduplication (D-08)
- resolveIncidentsForPolicy and autoCloseExpiredIncidents (D-06)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 20:43:50 -04:00
ZacharyZhang-NY 2be909b67c fix(04): add active_session_id and project_id to ensureOptionalColumns
Migration 13 columns were skipped when ensureOptionalColumns added
checkout_run_id first, triggering 'duplicate column' catch that marked
the entire migration as applied without running remaining ALTERs.
2026-03-26 19:22:26 -04:00
ZacharyZhang-NY 930273ce87 feat(04-02): worker lock release, wake promotion, IPC wakeup channel, and preload bridge
- Add releaseTaskLock to worker crash recovery after finishRun (EXEC-02)
- Track affected agent company IDs for targeted wake promotion
- Replace listWakeupRequests+loop with promoteWakeupRequests+wakeAgentIfPossible in run completion
- Track hadDeferredWakes flag for circuit breaker self-wake decision
- Add listWakeupRequests IPC channel to IPC_CHANNELS
- Add wakeupQuerySchema with Zod validation and WakeupRequestRecord interface
- Add listWakeupRequests to DesktopApi type
- Add listWakeupRequests preload bridge method
- Add registerHandle for listWakeupRequests IPC handler with company validation
2026-03-26 19:16:17 -04:00
ZacharyZhang-NY 8a424822a5 feat(04-02): wire CAS checkout and stale recovery into orchestration-service
- Add randomUUID import for pre-generated runId in CAS checkout flow
- Replace task-level hasActiveRun checks with db.checkoutTask CAS in startAgentHeartbeatRun and queueTaskRun
- Pass pre-generated runId to createRun (database.ts accepts optional id field)
- Log execution.checkout_rejected activity on CAS failure (D-04)
- Return fail("CHECKOUT_RACE_LOST") in queueTaskRun on CAS failure
- Rewrite wakeAgentIfPossible with proper lifecycle tracking via enqueueWakeupRequest
- Add stale lock recovery sweep at startup (resumeQueuedRuns) and each heartbeat tick
- Log execution.lock_recovered activity entries for recovered stale locks
2026-03-26 19:13:09 -04:00
ZacharyZhang-NY 63ff0f2625 Merge branch 'worktree-agent-a1383b58'
# Conflicts:
#	.planning/STATE.md
#	src/main/database.ts
2026-03-26 19:07:13 -04:00
ZacharyZhang-NY 4d47712669 fix(04-01): resolve type errors and update integration tests for wakeup API
- Fix SQLInputValue type in listWakeupRequests params
- Fix leftover pendingWakes reference in worker-service.ts
- Fix RunStatus 'completed' -> 'succeeded' in atomic-checkout test
- Update autonomous-chain.spec.ts to use new wakeup lifecycle API
2026-03-26 19:00:51 -04:00
ZacharyZhang-NY f647a4fdf1 test(04-01): add wakeup lifecycle unit tests covering all CRUD operations
- 10 test cases: enqueue, coalesce (queued + deferred), claim, complete, defer, promote, merge, list with filters
- Validates D-06 trigger_detail JSON array coalescing
- Validates D-07 per-agent scope deduplication
- Validates full state machine: queued -> claimed -> completed, queued -> deferred -> queued
2026-03-26 18:58:18 -04:00
ZacharyZhang-NY 08935b3379 feat(04-01): implement CAS checkout, lock release, stale recovery, and migration 16
- Rewrite checkoutTask to use runId-based CAS with checkout_run_id IS NULL guard
- Add releaseTaskLock and recoverStaleLocks methods
- Add lock release in finishRun and cancelRunForDeletion exit paths
- Add migration 16: pending_wakes to wakeup_requests cutover with DROP TABLE
- Replace all pending_wakes references with wakeup_requests
- Add wakeup lifecycle CRUD: enqueue, claim, complete, defer, promote, list
- Update api-server, orchestration-service, worker-service callers
- Update existing database.test.ts for new checkoutTask signature
2026-03-26 18:56:54 -04:00
ZacharyZhang-NY 02e87dc06d test(04-01): add failing tests for CAS checkout, lock release, stale recovery
- 8 test cases covering CAS semantics, lock release on finishRun/deleteAgent, stale recovery
- Tests expect STALE_LOCK_TIMEOUT_MS export, checkout_run_id/execution_locked_at columns
- RED phase: 5 of 8 tests fail as expected before implementation
2026-03-26 18:51:46 -04:00
ZacharyZhang-NY 2ade6c0cbc feat(03-02): add agent-centric skill toggles in AgentEditor for D-04 dual access
- Import SkillAgentToggles and Zustand skill state into AgentEditor
- Add lazy skill loading for navigation paths that bypass Skills section
- Render Skills section with agent-centric toggle mode between heartbeat and save
2026-03-26 02:03:11 -04:00
ZacharyZhang-NY e71d2e5529 feat(03-02): add SkillDetail pane, SkillAgentToggles, and assignment query IPC
- Add listSkillAgents and listAgentSkills IPC channels with Zod schemas
- Create SkillDetail component with metadata, file viewer, update check, delete
- Create SkillAgentToggles with discriminated union for skill/agent-centric modes
- Wire SkillDetail into SkillsSection right column replacing placeholder
- Remove duplicate skill method declarations from DesktopApi type
2026-03-26 02:01:51 -04:00
ZacharyZhang-NY 6397c118ea merge: resolve wave 1 worktree conflicts (keep Phase 02 schema validation) 2026-03-26 01:54:08 -04:00
ZacharyZhang-NYandClaude Opus 4.6 49b75257fb feat(03-01): add SkillsSection layout, SkillList, SkillFileTree, and SkillImportModal
- Create SkillsSection with two-column grid layout (19rem + flex) matching Paperclip pattern
- Create SkillList with source icons, expandable file trees, CSS grid animation
- Create SkillFileTree with recursive rendering, dir/file icons, indent levels
- Create SkillImportModal with 4 tabs: GitHub, Local Path, HTTP URL, skills.sh
- Wire listSkills IPC for skill loading and importSkill IPC for import flow
- Add skill IPC channels, Zod schemas, and DesktopApi methods to contracts.ts
- Add skill IPC bridge methods to preload/index.ts
- All Phosphor icons, all ui.tsx components, no external dependencies

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 01:51:06 -04:00
ZacharyZhang-NYandClaude Opus 4.6 e8d642941f feat(03-01): add skill section type wiring, Zustand slice, i18n, and sidebar nav entry
- Add "skills" to SectionId union in shared types
- Add SkillRecord, SkillImportResult, SkillUpdateStatus types to shared/types.ts
- Create SkillSlice with skills list, selection, file path, and import modal state
- Wire SkillSlice into Zustand store composition
- Add "nav.skills" i18n keys for English and Chinese
- Add Skills sidebar nav entry with PuzzlePiece icon between Communication and Documents
- Add section === "skills" rendering route in App.tsx
- Clear skill state on company switch
- Add skills case to navigateTo in NavigationSlice

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 01:45:32 -04:00
ZacharyZhang-NY b949187356 merge: wave 3a executor (02-03 IPC) into main 2026-03-26 00:51:00 -04:00
ZacharyZhang-NY 14a7f4468e feat(02-04): update all 5 adapters to use managed skills instead of static directories
- Claude: buildSkillsDir() accepts managedSkills, uses createManagedSkillSymlinks
- Codex: ensureCodexSkillsInjected() prefers managed skills over static scan
- Gemini: ensureGeminiSkillsInjected() prefers managed skills over static scan
- OpenCode: ensureOpenCodeSkillsInjected() prefers managed skills over static scan
- Kimi: new skill injection via ensureKimiSkillsInjected() (first-time support)
- All adapters fall back to static SKILLS_CANDIDATES when no managed skills provided
2026-03-26 00:49:07 -04:00
ZacharyZhang-NY bbdabbe675 feat(02-03): wire SkillService into ServiceGraph and preload bridge
- Add lazy SkillService creation in ServiceGraph with getOrCreateSkillService getter
- Pass skillService to registerDomainHandlers in main-runtime-support
- Add 7 skill operations to preload bridge (importSkill, listSkills, getSkillDetail, deleteSkill, assignSkillToAgent, removeSkillFromAgent, checkSkillUpdate)
- Add skillService cleanup in app lifecycle shutdown
2026-03-26 00:46:34 -04:00
ZacharyZhang-NY 3fb9ab86d9 feat(02-04): add shared skill symlink helper and wire orchestration-to-worker pipeline
- Add ManagedSkillRef type to adapter-utils for cross-package use
- Add createManagedSkillSymlinks() with Windows junction support (D-13)
- Add managedSkills field to worker RunJob and connector config
- Add listRuntimeSkillEntries dependency to orchestration service
- Wire SkillService lazy init in service-graph for runtime skill resolution
- Include prerequisite skill system files from plans 02-01/02-02
2026-03-26 00:46:19 -04:00
ZacharyZhang-NY b5ad164338 feat(02-03): add 7 skill IPC channels with Zod schemas and register handlers
- Add importSkill, listSkills, getSkillDetail, deleteSkill, assignSkillToAgent, removeSkillFromAgent, checkSkillUpdate IPC channels
- Add Zod validation schemas for all skill payloads in contracts.ts
- Create ipc-skill-handlers.ts with company existence checks and domain-changed events on mutations
- Add SkillRecord, SkillImportResult, SkillUpdateStatus types to shared/types.ts
- Wire registerSkillHandlers into ipc-domain-handlers.ts
- Add skillService to RegisterDomainHandlersDependencies interface
2026-03-26 00:45:03 -04:00
ZacharyZhang-NYandClaude Opus 4.6 c9111d2f6d feat(02-02): create SkillService with import, CRUD, assignment, token budget, update detection
- Factory pattern following createOrchestrationService with DesktopResult returns
- Import from 4 sources: GitHub REST API, local path, HTTP URL, skills.sh registry
- Per-agent skill assignment via agent_skill_assignments join table
- Token budget enforcement skips oversized skills with logger.warn
- GitHub update detection compares stored vs latest commit SHAs
- File materialization at profileDir/skills/{companyId}/ per D-10
- Deletion follows D-12 order: files from disk, then DB record (FK cascades assignments)
- Upsert semantics prevent duplicate imports via canonical key

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 00:38:19 -04:00
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