Skip to content

Releases: kzheart/ferry

Ferry 0.9.2

Choose a tag to compare

@github-actions github-actions released this 27 Sep 08:03

Added

  • Native session forks — branch after a completed answer in Claude Code,
    Codex, OpenCode, Pi Agent and Grok Build, then continue in the new native
    session. Forked sessions can be branched again, with a link back to their origin.
  • Resume from a selected answer — copy a Ferry Resume command that includes
    only history through the selected completed turn, including its tool results.
    Fork and resume actions appear as icons beside copy and edit.

Ferry 0.9.1

Choose a tag to compare

@github-actions github-actions released this 14 Sep 04:09

Added

  • AI session titles — generate titles for one session or a selected batch,
    preview and edit the suggestions before applying them, and customize the
    language, length, type prefixes and examples in Settings. Manual titles,
    including Ferry-local names, are protected by default in batch mode.
  • Native session renaming — rename sessions in Claude Code, Codex, OpenCode,
    Pi Agent and Grok Build from Ferry, the CLI or Ask Ferry. Cursor names remain
    local to Ferry.
  • Title tools for agents — the CLI and Ask Ferry can collect naming evidence
    and use your saved title style; ferry title also supports generation previews
    and batch application.
  • Repository ranking — switch the overview ranking between session count
    and token usage.

Changed

  • Ask Ferry conversations — clearer run status, approval and choice cards,
    model menus and message composition, with more reliable session persistence
    and tool cancellation.
  • History workflows — improved history audit pagination and streamlined
    skills for finding, inspecting and resuming earlier sessions.

Fixed

  • Native title display — Claude Code, Codex and Pi Agent now show their saved
    session names correctly. Cursor no longer uses an assistant status subtitle
    as the session title, and segmented Codex sessions rename the correct thread.
  • Batch title reliability — large title batches have enough time to finish;
    stalled CLI runtimes time out cleanly, and failed reads or writes are reported
    accurately instead of being counted as successful renames.
  • Custom model providers — Base URLs without a protocol are completed with
    HTTPS and saved automatically; invalid inputs show a validation hint.

Ferry 0.9.0

Choose a tag to compare

@github-actions github-actions released this 26 Aug 19:48

Added

  • Windows desktop support — Ferry now ships as a native x64 NSIS installer
    for Windows 10 and 11, including the desktop app, engine, runtime, CLI setup,
    skill installation, terminal launch, and platform-native process handling.
  • Global session search — the search palette now searches the complete
    library independently of the current sidebar scope and shows a clear loading
    state while full-text results are pending.

Changed

  • Cross-platform boundaries — shell execution, filesystem detection, path
    handling, sockets, and process cleanup now use explicit Windows and macOS
    implementations so platform behavior can evolve independently.

Fixed

  • Windows engine sharing — CLI commands reuse the desktop app's engine
    without spawning a competing daemon, consuming named-pipe listeners, or
    hanging behind long-running background requests.
  • Duplicate project folders — equivalent Windows path spellings are
    normalized before grouping, while genuinely different folders with the same
    name show enough parent path to remain distinguishable.

Ferry 0.8.6

Choose a tag to compare

@github-actions github-actions released this 25 Aug 12:54

Fixed

  • macOS fullscreen crash — entering fullscreen or revealing the titlebar
    no longer stack-overflows from fighting AppKit over the traffic-light
    buttons.
  • Traffic-light jitter on zoom — maximizing the window no longer makes the
    traffic lights jump vertically or horizontally; Ferry leaves their layout to
    the system.

Changed

  • Default window width — the default desktop window is a bit wider (1280).
  • Settings copy — trimmed a few settings explanations for clearer reading.

Ferry 0.8.5

Choose a tag to compare

@github-actions github-actions released this 25 Aug 11:17

Added

  • First-run wizard — onboarding is now a full-window six-station flow that
    ends at the library scan and content-index progress.
  • Index progress in the toolbar — finalize progress stays visible, coverage
    can self-heal, and completion gets a short animation.
  • Auto-sync for CLI & skills — after the first manual install, later app
    launches quietly refresh an already-installed ferry command and skill group;
    uninstall still sticks until you install again.

Changed

  • Independent CLI & skill versions — the app, ferry CLI package, and skill
    version: fields no longer have to share one number; only what actually
    changed needs a bump.
  • Session library default — the library groups by time instead of project.

Fixed

  • Cursor resume — Cursor sessions no longer offer a terminal resume command
    that cannot work for that agent.
  • Post-onboarding index hint — the silent indexing tip after first run no
    longer misfires.

Performance

  • Content index builds — full-library indexing is substantially faster
    through read/write separation, batched commits, and related engine work.

Ferry 0.8.4

Choose a tag to compare

@github-actions github-actions released this 24 Aug 08:55

Added

  • Usage trend & agent comparison — the overview's habit section now charts
    30-day usage (tokens or cost) stacked by agent, alongside a per-agent
    comparison, replacing the model-shift and migration-flow charts.
  • Git branch in sessions — session rows and the detail header show the
    git branch a session ran on.
  • Resume buttons in detail — the session detail offers a split button that
    copies a resume command for the same agent or hands the session off to
    another one, and onboarding now points to it.

Changed

  • Rhythm card redesign — the session start-time rose chart is now a
    clock-aligned tick dial: tick length encodes session count, a day arc and an
    active-window arc frame the dial, and the peak hour is labeled in the
    center. A stats line below shows the peak hour and active window, which is
    no longer hidden for schedules wider than 10 hours.
  • Usage accounting — token statistics and pricing now follow the same
    rules as Tokscale, so numbers match across tools.
  • Cursor is browse & migrate-out only — Cursor sessions can be read and
    migrated to other agents, but Cursor is no longer offered as a migration
    target.

Removed

  • Migration history page — migrated sessions are instead annotated with
    their origin in the session detail.
  • Manual refresh button — the detail header refreshes on its own.

Fixed

  • Codex session activity — a session's last-active time now follows its
    messages and usage events instead of file modification times, which kept
    idle sessions from looking active.
  • Ferry skill for Claude — the desktop integration installs the Ferry
    skill entry for Claude Code again.

Ferry 0.8.3

Choose a tag to compare

@github-actions github-actions released this 23 Aug 17:47

Added

  • Sidebar update button — when an update is available, a download icon
    appears at the end of the sidebar's Settings row. One click downloads,
    installs, and restarts Ferry.
  • Post-update announcement — after restarting into a new version, Ferry
    shows what changed in that release.

Changed

  • Settings update page — simplified to version, auto-check toggle, status,
    and retry. Download progress and release notes now live on the sidebar button
    and the post-restart announcement instead.

Ferry 0.8.2

Choose a tag to compare

@github-actions github-actions released this 23 Aug 16:45

Removed

  • Runtime probes — removed the optional probe workflow from contracts,
    engine execution, and the migration UI. Structure validation, write guards,
    and reading older migration history that references probes still work.

Fixed

  • Loading spinner speed — session parsing and rescan spinners no longer
    spin abnormally fast after html[data-reduce] was applied unconditionally
    and shortened every animation to 0.001s.

Ferry 0.8.1

Choose a tag to compare

@github-actions github-actions released this 23 Aug 12:08

Changed

  • Session handoff always on — copy-resume and ferry-resume are no longer
    behind an experimental toggle; the session context menu and migration fallback
    are available by default.
  • Handoff moved to Agent integration — handoff settings now live under
    Settings → Agent integration instead of Experimental.
  • System UI fonts — replaced bundled Geist variable fonts with system fonts
    (SF Pro and PingFang on macOS) so mixed Chinese/Latin text reads more evenly
    and the app bundle is smaller.
  • Reduced motion by default — reduced motion is always enabled at startup;
    the toggle was removed.
  • Skills page actions — skill import and delete use the StateButton
    pattern; delete goes through a confirmation dialog like session and migration
    record deletion.
  • Onboarding button style — "Re-view onboarding" now matches the other
    buttons in its section.

Removed

  • Session optimization — removed the session optimization feature entirely,
    including its UI, runtime roles, and purpose.

Fixed

  • macOS window controls — traffic light buttons no longer jump during live
    window resize.
  • CI — rustfmt alignment and a Windows build fix for an unused-import gate
    on same_target tests.

Ferry 0.8.0

Choose a tag to compare

@github-actions github-actions released this 22 Aug 17:58

Added

  • Migrate into Cursor — Cursor is now a migration target, not just a
    source. Ferry writes a native Cursor chat that the model can actually read:
    both the visible conversation and the model-facing context are written, so
    Cursor picks up where the other agent left off instead of starting cold.
    Plain messages and terminal/shell tool calls migrate natively; every other
    tool call becomes history narration, exactly like the other targets.
    Subagent conversations keep their parent/child topology. Two prerequisites:
    quit Cursor completely before migrating (a running Cursor overwrites its
    database from memory, and Ferry refuses to write while it is up), and open
    the destination folder in Cursor at least once so the chat is filed under
    the right workspace. Failed migrations roll back the chat and its subagents
    and touch nothing else in Cursor's database.
  • ferry command-line tool — a ferry command for coding agents and
    scripts: search sessions, read them page by page, usage statistics, resume
    commands, migration plan/apply/status, migration history, and index
    refresh — all as JSON with the engine's error envelopes passed through.
    While the desktop app is running the CLI shares its engine; otherwise it
    starts a background daemon that exits on its own when idle. Install it from
    Settings → Agent integration (a symlink in ~/.local/bin, no sudo).
  • Ferry skill for coding agents — a bundled ferry skill teaches Claude
    Code, Codex, OpenCode, and any other agent that reads ~/.agents/skills to
    use the CLI well: find how something was solved before, audit what another
    agent actually did, migrate a session with an impact summary you must
    confirm before anything is written, and report token usage. One-click
    install from Settings → Agent integration.
  • Resume a session in another agent (experimental) — right-click a
    session and choose "Copy resume instruction", then paste
    /ferry-resume <agent> <session id> into any coding agent that has the new
    ferry-resume skill. That agent reads the history through Ferry with the
    other agent's system prompts and instruction wrappers stripped, writes a
    short takeover summary, checks the repository state, and continues in its
    own session — nothing is written to any agent's store, so it works even
    when a native migration is refused (for example while Cursor is running).
    The skill also accepts a plain-language description of the session. Turn it
    on in Settings → Experimental.
  • Experimental features — Settings gains an Experimental section where
    optional features can be switched on per machine; switches only control
    visibility and never delete data.

Changed

  • Workspace layout — the navigation rail and resource pane were rebuilt.
    One toggle (⌘⇧S, or ⌘B from the menu) hides both at once; the icon-only
    collapsed rail is gone, the rail gets its own background, and migration
    history rows now match session rows.
  • Ask Ferry is now an experimental feature — the built-in assistant is off
    by default. Turn it on in Settings → Experimental; when off, the assistant,
    its provider / model / role / skill settings, and the floating chat are
    hidden and its runtime is not started.
  • Engine methods renamed for all callers — the engine's API no longer
    names a specific caller (for example agent_session_read is now
    session_read); the desktop app, the built-in assistant, and the CLI share
    one method set. No user-visible change.

Fixed

  • Session titles survive migration — a Claude Code session that never got
    an AI-generated title now carries the same title everywhere. Ferry's session
    list already fell back to the opening question, but migration did not, so
    such sessions arrived at the destination unnamed.
  • Honest migration reports — the migration impact report no longer lists
    input fields as dropped for tool calls that get rewritten as history text.
    Those calls keep their name, input, and result inside the text that is
    written; only calls dropped outright list their fields now.
  • Migration failures say why — the result card now shows the engine's
    actual reason (such as "Cursor is running: quit it before migrating")
    instead of an error class name, and distinguishes a migration that was
    rolled back after validation, one kept despite a failed probe, and one
    stopped before anything was written. Cursor's "must be quit" check now runs
    when the plan is made, so you no longer walk through every step before
    being told.
  • Fewer spurious "session reference is no longer valid" errors — when a
    session changes underneath an operation, the engine re-resolves it and
    retries briefly instead of failing the action; when the error does surface
    it now says whether the session was deleted or modified.

Performance

  • Lower idle footprint — the engine does much less work while nothing is
    happening, and reading sessions (notably OpenCode and Codex) is faster.