Skip to content

Releases

iCode v0.9.0

Choose a tag to compare

@github-actions github-actions released this 14 Nov 10:18

Changed

  • The workbench now uses one persistent sidebar for projects, direct sessions
    and the cross-project task queue. Pinned projects, sessions and tasks are
    shortcuts and no longer hide the project tree.
  • Direct sessions are organized as tabs with browser-style context menus and
    drag reordering, a resizable split view, and a persistent Changes/Files
    inspector. Focus mode leaves only the terminal.
  • Mira, Settings and Schedules open as auxiliary tabs; task work opens as its
    own main surface rather than a page or app tab.
  • The session status strip keeps branch, ahead/behind and blame context beside
    the terminal, while host, task slots and live counts stay in the sidebar
    footer.

Removed

  • Removed the primary activity rail, global top bar, project wall and global
    status bar.

Fixed

  • The session inspector gets more room at common window sizes, and split-pane
    headers keep the session title readable.

iCode v0.8.2

Choose a tag to compare

@github-actions github-actions released this 11 Nov 19:15

Fixed

  • The Windows installer now recognizes a partial install by its Chromium
    resource files (chrome_100_percent.pak and chrome_200_percent.pak), so a
    cancelled first install whose executable is already gone is still cleaned
    up. This is the residue an interrupted install leaves when it stops after
    unpacking the framework assets.

iCode v0.8.1

Choose a tag to compare

@github-actions github-actions released this 11 Nov 18:12

Fixed

  • The Windows installer now removes files left in the default per-user install
    directory by an interrupted install or by a previous install at another
    location; the uninstaller cleans the same orphaned directory. Only a
    directory that still carries iCode's own files is touched.
  • Claude activity hooks no longer wait indefinitely when the ingress accepts
    a connection and then stalls; the hook exits after at most one second.
  • Zero-byte connections to the activity ingress and the supervisor control
    plane are ignored instead of logged as errors. Windows named pipes are
    world-open, so security software and stray probes can open one and close it
    without sending a request; the shipped clients never do.
  • Documented the ELECTRON_RUN_AS_NODE startup trap and the WAL caveat when
    checking user_version with an external tool.

iCode v0.8.0

Choose a tag to compare

@github-actions github-actions released this 11 Nov 13:39

Added

  • New sessions and tasks can start from a chosen local branch and use an
    optional branch name. Session creation resolves the exact branch tip, and a
    duplicate or invalid name is refused before a worktree exists.
  • Sessions and tasks can now Merge… into a target branch chosen at finish
    time. The session branch is updated from the target first, conflicts are
    resolved in the existing merge editor, and the target is fast-forwarded with
    a compare-and-swap. Merge records are durable, survive a restart, and expose
    Continue/Abort; accepting a task still does not merge it by itself.
  • Dependency chains now share one chain branch. Each task keeps its own
    short-lived worktree, but a dependent starts only after every blocker has
    been merged into the chain branch; fan-in works when the blockers share the
    chain, and legacy chains retain their pre-merge behavior. SQLite migration
    v16 adds the chain fields and merge_records.
  • Push… sends the session branch to an explicitly chosen remote and branch,
    setting upstream without merging. Push never satisfies a task dependency;
    only a local merge into the chain branch does.
  • Repository settings (project menu → Repository settings…) lists the
    remotes Git stores for a checkout, recognizes GitHub and GitLab URLs, redacts
    embedded credentials, and offers Fetch, Edit, and Remove. Push to… now
    offers Add remote… and Manage remotes… when a repository has no
    remote. Git remains the source of truth; no remote is stored in SQLite.
  • Add project can Clone from URL into a local or WSL target with
    streamed progress and cancellation. An interrupted or failed clone removes
    only the destination it created, a distinct fetch/push URL is shown
    read-only, and an empty remote continues through the existing unborn-repository
    setup so the first commit is still an explicit step.
  • Clone, fetch, push, and pull authentication failures name the environment to
    fix (the system Git credential helper/SSH agent, or the selected WSL distro),
    and credential-bearing URLs are redacted from every Git error detail.
  • Instant project removal. Removing a project unregisters it immediately
    and runs the remaining cleanup as a durable background job. The job stops
    sessions, aborts active merges, saves uncommitted worktree changes to
    recovery refs, removes iCode-created worktrees, retains branches, and deletes
    the project's tasks, schedules, supervisor bindings, and assistant audit
    rows. A status-bar cleanup indicator shows progress, retries failures, and
    offers Discard snapshots; the primary checkout and remote repository are
    never touched.

Changed

  • Merge and Push now live in Source Control. A contextual
    Merge into <target> primary action and anchored Merge into branch…
    / Push to… pickers replace the session/task header buttons and their full-screen
    modals. Push to… also absorbs the separate Push and Publish menu entries and
    defaults to the configured upstream, or origin plus the local branch when
    unpublished. Merge still requires a clean worktree.

Fixed

  • Opening a project now follows its contents: when a project has both direct
    sessions and tasks it opens Sessions, a task-only project opens Tasks, and a
    project with neither opens Sessions instead of an empty Tasks view.
  • Terminal host startup failures, such as an unusable host directory, are
    reported as an unreachable host rather than an internal session error, so
    project cleanup waits and retries instead of failing.
  • Continuing or aborting a merge from the Source Control operation banner now
    uses the merge service, so the target fast-forwards, the merge record lands
    in the correct state, and dependent tasks unblock.
  • Stale conflicted merge records left by the old generic continue/abort path
    are reconciled at boot and can be aborted without a restart.

iCode v0.7.0

Choose a tag to compare

@github-actions github-actions released this 10 Nov 10:38

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 adds assistant_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 turn digest 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 (fresh or resume).

  • Tasks can now depend on one or more other tasks. A dependent starts only
    after every blocker reaches completed, 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 adds task_dependencies, the
    hold_dependents gate 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 in src/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 Electron safeStorage,
    a real Test connection request, and a Settings preview of the exact
    launch inputs. SQLite migration v14 adds providers and
    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 --ephemeral when 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 34 wsl.exe spawns 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 runs wsl.exe from 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 dompurify dependency used by Monaco to 3.4.17,
    fixing the advisory inherited through monaco-editor@0.57.0.