Repository navigation
Releases: Larrtroffen/harnessbridge
Release list
HarnessBridge v1.7.1 — DSH workspace preservation fix
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.jsonhasinitialized: trueit 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-alldefault to registration for--to dsh(--no-registeropts out).
- Added repair for sessions migrated by older builds:
- CLI:
asi dsh-workspaces --dsh-home ~/.dsh --json(dry-run),--fixto write (requires DSH closed); - App: Settings → DeepSeek Harness 工作区 → 修复工作区归属.
- Repair only attaches exact
realpath(header.cwd) == workspace.pathmatches; nested/other-workspace cwd is reported aspath-mismatch, not moved (DSH would filter it).
- CLI:
- 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
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.stringsandLocalization/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.mdandUNRESOLVED.md;pi,mini-swe-agent,fx,oss,atifintentionally 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
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_64zstd.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.shnow supports--arch x86_64/--inteland--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_intelwith 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-test31 PASS / 0 FAIL on Apple Silicon. - Intel: cross-compiled;
codesign --verify --deep --strictpasses; DMG mounts and contains an x86_64 app; app binary/Python/zstdfileoutput allx86_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
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
$HOMEon 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, modeldeepseek-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
- Qwen Code 0.26.5 —
- New fixtures in
samples/batch7/, each withSOURCE.md(version, DeepSeek config, license, caveats); regression teststests/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.aiunreachable 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-test31 PASS / 0 FAIL. - CI on main: success.
HarnessBridge v1.6.1 — latest-version isolation test
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
$HOMEand 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, tablessession/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
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
iFlowandZedreaders; 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-batch6usage 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-test31 PASS / 0 FAIL from repo build and mounted DMG (portable: true). - Coverage ledger:
python3 tools/coverage-report.py --checkpasses.
HarnessBridge v1.5.2 — bug-fix release
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)
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 idio.github.larrtroffen.harnessbridge. The CLI staysasi. - 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
asibackend andzstd; 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:
moverenames 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-runzero writes,--yesrequired for real-store installs. - Local only: no network, no telemetry, no accounts.
Install
- Download
HarnessBridge-1.5.1-macos-arm64.dmg(or.zip) from this release. - Verify
shasum -a 256 -c SHA256SUMS.txt. - Open the DMG, drag HarnessBridge.app to
/Applications. - First launch is ad-hoc signed: right-click → Open, or
xattr -dr com.apple.quarantine /Applications/HarnessBridge.app. - 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.shdefaults to a portable build (downloads the pinned Python runtime intovendor/);./build.sh --devuses 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-test31 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 (
keepis enforced with a clear message). - Token usage is shown when the source records it; some harnesses do not.