Skip to content

Commit b646a9b

Browse files
Release 0.26.0: one picker for real vendor CLIs and local models.
Open a project, choose Codex, Claude Code, Cursor, Antigravity, or a GGUF already on disk, and review the work. Usage stays unavailable unless a provider actually reports it. Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent 623d8da commit b646a9b

49 files changed

Lines changed: 2886 additions & 366 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎CHANGELOG.md‎

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,22 @@
11
# Changelog
22

3+
## 0.26.0 — Desktop coding agent
4+
5+
- One searchable composer picker with **Subscriptions** and **On this computer**.
6+
Rows are Codex, Claude Code, Cursor, Antigravity, and local GGUF/Ollama
7+
compatibility targets. Routing uses stable IDs, never display names.
8+
- New Cursor ACP adapter (`cursor-agent acp`) and Antigravity `agy` stream-json
9+
adapter. Grok remains available but is not featured in the primary menu.
10+
- Usage labels are truthful: unknown is "Usage unavailable", never a made-up
11+
percent. Local rows say they run on this computer with no subscription quota.
12+
- Local GGUF catalog: add a file or folder you already have. Removing an entry
13+
does not delete weights. llama.cpp is optional and not auto-downloaded.
14+
- Images attach only when the selected route actually supports vision. Vendor
15+
CLIs reject images until the adapter forwards real image bytes.
16+
- Quieter home: four suggestion chips, compact tools control, activity timeline.
17+
Provider chip stack and permanent Build/Plan/Review/Test tabs are off the
18+
default composer. Settings leads with Accounts and Local models.
19+
320
## 0.25.0 — "Supreme"
421

522
- **Welcome Banner**: redesigned empty-state with 8 smart starter cards (Build a

‎Cargo.lock‎

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎Cargo.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ default-members = ["native/core"]
44
resolver = "2"
55

66
[workspace.package]
7-
version = "0.25.0"
7+
version = "0.26.0"
88
edition = "2021"
99
rust-version = "1.95"
1010
license = "MIT"

‎README.md‎

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# ShadowCode
22

3-
![version](https://img.shields.io/badge/version-0.25.0-386c51) ![Rust](https://img.shields.io/badge/runtime-Rust%201.95-orange) ![license](https://img.shields.io/badge/license-MIT-green)
3+
![version](https://img.shields.io/badge/version-0.26.0-386c51) ![Rust](https://img.shields.io/badge/runtime-Rust%201.95-orange) ![license](https://img.shields.io/badge/license-MIT-green)
44

55
**Your ideas. Your models. Your machine.**
66

@@ -10,7 +10,8 @@ context, tools, permissions, checkpoints, plans, and verification.
1010

1111
![ShadowCode workspace](docs/images/workspace-light.png)
1212

13-
**Native 0.25 release:** the `main` branch builds a Rust/Tauri desktop window
13+
**Native 0.26 release:** one unified model picker (Codex, Claude Code, Cursor,
14+
Antigravity, and local models). The `main` branch builds a Rust/Tauri desktop window
1415
with the interface embedded in the executable. It needs no Python runtime or
1516
browser launcher. See the [native desktop guide](docs/NATIVE_DESKTOP.md)
1617
and the [goals](docs/NATIVE_GOALS.md) and [model routing](docs/NATIVE_ROUTING.md)
@@ -36,16 +37,16 @@ Integrations and release checks are tracked under the [release gates](docs/NATIV
3637

3738
## Native AppImage
3839

39-
Download the `v0.25.0` **x86_64 AppImage**
40+
Download the `v0.26.0` **x86_64 AppImage**
4041
and its `SHA256SUMS` file from [GitHub releases](https://github.com/Shadowfetchapps/ShadowCode/releases/latest).
4142
The native application embeds its interface; Python, Node.js and a browser
4243
launcher are not runtime dependencies. The release targets **Ubuntu 24.04 or
4344
newer / glibc 2.39+**. Git and a model provider such as Ollama remain external.
4445

4546
```bash
4647
sha256sum --ignore-missing -c SHA256SUMS
47-
chmod +x ShadowCode_0.25.0_amd64.AppImage
48-
./ShadowCode_0.25.0_amd64.AppImage --appimage-extract-and-run
48+
chmod +x ShadowCode_0.26.0_amd64.AppImage
49+
./ShadowCode_0.26.0_amd64.AppImage --appimage-extract-and-run
4950
```
5051

5152
Extraction mode works without FUSE. To install into `~/Applications`, add a
@@ -54,7 +55,7 @@ stable `shadow` and `shadowcode` commands, and replace the desktop launcher:
5455
```bash
5556
git clone https://github.com/Shadowfetchapps/ShadowCode.git
5657
cd ShadowCode
57-
./scripts/install-appimage.sh /path/to/ShadowCode_0.25.0_amd64.AppImage
58+
./scripts/install-appimage.sh /path/to/ShadowCode_0.26.0_amd64.AppImage
5859
```
5960

6061
Keep `SHA256SUMS` beside the download and the installer verifies its matching

‎SECURITY.md‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,14 @@ coordination sidecars. Directory capabilities confine database/sidecar paths;
9696
query work, concurrent readers and output are bounded. Cancellation interrupts
9797
SQLite and releases its connection; an OS filesystem stall may delay return.
9898

99+
## Vendor subscription CLIs
100+
101+
Codex, Claude Code, Cursor, and Antigravity run as official local CLIs.
102+
ShadowCode does not scrape cookies, extract OAuth tokens, or treat a Gemini API
103+
key as Antigravity subscription access. Disconnecting ShadowCode does not always
104+
log out a shared native CLI — use that vendor's own logout when you want the
105+
CLI session gone.
106+
99107
## Secrets and transcript content
100108

101109
Keys belong in `~/.config/shadow-agent/secrets.env` with mode 600 (recommended on this

‎docs/NATIVE_DESKTOP.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,8 +140,8 @@ From the repository root, build both package formats with:
140140
```sh
141141
node scripts/build-native.mjs
142142
node scripts/check-native-package.mjs \
143-
target/release/bundle/appimage/ShadowCode_0.24.0_amd64.AppImage \
144-
target/release/bundle/deb/ShadowCode_0.24.0_amd64.deb
143+
target/release/bundle/appimage/ShadowCode_0.26.0_amd64.AppImage \
144+
target/release/bundle/deb/ShadowCode_0.26.0_amd64.deb
145145
node scripts/test-native-runtime.mjs
146146
node --test scripts/test-native-source-fetch.mjs
147147
node scripts/test-native-runtime-sources.mjs

‎docs/RELEASE_NOTES.md‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
ShadowCode 0.26.0 is a desktop coding agent: open a project, pick one
2+
execution target, describe the task, watch it work. The composer has a single
3+
searchable picker for Codex, Claude Code, Cursor, Antigravity, and local
4+
models. Usage is shown only when a provider actually reports it. Local GGUF
5+
files you already have can be added to a catalog; weights are never deleted or
6+
auto-downloaded.
7+
8+
Downloads: `ShadowCode_0.26.0_amd64.AppImage`, `ShadowCode_0.26.0_amd64.deb`.
9+
110
ShadowCode 0.25.0 ("Supreme") delivers a major flagship UX upgrade designed
211
to simplify the onboarding flow and elevate workspace feel.
312

‎docs/RELEASING.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
# Native release procedure
22

3-
This procedure publishes the Rust/Tauri 0.25 application. The tag workflow is
3+
This procedure publishes the Rust/Tauri 0.26 application. The tag workflow is
44
the release authority: it does not build, upload, or mention the legacy Python
55
wheel, source distribution, portable archive, or browser launcher.
66

77
## Prepare the release
88

99
1. Update the shared version in `Cargo.toml` and `src-tauri/tauri.conf.json`.
10-
They must match the tag exactly, for example `v0.25.0`.
10+
They must match the tag exactly, for example `v0.26.0`.
1111
2. Update `CHANGELOG.md`, `docs/RELEASE_NOTES.md`, README download commands and
1212
native migration/verification records with only evidence that is current for
1313
the tagged commit.

‎docs/SIMPLIFICATION_CHECKLIST.md‎

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# ShadowCode 0.26 product simplification
2+
3+
Visual target: the two six-panel desktop boards (home, unified picker, accounts, activity, review, local models). Names, percents, and pass counts in those boards are layout examples only.
4+
5+
## Status
6+
7+
- [x] Inspect origin/main (0.25.0 already shipped) and keep reliable vendor CLI code
8+
- [x] One searchable composer picker: Subscriptions + On this computer
9+
- [x] Cursor ACP adapter (`cursor-agent acp`) and Antigravity `agy` stream-json adapter
10+
- [x] Keep Grok adapter; do not feature it in the primary picker
11+
- [x] Truthful usage snapshots (unknown/stale/shared; never invent percents)
12+
- [x] Built-in GGUF catalog + optional llama.cpp spawn (no auto-download)
13+
- [x] Image attach only when the selected route actually supports vision
14+
- [x] Compact activity timeline; Mode tabs / chip stack off the default composer
15+
- [x] Accounts + Local models settings (official login commands, no password forms)
16+
- [x] Deterministic tests for picker, usage, image rejection, cancel, new protocols
17+
- [x] Version 0.26.0, docs, AppImage install, push origin/main
18+
19+
## Honest limits
20+
21+
- Antigravity 1.2.8 has no `usage` command; quota stays "Usage unavailable"
22+
- Cursor `about` reports plan tier, not remaining allowance — do not render a percent
23+
- llama.cpp is not bundled; Ready only after the user points at a verified binary and a GGUF they already have
24+
- Ollama tags stay optional compatibility rows, never treated as GGUF
25+
- Vendor CLIs own their tool loops; images on those routes are rejected until the adapter passes real image bytes

‎docs/SIMPLIFICATION_REPORT.md‎

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# 0.26 simplification report
2+
3+
ShadowCode is a local desktop coding agent again: one window, one picker, real
4+
backends. This supersedes the remote agent-management direction.
5+
6+
## What changed
7+
8+
- Composer has one searchable picker (Subscriptions / On this computer) plus
9+
Connect account and Add local model.
10+
- Cursor uses official ACP (`cursor-agent acp`). Antigravity uses official `agy`
11+
`--print --output-format stream-json`. Codex and Claude Code adapters are
12+
unchanged in protocol. Grok ACP remains but is not featured.
13+
- Usage never invents percents. Unknown is "Usage unavailable".
14+
- Local GGUF catalog (user-selected files/folders only). llama.cpp is optional.
15+
Ollama stays compatibility-only and is not treated as GGUF.
16+
- Home is a quiet welcome with four prompt chips. Activity is one timeline.
17+
Settings starts with Accounts and Local models.
18+
19+
## Subscription integrations (this machine)
20+
21+
| Adapter | Runtime | Discovery | Usage | Notes |
22+
| --- | --- | --- | --- | --- |
23+
| Codex | `codex` 0.155.0-alpha.16 | Doctor + optional `codex models` | Unavailable unless official JSON reports remaining | app-server unchanged |
24+
| Claude Code | `claude` 2.1.278 | Doctor (`auth status`) | Unavailable | official stream-json; disable flag remains |
25+
| Cursor | `cursor-agent` 2026.09.15-d2fe57e | `--list-models` when Ready | `about` shows plan tier only — not rendered as a percent | `cursor-agent status` for login |
26+
| Antigravity | `agy` 1.2.8 | `agy models` when Ready | No `usage` command on 1.2.8 | GUI `antigravity` is not the CLI |
27+
| Grok | kept | not featured | — | existing ACP adapter |
28+
29+
## Local models
30+
31+
- GGUF magic is required. Removing a catalog row does not delete the file.
32+
- This machine has Ollama tags `qwen3:14b`, `gpt-oss:20b`,
33+
`huihui_ai/gemma-4-abliterated:12b`. Those blobs are not auto-imported as GGUF.
34+
- No `llama-cli` / `llama-server` on PATH. Local GGUF rows stay Setup required
35+
until the user points at an official binary. Not proven against a live GGUF
36+
load on this box.
37+
- Hardware probe can read CPU/RAM and `nvidia-smi` when present.
38+
39+
## Tests and packaging
40+
41+
See the release commit message and CI logs. Required local commands:
42+
`cargo build -p shadowcode-desktop --locked`,
43+
`cargo test -p shadowcode-core --tests --locked`,
44+
UI vitest + tsc on Node 22.22.3, `pytest tests/` if the venv exists,
45+
`scripts/test-install-appimage.sh`.
46+
47+
## Genuine limits
48+
49+
- No hosted ShadowCode account or cloud orchestration.
50+
- Vendor image bytes are not forwarded yet; those routes reject attachments.
51+
- Antigravity quota API is not in CLI 1.2.8.
52+
- llama.cpp inference is catalog + setup, not a proven in-process engine.

0 commit comments

Comments
 (0)