Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
f8089b1
feat: add opencode provider support (#1758)
nexxeln Apr 17, 2026
a9ebbc6
Add ACP support with Cursor provider (#1355)
juliusmarminge Apr 17, 2026
5da80ab
fix(server): handle OpenCode text response format in commit message g…
imabdulazeez Apr 20, 2026
73294b7
Refactor OpenCode lifecycle and structured output handling (#2218)
juliusmarminge Apr 20, 2026
7f134b2
fix(server): trim OpenCode provider model names (#2252)
adinschmidt Apr 21, 2026
e44a3d6
fix: enforce opencode >= 1.14.19 and reveal window on Wayland (#2262)
mwolson Apr 21, 2026
9af53c1
fix: reconcile types after Cursor ACP + OpenCode port
tyulyukov Apr 23, 2026
df86c1f
Fix provider cache atomic write temp path collisions (#2291)
juliusmarminge Apr 23, 2026
11d9d31
feat(tool-activity): unify Cursor/OpenCode tool classification + fix …
tyulyukov Apr 23, 2026
2ca5467
fix: command display, exploration formatting, and notification sound …
tyulyukov Apr 23, 2026
3561af9
fix(exploration): clean headings, relative paths, hover tooltips; web…
tyulyukov Apr 23, 2026
f4719a0
feat(tool-activity): TodoWrite → plan sidebar + apply_patch → file-ch…
tyulyukov Apr 23, 2026
1316d58
fix(notifications): STRICT gate — only fire turn-completed when we ob…
tyulyukov Apr 23, 2026
8f1f2e5
fix(exploration): row tooltip shows the full-path heading, not the ra…
tyulyukov Apr 23, 2026
3ae4ca8
fix(session-logic): route detail through extractToolDetail instead of…
tyulyukov Apr 23, 2026
d1331e8
fix(test): wrap OpenCode server URL browser test in QueryClientProvider
tyulyukov Apr 23, 2026
5a63be9
feat(file-change): split multi-file diffs into individual cards; fix …
tyulyukov Apr 23, 2026
b65066b
fix(provider): raise explicit error when interrupting inactive sessio…
tyulyukov Apr 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions apps/desktop/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
"@marcode/contracts": "workspace:*",
"@marcode/shared": "workspace:*",
"@types/node": "catalog:",
"effect-acp": "workspace:*",
"tsdown": "catalog:",
"typescript": "catalog:",
"vitest": "catalog:"
Expand Down
12 changes: 7 additions & 5 deletions apps/desktop/src/windowReveal.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ describe("bindFirstRevealTrigger", () => {
[
(fire: () => void) => window.once("ready-to-show", fire),
(fire: () => void) => webContents.once("did-finish-load", fire),
(fire) => window.once("ready-to-show", fire),
(fire) => webContents.once("did-finish-load", fire),
],
reveal,
);
Expand All @@ -30,8 +32,8 @@ describe("bindFirstRevealTrigger", () => {

bindFirstRevealTrigger(
[
(fire: () => void) => window.once("ready-to-show", fire),
(fire: () => void) => webContents.once("did-finish-load", fire),
(fire) => window.once("ready-to-show", fire),
(fire) => webContents.once("did-finish-load", fire),
],
reveal,
);
Expand All @@ -48,8 +50,8 @@ describe("bindFirstRevealTrigger", () => {

bindFirstRevealTrigger(
[
(fire: () => void) => window.once("ready-to-show", fire),
(fire: () => void) => webContents.once("did-finish-load", fire),
(fire) => window.once("ready-to-show", fire),
(fire) => webContents.once("did-finish-load", fire),
],
reveal,
);
Expand All @@ -64,7 +66,7 @@ describe("bindFirstRevealTrigger", () => {
const window = new EventEmitter();
const reveal = vi.fn();

bindFirstRevealTrigger([(fire: () => void) => window.once("ready-to-show", fire)], reveal);
bindFirstRevealTrigger([(fire) => window.once("ready-to-show", fire)], reveal);

window.emit("ready-to-show");
window.emit("ready-to-show");
Expand Down
2 changes: 1 addition & 1 deletion apps/desktop/tsdown.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ export default defineConfig([
...shared,
entry: ["src/main.ts"],
clean: true,
noExternal: (id) => id.startsWith("@marcode/"),
noExternal: (id) => id.startsWith("@marcode/") || id.startsWith("effect-acp"),
define: embeddedJiraDefines,
},
{
Expand Down
2 changes: 2 additions & 0 deletions apps/server/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
"@effect/platform-node": "catalog:",
"@effect/platform-node-shared": "catalog:",
"@effect/sql-sqlite-bun": "catalog:",
"@opencode-ai/sdk": "^1.3.15",
"@pierre/diffs": "^1.1.0-beta.16",
"effect": "catalog:",
"node-pty": "^1.1.0",
Expand All @@ -43,6 +44,7 @@
"@marcode/web": "workspace:*",
"@types/bun": "catalog:",
"@types/node": "catalog:",
"effect-acp": "workspace:*",
"tsdown": "catalog:",
"typescript": "catalog:",
"vitest": "catalog:"
Expand Down
Loading
Loading