Skip to content

Releases: Larrtroffen/harnessbridge

HarnessBridge v1.7.1 — DSH workspace preservation fix

Choose a tag to compare

@Larrtroffen Larrtroffen released this 01 Nov 13:19

HarnessBridge v1.7.1 — DSH workspace preservation fix

Release date: 2026-11-01
Artifacts: arm64 + x86_64 DMGs/ZIPs + SHA256SUMS.txt

Fixed

  • DSH→DSH migration lost workspace membership. DSH discovers session files by directory scan, but after workspace.json has initialized: true it does not adopt new files into existing workspaces; the session appears under Ungrouped. Registration was previously opt-in and the one-click path never passed it.
  • DSH installs now auto-register the session into the workspace whose canonical path == header.cwd:
    • single-session wizard default is on for DSH targets;
    • one-click migrate-all passes registration for DSH automatically;
    • CLI asi migrate / migrate-all default to registration for --to dsh (--no-register opts out).
  • Added repair for sessions migrated by older builds:
    • CLI: asi dsh-workspaces --dsh-home ~/.dsh --json (dry-run), --fix to write (requires DSH closed);
    • App: Settings → DeepSeek Harness 工作区 → 修复工作区归属.
    • Repair only attaches exact realpath(header.cwd) == workspace.path matches; nested/other-workspace cwd is reported as path-mismatch, not moved (DSH would filter it).
  • Tests: tests/test_dsh_workspace.py (registration idempotency, orphan repair, workspace creation); app self-test unchanged.

Notes

  • Always quit DeepSeek Harness before writing workspace.json; the running app keeps workspace state in memory and can overwrite external edits.
  • Export mode (--mode export) cannot carry DSH workspace.json/projection cache; only direct install repairs project grouping.
  • All conversion/coverage numbers unchanged.

Verification

  • App self-test: 31 PASS / 0 FAIL (arm64); Intel build structural checks.
  • Backend/fixture tests: full suite green.
  • Live App repair button + CLI dry-run/repair exercised against a temporary DSH home (never the real store).

HarnessBridge v1.7.0 — English/Chinese localization + official logos

Choose a tag to compare

@Larrtroffen Larrtroffen released this 01 Nov 06:29

HarnessBridge v1.7.0 — English/Chinese localization + official logos

Release date: 2026-11-01
Artifacts: arm64 and x86_64 DMGs/ZIPs + SHA256SUMS.txt

Highlights

  • English + Simplified Chinese localization:
    • Localization/en.lproj/Localizable.strings and Localization/zh-Hans.lproj/Localizable.strings.
    • Settings → Interface Language supports Follow System / English / 简体中文 and switches live (no restart needed); the choice is persisted.
    • Static SwiftUI labels plus generated status/count/backend hints are localized (examples: 3 个会话 ↔ 3 sessions, 重启后可见 hints, wizard steps, migration history, session detail).
    • App menu commands and window title follow the selected language.
  • Official logo refresh:
    • Replaced third-party/old images for claude, codex, aider and devin with official organization assets.
    • Added logos for amp, cherry-studio, claude-desktop, codebuff, droid, grok, hermes, iflow, openclaw, opencraw, trae, workbuddy, zcode.
    • Sources, licenses/trademark notes and fallbacks are listed in tools/HarnessBridgeApp/Assets/Logos/SOURCE.md and UNRESOLVED.md; pi, mini-swe-agent, fx, oss, atif intentionally use letter fallback where no honest product mark exists.
  • Both Intel (x86_64) and Apple Silicon (arm64) portable builds are rebuilt.

Coverage/accounting

  • Backend/data coverage numbers are unchanged: protocol 40/40, fixture-verified 35/40, real user sessions 22/40, REAL-EXAMPLE 2.
  • The localization work does not alter conversion semantics.

Verification

  • App self-test: 31 PASS / 0 FAIL on Apple Silicon.
  • Live language switch verified via the actual Settings picker (English ↔ 简体中文) and persisted across relaunch.
  • Backend: 145 tests OK.
  • Main CI: success.

Known limits

  • Some dynamic backend strings that have no app-side source translation may remain in Chinese until the backend provides i18n metadata.
  • Logos for products without a public product-specific mark use fallback letters rather than misleading parent/personal images; see UNRESOLVED.md.

HarnessBridge v1.6.3 — Intel Mac support

Choose a tag to compare

@Larrtroffen Larrtroffen released this 01 Nov 05:52

HarnessBridge v1.6.3 — Intel Mac support

Release date: 2026-11-01
Artifacts: arm64 and x86_64 DMGs/ZIPs + SHA256SUMS.txt

Highlights

  • Intel Mac (x86_64) build added (issue #1):
    • HarnessBridge-1.6.3-macos-x86_64.dmg — x86_64 Swift app, x86_64 Python 3.12 runtime and cross-compiled x86_64 zstd.
    • HarnessBridge-1.6.3-macos-arm64.dmg — existing Apple Silicon build, rebuilt for 1.6.3.
    • The Intel build's app binary, embedded Python and zstd were verified as x86_64 Mach-O and the DMG/app signature verifies. It has not been executed on an Intel Mac by the maintainer (build host is Apple Silicon without Rosetta), so an Intel-Mac smoke test is requested from issue #1.
  • build.sh now supports --arch x86_64 / --intel and --arch arm64 / --arm; SwiftPM scratch dirs are separated per architecture; Intel builds download the x86_64 Python runtime and cross-compile zstd 1.5.7.
  • Homebrew cask uses on_arm / on_intel with the matching artifact and sha256.
  • New doc: docs/INTEL-MAC.md.

Compatibility

  • Minimum macOS: 13.0 Ventura for both architectures (same app code; Intel hardware must support Ventura).
  • Ad-hoc signed, not notarized: first launch may require right-click → Open on both architectures.
  • Same backend/features on both builds: 43 source adapters, 32 native writers, coverage numbers unchanged (protocol 40/40, fixture-verified 35/40, real 22/40, REAL-EXAMPLE 2).

Verification

  • arm64: self-contained DMG; --self-test 31 PASS / 0 FAIL on Apple Silicon.
  • Intel: cross-compiled; codesign --verify --deep --strict passes; DMG mounts and contains an x86_64 app; app binary/Python/zstd file output all x86_64. Runtime self-test pending Intel hardware.
  • Backend: 145 tests OK.
  • Main CI: success (Ubuntu CLI/docs checks; macOS app build is manual because hosted macOS SDKs lag the macOS 26 API requirement).

HarnessBridge v1.6.2 — real DeepSeek latest-store test

Choose a tag to compare

@Larrtroffen Larrtroffen released this 01 Nov 05:34

HarnessBridge v1.6.2 — latest-version isolation test with DeepSeek

Release date: 2026-11-01
Artifacts: HarnessBridge-1.6.2-macos-arm64.dmg, .zip, SHA256SUMS.txt

What changed

This release replaces the earlier mock-model latest-store samples with real DeepSeek API runs.

  • Installed the missing harness CLIs in an isolated $HOME on SSH Home (Ubuntu 22.04 x86_64, no sudo) and confirmed latest versions against npm/GitHub/PyPI/official installers.
  • For every installable CLI that allows a custom Base URL / OpenAI-compatible endpoint, configured it to use DeepSeek (https://api.deepseek.com/v1, model deepseek-flash) instead of a mock.
  • Generated and validated real latest stores for:
    • Qwen Code 0.26.5 — ~/.qwen/projects/*/chats/*.jsonl
    • Goose 1.57.0 — ~/.local/share/goose/sessions/sessions.db (SQLite+WAL)
    • OpenCode 1.19.5 — ~/.local/share/opencode/opencode.db (new SQLite v2 store; reader added)
    • iFlow CLI 0.5.19 — ~/.iflow/projects/*/session-*.jsonl
  • New fixtures in samples/batch7/, each with SOURCE.md (version, DeepSeek config, license, caveats); regression tests tests/test_latest_stores.py; backend suite 145 tests OK.
  • Updated docs/latest-version-matrix.md with installed/latest versions, store paths, login/GUI blockers, and the no-inflation accounting.

Coverage accounting (unchanged)

Metric Value
Protocol coverage 40/40
Fixture-verified format coverage 35/40
Real user-session coverage 22/40
REAL-EXAMPLE 2

LOCAL-DEEPSEEK is not REAL user-session coverage. The latest-store sessions are generated by real latest binaries and the real DeepSeek model, but they are our own smoke conversations; they are labelled separately and do not inflate the real coverage numbers.

Still not testable without user credentials

  • Login-gated CLIs: Copilot, Gemini, Kimi, Junie, Kiro, TRAE, Droid, Amp, CodeBuddy/WorkBuddy, FX, Vibe, Cursor.
  • Blocked runtime/installers: official Grok Build (x.ai unreachable from the build host), Codebuff runtime download, OpenHands latest PyPI entry point, Cursor Agent npm bin.
  • Desktop-only harnesses: ZCode 3.16.3, Windsurf, Cherry Studio, Claude Desktop, Zed, OpenCraw.

Verification

  • Backend: 145 tests OK in the development workspace; shipped public tests pass with private-data tests skipped.
  • App: self-contained arm64 DMG v1.6.2; --self-test 31 PASS / 0 FAIL.
  • CI on main: success.

HarnessBridge v1.6.1 — latest-version isolation test

Choose a tag to compare

@Larrtroffen Larrtroffen released this 01 Nov 05:04

HarnessBridge v1.6.1 — latest-version isolation test

Release date: 2026-11-01
Artifacts: HarnessBridge-1.6.1-macos-arm64.dmg, .zip, SHA256SUMS.txt

What changed

  • Latest-version isolation test (SSH Home, Ubuntu 22.04 x86_64, no sudo): installed missing harness CLIs in an isolated $HOME and confirmed latest versions against npm/GitHub/PyPI/official installers on 2026-11-01.
  • New current-store support: OpenCode 1.19.5 moved its primary store to SQLite (~/.local/share/opencode/opencode.db, tables session / message / part); the reader now parses it natively while keeping legacy storage/v2 JSON fallbacks.
  • Validated latest on-disk stores for Qwen Code 0.26.5, Goose 1.57.0 and OpenCode 1.19.5, produced by latest binaries in an isolated HOME with a local mock model. These are LOCAL-SMOKE samples, not real user conversations.
  • Added regression tests tests/test_latest_stores.py; full backend suite 144 tests OK.
  • Added docs/latest-version-matrix.md: exact installed versions, latest-version sources, session-store paths, login/GUI blockers, and the honest coverage accounting.
  • App/backend version 1.6.1; self-contained arm64 DMG rebuilt.

Coverage accounting (unchanged)

Metric Value
Protocol coverage 40/40
Fixture-verified format coverage 35/40
Real user-session coverage 22/40
REAL-EXAMPLE 2

LOCAL-SMOKE is not REAL. The latest-store samples added in this release are generated by real latest tool binaries but use a mock model; they are recorded separately and do not inflate the real-session coverage.

Installed/latest versions (selected)

Qwen Code 0.26.5 · OpenCode 1.19.5 · Goose 1.57.0 · Kimi Code 2.4.1 · Gemini CLI 0.66.0 · GitHub Copilot CLI 1.0.105 · Cline 3.0.74 · Continue CLI 1.5.47 · Droid 1.1.0 · Amp latest · iFlow 0.5.19 · Junie 3110.7.0 · Kiro CLI 2.37.0 · TRAE CLI 0.213.1 · Crush 0.99.0 · FX 0.0.16 · Vibe 3.0.4 · Roo Code CLI 0.5.8 (community). Full table and blockers: docs/latest-version-matrix.md.

Not claimed

  • Login-gated CLIs (Copilot/Gemini/Kimi/Junie/Kiro/TRAE/Droid/Amp/CodeBuddy/WorkBuddy) could not generate conversations without credentials.
  • Official Grok Build installer (x.ai) is unreachable from the build environment; Codebuff runtime download and OpenHands latest CLI entry point are blocked.
  • Desktop-only harnesses (ZCode 3.16.3, Windsurf, Cherry Studio, Claude Desktop, Zed, OpenCraw) are not headless-installable with current public tooling.

HarnessBridge v1.6.0 — coverage expansion

Choose a tag to compare

@Larrtroffen Larrtroffen released this 31 Oct 13:42

HarnessBridge v1.6.0 — coverage expansion: fixture-verified formats

Release date: 2026-10-31
Artifacts: HarnessBridge-1.6.0-macos-arm64.dmg, HarnessBridge-1.6.0-macos-arm64.zip, SHA256SUMS.txt
License: MIT · Repo: https://github.com/Larrtroffen/harnessbridge

Highlights

  • 43 source adapters — 40 canonical harness formats plus bonus iFlow and Zed readers; 32 native writer targets.
  • Batch 6 external-fixture matrix (asi matrix-batch6):
    • readers: 34 pass / 6 partial / 0 fail across the 40 canonical labels;
    • writers: 32/32 pass, with staging writes and read-back verification;
    • fixture-verified format coverage: 35/40 (partial counted, CONSTRUCTED not counted);
    • real-session coverage: 22/40 (Continue real Apache-2.0 sample added);
    • REAL-EXAMPLE: 2 (Harbor openhands / mini-swe-agent public trajectories, listed separately).
  • New native readers for the previously OSS-only labels: WorkBuddy, Windsurf, TRAE (native CLI + codeg ACP fallback), ZCode, Cherry Studio, Claude Desktop / Cowork, OpenCraw.
  • iFlow (Claude-compatible JSONL) and Zed (threads.db, JSON/zstd) readers added as bonus sources.
  • Existing adapters upgraded against upstream fixtures: qwen, copilot, roo, kiro, antigravity, grok, fx, openhands, mini-swe-agent, codebuddy, kimi, openclaw, devin, continue, goose, junie, codebuff, vibe, opencode, hermes, cline, kilo-code.
  • New docs: external projects & fixtures, coverage ledger v0.4, asi matrix-batch6 usage in docs/usage.md §16.

What is not claimed

  • 35/40 fixture-verified is not 35/40 real user sessions. Real-session coverage is 22/40; fixture and constructed evidence are reported separately.
  • Six canonical labels are partial (codex, cline, fx, kilo-code, roo, openhands) because of ATIF round-trip/lossy differences; they are not counted as full pass.
  • Harnesses without installed local stores cannot be L3-verified on the build machine; L3 requires the target tool installed and a native load.
  • Crush (FSL) and Zed (NOASSERTION/GPL mix) fixtures are not vendored; reader-only where applicable.
  • Ad-hoc signed, not notarized; first launch may require right-click → Open.

Install

  • Homebrew: brew tap Larrtroffen/harnessbridge && brew trust Larrtroffen/harnessbridge && brew install --cask harnessbridge
  • Or download the DMG above and drag HarnessBridge.app into /Applications.

Verification

  • Backend: 141 tests green in the development workspace; public fixture tests pass with private-data tests skipped.
  • App: --self-test 31 PASS / 0 FAIL from repo build and mounted DMG (portable: true).
  • Coverage ledger: python3 tools/coverage-report.py --check passes.

HarnessBridge v1.5.2 — bug-fix release

Choose a tag to compare

@Larrtroffen Larrtroffen released this 30 Oct 20:42

HarnessBridge v1.5.2 — bug-fix release

Release date: 2026-10-31
Artifacts: HarnessBridge-1.5.2-macos-arm64.dmg, HarnessBridge-1.5.2-macos-arm64.zip, SHA256SUMS.txt
License: MIT · Repo: https://github.com/Larrtroffen/harnessbridge

Fixes

  • Session detail expand/collapse — “展开全文” now requests up to 2,000 characters instead of 400 (previously expanding often revealed no visible difference). The control is larger, has a chevron and a proper hit area; “收起” collapses it again.
  • Sidebar harness counts — counts for each harness in the sidebar now refresh automatically after a migration/restore and whenever the app becomes active, instead of staying at the launch-time values.

No migration data formats or CLI contracts changed. The arm64 DMG remains self-contained (bundled Python, backend and zstd) and is ad-hoc signed; first launch may still require right-click → Open.

Install

  • Homebrew: brew tap Larrtroffen/harnessbridge && brew trust Larrtroffen/harnessbridge && brew install --cask harnessbridge
  • Or download the DMG above and drag HarnessBridge.app to /Applications.

Verification

  • --self-test: 31 PASS / 0 FAIL (repo build and mounted DMG)
  • CI: CLI/docs checks green on main

HarnessBridge v1.5.1 — first public release (arm64)

Choose a tag to compare

@Larrtroffen Larrtroffen released this 30 Oct 19:55

HarnessBridge v1.5.1 — first public release (self-contained build)

Release date: 2026-10-31
Artifacts: HarnessBridge-1.5.1-macos-arm64.dmg, HarnessBridge-1.5.1-macos-arm64.zip, SHA256SUMS.txt
License: MIT · Repo: https://github.com/Larrtroffen/harnessbridge

Welcome aboard

HarnessBridge moves AI agent sessions between coding harnesses — Claude Code, Codex, DeepSeek Harness, OMP, Qoder, Pi, Gemini CLI and 40+ formats covered by adapters. It is a native SwiftUI macOS app plus the asi CLI (the single conversion/migration engine).

v1.5.1 is the first public GitHub release: new name, a glass-refined native UI, and a self-contained Apple-silicon app.

Highlights

  • New name, same ferry: HarnessBridge.app, bundle id io.github.larrtroffen.harnessbridge. The CLI stays asi.
  • Liquid Glass UI on macOS 26+ (with material/NSVisualEffectView fallback on macOS 13–25, Reduce Motion and Reduce Transparency respected).
  • Self-contained arm64 DMG — bundles Python 3.12, the asi backend and zstd; no Python, zstd or repo checkout required to run the app. Gatekeeper note: ad-hoc signed and not notarized.
  • Direct install by default: writes into the target harness's own store. DSH / Claude Code / OMP are stable; Codex / Qoder / Pi / Gemini are experimental; Goose is export-only.
  • Keep or move — always reversible: move renames the source only after a verified install to *.migrated-<timestamp>.bak; nothing is deleted; migrate-restore / the app bring it back.
  • One-click full migration: all other detected harnesses → one target, with limits, --since-days, dry-run plans, duplicate skipping, overwrite backups, progress, cancellation, per-session results and an atomic incremental journal.
  • Safer writes: staging + atomic rename, post-install verification, rollback on failure, --dry-run zero writes, --yes required for real-store installs.
  • Local only: no network, no telemetry, no accounts.

Install

  1. Download HarnessBridge-1.5.1-macos-arm64.dmg (or .zip) from this release.
  2. Verify shasum -a 256 -c SHA256SUMS.txt.
  3. Open the DMG, drag HarnessBridge.app to /Applications.
  4. First launch is ad-hoc signed: right-click → Open, or xattr -dr com.apple.quarantine /Applications/HarnessBridge.app.
  5. Optional source build:
    git clone https://github.com/Larrtroffen/harnessbridge.git
    cd harnessbridge/tools/HarnessBridgeApp
    swift build -c release && ./build.sh && open dist/HarnessBridge.app
    ./build.sh defaults to a portable build (downloads the pinned Python runtime into vendor/); ./build.sh --dev uses the repo backend directly.

Verification

  • Backend: 81 unit tests green locally (isolated HOME/env stores; tests requiring local harness data are not run on hosted CI). The bundled coverage artifacts are included in the app.
  • App: --self-test 31 PASS / 0 FAIL both in the repo build and from the mounted DMG (portable: true), including isolated install/verify, keep, backend move + restore, migrate-all dry-run, cancellation, brand/data-directory checks and performance baselines.
  • Real stores: no real user store writes during tests; the app only reads sources unless you explicitly migrate.

Known limitations

  • Ad-hoc signed / not notarized; first launch needs the right-click flow.
  • Codex/Qoder/Pi/Gemini direct install is experimental (target tools may need a restart / index rebuild).
  • Directory/multi-file session sources are not moved (keep is enforced with a clear message).
  • Token usage is shown when the source records it; some harnesses do not.