Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
396 commits
Select commit Hold shift + click to select a range
fe3142a
fix(desktop): enable modal focus trap on v1 + v2 workspace dialogs (#…
Kitenite Apr 13, 2026
8f4480b
feat(desktop): modifier+click in file tree — external editor / new ta…
saddlepaddle Apr 13, 2026
83c27a8
fix(desktop): hide v2 sidebar LOC badge when workspace has no changes…
saddlepaddle Apr 13, 2026
5912c88
fix(desktop): v2 file tree no longer waits on git.getStatus in shared…
saddlepaddle Apr 13, 2026
6ff4ac8
feat(desktop): focus neighbor workspace after v2 delete (#3401)
saddlepaddle Apr 13, 2026
7893007
fix(desktop): keyboard settings — Ctrl bindings, event.code unificati…
Kitenite Apr 13, 2026
102633c
chore(desktop): bump version to 1.5.1 (#3402)
Kitenite Apr 13, 2026
d656b7e
fix(desktop): match VS Code terminal clipboard handling (#3415)
Kitenite Apr 13, 2026
31fcf19
[codex] fix v1 split pane startup sizing (#3416)
Kitenite Apr 13, 2026
039edf2
feat(desktop): Cmd+Alt+Arrow moves focus between v2 panes (#3403)
saddlepaddle Apr 13, 2026
b18a00c
fix(desktop): make v2 right sidebar toggle reactive to open state (#3…
saddlepaddle Apr 13, 2026
3dd1de2
feat(desktop): v2 diff viewer opens in its own tab + collapsed tab/pa…
saddlepaddle Apr 13, 2026
b42a114
fix(desktop): let app hotkeys fire inside CodeMirror (cmd+w in file e…
Kitenite Apr 13, 2026
c925f4d
feat(desktop/hotkeys): unbound defaults + restore prev/next tab & wor…
saddlepaddle Apr 13, 2026
bb12c09
chore(desktop): bump version to 1.5.3 (#3419)
Kitenite Apr 13, 2026
47efa73
fix(desktop): make pending workspace failure and update-required erro…
Kitenite Apr 13, 2026
a3e34bf
fix(desktop): restore cmd+click requirement for v1 terminal file link…
Kitenite Apr 14, 2026
be9e000
fix(desktop): drive tray menu off events, fetch real org name (#3458)
saddlepaddle Apr 14, 2026
2c24d93
feat(desktop): paginated branch picker with checkout + open actions (…
Kitenite Apr 14, 2026
93140d9
fix(mcp): accept MCP resource URL as valid OAuth audience (#3459)
saddlepaddle Apr 14, 2026
2bf1049
feat(desktop/hotkeys): v1 directional pane focus + best-effort v1 ove…
saddlepaddle Apr 14, 2026
9c7f5f4
chore(desktop): auto-restart host-service on bundle change in dev (#3…
Kitenite Apr 15, 2026
57557f8
fix(desktop): gate v2 workspace children on collection readiness (#3464)
saddlepaddle Apr 15, 2026
c5f791e
feat(v2): unify workspace delete through host-service (#3443)
Kitenite Apr 15, 2026
4ee2e61
fix(desktop): use native clipboard for copy path in v2 sidebar (#3462)
Kitenite Apr 15, 2026
87d6e93
feat(desktop): close settings with Escape key (#3466)
Kitenite Apr 15, 2026
1294a7d
feat(desktop/hotkeys): restore Cmd+Alt+Arrow for tab/workspace nav (#…
saddlepaddle Apr 15, 2026
1e23353
chore(desktop): bump version to 1.5.5 (#3473)
saddlepaddle Apr 15, 2026
de70163
feat(desktop): v2 review tab first pass — PR info, checks, comments (…
AviPeltz Apr 15, 2026
9fff075
fix(desktop): handle IME composition in new-workspace Enter handlers …
Kitenite Apr 15, 2026
1b7cb9c
fix(desktop): prevent "workspace not found" flash after v2 workspace …
Kitenite Apr 15, 2026
e4c1365
refactor(desktop): derive v2 base branch from git config (#3492)
Kitenite Apr 15, 2026
86e0170
feat(desktop): add Recently Viewed section to v2 Quick Open (#3488)
saddlepaddle Apr 15, 2026
c2e96c3
fix(desktop): bump electron-updater and recover from corrupt update c…
Kitenite Apr 16, 2026
ec45c78
fix(desktop): remove viewed checkboxes from v2 diff sidebar (#3480)
AviPeltz Apr 16, 2026
b0599bb
feat(desktop): v2 launch context composition (steps 1-5) (#3467)
Kitenite Apr 16, 2026
07c1ee0
fix(desktop): Cmd+O firing open-in twice on v1 workspace route (#3511)
Kitenite Apr 16, 2026
4a1f41a
chore(deps): upgrade tanstack/db + electric, drop durable-streams pat…
saddlepaddle Apr 16, 2026
c504a50
feat(desktop): v2 file editor — foundation, views, and stability pass…
saddlepaddle Apr 17, 2026
a3df489
feat(desktop): v2 PR checkout via widened checkout procedure (#3525)
Kitenite Apr 17, 2026
78b7dc8
feat(desktop): promote "Create Section Below" to top-level on workspa…
saddlepaddle Apr 17, 2026
064db9f
feat(desktop): modifier-keyed v2 terminal file links + folder sidebar…
saddlepaddle Apr 18, 2026
34c9049
refactor(desktop): upgrade mastracode + simplify small-model naming (…
Kitenite Apr 18, 2026
0b62387
fix(desktop): wire drag-and-drop for files in v2 terminal panes (#3542)
saddlepaddle Apr 18, 2026
1979f4c
fix(desktop): v2 sidebar section count reflects visually grouped work…
saddlepaddle Apr 18, 2026
867ef87
fix(desktop): sync v1 terminal dimensions to backend on connect (#3545)
Kitenite Apr 18, 2026
bb657ec
fix(desktop): use --no-track instead of ^{commit} in v1 createWorktre…
Kitenite Apr 18, 2026
92b6701
fix(desktop): guard installUpdate against repeat clicks on macOS (#3549)
Kitenite Apr 18, 2026
5e8fc2d
fix(desktop): refresh v2 terminal link tooltip editor + nudge plain c…
saddlepaddle Apr 18, 2026
4ba8378
fix(desktop): trigger macOS Local Network permission on startup (#3551)
Kitenite Apr 18, 2026
88e4e01
feat(desktop): restore Tasks link in v2 dashboard sidebar (#3553)
saddlepaddle Apr 18, 2026
c8f34d8
fix(desktop): unblock v1 terminal user input during shell init (#3478…
Kitenite Apr 18, 2026
aa23ae3
fix(desktop): stop excessive lsof spawning from port scanner (#3372) …
Kitenite Apr 18, 2026
33848ba
security: bump drizzle-orm and better-auth to patch CVEs (#3560)
AviPeltz Apr 18, 2026
316d6f9
chore(desktop): bump version to 1.5.6 (#3555)
Kitenite Apr 18, 2026
872361c
fix(desktop): show spinner on install update button while pending (#3…
Kitenite Apr 18, 2026
1bf690b
fix(desktop): prevent keyboard shortcuts from leaking characters into…
joshuavial Apr 18, 2026
14370d9
feat(desktop): ⌘⇧L opens diff viewer in v2 workspace (#3556)
saddlepaddle Apr 18, 2026
56e6652
fix(desktop): recover terminal from non-monospace font crash (#3513) …
Kitenite Apr 18, 2026
37161eb
fix(chat): cut display polling to 4fps and restore query cache defaul…
Kitenite Apr 18, 2026
db0cd20
polish(marketing): hero font, pixel-dithered demos, testimonials, CTA…
Kitenite Apr 18, 2026
99a1ca6
Chat UX Enhancements (#3039)
michalkopanski Apr 18, 2026
9c40d2d
fix(electric-proxy): re-enable Workers observability (logs + traces) …
AviPeltz Apr 18, 2026
1b2fe39
docs: consolidated weekly changelog — 2026-04-20 (#3564)
Kitenite Apr 19, 2026
27e243b
fix: fall back to FETCH_HEAD when gh pr checkout fails for branch nam…
ruangustavo Apr 19, 2026
ae930df
feat(desktop): safer defaults for builtin terminal agent presets (#3546)
saddlepaddle Apr 20, 2026
1f2c093
feat(v2): minimal project create/import for workspaces (#3566)
Kitenite Apr 20, 2026
e2b9f42
feat(automations): scheduled agent runs (end-to-end) (#3576)
saddlepaddle Apr 20, 2026
444c9aa
feat(chat): add Opus 4.7 model option (#3579)
Kitenite Apr 20, 2026
1353b20
fix(qstash): pin client to QSTASH_URL so region isn't picked by DNS (…
saddlepaddle Apr 20, 2026
19c0d13
fix(desktop): restore terminal buffer after Unicode 11 activation (#3…
Kitenite Apr 20, 2026
b2278b1
fix(desktop): terminal paste auto-submits first line without brackete…
Kitenite Apr 20, 2026
487e43c
fix(desktop): dedupe DevicePicker in new-workspace modal and match Pr…
Kitenite Apr 20, 2026
316d086
fix(desktop): wire v2 sidebar project settings to settings route (#3592)
Kitenite Apr 20, 2026
bdd9a7a
docs(readme): add caddy trust step to setup (#3595)
Kitenite Apr 20, 2026
6e204ba
fix(automations): use _ and epoch ms in deduplicationId (#3591)
saddlepaddle Apr 20, 2026
daf0e16
fix(relay): terminal WS URL prefix + pin to one fly machine (#3599)
saddlepaddle Apr 21, 2026
4d32cf2
fix(desktop): resolve GitHub status for branch workspaces (#3295)
magerags Apr 21, 2026
6f92888
fix(desktop): wrap and truncate long workspace names in v1 hover card…
AviPeltz Apr 21, 2026
e964940
fix(desktop): stop spurious folder picker on settings → dashboard nav…
Kitenite Apr 21, 2026
ae6cf14
fix(desktop): unblock AI branch/workspace naming for OAuth-only users…
AviPeltz Apr 21, 2026
d19ba3d
fix(desktop): backfill legacy permissions for canary users exposed to…
saddlepaddle Apr 21, 2026
605c2ee
fix(host-service): v2 workspace git correctness (upstream, 3-dot, num…
saddlepaddle Apr 21, 2026
1e2302f
feat(desktop): infer project name from folder on import (#3605)
Kitenite Apr 21, 2026
f175be4
fix(desktop): don't nuke host services on app update (#3620)
saddlepaddle Apr 21, 2026
ce065f3
refactor(desktop): host-service detach — rotation, perms, windowsHide…
Kitenite Apr 21, 2026
62e1a77
fix(desktop): hide v2 workspace rows while destroy is in flight (#3621)
Kitenite Apr 21, 2026
f85d6d8
feat(desktop): v2 project settings with setup/relocate path (#3606)
Kitenite Apr 21, 2026
0358690
fix(desktop): spread dev dock-icon colors across full hue range (#3622)
Kitenite Apr 21, 2026
9e3e073
feat(desktop): route non-setup projects to settings from new workspac…
Kitenite Apr 21, 2026
9e8b08c
test(desktop): remove flaky git-status.test.ts that leaks mocks acros…
Kitenite Apr 21, 2026
1456892
fix(desktop): make v2 new-workspace project dropdown scrollable (#3628)
Kitenite Apr 21, 2026
1195a48
fix(desktop): tray shows correct org name for each host-service (#3629)
Kitenite Apr 21, 2026
3fc7027
chore(ci): pin third-party GitHub Actions to commit SHAs (#3631)
saddlepaddle Apr 22, 2026
a2a7ba5
feat(desktop): add Copy Branch Name to v1 and v2 sidebar context menu…
AviPeltz Apr 22, 2026
6a2c4dd
chore(ci): drop Fly.io Electric deploys (use Electric Cloud) (#3590)
saddlepaddle Apr 22, 2026
5b38c8a
chore(automations): post-qstash-ship cleanup (#3583)
saddlepaddle Apr 22, 2026
2c6d6eb
fix(desktop): new v2 workspaces appear at top of their project in sid…
saddlepaddle Apr 22, 2026
d006f60
feat(desktop): configurable link-click behavior in v2 (#3600)
saddlepaddle Apr 22, 2026
400989f
docs(relay): hardening + horizontal scale-out plan (#3636)
saddlepaddle Apr 22, 2026
5bc8b81
chore(api): remove legacy Vercel electric proxy (#3637)
saddlepaddle Apr 22, 2026
45dd81c
feat(cli,trpc): organization override via header, no session mutation…
saddlepaddle Apr 22, 2026
38a080c
feat(marketing): add /pricing page and redesign header/footer IA (#3639)
saddlepaddle Apr 22, 2026
a4e1567
fix(cli): match host service PORT env var name in spawn (#3640)
saddlepaddle Apr 22, 2026
6ae8ea9
fix(host-service): stop misattributing cross-fork PRs to local worksp…
Kitenite Apr 22, 2026
5914bb9
feat(desktop): v1 review comments open in a pane like v2 (#3596)
AviPeltz Apr 22, 2026
0fb5441
feat(desktop): render mermaid diagrams in markdown pane (#3642)
AviPeltz Apr 22, 2026
cfc9c27
chore(desktop): bump version to 1.5.8 (#3617)
saddlepaddle Apr 22, 2026
52e9e75
feat(setup): clone v2 host-service DBs alongside v1 local DB (#3630)
Kitenite Apr 22, 2026
b21a3b9
handle local/remote/offline state on sidebar workspace icons (#3649)
Kitenite Apr 22, 2026
1771c72
fix(desktop): render pending workspaces at top of sidebar (#3655)
Kitenite Apr 22, 2026
0169f14
fix(desktop): allowlist URL schemes before shell.openExternal (#3650)
arnaudbreton Apr 22, 2026
6764f17
feat(desktop): keypad + scrolling steps for workspace setup loader (#…
AviPeltz Apr 22, 2026
e49600f
fix(desktop): persist v2 sidebar open state globally across workspace…
Kitenite Apr 22, 2026
57aa28c
fix(desktop): unbreak safe-url test on bun by splitting pure helpers …
Kitenite Apr 22, 2026
de7a42f
feat(desktop): redesign v2-workspaces as a sortable table (#3660)
Kitenite Apr 22, 2026
dfa14bf
chore(desktop): bump version to 1.5.9 (#3658)
saddlepaddle Apr 23, 2026
5501bae
feat(host-service): restore AI workspace naming on v2 create (#3654)
Kitenite Apr 23, 2026
0bc1d0a
fix(desktop): toast and switch workspace when deleting in v2 (#3661)
Kitenite Apr 23, 2026
b804ae3
feat(desktop): port v1 projects + workspaces into v2 (#3670)
saddlepaddle Apr 23, 2026
5b8cd24
chore(host-service): bump version to 0.2.0 + raise min version (#3672)
saddlepaddle Apr 23, 2026
0791b0b
chore(desktop): bump version to 1.5.10 (#3673)
saddlepaddle Apr 23, 2026
ae5cd60
fix(desktop): v2 file-open honors CMD+O editor choice (#3674)
Kitenite Apr 23, 2026
4a1af2e
fix(desktop): use task title as workspace name when opening a task (#…
saddlepaddle Apr 23, 2026
7970e64
fix(desktop): claim TERM_PROGRAM=kitty so TUIs parse Shift+Enter CSI-…
Kitenite Apr 23, 2026
64a36f0
chore(deps): bump uuid from ^13.0.0 to ^14.0.0 (#3680)
Kitenite Apr 23, 2026
81eaff6
fix(desktop): persist "also delete local branch" checkbox in v2 delet…
Kitenite Apr 23, 2026
8b3ff23
feat(desktop): v2 Changes file list shift/cmd-click policy (#3683)
Kitenite Apr 23, 2026
7b1fc02
feat(marketing): simplify product menu and show yearly discount (#3691)
saddlepaddle Apr 23, 2026
4f62bd3
fix(desktop): show v1 uncommitted-changes banner instead of second de…
saddlepaddle Apr 23, 2026
b737cfa
fix(desktop): fail closed when adopted host-service has no version (#…
saddlepaddle Apr 23, 2026
6f12f77
fix(desktop): keep v2 terminals and browsers stable across workspace …
Kitenite Apr 24, 2026
48ba63a
fix(host-service): place v2 worktrees under ~/.superset/worktrees/<pr…
Kitenite Apr 24, 2026
aceb0fd
feat(desktop): v2 AI workspace rename generates title + branch togeth…
saddlepaddle Apr 24, 2026
e367ec4
feat(desktop): show PR state as sidebar workspace icon (#3694)
Kitenite Apr 24, 2026
8ce1519
fix(desktop): use Alerter for automation detail delete confirm (#3695)
saddlepaddle Apr 24, 2026
f59eeba
fix(desktop): honor agent selection in new-workspace modal (#3699)
saddlepaddle Apr 24, 2026
ba044f7
fix(host-service): count untracked file lines in getStatus (#3701)
saddlepaddle Apr 24, 2026
b7f73f3
fix(desktop): reap stale notify.sh paths from in-repo dev worktrees (…
Kitenite Apr 24, 2026
9268654
fix(desktop): adopt Ghostty keyboard model in v2 terminal (#3700)
Kitenite Apr 24, 2026
167542e
[codex] refactor(host-service): split workspace-creation router (#3697)
Kitenite Apr 24, 2026
5aab22a
fix closed picker filters (#3702)
Kitenite Apr 24, 2026
99db5be
[codex] simplify workspace controls (#3714)
Kitenite Apr 25, 2026
186078a
fix(chat): prevent ask_user question from shadowing sandbox access pr…
michalkopanski Apr 25, 2026
47893c2
fix desktop workspace creation title clamp (#3718)
saddlepaddle Apr 25, 2026
09323ff
Add diff pane file viewer action (#3715)
Kitenite Apr 25, 2026
a5891c6
remove pending launch log (#3721)
Kitenite Apr 25, 2026
c83de0c
Add Tiptap table support (#3719)
saddlepaddle Apr 25, 2026
486b621
[codex] Fix v2 terminal lifecycle after sleep (#3711)
Kitenite Apr 25, 2026
e07aef6
feat(desktop): play v2 notification hooks client-side (#3675)
Kitenite Apr 25, 2026
eae6008
[codex] Port v2 terminal hotkeys to v1 (#3724)
Kitenite Apr 25, 2026
1f55c62
Fix host service restart adoption (#3732)
Kitenite Apr 25, 2026
3012b5a
Add optimistic Electric collection updates (#3722)
Kitenite Apr 25, 2026
c272a51
fix(desktop): drop branch row from v2 sidebar workspace item (#3733)
Kitenite Apr 25, 2026
c2f3fdc
feat(desktop): add fade-edge mask utilities (#3735)
Kitenite Apr 25, 2026
682d07c
fix v2 terminal osc links (#3736)
Kitenite Apr 25, 2026
0fe65d2
test(desktop): remove host-service-coordinator test that pollutes oth…
Kitenite Apr 25, 2026
7c0d22b
feat(ports): surface remote host-service ports in the sidebar (#3676)
Kitenite Apr 25, 2026
6a3be2d
[codex] Stabilize v2 terminal resize (#3739)
Kitenite Apr 25, 2026
8928ac6
[codex] Improve v2 pane header responsiveness (#3737)
Kitenite Apr 25, 2026
5fe3d22
refactor(desktop): tidy v2 terminal session dropdown (#3743)
Kitenite Apr 25, 2026
66c23d6
Fix automation timezone scheduling (#3738)
saddlepaddle Apr 25, 2026
16e270c
[codex] Add terminal session titles (#3740)
Kitenite Apr 26, 2026
583fa5d
fix(desktop): refit v2 terminal after font settle (#3742)
Kitenite Apr 26, 2026
6b96acd
Improve sidebar group management UX (#3745)
Kitenite Apr 26, 2026
ce606be
Handle browser passthrough during v2 resize (#3744)
Kitenite Apr 26, 2026
b1e1eb7
Refactor v2 workspace page (#3747)
Kitenite Apr 26, 2026
8693869
[codex] move v2 toggle to experimental settings (#3748)
Kitenite Apr 26, 2026
ef3f381
Revert "fix(desktop): refit v2 terminal after font settle (#3742)" (#…
Kitenite Apr 26, 2026
25b2d52
Show terminal sessions from all workspaces in dropdown (#3751)
Kitenite Apr 26, 2026
a4079e7
Update dashboard sidebar workspace icons (#3755)
Kitenite Apr 26, 2026
d3753d0
[codex] Use dynamic footer copyright years (#3754)
saddlepaddle Apr 26, 2026
62737db
fix v1 terminal resize repaint (#3756)
Kitenite Apr 26, 2026
61e7eef
[codex] Allow duplicate v2 repo clone URLs (#3723)
Kitenite Apr 26, 2026
8182396
fix sidebar removal and rerender churn (#3741)
Kitenite Apr 26, 2026
7c168e7
chore(desktop): bump version to 1.6.1 (#3761)
Kitenite Apr 26, 2026
74d74bf
clear v2 ready notification on workspace click (#3765)
Kitenite Apr 26, 2026
211af80
Add hosts settings page for managing host access (#3768)
saddlepaddle Apr 26, 2026
ccf1f65
improve v2 terminal drop hover animation (#3769)
saddlepaddle Apr 26, 2026
2c119ad
fix v2 sidebar nav-away on workspace delete (#3771)
saddlepaddle Apr 26, 2026
97c48d7
fix automation list flicker on initial load (#3772)
saddlepaddle Apr 26, 2026
6ada9bf
Add v2 mark workspace as unread (#3773)
saddlepaddle Apr 26, 2026
b6db247
hide terminals from other workspaces in session dropdown (#3774)
saddlepaddle Apr 26, 2026
9f76264
tighten v2 diff file header layout (#3776)
saddlepaddle Apr 26, 2026
3efd927
[codex] Stabilize v1 to v2 migration (#3775)
saddlepaddle Apr 27, 2026
6c2a771
feat(chat): v2 chat architecture proposals + reference research +inte…
AviPeltz Apr 27, 2026
88e2500
Harden v1 to v2 migration idempotency (#3781)
saddlepaddle Apr 27, 2026
16bcf96
make v1 migration org-idempotent (#3783)
saddlepaddle Apr 27, 2026
605a6bd
Fix active item selection after removal (#3767)
Kitenite Apr 27, 2026
7c14f05
feat(desktop): auto-create v2 main workspace on host project setup (#…
Kitenite Apr 27, 2026
4399b73
chore: ignore local-only plans dir (#3782)
AviPeltz Apr 27, 2026
9abd936
feat(db): consolidate host/client identity on machineId (#3784)
saddlepaddle Apr 27, 2026
b9c0d7c
fix(desktop): drop red failed-host indicator from v2 ports dropdown (…
AviPeltz Apr 27, 2026
c885eb2
chore(desktop): bump version to 1.6.2 (#3789)
saddlepaddle Apr 27, 2026
693dd29
Hotfix v2 workspace sidebar sync (#3746)
Kitenite Apr 27, 2026
2183bcf
feat(desktop): rename branch from workspace hover card (#3793)
AviPeltz Apr 27, 2026
180425a
[codex] Update sidebar main workspace icons (#3800)
Kitenite Apr 27, 2026
01af7dc
Add shared overflow fade utilities (#3770)
Kitenite Apr 27, 2026
2473996
Improve terminal connection diagnostics (#3801)
Kitenite Apr 27, 2026
889e9e7
fix(relay): unbreak fly deploy (#3791)
saddlepaddle Apr 27, 2026
790cbbc
feat(desktop): make v2 cloud opt-in instead of opt-out (#3802)
saddlepaddle Apr 27, 2026
298d773
feat(desktop): consolidate comment pane headers (#3803)
saddlepaddle Apr 27, 2026
864a81c
feat(desktop): scaffold PR action header in v2 sidebar (gated) (#3777)
AviPeltz Apr 27, 2026
95cff6b
Migrate v1 keypad loading screen to v2 as a separate page (#3788)
AviPeltz Apr 27, 2026
57c87a1
feat(chat): add GPT-5.5 to v2 chat pane model picker (#3808)
saddlepaddle Apr 27, 2026
5cceee0
Allow pane drops into new tabs (#3809)
Kitenite Apr 27, 2026
50eb125
fix(desktop): collapse v2 chat double header into pane header (#3805)
saddlepaddle Apr 27, 2026
f19cb6a
feat(desktop): persistent v2 sidebar hover card (#3813)
saddlepaddle Apr 27, 2026
fea591e
fix(desktop): only show v1 migration modal on first onboard (#3816)
saddlepaddle Apr 27, 2026
89285e4
Revert "Migrate v1 keypad loading screen to v2 as a separate page (#3…
saddlepaddle Apr 28, 2026
725c633
feat(desktop): indent workspaces under projects in v2 sidebar (#3835)
Kitenite Apr 28, 2026
1078469
fix(desktop): derive v2 workspace locality from workspace.hostId, not…
saddlepaddle Apr 28, 2026
a8e8556
fix(desktop): raise Chromium WebGL context cap to 256 (#3834)
Kitenite Apr 28, 2026
d6d92f8
feat(desktop): persist Electric collections to SQLite for offline lau…
saddlepaddle Apr 28, 2026
29547e3
fix(desktop): collapse v2 sidebar count + actions into one slot (#3842)
Kitenite Apr 28, 2026
2119c9c
chore(desktop): bump version to 1.7.2 (#3843)
saddlepaddle Apr 28, 2026
d19c344
feat(desktop): layout-aware keyboard shortcuts + dual-mode bindings (…
Kitenite Apr 28, 2026
3419644
[codex] warn before relay toggle restarts host service (#3845)
Kitenite Apr 28, 2026
41c6c9e
fix(desktop): listen for terminal pane removal at the store layer (#3…
Kitenite Apr 28, 2026
e7c785a
feat(desktop): tag PostHog events with v1/v2 surface (#3814)
Kitenite Apr 28, 2026
44c01ee
feat(desktop): persist last project + base branch in v2 new-workspace…
Kitenite Apr 29, 2026
35a2777
fix(host-service): isolate subsystem crashes from main thread (#3811)
Kitenite Apr 29, 2026
69ca191
fix desktop terminal attach latency (#3847)
Kitenite Apr 29, 2026
cc5c103
feat(paywall): gate relay + automations + remote workspaces, dither p…
saddlepaddle Apr 29, 2026
533e00f
fix(host-service): clean up exited terminals on workspace delete (#3856)
Kitenite Apr 29, 2026
d6815bd
fix(desktop): give v2 chat pane full width (#3859)
saddlepaddle Apr 29, 2026
6cb2099
fix(desktop): keep diff file header items left-aligned on wrap (#3858)
saddlepaddle Apr 29, 2026
382ac7f
feat(desktop): default markdown files to preview view (#3860)
Kitenite Apr 29, 2026
4de08b5
fix(host-service): catch tunnel connect errors to prevent crash on DN…
Kitenite Apr 29, 2026
55af7a5
feat(desktop): v2 workspaces list filters, project icons, PR hover (#…
saddlepaddle Apr 29, 2026
f723bf2
feat(pricing): align desktop and marketing comparison tables (#3867)
saddlepaddle Apr 29, 2026
71f8eed
fix(desktop): decouple machineId from host-service connection (#3876)
saddlepaddle Apr 29, 2026
52515a9
perf(desktop): unbatch host-service tRPC client (#3879)
Kitenite Apr 29, 2026
24a07cd
chore(marketing): tweak trust strip logo (#3880)
Kitenite Apr 29, 2026
07f2344
fix(desktop): claim TERM_PROGRAM=kitty in v1 terminal (#3882)
Kitenite Apr 29, 2026
9bf4f9b
feat(desktop): enable v2 by default in dev (#3883)
Kitenite Apr 29, 2026
f5cf3f1
fix(agents): correct copilot flag order and mastracode prompt mode (#…
Kitenite Apr 29, 2026
2e9494f
feat(desktop): show Pro badge in account dropdown (#3878)
Kitenite Apr 29, 2026
b508fb3
fix(desktop): show local diff stats in v1 workspace hover card (#3881)
saddlepaddle Apr 29, 2026
6e0e006
Revert "fix(desktop): show local diff stats in v1 workspace hover car…
saddlepaddle Apr 30, 2026
735e001
feat(desktop): add Create/Import project to v2 workspace picker (#3846)
Kitenite Apr 30, 2026
5d285ec
fix(host-service): dedupe PR refresh calls with repo-keyed cache (#3884)
Kitenite Apr 30, 2026
0d6225d
feat(host-service): tRPC query timeout + retry, fix hung file tree an…
Kitenite Apr 30, 2026
b2f740e
feat(desktop): persist v2 diff-pane expand state, auto-expand clicked…
Kitenite Apr 30, 2026
001ccc2
feat(desktop): move v2 terminal ws reconnect notices to a pane-side l…
Kitenite Apr 30, 2026
2c05729
feat(api): backend prereqs for CLI v1 (#3889)
saddlepaddle Apr 30, 2026
b6a890d
chore(marketing): update trusted by section (#3892)
Kitenite Apr 30, 2026
f18bbb2
fix(api): jwtProcedure accepts x-api-key sessions, not just Bearer (#…
saddlepaddle Apr 30, 2026
03be01e
feat(desktop): add hover dropdown actions to changes sidebar rows (#3…
Kitenite Apr 30, 2026
90fed3b
style(desktop): polish v2 diff pane header, file path, and unmodified…
Kitenite Apr 30, 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
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions .agents/commands/deslop.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,14 @@ Apply clean code philosophy to the code, with special emphasis on comments:

**Keep or add comments only when:**
- Explaining *why* a non-obvious decision was made
- Documenting design intent or architectural decisions (e.g., "shared by X and Y paths", "deferred because Z")
- Documenting external constraints or business rules not evident from code
- Warning about non-intuitive behavior or edge cases
- Noting the origin of a pattern when it aids future maintenance (e.g., "VS Code pattern")
- Required for public API documentation (JSDoc, docstrings)

**When in doubt, keep the comment.** Removing a comment that captured intent is destructive — the reasoning is lost and cannot be recovered from code alone. Only remove a comment when you are confident the code *fully* communicates the same information.

## Code Simplification

- Rename variables/functions to be self-documenting instead of adding comments
Expand Down
89 changes: 89 additions & 0 deletions .agents/commands/pr/create-pr.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
---
description: Create a pull request for the current branch (agent-driven, one-click)
argumentHint: "[--draft]"
---

# Goal

Create a pull request for the current branch in one pass. The user
clicked the Create PR button in the diff-editor sidebar — they expect
the PR to be created without further prompting.

An attachment named `pr-context.md` is included with this turn. It
contains:

- Current branch and base branch
- Whether the branch is published (has upstream)
- Commits ahead/behind upstream
- Whether there are uncommitted changes
- Required preconditions the user's branch must satisfy before
`gh pr create` will succeed

Read `pr-context.md` first. Use it as ground truth instead of re-deriving
the state yourself.

# Arguments

- `--draft` — create the PR as a draft. Pass `--draft` through to the
`gh pr create` call.

Parse the arguments from the user's prompt (everything after the skill
name). Do not ask the user to confirm the draft flag — it came from
their button click.

# Workflow

## 1. Satisfy preconditions

In the order listed in `pr-context.md` under "Required preconditions":

- **Uncommitted changes**: generate a commit message from the staged
diff (use `git diff --cached` and `git status`). If nothing is
staged, `git add -A`. Then `git commit -m "<message>"`. Keep the
message short and specific — do not write a PR-body-style
description here.
- **Unpublished branch**: `git push -u origin -- "<branch>"` — quote `<branch>`
to avoid shell injection on names with metacharacters.
- **Unpushed commits on a published branch**: `git push`.
- **Behind upstream**: stop. Report to the user that they should sync
first. Do not force-push. Do not rebase without asking.

If any push fails non-fast-forward, stop and report — never
force-push.

## 2. Draft the PR body

Use `git log "<base>..HEAD"` to read the commits, `git diff "<base>...HEAD"`
for the scope of changes. Produce:

- **Title**: short, imperative, derived from the most recent commit
message or the scope of the diff.
- **Body**: concise. Summary + a short Test Plan checklist. Skip
sections that have nothing meaningful to say — do not pad.

## 3. Create the PR

```
gh pr create \
--base <defaultBranch> \
--title "<title>" \
--body "<body>"
```

If `--draft` was passed, add `--draft`.

## 4. Report back

Print the PR URL as a plain link on its own line. One short sentence
above it summarizing what you did (e.g. "Published `feature-x` and
opened draft PR."). Do not paste the full body back.

# Guardrails

- Never force-push.
- Never skip pre-commit hooks (`--no-verify`) or signing.
- If a hook fails, report the failure; do not retry with `--no-verify`.
- Do not open a browser — the caller handles that.
- Do not run a full `AGENTS.md` standards review in this skill. The
button is a fast path; use `/create-pr` (the general-purpose skill)
for the gated review flow.
1 change: 1 addition & 0 deletions .bun-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1.3.11
1 change: 0 additions & 1 deletion .cursor/mcp.json

This file was deleted.

12 changes: 12 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
**/node_modules
**/.next
**/dist
**/build
**/.turbo
**/.cache
.git
.github
.vscode
.idea
*.log
.DS_Store
4 changes: 4 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -106,3 +106,7 @@ QSTASH_NEXT_SIGNING_KEY=

# MCP API Key for Claude Code
SUPERSET_MCP_API_KEY=

# Relay service URL (the v2 tunnel proxy that forwards cloud API calls
# to host-service instances on user devices). Local dev: http://localhost:4734
RELAY_URL=
10 changes: 7 additions & 3 deletions .github/prompts/generate-changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,15 +53,19 @@ Brief description of the feature and its benefit to users.

---

**Bug fixes:** Fixed issue with X <PRBadge url="https://github.com/superset-sh/superset/pull/NUMBER" />, resolved Y problem <PRBadge url="https://github.com/superset-sh/superset/pull/NUMBER" />
**Bug fixes**

- Fixed issue with X <PRBadge url="https://github.com/superset-sh/superset/pull/NUMBER" />
- Resolved Y problem <PRBadge url="https://github.com/superset-sh/superset/pull/NUMBER" />
```

6. **Important formatting rules**
- Frontmatter (`---`) must be at the very top of the file with no content before it
- MDX comments (`{/* ... */}`) must come AFTER the frontmatter, not before
- Set `image:` in frontmatter to `/changelog/IMAGE_PLACEHOLDER.png` - reviewers will replace this
- Add TODO comments for features that would benefit from screenshots
- Use a horizontal rule (`---`) before the bug fixes footnote
- Use a horizontal rule (`---`) before the bug fixes section
- Bug fixes should use bullet points, one fix per line, same as Improvements

7. **Writing style**
- **Be brief** - Users scan changelogs, they don't read every word
Expand All @@ -77,7 +81,7 @@ Brief description of the feature and its benefit to users.
| New user-facing feature | Own section with heading, 1-2 sentences + bullets |
| Significant improvement | Own section or grouped under "Improvements" |
| Small enhancement | One line under "Improvements" |
| Bug fix | One-liner in footnote section at bottom |
| Bug fix | Bullet point in footnote section at bottom |
| Internal/refactor | Skip entirely unless user-visible |

## Reference Examples
Expand Down
5 changes: 3 additions & 2 deletions .github/prompts/triage-issue.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,9 @@ You are triaging GitHub issue `$ISSUE_NUMBER`. Your goal is to:
- Run any nearby targeted tests needed to validate the fix.
- If a safe fix is not clear, keep this as reproduction-only and continue to step 6A.

6. **Open exactly one PR** — Run `bun run lint:fix`, then commit, push, and create a PR:
- **6A: Reproduction-only PR (reproducible but not solved)**
6. **Open exactly one PR** — Run `bun run lint:fix`, then commit, push, and create a PR.
**Default to draft** (`gh pr create --draft`) unless the issue is high priority (labeled `priority: high` or `priority: critical`, or the issue describes data loss, security, or a production outage) **and** you are highly confident in the fix (clear root cause, minimal scoped change, all relevant tests pass). Only in that case, create as ready for review (omit `--draft`).
- **6A: Reproduction-only PR (reproducible but not solved)** — always draft.
- Title: `test: reproduce #$ISSUE_NUMBER — <short bug description>`
- Body should include:
- What the bug is (in your own words, based on the issue)
Expand Down
5 changes: 0 additions & 5 deletions .github/templates/preview-comment.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,6 @@
<td>$DATABASE_LINK</td>
</tr>
<tr>
<td><img src="https://fly.io/phx/ui/images/favicon/favicon-595d1312b35dfe32838befdf8505515e.ico" width="20" height="20" alt="Fly.io"> <strong>Electric (Fly.io)</strong></td>
<td align="center">$ELECTRIC_STATUS</td>
<td>$ELECTRIC_LINK</td>
</tr>
<tr>
<td><img src="https://vercel.com/favicon.ico" width="20" height="20" alt="Vercel"> <strong>API (Vercel)</strong></td>
<td align="center">$API_STATUS</td>
<td>$API_LINK</td>
Expand Down
79 changes: 79 additions & 0 deletions .github/workflows/build-cli.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
name: Build CLI Distribution

on:
push:
tags: ["cli-v*"]
workflow_dispatch:

jobs:
build:
name: Build ${{ matrix.target }}
strategy:
fail-fast: false
matrix:
include:
- os: macos-14
target: darwin-arm64
- os: ubuntu-latest
target: linux-x64

runs-on: ${{ matrix.os }}
steps:
- name: Checkout code
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1

- name: Setup Bun
uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
with:
bun-version-file: .bun-version

- name: Setup Node.js (for native addon compilation)
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
with:
node-version: 22

- name: Install dependencies
run: bun install --frozen

- name: Build distribution
working-directory: packages/cli
env:
RELAY_URL: https://relay.superset.sh
CLOUD_API_URL: https://api.superset.sh
run: bun run build:dist --target=${{ matrix.target }}

- name: Upload tarball
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
with:
name: superset-${{ matrix.target }}
path: packages/cli/dist/superset-${{ matrix.target }}.tar.gz
if-no-files-found: error

release:
name: Create GitHub Release
needs: build
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/cli-v')
permissions:
contents: write

steps:
- name: Checkout code
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1

- name: Download all artifacts
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
with:
path: release-artifacts
pattern: superset-*
merge-multiple: true

- name: Create Release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release create "${{ github.ref_name }}" \
release-artifacts/*.tar.gz \
--title "Superset CLI ${{ github.ref_name }}" \
--generate-notes \
--draft
31 changes: 18 additions & 13 deletions .github/workflows/build-desktop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,16 +41,16 @@ jobs:

steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1

- name: Setup Bun
id: setup-bun
uses: oven-sh/setup-bun@v2
uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
with:
bun-version: "1.3.2"
bun-version-file: .bun-version

- name: Cache dependencies
uses: actions/cache@v4
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: |
~/.bun/install/cache
Expand Down Expand Up @@ -104,6 +104,7 @@ jobs:
NEXT_PUBLIC_ELECTRIC_URL: ${{ secrets.NEXT_PUBLIC_ELECTRIC_URL }}
SENTRY_DSN_DESKTOP: ${{ secrets.SENTRY_DSN_DESKTOP }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
RELAY_URL: ${{ secrets.RELAY_URL }}
SUPERSET_WORKSPACE_NAME: superset
run: bun run compile:app

Expand Down Expand Up @@ -135,23 +136,23 @@ jobs:
}

- name: Upload DMG artifact
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: ${{ inputs.artifact_prefix }}-mac-${{ matrix.arch }}-dmg
path: apps/desktop/release/*.dmg
retention-days: ${{ inputs.artifact_retention_days }}
if-no-files-found: error

- name: Upload ZIP artifact
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: ${{ inputs.artifact_prefix }}-mac-${{ matrix.arch }}-zip
path: apps/desktop/release/*.zip
retention-days: ${{ inputs.artifact_retention_days }}
if-no-files-found: error

- name: Upload auto-update manifest
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: ${{ inputs.artifact_prefix }}-mac-${{ matrix.arch }}-update-manifest
path: apps/desktop/release/*-mac.yml
Expand All @@ -165,16 +166,16 @@ jobs:

steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1

- name: Setup Bun
id: setup-bun
uses: oven-sh/setup-bun@v2
uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
with:
bun-version: "1.3.2"
bun-version-file: .bun-version

- name: Cache dependencies
uses: actions/cache@v4
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: |
~/.bun/install/cache
Expand All @@ -185,6 +186,9 @@ jobs:
- name: Install dependencies
run: bun install --frozen --ignore-scripts

- name: Install Linux native build deps
run: sudo apt-get update && sudo apt-get install -y libx11-dev libxkbfile-dev

- name: Install desktop native dependencies
working-directory: apps/desktop
run: bun run install:deps
Expand Down Expand Up @@ -226,6 +230,7 @@ jobs:
NEXT_PUBLIC_ELECTRIC_URL: ${{ secrets.NEXT_PUBLIC_ELECTRIC_URL }}
SENTRY_DSN_DESKTOP: ${{ secrets.SENTRY_DSN_DESKTOP }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
RELAY_URL: ${{ secrets.RELAY_URL }}
SUPERSET_WORKSPACE_NAME: superset
run: bun run compile:app

Expand All @@ -247,15 +252,15 @@ jobs:
}

- name: Upload AppImage artifact
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: ${{ inputs.artifact_prefix }}-linux-appimage
path: apps/desktop/release/*.AppImage
retention-days: ${{ inputs.artifact_retention_days }}
if-no-files-found: error

- name: Upload Linux auto-update manifest
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: ${{ inputs.artifact_prefix }}-linux-update-manifest
path: apps/desktop/release/*-linux.yml
Expand Down
Loading