Skip to content

Commit b7d5e22

Browse files
1.3.38 — ACP embeddedContext + resume, terminal spec compliance, manual chat sync
1 parent d1416fa commit b7d5e22

6 files changed

Lines changed: 289 additions & 19 deletions

File tree

CHANGELOG.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,37 @@ Versioning: [Semantic Versioning](https://semver.org/).
66

77
For releases before v1.3.35, see [GitHub Releases](https://github.com/VladoIvankovic/Codeep/releases).
88

9+
## [1.3.38] — 2026-05-05
10+
11+
### Added
12+
- **`promptCapabilities.embeddedContext`** — dragging a file into the Zed chat
13+
(or pinning a code selection) now actually injects the file content into the
14+
prompt. Previously the `resource_link` / `resource` blocks were silently
15+
dropped. 200 KB cap per resource with a visible truncation marker.
16+
- **`session/resume` ACP method** — lightweight reconnect on panel reload.
17+
The client keeps history locally and only re-wires the in-memory session
18+
(modes + config), avoiding a full history replay. Advertised via
19+
`sessionCapabilities.resume`.
20+
- **Dashboard sync after every manual chat** in the CLI — previously only
21+
the agent-mode and graceful-shutdown paths reported to `codeep.dev`, so
22+
Agent Mode: OFF looked like it never synced.
23+
24+
### Changed
25+
- **ACP boolean dropdown labels** in the Zed agent settings panel now include
26+
the action prefix (`Confirm delete: ON`, `Confirm exec: ON`,
27+
`Confirm write: ON`) so the three toggles are distinguishable. Previously
28+
Zed rendered all three identically as `ON`.
29+
30+
### Fixed
31+
- **`terminal/wait_for_exit`** — was calling the camelCase `terminal/waitForExit`
32+
variant; corrected to the spec snake_case name. Also dropped the non-standard
33+
`timeoutMs` parameter.
34+
- **Removed `terminal: true` from `agentCapabilities`**`terminal` is a
35+
*client* capability per the ACP spec, not an agent capability. Codeep now
36+
reads `clientCapabilities.terminal` from the initialize params and routes
37+
`execute_command` through the editor's terminal only when the client
38+
supports it (falling back to local execution otherwise).
39+
940
## [1.3.37] — 2026-04-29
1041

1142
### Changed

README.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -953,6 +953,18 @@ Via the agent settings panel you can toggle which tools ask for approval before
953953

954954
These apply in `Dangerous` confirmation mode (the default). Choose `Always` to confirm every action, or `Never` to skip all prompts.
955955

956+
### ACP capabilities
957+
958+
Codeep advertises the following [ACP](https://agentclientprotocol.com) capabilities so Zed (and other ACP clients) can use them:
959+
960+
- **`promptCapabilities.image`** — paste/drag images into chat for vision analysis.
961+
- **`promptCapabilities.embeddedContext`** — drag a file or pin a code selection into the chat and the actual file content is injected into the prompt (resource & resource_link blocks, 200 KB cap per file).
962+
- **`sessionCapabilities.list`** — recent sessions appear in Zed's session picker.
963+
- **`sessionCapabilities.resume`** — instant reconnect on panel reload without replaying history.
964+
- **`loadSession`** — restore a previous session by id.
965+
966+
Codeep also reads `clientCapabilities.terminal` from the client and routes shell commands through the editor's terminal when supported (so you see them in Zed's terminal panel), falling back to local execution otherwise.
967+
956968
## VS Code Extension
957969

958970
Install **Codeep** from the VS Code marketplace. The extension is a thin UI around the CLI — all credentials and sessions live in the CLI's config (`~/.config/codeep/config.json`), so keys set anywhere are visible everywhere.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "codeep",
3-
"version": "1.3.37",
3+
"version": "1.3.38",
44
"description": "AI-powered coding assistant built for the terminal. Multiple LLM providers, project-aware context, and a seamless development workflow.",
55
"type": "module",
66
"main": "dist/index.js",

src/acp/protocol.ts

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,10 @@ export interface InitializeParams {
3434

3535
export interface AgentCapabilities {
3636
loadSession?: boolean;
37-
terminal?: boolean;
3837
promptCapabilities?: { image?: boolean; audio?: boolean; embeddedContext?: boolean };
3938
mcpCapabilities?: { stdio?: boolean; sse?: boolean; http?: boolean };
40-
sessionCapabilities?: Record<string, unknown>;
39+
// Per spec: { close?, list?, resume? }
40+
sessionCapabilities?: { close?: Record<string, unknown>; list?: Record<string, unknown>; resume?: Record<string, unknown> };
4141
}
4242

4343
export interface InitializeResult {
@@ -105,15 +105,42 @@ export interface SessionLoadResult {
105105
configOptions?: SessionConfigOption[] | null;
106106
}
107107

108+
// ─── session/resume ──────────────────────────────────────────────────────────
109+
// Lightweight reconnect — client keeps history locally and only needs a fresh
110+
// hookup to the in-memory session (modes, config). No history replay.
111+
112+
export interface SessionResumeParams {
113+
sessionId: string;
114+
cwd: string;
115+
mcpServers?: McpServer[];
116+
}
117+
118+
export interface SessionResumeResult {
119+
sessionId: string;
120+
modes?: SessionModeState | null;
121+
configOptions?: SessionConfigOption[] | null;
122+
}
123+
108124
// ─── session/prompt ──────────────────────────────────────────────────────────
109125

110126
export interface ContentBlock {
111127
type: 'text' | 'image' | 'audio' | 'resource_link' | 'resource';
112-
text?: string; // type === 'text'
113-
data?: string; // type === 'image' | 'audio' (base64)
128+
// type === 'text'
129+
text?: string;
130+
// type === 'image' | 'audio' (base64-encoded payload)
131+
data?: string;
114132
mimeType?: string;
133+
// type === 'resource_link' — flat fields per MCP spec
115134
uri?: string;
116135
name?: string;
136+
description?: string;
137+
// type === 'resource' — embedded content nested under .resource per MCP spec
138+
resource?: {
139+
uri?: string;
140+
mimeType?: string;
141+
text?: string;
142+
blob?: string; // base64-encoded binary
143+
};
117144
}
118145

119146
export interface SessionPromptParams {

0 commit comments

Comments
 (0)