claude-multi 0.6.0 → 0.6.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +73 -3
- package/dist/cli.js +4338 -3553
- package/package.json +12 -9
package/CHANGELOG.md
CHANGED
|
@@ -5,12 +5,80 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.6.4] - 2026-05-29
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- Instance migration (0.6.3) syncs provider template env vars to existing instances. Detects the provider from `ANTHROPIC_BASE_URL` in `settings.json` and re-applies the latest template (model names, thinking tokens, output limits). Preserves API keys and user-added env vars.
|
|
12
|
+
- `detectProvider()` and `getProviderByBaseUrl()` in `templates.ts` match a base URL to a provider template name.
|
|
13
|
+
- `providerTemplate` field on the `Instance` type. New instances store it; migration backfills it for existing instances.
|
|
14
|
+
|
|
15
|
+
### Blog
|
|
16
|
+
- Blog post: [v0.6.4: Existing Instances Now Auto-Sync Provider Template Updates](https://claude-multi.hmziq.xyz/blog/v064-provider-template-sync/)
|
|
17
|
+
|
|
18
|
+
## [0.6.3] - 2026-05-29
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
- Instance migrations regenerate wrappers pointing to the globally installed `claude` binary (via `which claude`), not the pinned binary at `~/.claude-multi/bin`. Wrappers that already match the expected content are left untouched.
|
|
22
|
+
- `runMigration` and `createBackup` are synchronous now (had no `await` expressions).
|
|
23
|
+
- MiMo (pay-per-token and Token Plan) models bumped to `mimo-v2.5-pro[1m]` and `mimo-v2.5[1m]` (1M context window variants).
|
|
24
|
+
- Kimi opus model changed from `kimi-k2.6` to `kimi-k2.5`.
|
|
25
|
+
- Provider templates now include explicit thinking and output token limits:
|
|
26
|
+
- MiniMax: 32K thinking, 64K output
|
|
27
|
+
- DeepSeek: 32K thinking, 128K output
|
|
28
|
+
- MiMo (both plans): 128K output
|
|
29
|
+
- Kimi: 16K thinking, 64K output
|
|
30
|
+
- Qwen and Qwen Coding Plan: 16K thinking, 64K output
|
|
31
|
+
|
|
32
|
+
### Added
|
|
33
|
+
- `getGlobalClaudePath()` and `tryGetGlobalClaudePath()` in `wrapper.ts` resolve the claude binary from the env override or PATH, skipping the pinned binary.
|
|
34
|
+
- Instance migration tests: fast-path skip on current-version instances, mixed instances (some current, some old), `.claude.json` updates when the wrapper file is missing, and a verification that regenerated wrappers contain the global claude path.
|
|
35
|
+
|
|
36
|
+
### Fixed
|
|
37
|
+
- Health test compared `fixWrapperVersions` output against `generateWrapperScript()` (resolves via env override) instead of `buildWrapperScript(inst, PINNED_CLAUDE_BIN)` (what the function actually uses). Would break if `CLAUDE_MULTI_CLAUDE_PATH` was set.
|
|
38
|
+
|
|
39
|
+
### Blog
|
|
40
|
+
- Blog post: [v0.6.3: Drop the Pinned Binary, Update Every Provider Template](https://claude-multi.hmziq.xyz/blog/v063-migration-and-provider-updates/)
|
|
41
|
+
|
|
42
|
+
### Added
|
|
43
|
+
- Instances track the claude-multi version they were created with (`createdWithVersion`). New instances get the current version. Instances created before this field existed get `0.5` and show "before version tracking" in the UI.
|
|
44
|
+
- `doctor` and the TUI health screen report when instance migrations are pending or when an instance is running an older version.
|
|
45
|
+
- `doctor fix` shows which instances need migration and asks for confirmation before running.
|
|
46
|
+
- Version column added to `list`, `info`, and the Ink TUI instance cards and detail screens.
|
|
47
|
+
|
|
48
|
+
### Changed
|
|
49
|
+
- `instanceMigrationVersion` in config now stores the actual package version rather than a separate numbering scheme.
|
|
50
|
+
- The legacy sentinel (`"0.5"`) is defined once as `LEGACY_INSTANCE_VERSION` and imported everywhere, instead of being hardcoded in multiple files.
|
|
51
|
+
- Wrapper script template exists in a single place (`buildWrapperScript` in `wrapper.ts`). Migration and health check both delegate to it instead of duplicating the template string.
|
|
52
|
+
- Instance migration only rewrites wrappers when the file content actually differs (version check + content diff), instead of unconditionally regenerating every wrapper.
|
|
53
|
+
- `fixWrapperVersions` uses the canonical template targeting the pinned binary explicitly, with a content-diff check to avoid unnecessary writes.
|
|
54
|
+
|
|
55
|
+
### Fixed
|
|
56
|
+
- Removed broken `compareVersions` references from `version.test.ts`.
|
|
57
|
+
- `resolveClaudePath()` in `migration.ts` used `await` in a non-async function (TypeScript error). Removed — replaced by `generateWrapperScriptSafe` from `wrapper.ts`.
|
|
58
|
+
- Unused imports (`COMPATIBLE_CLAUDE_VERSION`, `installPinnedClaude`, `getPinnedBinaryVersion`, `isThirdPartyApiBroken`, `PINNED_CLAUDE_BIN`) removed from `migration.ts`.
|
|
59
|
+
- `config.ts` `loadConfig` backfill loop now handles `noUncheckedIndexedAccess` correctly (pre-existing TypeScript error).
|
|
60
|
+
- `createBackup` changed from async to sync (had no `await` expressions — pre-existing lint warning).
|
|
61
|
+
- Array `.sort()` / `.reverse()` calls in `migration.ts` and `config.ts` changed to `.toSorted()` / `.toReversed()` (pre-existing lint warnings).
|
|
62
|
+
- Duplicate `existsSync` import in `test/wrapper.test.ts` merged into single import.
|
|
63
|
+
|
|
64
|
+
## [0.6.1] - 2026-05-29
|
|
65
|
+
|
|
66
|
+
### Changed
|
|
67
|
+
- Pinned Claude version updated from `2.1.153` to `2.1.156`. `isThirdPartyApiBroken()` now covers v2.1.154 through v2.1.155.
|
|
68
|
+
- Auto-updates re-enabled. `PROVIDER_COMMON_ENV` no longer injects `DISABLE_AUTOUPDATER`/`DISABLE_UPDATES`. `autoUpdates` set to `true` in instance state.
|
|
69
|
+
- `doctor fix` now reinstalls the pinned binary when its version differs from `COMPATIBLE_CLAUDE_VERSION`, not just when broken. Covers the upgrade path from the old v2.1.153 pin.
|
|
70
|
+
- Unknown CLI subcommands exit with an error instead of falling through to the Ink TUI.
|
|
71
|
+
- All version pinning and compatibility code tagged with `[SAFE PARK]` comments for easy discovery and reactivation.
|
|
72
|
+
|
|
73
|
+
### Added
|
|
74
|
+
- Blog post: "Claude Code v2.1.156 fixes the third-party provider breakage"
|
|
75
|
+
|
|
8
76
|
## [0.6.0] - 2026-05-29
|
|
9
77
|
|
|
10
78
|
### Added
|
|
11
|
-
- **`doctor fix` auto-installs pinned Claude binary**: when the compatible binary at `~/.claude-multi/bin` is missing or running an incompatible version, `doctor fix` now installs Claude Code v2.1.
|
|
12
|
-
- **Version verification on pinned binary**: `getPinnedBinaryVersion()` reads the installed version and triggers a reinstall if it's v2.1.154
|
|
13
|
-
- **`COMPATIBLE_CLAUDE_VERSION` constant** (`src/version.ts`): single source of truth for the pinned version (`2.1.
|
|
79
|
+
- **`doctor fix` auto-installs pinned Claude binary**: when the compatible binary at `~/.claude-multi/bin` is missing or running an incompatible version, `doctor fix` now installs Claude Code v2.1.156 (the version that fixed the 3rd-party API breakage from v2.1.154–v2.1.155) before fixing wrappers. Works from both CLI and TUI.
|
|
80
|
+
- **Version verification on pinned binary**: `getPinnedBinaryVersion()` reads the installed version and triggers a reinstall if it's v2.1.154–v2.1.155.
|
|
81
|
+
- **`COMPATIBLE_CLAUDE_VERSION` constant** (`src/version.ts`): single source of truth for the pinned version (`2.1.156`).
|
|
14
82
|
- **`PINNED_CLAUDE_BIN` in `src/paths.ts`**: shared path constant (previously duplicated in `wrapper.ts` and `health.ts`).
|
|
15
83
|
|
|
16
84
|
### Changed
|
|
@@ -314,6 +382,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
314
382
|
- Support for custom config and binary paths
|
|
315
383
|
- Command-line interface built with Commander.js
|
|
316
384
|
|
|
385
|
+
[0.6.4]: https://github.com/hmziqrs/claude-multi/compare/v0.6.3...v0.6.4
|
|
386
|
+
[0.6.3]: https://github.com/hmziqrs/claude-multi/compare/v0.6.2...v0.6.3
|
|
317
387
|
[0.5.5]: https://github.com/hmziqrs/claude-multi/compare/v0.5.1...v0.5.5
|
|
318
388
|
[0.5.1]: https://github.com/hmziqrs/claude-multi/compare/v0.5.0...v0.5.1
|
|
319
389
|
[0.5.0]: https://github.com/hmziqrs/claude-multi/compare/v0.4.4...v0.5.0
|