• v1.3.5 4ae27da19a

    outage.sh released this 2026-11-07 16:57:57 +01:00 | 0 commits to main since this release

    Safer, lighter and more faithful imports — the result of a full audit of every reader and writer.

    Security

    • A session file can no longer make the app read arbitrary files. Image references (omp blobs, Vibe and Copilot attachments) are only loaded when the file really is an image; previously a crafted reference such as blob:sha256:../../.ssh/id_rsa was read and copied into the imported conversation.
    • A project folder ending in .. can no longer make a Freebuff import write outside its projects folder.
    • Links inside conversations are shown as text, not clickable links.
    • The installer now refuses sudo, checks that the bundle is Agent Chat Importer with an intact signature before removing the quarantine flag, and only replaces your installed app once the new copy is complete.

    Huge sessions

    • Sessions are streamed instead of loaded whole. On a real 1.3 GB Claude Code session, listing went from 1.3 GB of memory to 30 MB, and opening it from ~1.4 GB to about 120 MB. Large images are shown as downsampled thumbnails without freezing the window.

    No more silent failures

    • If an agent's store exists but can't be read (a locked or corrupt database, an unreadable file), a ⚠️ appears next to the agent with the reason, instead of an empty list. One broken Copilot or Codex session no longer hides the others.
    • Corrupt timestamps can no longer crash an import.
    • "Resume in Terminal" shows an alert if Terminal can't run the command (it is still on your clipboard).

    More faithful imports

    • Aider: multi-line prompts keep their line breaks, and real Aider transcripts with multi-line input are read as one message, exactly like Aider does.
    • Codex: the context Codex injects itself (<environment_context>, AGENTS.md) is no longer imported as if you had typed it; images returned by tools are kept; imported rollouts carry your installed Codex version.
    • Copilot: after a compaction, the recent messages Copilot keeps are kept too.
    • Messages without a timestamp keep their place in Hermes, OpenCode, Freebuff and Goose.
    • Vibe shows the right provider for the active model; Freebuff dates are correct for chats that run past midnight.
    • Two imports at the same moment can never overwrite each other (Aider, Freebuff, Goose).
    • An existing OpenCode v1 project file is no longer overwritten.

    Verified before shipping: 72 tests pass (10 optional probes skipped), including 15 new regression tests that fail on 1.3.4; all 11 agents scan and load from real stores with no errors.

    Same as before: double-click "Installer Agent Chat Importer.command" inside the disk image, or drag the .app to Applications.

    Universal build (arm64 + x86_64), macOS 14+.

    Downloads
  • v1.3.4 4ff1bc4a41

    outage.sh released this 2026-11-05 23:26:06 +01:00 | 1 commits to main since this release

    Freebuff imports no longer crash the CLI.

    Resuming an imported chat in Freebuff died on the first message with "Object.entries requires that input parameter not be null or undefined". The CLI takes the persisted run-state.json fileContext as-is and calls Object.entries() unguarded on customToolDefinitions/knowledgeFiles/fileTokenScores — the import only wrote 4 of those keys. The import now writes the full native fileContext shape (all record fields as empty objects, gitChanges with gitAvailable:false, a complete darwin systemInfo), so every Freebuff chat behaves exactly like a native one, in both directions.

    The FreeLLMapi chat that crashed on your machine is repairable by re-importing (or the app overwrites run-state.json on the next import into that folder).

    Same as before: drag the .app to Applications, or double-click "Installer Agent Chat Importer.command" inside the disk image.

    Downloads
  • v1.3.3 4556a14692

    outage.sh released this 2026-11-05 15:26:30 +01:00 | 2 commits to main since this release

    Installation that actually opens on macOS 15 and newer.

    The app is not signed with a paid Apple Developer account, so macOS quarantines a downloaded copy and shows "Apple could not verify … is free of malware" — with only a Done button, because the old right-click → Open shortcut no longer exists.

    • The disk image now contains Installer Agent Chat Importer.command: double-click it, it copies the app to Applications, removes the quarantine flag and launches the app. No Terminal typing.
    • INSTALLATION.txt in the image explains the manual route (System Settings → Privacy & Security → Open Anyway) and the xattr command.
    • Local scripts/build_app.sh installs also clear the flag.
    • README documents the current macOS flow.

    No app logic changed in this build; it is the 1.3.2 import fixes plus the new installer.

    Universal build (arm64 + x86_64), macOS 14+.

    Downloads
  • v1.3.2 a9c77a056c

    outage.sh released this 2026-11-05 14:59:17 +01:00 | 3 commits to main since this release

    Imported OpenCode chats now actually answer.

    • OpenCode: a silent conversation had two causes. OpenCode numbers messages through event_sequence, and the import never created that cursor, so its next run started at 1 and every insert failed with UNIQUE constraint failed: session_message.seq — the session stayed busy and the model never replied. The import now raises the cursor past every stored row.
    • OpenCode: the session also pinned the source agent's model (Model unavailable: anthropic/claude-opus-5). It is left unset now, so OpenCode uses the model you selected; each reply still shows the model that produced it.
    • Aider: two imports in the same second reused one transcript id; ids get a short random suffix.

    Verified with the real CLIs before shipping: 58 unit tests pass (10 optional probes skipped), the integration suite is 9/9 including a real opencode run on an imported session (no constraint error, new rows appended), and the real-store scan passes for all 11 harnesses. The provider matrix test imports into every target — twice per store — and reads both back.

    Universal build (arm64 + x86_64), macOS 14+.

    Downloads
  • v1.3.1 6d1b4c6e08

    outage.sh released this 2026-11-05 08:42:39 +01:00 | 4 commits to main since this release

    Fix Freebuff and OpenCode imports; verify every provider in both directions.

    • Freebuff: imported chats crashed the app (mainAgentState.messageHistory was empty). The runner state in run-state.json is now written in Freebuff's native shape, with the full replayed messageHistory (user/assistant/tool entries with sentAt), so imported chats open and can be continued.
    • OpenCode v2: imported sessions opened as a blank window and opencode session export failed. Rows now match the installed OpenCode 2.2.5 schema exactly (reasoning time as created/completed, error objects on failed tool states, content on completed ones, v2 attachment shape {data, mime, source} for user files, uri/name for tool-result files, rawFinish on assistant rows, and compaction summaries written as real compaction rows).
    • Verification: permanent regression tests for both failures, a CLI probe that runs opencode session export on an imported session, and a matrix test importing one conversation into every target in an isolated home and reading it back. 56 unit tests pass (9 optional probes skipped), IntegrationProbe 8/8 with the real CLIs, RealStoreProbe OK for all 11 providers. App builds and launches.

    Universal build (arm64 + x86_64), macOS 14+.

    Downloads
  • v1.3.0 16925c80d9

    outage.sh released this 2026-11-03 19:24:11 +01:00 | 5 commits to main since this release

    Resume any chat where it stopped.

    • Every session row now has a ▷ menu with Copy Resume Command and Resume in Terminal.
    • Works for all 11 agents: the command is built from the session's own ID and the folder it originally ran in, so the agent reopens the full conversation.
    • Resume in Terminal opens Terminal and runs the command directly through your login shell, so CLIs installed outside the default PATH (Homebrew, ~/.local/bin, …) are found. The command is also copied to the clipboard.
    • The same actions are available from the row's right-click menu and from the Resume button in the conversation toolbar.

    50 unit tests pass (7 skipped). Universal build (arm64 + x86_64), macOS 14+.

    Downloads
  • v1.2.0 875aa41b10

    outage.sh released this 2026-11-03 09:47:01 +01:00 | 6 commits to main since this release

    Model attribution for every reply.

    • Every assistant reply now shows a model chip; click it for the provider, API, exact model ID and a copy button.
    • The session header summarizes the models used, with reply counts and a clear "not recorded" state.
    • Model metadata is now read from Goose, Hermes, GitHub Copilot, Codex and Mistral Vibe, in addition to the formats already supported.
    • Codex no longer invents a default "gpt-5" model: it uses the session's provider and each turn's recorded model.
    • Sources that do not store a model per reply stay honestly marked "Not recorded" instead of guessing.

    44 unit tests pass (7 skipped). Universal build (arm64 + x86_64), macOS 14+.

    Downloads
  • v1.1.0 8428b1fe7a

    outage.sh released this 2026-11-02 21:43:18 +01:00 | 7 commits to main since this release

    Reliability release focused on setup differences and silent data loss.

    • Freebuff: real message dates from the chat folder, tool images kept, root-project path fixed
    • OpenCode v2: user and tool-result images preserved
    • Codex: session index written inside a flat CODEX_HOME
    • Hermes: older schemas with optional columns are read
    • Copilot: a store without the turns table no longer aborts the import
    • Vibe: relative attachment paths resolved
    • Honor CLAUDE_CONFIG_DIR, CODEX_HOME, COPILOT_HOME and XDG_DATA_HOME
    • Goose: first human prompt found after tool-only rows
    • Aider: markdown-like assistant lines escaped
    • Empty imports rejected, project folders validated, JSON booleans no longer dates

    41 unit tests and 6 CLI integration tests pass. Universal build (arm64 + x86_64), macOS 14+.

    Downloads
  • v1.0.0 5cdecdc499

    outage.sh released this 2026-10-05 17:19:51 +02:00 | 10 commits to main since this release

    Agent Chat Importer is a native macOS app that finds the chats stored by every AI coding harness on your Mac and imports any of them into another one, keeping every human turn, AI reply, reasoning block, tool call, tool result and image.

    Supported harnesses (import and export): Claude Code, pi, Oh My Pi (omp), Mistral Vibe, Freebuff, OpenCode v1 & v2, Codex, Goose, Aider, GitHub Copilot CLI and Hermes.

    Install

    1. Download Agent-Chat-Importer-1.0.0.dmg (or the -dmg.zip) and drag the app into Applications.
    2. The app is ad-hoc signed and not notarized. On first launch, right-click it, choose Open and confirm, or run:
      xattr -dr com.apple.quarantine "/Applications/Agent Chat Importer.app"

    Universal build (Apple Silicon + Intel), requires macOS 14+.

    Downloads