Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
692 commits
Select commit Hold shift + click to select a range
1f3ebe7
Merge pull request #1550 from drpayyne/emdash/skills-sh-4ho
arnestrickmann Mar 20, 2026
36c4447
Merge pull request #1549 from janburzinski/emdash/feat-ovn-light-zu-2zs
arnestrickmann Mar 20, 2026
e13ce3b
adjust macOS traffic light position and titlebar padding
janburzinski Mar 20, 2026
219f2c4
fix(pty): restore cwd in buildRemoteInitKeystrokes for SSH sessions
arnestrickmann Mar 20, 2026
da7005a
Merge pull request #1555 from generalaction/emdash/workspace-provider
arnestrickmann Mar 20, 2026
9d20de8
fix(git): route git operations through SSH for workspace provider tasks
arnestrickmann Mar 20, 2026
9ebc48c
feat(mcp): add branded provider logos and agent icons to MCP server c…
janburzinski Mar 20, 2026
0b457cf
0.4.38
arnestrickmann Mar 20, 2026
03a8e60
0.4.39
arnestrickmann Mar 20, 2026
a0eee37
feat(mcp): add DeepWiki (Cognition) to MCP catalog with icon
janburzinski Mar 20, 2026
6a4b7d2
fix: parse SVG style attribute as object instead of string
janburzinski Mar 20, 2026
081b594
kimi made this way too complicated lol
janburzinski Mar 20, 2026
319e202
refactor(mcp): remove unused providers prop from McpServerCard
janburzinski Mar 20, 2026
1dd6be4
refactor(workspace): replace hard timeout with warning for provisioning
arnestrickmann Mar 20, 2026
750fb45
Merge pull request #1559 from generalaction/emdash/refactor-workspace…
arnestrickmann Mar 20, 2026
2486fda
fix(git): add SSH CLI fallback and fix cache key collision for worksp…
arnestrickmann Mar 20, 2026
3c9eb78
Merge pull request #1558 from generalaction/emdash/workspace-provider
arnestrickmann Mar 21, 2026
59b3f0c
feat(settings): add toggle to disable auto-close linked issues on PR …
arnestrickmann Mar 21, 2026
75c4458
Merge pull request #1560 from generalaction/emdash/feat-professionall…
arnestrickmann Mar 21, 2026
3263a4f
chore(titlebar): replace inline perf chip padding with Tailwind classes
janburzinski Mar 21, 2026
07b71a9
fix: remove backdrop blur from dialog overlay
janburzinski Mar 21, 2026
91240fb
feat: add Automations feature - scheduled recurring agent tasks
janburzinski Mar 21, 2026
f22e6d7
style: polish Automations UI with agent icons, repo icons, and refine…
janburzinski Mar 21, 2026
142c9da
fix: wire up automation triggers to actually create tasks
janburzinski Mar 21, 2026
d351fc9
fix: auto-start agent on automation trigger without manual navigation
janburzinski Mar 21, 2026
a9ee04d
fix: run automations fully in background + add worktree option
janburzinski Mar 21, 2026
67292a4
fix: clear automations view when navigating to tasks from sidebar
janburzinski Mar 21, 2026
5af17c8
feat: live running state UI for automations
janburzinski Mar 21, 2026
822cf23
feat: automation tasks section with stop/delete, fix stuck running state
janburzinski Mar 21, 2026
eead62b
Merge pull request #1561 from janburzinski/fix/skills-page-blur
arnestrickmann Mar 21, 2026
d14f1d2
refactor: overhaul automations UI and service layer
janburzinski Mar 22, 2026
ab72d3d
fix: address CodeRabbit review comments
janburzinski Mar 22, 2026
b8b1a77
refactor: replace AutomationModal with inline create, improve automat…
janburzinski Mar 22, 2026
d9336d7
fix: validate automation.agentId against PROVIDER_IDS before makePtyI…
janburzinski Mar 22, 2026
633958f
fix: match automations UI sizing to MCP/Skills pages
janburzinski Mar 23, 2026
7590d21
feat(db): add automations and automation_run_logs tables
janburzinski Mar 23, 2026
45434fd
refactor(automations): migrate AutomationsService from JSON files to …
janburzinski Mar 23, 2026
65364c1
refactor(automations): switch to pull-based trigger delivery
janburzinski Mar 23, 2026
2b1e12d
fix: use env(titlebar-area-x) to prevent PerformanceChip overlapping …
janburzinski Mar 23, 2026
26ab5f3
fix: suppress EPIPE during PTY shutdown on Windows (fixes #1192)
saschabuehrle Mar 23, 2026
04cbe6c
refactor: extract shared AgentTooltipRow and add info tooltips to Age…
arnestrickmann Mar 23, 2026
d670790
fix(pty): scope pipe error suppression to Windows
arnestrickmann Mar 23, 2026
7ca476f
Merge pull request #1566 from generalaction/emdash/feat-info-agent-pr…
arnestrickmann Mar 23, 2026
9711e03
Merge pull request #1565 from saschabuehrle/fix/issue-1192
arnestrickmann Mar 23, 2026
07e6c77
feat(settings): add toggle for titlebar resource monitor
arnestrickmann Mar 23, 2026
e22744d
Merge pull request #1537 from janburzinski/feature/resource-monitor
arnestrickmann Mar 23, 2026
35300fd
0.4.40
arnestrickmann Mar 23, 2026
e0a4bf2
Merge pull request #1556 from janburzinski/feat/mcp-provider-logos
arnestrickmann Mar 23, 2026
d830df0
Merge pull request #1521 from memwey/main
arnestrickmann Mar 23, 2026
ad46d9e
Merge branch 'main' into fix-1501
arnestrickmann Mar 23, 2026
8b7a7ad
feat(skills): add bundled brand icons to skills page
janburzinski Mar 23, 2026
8992dea
Merge pull request #1505 from prath47/fix-1501
arnestrickmann Mar 23, 2026
122a864
feat(skills): show GitHub avatars for skills.sh skill owners
janburzinski Mar 23, 2026
30cd1a1
fix(skills): harden icon fallback chain
janburzinski Mar 23, 2026
cdcbe52
feat(skills): keyword-based icon matching for installed local skills
janburzinski Mar 23, 2026
74b3d38
refactor(skills): extract shared SkillIconRenderer, deduplicate icon …
janburzinski Mar 23, 2026
86587a4
docs: update README provider list and links
arnestrickmann Mar 23, 2026
7f124b5
feat(changelog): add hero image support and GitHub Releases fallback
arnestrickmann Mar 23, 2026
b75ebef
Merge pull request #1567 from janburzinski/feature/skills-page-icons
arnestrickmann Mar 23, 2026
782df2c
Merge pull request #1568 from generalaction/emdash/readme-2sp
arnestrickmann Mar 23, 2026
dc6c982
Merge pull request #1569 from generalaction/emdash/changelog-componen…
arnestrickmann Mar 23, 2026
0bb78a0
docs: add automations guide and scheduling caveats
arnestrickmann Mar 24, 2026
fb21e0b
fix: wait for projects to load before draining automation triggers
janburzinski Mar 24, 2026
b94ab0e
fix: pass remote SSH connection to ptyStartDirect for automation trig…
janburzinski Mar 24, 2026
cbb7e98
Merge remote-tracking branch 'origin/main' into feature/automations
janburzinski Mar 24, 2026
52ff0a7
fix: apply global autoApproveByDefault setting to existing tasks
janburzinski Mar 24, 2026
0973887
fix: address CodeRabbit PR review feedback
janburzinski Mar 24, 2026
03b32cf
feat(open-in): add Foot terminal emulator support
ratierd Mar 24, 2026
0ab02c2
fix: ensure POSIX compatibility for remote shell commands
sairus2k Mar 24, 2026
3c31b00
feat(open-in): add Windsurf editor support
ubuntudroid Mar 24, 2026
520e97f
feat(lifecycle): add stop script to config schema and UI
kchung Mar 24, 2026
7d291b6
feat(lifecycle): execute stop script on run phase stop
kchung Mar 24, 2026
cd1cc3b
test(lifecycle): add tests for stop script execution
kchung Mar 24, 2026
b4f1116
docs: add stop script to project config and agent docs
kchung Mar 24, 2026
dbc65b6
fix(lifecycle): allow stop without projectPath
kchung Mar 24, 2026
9bfb4fd
fix(lifecycle): guard stale stop PTY in onData callback
kchung Mar 24, 2026
de9cdd4
feat(open-in): filter unsupported apps for remote SSH workspaces
arnestrickmann Mar 24, 2026
d4e51a8
Merge pull request #1580 from generalaction/emdash/datadog-fix-193
arnestrickmann Mar 24, 2026
3e059ff
Merge pull request #1577 from ubuntudroid/sven/feat-windsurf-support-26g
arnestrickmann Mar 25, 2026
ab16edc
Merge pull request #1572 from janburzinski/fix/claude-auto-approve-sa…
arnestrickmann Mar 25, 2026
ac9df32
feat: support configurable dev server port
kchung Mar 25, 2026
299e549
refactor(lifecycle): increase timeout duration to 30 seconds
kchung Mar 25, 2026
51a97e9
feat: add event-based automation triggers for GitHub PRs, issues and …
janburzinski Mar 25, 2026
07edf62
feat: add GitHub Events API with ETag caching
janburzinski Mar 25, 2026
80e8e14
feat: optimize automation trigger polling
janburzinski Mar 25, 2026
e8c2a10
feat: add skipPrePush to PR creation, parallelize content generation
janburzinski Mar 25, 2026
732d647
perf: parallelize git fetch with base branch resolution in PR generation
janburzinski Mar 25, 2026
6e8dd36
perf: reduce task creation preflight timeout from 10s to 5s
janburzinski Mar 25, 2026
5a9bd26
fix: address CodeRabbit review feedback
janburzinski Mar 25, 2026
5513884
fix(sidebar): ensure solid background on mobile sidebar in dark/navy …
janburzinski Mar 25, 2026
6268bdf
fix(sidebar): replace !bg-background override with responsive dark class
janburzinski Mar 25, 2026
9c21165
Merge pull request #1590 from janburzinski/emdash/feat-wir-haben-gera…
arnestrickmann Mar 25, 2026
6d320ad
feat(ssh): add editable project name field to remote project modal
arnestrickmann Mar 25, 2026
820dbf7
Merge pull request #1592 from generalaction/emdash/dbd-5k8
arnestrickmann Mar 25, 2026
a6e8f7e
Merge pull request #1574 from ratierd/feat/foot-terminal-support
arnestrickmann Mar 25, 2026
c085e57
Merge pull request #1575 from sairus2k/asav/tiny-dingos-judge-88f
arnestrickmann Mar 25, 2026
a792e6e
0.4.41
arnestrickmann Mar 25, 2026
04218eb
Merge pull request #1579 from kchung/chung/feat-hhow-codebase-6bi
arnestrickmann Mar 25, 2026
c815629
Merge pull request #1581 from kchung/chung/feat-configurable-dev-port
arnestrickmann Mar 25, 2026
e9eda57
fix(tasks): skip activateProjectView if already selected
kchung Mar 25, 2026
37bf1ab
fix(branch-select): cap at 50 items for large repos
kchung Mar 25, 2026
96fdcd3
chore(branch-select): use plain periods instead of ellipsis character
kchung Mar 26, 2026
20f2de3
perf(branch-select): fix early termination when search term is active
kchung Mar 26, 2026
0c7aa6d
fix(branch-select): prevent SelectItem hover from stealing focus
kchung Mar 26, 2026
a115f3b
chore(branch-select): simplify comment on selected value pinning
kchung Mar 26, 2026
174a2df
chore(branch-select): unexport MAX_DISPLAYED_OPTIONS
kchung Mar 26, 2026
f91ffb0
chore(branch-select): remove section divider comments from tests
kchung Mar 26, 2026
ea288a5
feat(terminal): add Option as Meta key setting for macOS
kchung Mar 26, 2026
6aeed7e
Merge pull request #1594 from kchung/chung/perf-new-task
arnestrickmann Mar 26, 2026
59c117a
Merge pull request #1596 from kchung/chung/meta-key
arnestrickmann Mar 26, 2026
031d7a5
feat(shared): add IntegrationId types and expand TriggerType
janburzinski Mar 26, 2026
4e5de52
feat(main): integrations statusMap IPC endpoint
janburzinski Mar 26, 2026
785aacd
feat(automations): add Jira, GitLab, Forgejo, and Plain trigger fetchers
janburzinski Mar 26, 2026
e44dc0e
refactor(automations-ipc): extract named input validator helpers
janburzinski Mar 26, 2026
7775d2f
feat(renderer): show integration connection status in automations UI
janburzinski Mar 26, 2026
58f8208
fix(nix): fix Nix flake package build for NixOS
ratierd Mar 26, 2026
e4ad2d8
fix: improve styling for left sidebar on small screens (when overlayed)
alxwrd Mar 26, 2026
cb37d1b
style(automations): render agent logos without muted icon background
arnestrickmann Mar 27, 2026
9dcb801
Merge pull request #1602 from ratierd/fix/nix-flake-packaging
arnestrickmann Mar 27, 2026
988124c
fix(settings): improve padding for smaller screens
arnestrickmann Mar 27, 2026
e9b66a0
feat(notifications): add sound profile setting with Gilfoyle bitcoin …
arnestrickmann Mar 27, 2026
409273d
Merge pull request #1607 from generalaction/emdash/feat-smaller-scree…
arnestrickmann Mar 27, 2026
ce5884f
Merge remote-tracking branch 'refs/remotes/origin/main' into emdash/a…
arnestrickmann Mar 27, 2026
65ee9ff
feat(notifications): make gilfoyle alert the default sound profile
arnestrickmann Mar 27, 2026
a97359b
feat(notifications): make gilfoyle the default alert sound
arnestrickmann Mar 27, 2026
1ba83bf
Merge pull request #1608 from generalaction/emdash/alert-6u8
arnestrickmann Mar 27, 2026
36f3032
style(automations): use neutral run log text with colored status badges
arnestrickmann Mar 27, 2026
bf986da
fix(automations): show tooltip for disabled run-now action
arnestrickmann Mar 27, 2026
13490f6
feat(gitlab): add MR fetching support
janburzinski Mar 27, 2026
3acc53f
feat(automations): wire up GitLab MR fetching
janburzinski Mar 27, 2026
e2b6a95
feat(automations): add Auto Fix CI example trigger
janburzinski Mar 27, 2026
0d4206c
feat(open-in): add PhpStorm to open-in apps
jeremyhalin Mar 27, 2026
9a16d57
Merge pull request #1610 from jeremyhalin/feat/open-in-phpstorm
arnestrickmann Mar 27, 2026
d197ba5
Merge pull request #1603 from alxwrd/feature/sidebar-transparency-6wy
arnestrickmann Mar 27, 2026
98076ea
perf(git): optimize git status for large monorepos
kchung Mar 27, 2026
c18ded4
perf(git): use --untracked-files=all for status
kchung Mar 27, 2026
c7dbfc8
0.4.42
arnestrickmann Mar 28, 2026
fc760a2
fix: prevent terminal from stealing focus from text inputs
arnestrickmann Mar 28, 2026
668cf9b
Merge pull request #1615 from generalaction/emdash/hai-fix-20v
arnestrickmann Mar 28, 2026
bd7db0f
fix(opencode): preserve config when updating MCP
jasperan Mar 28, 2026
6c1ef45
fix(pty): preserve utf-8 terminal output
iodic Mar 24, 2026
6c7d5fe
test: add React Testing Library and jsdom for component tests
kchung Mar 28, 2026
cd98ed1
chore(terminal): add aria-labels to terminal settings switches
kchung Mar 28, 2026
5e509fc
test(terminal): add component tests for TerminalSettingsCard
kchung Mar 28, 2026
9b252b9
test: import jest-dom vitest types in test setup
kchung Mar 28, 2026
8e1a378
fix(ssh): detect fish prompts without timeout fallback
jasperan Mar 28, 2026
125c5ca
fix(shell): normalize mixed utf-8 locale env
iodic Mar 28, 2026
7cf19cf
fix(locale): preserve utf-8 locale preference
iodic Mar 28, 2026
55fbc32
chore: update pull request template
kchung Mar 28, 2026
649a409
chore: remove unnecessary checks
kchung Mar 28, 2026
1e3cf49
fix: flush lifecycle fallback PTY output on close
iodic Mar 28, 2026
2f1a8aa
fix(mcp): clarify partial write failures
jasperan Mar 28, 2026
4a188ff
fix: normalize PTY locale env overrides
iodic Mar 28, 2026
024d78f
fix: change default notification sound profile from gilfoyle to default
arnestrickmann Mar 28, 2026
a2ff26f
Merge pull request #1628 from generalaction/emdash/feat-gilfoyle-bitc…
arnestrickmann Mar 28, 2026
a7f0849
0.4.43
arnestrickmann Mar 28, 2026
973a965
Merge pull request #1627 from kchung/patch-1
arnestrickmann Mar 29, 2026
7d32559
Merge pull request #1613 from kchung/chung/optimize-git-status
arnestrickmann Mar 29, 2026
3528eb9
ff for automations
arnestrickmann Mar 29, 2026
f87ae52
fix(opencode): show spinner while tasks are running
jasperan Mar 29, 2026
42e634a
Merge pull request #1623 from jasperan/fix/1616-opencode-mcp-preserve…
arnestrickmann Mar 29, 2026
b1213c6
Merge pull request #1630 from jasperan/fix/1488-opencode-spinner
arnestrickmann Mar 29, 2026
4cb187d
Merge pull request #1622 from jasperan/fix/1597-ssh-fish-prompt-detec…
arnestrickmann Mar 29, 2026
8c03a5d
Merge pull request #1620 from kchung/react-testing
arnestrickmann Mar 29, 2026
e78b862
Merge pull request #1626 from iodic/fix/utf8-pty-render
arnestrickmann Mar 29, 2026
82381cf
fix: address CodeRabbit review findings
janburzinski Mar 28, 2026
b0b8e9f
feat: add sentry integration for automations
janburzinski Mar 29, 2026
9b68d15
fix: address latest CodeRabbit review feedback
janburzinski Mar 29, 2026
9fbca48
refactor: replace 'not connected' with 'Setup required' badge in auto…
janburzinski Mar 29, 2026
3cfe5fd
Merge pull request #1563 from janburzinski/feature/automations
arnestrickmann Mar 29, 2026
4c26e23
fix(locale): avoid macOS startup crash from C.UTF-8 fallback
janburzinski Mar 29, 2026
a410742
test(shellEnv): align fallbackUtf8Locale with platform behavior
janburzinski Mar 29, 2026
99e518c
Merge pull request #1632 from janburzinski/fix/macos-prod-crash-local…
arnestrickmann Mar 29, 2026
c286f1e
0.4.44
arnestrickmann Mar 29, 2026
726bc06
0.4.45
arnestrickmann Mar 29, 2026
78f1160
fix: resolve 15-second SSH delay with fish shell prompt detection (#1…
jasperan Mar 29, 2026
ad446aa
fix: align test description with emitted prompt token
jasperan Mar 29, 2026
bd5a5ec
fix: apply branch prefix to remote worktree creation
ThibautGeriz Mar 30, 2026
705b737
fix(locale): initialize shell environment before Electron loads to pr…
janburzinski Mar 30, 2026
52f344c
fix(logger): handle EPIPE errors when stdout/stderr is piped to early…
janburzinski Mar 30, 2026
680a5e8
Merge pull request #1631 from jasperan/fix/1597-fish-shell-prompt-det…
arnestrickmann Mar 30, 2026
de85aa3
fix(locale): add UTF-8 locale to macOS app bundle and log shell env e…
janburzinski Mar 30, 2026
e76b52f
Merge pull request #1640 from janburzinski/fix/macos-prod-crash-local…
arnestrickmann Mar 30, 2026
175a507
Merge pull request #1639 from ThibautGeriz/fix/remote-worktree-branch…
arnestrickmann Mar 30, 2026
a6648b1
fix: show PR info and CI checks for fork branches
ubuntudroid Mar 30, 2026
e429eff
fix: filter fork PR lookup by owner to avoid same-branch-name collisions
ubuntudroid Mar 30, 2026
d9fdebe
fix: apply fork detection to SSH/remote path in git:get-check-runs
ubuntudroid Mar 30, 2026
fc5ba4c
fix(claude): pass CLAUDE_CONFIG_DIR to subprocess and fix initial PTY…
ubuntudroid Mar 31, 2026
e46aa59
test(shellEnv): add tests for CLAUDE_CONFIG_DIR detection
ubuntudroid Mar 31, 2026
02371c2
fix: address coderabbit review comments
ubuntudroid Mar 31, 2026
87e8053
fix(shellEnv): treat whitespace-only CLAUDE_CONFIG_DIR as unset
ubuntudroid Mar 31, 2026
5a2089f
feat: add Forge (forgecode.dev) as a provider
ratierd Apr 1, 2026
6a89f67
Merge pull request #1652 from ratierd/feat/add-forge-support-2ib
arnestrickmann Apr 1, 2026
a31f064
Merge pull request #1644 from ubuntudroid/sven/fix-show-fork-pr-info-2w3
arnestrickmann Apr 4, 2026
032b18d
Merge pull request #1647 from ubuntudroid/sven/fix-claude-statusline-…
arnestrickmann Apr 6, 2026
eb98f91
0.4.46
arnestrickmann Apr 6, 2026
91d47f3
every-radios-sort-9ou
arnestrickmann Apr 6, 2026
85662f0
feat: add beta badge to automations docs page and sidebar
arnestrickmann Apr 6, 2026
2f312c5
fix: persist sidebar folder collapse state
janburzinski Apr 6, 2026
e74a1bd
fix: persist folder collapsed state across restarts
janburzinski Apr 6, 2026
91e458f
feat: add 'Reveal in Finder' and 'Open in Terminal' to folder context…
janburzinski Apr 6, 2026
d67be83
cuddly-llamas-eat-13d
arnestrickmann Apr 6, 2026
a0910ef
fix(claude): sanitize CLAUDE_CONFIG_DIR before forwarding
arnestrickmann Apr 6, 2026
6701eb0
Merge pull request #1676 from generalaction/emdash/feat-user-release-…
arnestrickmann Apr 6, 2026
2f32cbf
Merge pull request #1675 from janburzinski/feature/open-in-finder
arnestrickmann Apr 6, 2026
fe13d49
chore: format code
arnestrickmann Apr 6, 2026
d79b3d1
Merge pull request #1674 from janburzinski/fix/sidebar-folder-collapse
arnestrickmann Apr 6, 2026
eac6f0a
Merge pull request #1673 from generalaction/emdash/feat-automations-b…
arnestrickmann Apr 6, 2026
0074bec
0.4.47
arnestrickmann Apr 6, 2026
3b7c0b0
cozy-ideas-see-425
arnestrickmann Apr 6, 2026
c797ed5
Merge pull request #1677 from generalaction/emdash/feat-padding-expan…
arnestrickmann Apr 6, 2026
e26dfa5
feat: add semantic settings search
janburzinski Apr 7, 2026
17bbcfb
refactor: simplify semantic settings search code
janburzinski Apr 7, 2026
bbe9859
fix: address CodeRabbit review feedback
janburzinski Apr 7, 2026
dfd8a7d
style: prettier format useSettingsSearch
janburzinski Apr 7, 2026
d3b82c5
docs: clarify Agents tab comment with tabId
janburzinski Apr 7, 2026
eb70f81
fix(test): widen integrationIds Set type in settings search index test
janburzinski Apr 7, 2026
cd5d87e
update license from MIT to apache 2.0
rabanspiegel Apr 8, 2026
ad0b373
Merge pull request #1691 from generalaction/emdash/update-to-apache-l…
rabanspiegel Apr 8, 2026
8b54907
fix docs build: update fumadocs-core import path
rabanspiegel Apr 8, 2026
79e62d5
gitignore tsbuildinfo in docs
rabanspiegel Apr 8, 2026
c649863
Merge pull request #1692 from generalaction/emdash/docs-9p8b8
rabanspiegel Apr 8, 2026
70ac89f
Merge pull request #1687 from generalaction/feature/semantic-settings…
arnestrickmann Apr 9, 2026
5b3a560
fix: handle scheduled tasks during system sleep/resume
janburzinski Apr 9, 2026
6c0ed1d
Fix missed scheduled tasks during sleep
janburzinski Apr 9, 2026
5d1dd9e
Extract getInFlightRuns helper to reduce duplication in tests
janburzinski Apr 9, 2026
44ff202
Merge pull request #1698 from generalaction/fix/missed-scheduled-task…
arnestrickmann Apr 9, 2026
bc2050a
refactor(github): decouple from gh CLI authentication
janburzinski Apr 11, 2026
f8fcba5
Decouple GitHub CLI from GitHub integration
janburzinski Apr 11, 2026
39db6e7
feat(github): decouple GH CLI state from prop and throw on clear fail…
janburzinski Apr 11, 2026
401b161
Merge pull request #1707 from generalaction/fix/github-decouple-gh-cli
arnestrickmann Apr 11, 2026
b35f15c
improve: git commit error messages and add skip-hooks option
janburzinski Apr 11, 2026
b5c85b4
fix: improve error message handling and timer ref type
janburzinski Apr 11, 2026
c8d3069
fix: pass correct subdirectory path for remote file tree expansion
homebysix Apr 11, 2026
8967271
Add worktree path tracking and GitHub branch support
janburzinski Apr 12, 2026
d67bbaa
fix: ignore (unknown) default branch from git remote show origin
janburzinski Apr 12, 2026
4f116b7
Merge pull request #1709 from generalaction/fix/full-commit-error-mes…
arnestrickmann Apr 12, 2026
2e4a4ab
Merge pull request #1711 from homebysix/patch-1
arnestrickmann Apr 12, 2026
d1b00e0
Merge pull request #1713 from generalaction/fix/empty-github-repo-err…
arnestrickmann Apr 12, 2026
033a690
feat: add app badge count for unread tasks (#1722)
homebysix Apr 14, 2026
67ab3a8
0.4.48
arnestrickmann Apr 14, 2026
11568fd
Migrate legacy gh CLI auth token into keychain
janburzinski Apr 14, 2026
f947346
fix(github): serialize legacy token migration with logout
janburzinski Apr 14, 2026
18ba446
test: assert logout is blocked until token store release
janburzinski Apr 14, 2026
13bb3ea
fix(github): resolve auth state lock build error
arnestrickmann Apr 14, 2026
4f84815
Merge pull request #1724 from generalaction/fix/pr-sidebar-links-broken
arnestrickmann Apr 14, 2026
6e2acb1
feat(skills): add MiniMax-AI/cli as default skill tap
Apr 15, 2026
3bfd9ef
Merge pull request #1726 from octo-patch/feat/tap-minimax-cli
arnestrickmann Apr 15, 2026
a9256f1
Merge pull request #1723 from homebysix/ej/app-badge-count
arnestrickmann Apr 15, 2026
aeb742b
feat: add beta CTAs to changelog UI
arnestrickmann Apr 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 5 additions & 0 deletions .factory/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"enabledPlugins": {
"core@factory-plugins": true
}
}
28 changes: 28 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
## Summary
Briefly describe what this PR does and why

## Fixes
If this PR fixes an issue, mention it like: Fixes #123

## Snapshot
Add screenshots, GIFs, or videos demonstrating the changes (if applicable)

## Type of change

- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] Chore (refactoring code, technical debt, workflow improvements)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] Refactor (does not change functionality, e.g. code style improvements, linting)
- [ ] This change requires a documentation update

## Mandatory Tasks

- [ ] I have self-reviewed the code

## Checklist

- [ ] I have read the contributing guide
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have checked if my PR needs changes to the documentation
- [ ] I have added tests that prove my fix is effective or that my feature works
346 changes: 31 additions & 315 deletions AGENTS.md

Large diffs are not rendered by default.

212 changes: 191 additions & 21 deletions LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,191 @@
MIT License

Copyright (c) 2025 General Action, Inc.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.

"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.

"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.

"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:

(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and

(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and

(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and

(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.

You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS

Copyright 2025 General Action, Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
21 changes: 11 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

<br />

[![MIT License](https://img.shields.io/badge/License-MIT-555555.svg?labelColor=333333&color=666666)](./LICENSE.md)
[![Apache 2.0 License](https://img.shields.io/badge/License-Apache_2.0-555555.svg?labelColor=333333&color=666666)](./LICENSE.md)
[![Downloads](https://img.shields.io/github/downloads/generalaction/emdash/total?labelColor=333333&color=666666)](https://github.com/generalaction/emdash/releases)
[![GitHub Stars](https://img.shields.io/github/stars/generalaction/emdash?labelColor=333333&color=666666)](https://github.com/generalaction/emdash)
[![Last Commit](https://img.shields.io/github/last-commit/generalaction/emdash?labelColor=333333&color=666666)](https://github.com/generalaction/emdash/commits/main)
Expand Down Expand Up @@ -33,7 +33,7 @@

Emdash is a provider-agnostic desktop app that lets you run multiple coding agents in parallel, each isolated in its own git worktree, either locally or over SSH on a remote machine. We call it an Agentic Development Environment (ADE).

Emdash supports 22 (and growing) CLI agents, such as Claude Code, Qwen Code, Amp, and Codex. Users can directly pass Linear, GitHub, or Jira tickets to an agent, review diffs, test changes, create PRs, see CI/CD checks, and merge.
Emdash supports 23 CLI agents, including Claude Code, Qwen Code, Hermes Agent, Amp, and Codex. Users can directly pass Linear, GitHub, or Jira tickets to an agent, review diffs, test changes, create PRs, see CI/CD checks, and merge.

**Develop on remote servers via SSH**

Expand Down Expand Up @@ -74,29 +74,30 @@ Connect to remote machines via SSH/SFTP to work with remote codebases. Emdash su

### Supported CLI Providers

Emdash currently supports twenty-two CLI providers and we are adding new providers regularly. If you miss one, let us know or create a PR.
Emdash currently supports 23 CLI providers, and we are adding new ones regularly. If you miss one, let us know or create a PR.

| CLI Provider | Status | Install |
| ----------- | ------ | ----------- |
| [Amp](https://ampcode.com/manual) | ✅ Supported | <code>npm install -g @sourcegraph/amp@latest</code> |
| [Amp](https://ampcode.com/manual#install) | ✅ Supported | <code>npm install -g @sourcegraph/amp@latest</code> |
| [Auggie](https://docs.augmentcode.com/cli/overview) | ✅ Supported | <code>npm install -g @augmentcode/auggie</code> |
| [Autohand Code](https://autohand.ai/code/) | ✅ Supported | <code>npm install -g autohand-cli</code> |
| [Charm](https://github.com/charmbracelet/crush) | ✅ Supported | <code>npm install -g @charmland/crush</code> |
| [Claude Code](https://docs.anthropic.com/claude/docs/claude-code) | ✅ Supported | <code>curl -fsSL https://claude.ai/install.sh &#124; bash</code> |
| [Cline](https://docs.cline.bot/cline-cli/overview) | ✅ Supported | <code>npm install -g cline</code> |
| [Codebuff](https://www.codebuff.com/docs/help/quick-start) | ✅ Supported | <code>npm install -g codebuff</code> |
| [Codex](https://developers.openai.com/codex/cli/) | ✅ Supported | <code>npm install -g @openai/codex</code> |
| [Codex](https://github.com/openai/codex) | ✅ Supported | <code>npm install -g @openai/codex</code> |
| [Continue](https://docs.continue.dev/guides/cli) | ✅ Supported | <code>npm i -g @continuedev/cli</code> |
| [Cursor](https://cursor.com/cli) | ✅ Supported | <code>curl https://cursor.com/install -fsS &#124; bash</code> |
| [Droid](https://docs.factory.ai/cli/getting-started/quickstart) | ✅ Supported | <code>curl -fsSL https://app.factory.ai/cli &#124; sh</code> |
| [Gemini](https://github.com/google-gemini/gemini-cli) | ✅ Supported | <code>npm install -g @google/gemini-cli</code> |
| [GitHub Copilot](https://docs.github.com/en/copilot/how-tos/set-up/installing-github-copilot-in-the-cli) | ✅ Supported | <code>npm install -g @github/copilot</code> |
| [Goose](https://github.com/block/goose) | ✅ Supported | <code>curl -fsSL https://github.com/block/goose/releases/download/stable/download_cli.sh &#124; bash</code> |
| [GitHub Copilot](https://docs.github.com/en/copilot/how-tos/set-up/install-copilot-cli) | ✅ Supported | <code>npm install -g @github/copilot</code> |
| [Goose](https://block.github.io/goose/docs/quickstart/) | ✅ Supported | <code>curl -fsSL https://github.com/block/goose/releases/download/stable/download_cli.sh &#124; bash</code> |
| [Hermes Agent](https://hermes-agent.nousresearch.com/docs/) | ✅ Supported | <code>curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh &#124; bash</code> |
| [Kilocode](https://kilo.ai/docs/cli) | ✅ Supported | <code>npm install -g @kilocode/cli</code> |
| [Kimi](https://www.kimi.com/code/docs/en/kimi-cli/guides/getting-started.html) | ✅ Supported | <code>uv tool install --python 3.13 kimi-cli</code> |
| [Kiro](https://kiro.dev/docs/cli/) | ✅ Supported | <code>curl -fsSL https://cli.kiro.dev/install &#124; bash</code> |
| [Kimi](https://www.kimi.com/code/docs/en/kimi-cli/guides/getting-started.html) | ✅ Supported | <code>uv tool install kimi-cli</code> |
| [Kiro (AWS)](https://kiro.dev/docs/cli/) | ✅ Supported | <code>curl -fsSL https://cli.kiro.dev/install &#124; bash</code> |
| [Mistral Vibe](https://github.com/mistralai/mistral-vibe) | ✅ Supported | <code>curl -LsSf https://mistral.ai/vibe/install.sh &#124; bash</code> |
| [OpenCode](https://opencode.ai/docs/) | ✅ Supported | <code>npm install -g opencode-ai</code> |
| [OpenCode](https://opencode.ai/docs/cli/) | ✅ Supported | <code>npm install -g opencode-ai</code> |
| [Pi](https://github.com/badlogic/pi-mono/tree/main/packages/coding-agent) | ✅ Supported | <code>npm install -g @mariozechner/pi-coding-agent</code> |
| [Qwen Code](https://github.com/QwenLM/qwen-code) | ✅ Supported | <code>npm install -g @qwen-code/qwen-code</code> |
| [Rovo Dev](https://support.atlassian.com/rovo/docs/install-and-run-rovo-dev-cli-on-your-device/) | ✅ Supported | <code>acli rovodev auth login</code> |
Expand Down
29 changes: 29 additions & 0 deletions agents/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Agent Docs

This directory is the system of record for agent-facing repo guidance. Keep topic pages small, specific, and mechanically checkable where possible.

## Recommended Reading Order

1. `quickstart.md`
2. `architecture/overview.md`
3. the task-specific page for the area you are changing

## Directory Layout

- `architecture/`
- system structure and major code ownership boundaries
- `workflows/`
- task-oriented procedures like testing, worktrees, and remote development
- `integrations/`
- provider, MCP, and external service guidance
- `risky-areas/`
- places where incorrect changes are expensive
- `conventions/`
- coding contracts and repo rules

## Maintenance Rules

- Prefer one page per concrete topic.
- Avoid volatile counts unless you can verify them cheaply.
- Link to the source-of-truth file paths.
- Update the smallest relevant page instead of expanding `AGENTS.md`.
Loading
Loading