Repository navigation
iCode v0.7.0
Added
-
Mira now keeps a native harness conversation instead of replaying a
truncated transcript. Claude, Codex and OpenCode are resumed by the
harness's own session id; a changed harness or target starts a bridged
conversation with a visible boundary, New conversation starts a clean
one, and a failed resume falls back to reconstructed replay once. SQLite
migration v11 addsassistant_conversations; retired rows keep the reason
Mira started over. -
Mira's thread is now split into selectable conversation segments. The header
chooses the current or an earlier conversation, each segment pages 50
messages at a time with Load earlier messages, and New conversation
starts a new visible segment. Proactive notifications are hidden from the
transcript and stay in the notifications drawer, fed by a dedicated recent
notifications query. A resumed turn's## Since your last turndigest now
includes action results, failures and notifications, so write outcomes are
not lost. SQLite migration v12 adds segment ranges (start_seq/end_seq);
pre-v12 conversation rows are shown as one legacy segment. -
Failed or cancelled tasks can now be continued in their existing
session and worktree: the same harness conversation where the harness
supports resume, and the same uncommitted changes. Retry still starts a
fresh attempt in a new worktree. SQLite migration v13 records each attempt's
mode (freshorresume). -
Tasks can now depend on one or more other tasks. A dependent starts only
after every blocker reachescompleted, a blocker can hold its dependents
until its result is accepted, and the task detail shows blockers and
dependents with a read-only chain graph tab. Dependencies can be changed
while the dependent is queued and follow the newest attempt on retry or
continue. SQLite migration v14 addstask_dependencies, the
hold_dependentsgate and a per-project concurrency limit. An edge orders
starts; it does not transfer uncommitted work between worktrees. -
Full app-chrome localization for English, Simplified Chinese, Japanese,
Korean, Spanish, Brazilian Portuguese, German and French: renderer UI,
native menus, dialogs, folder pickers, OS notifications and user-facing
application errors. A Language card in Settings offers System or a pinned
language and applies changes without restarting. English is authoritative
and the fallback; the other catalogs are AI-assisted and marked for native
review insrc/shared/i18n/README.md. Terminal, harness, Git and model output
and user content are never translated. Persisted task, schedule and assistant
text keeps the language it was written in. -
Agent providers: configure an API provider per harness (Claude Code, Codex,
OpenCode) in Settings → Agent providers. iCode injects the endpoint, key,
and model into the launched session's environment instead of writing the
tool's global config, so plugins, hooks, and user settings stay untouched.
Includes curated presets, encrypted key storage via ElectronsafeStorage,
a real Test connection request, and a Settings preview of the exact
launch inputs. SQLite migration v14 addsprovidersand
harness_provider_selection; terminal-host protocol v2 adds per-session
environment so Codex and OpenCode receive credentials without exposing them
in argv or on disk.
Changed
- Task admission is now bounded per project: by default at most one task per
project runs at a time, in addition to the global limit. Raising the global
limit lets different projects run in parallel; raising Tasks per project
in Settings also lets one project run several. The lower of the two limits
applies. - The installer, executable and desktop icons now use the transparent green
brand mark from the README instead of the retired black tile. - Codex runs for Mira no longer use
--ephemeralwhen resume is available, so
the harness persists a resumable thread. Mira conversations now live in each
harness's default state directory (~/.claude,~/.codex, OpenCode's data
directory). - iCode Workbench is now licensed under the GNU Affero General Public License
v3.0 only (AGPL-3.0-only). A modified version made available to users over a
network must offer them the corresponding source under section 13. - Starting a new session no longer blocks on the whole WSL pipeline. The New
Session dialog closes immediately and shows a pending surface while the main
process works; the create path now caches the guest home and Harness
discovery, batches the workspace/repository read and the worktree
create+verify into one guest script each, prewarms the WSL host/relay, and
reuses the create-time checkout proof on the first attach. On a warm WSL
repository this cuts session creation from roughly 34wsl.exespawns to
about 5; the first attach still verifies that the checkout exists.
Fixed
- A WSL shell session no longer reports its worktree as inconsistent after
reconciliation. The desktop host runswsl.exefrom a Windows pty directory
because a ConPTY cannot start in a Linux path; that cwd was being compared
with the guest worktree, which blocked the terminal. The cwd comparison is
now local-only, and guest checkouts keep the distro-side Git inspection. - Detect again in the New Session dialog now re-detects the selected
repository's execution target, including a WSL distro, instead of this
machine. - The Sessions workspace keeps its viewport height when the pending-session
surface is visible, so the Files tree virtualizes instead of mounting every
row.
Security
- Updated the transitive
dompurifydependency used by Monaco to 3.4.17,
fixing the advisory inherited throughmonaco-editor@0.57.0.