claude-multi 0.8.0 → 0.8.2

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 CHANGED
@@ -5,6 +5,42 @@ 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.8.2] - 2026-06-03
9
+
10
+ ### Added
11
+ - **Granular sync modes for plugins and skills**: Replaced the binary auto-sync toggle (on/off) with three sync modes: `auto` (symlink entire directories, existing behavior), `half-manual` (symlink individual plugins/skills, new installs stay isolated), and `full-manual` (independent copy, no symlinks). Only downgrades are allowed: auto → half-manual → full-manual.
12
+ - New CLI flags: `--half-manual`, `--sync-mode <mode>` on the `add` command.
13
+ - `auto-sync` command now accepts: `auto`, `half-manual`, `full-manual`, `on` (legacy), `off` (legacy).
14
+ - `halfSyncPluginsAndSkills()` in `config.ts`: converts whole-directory symlinks to real directories with individual item symlinks.
15
+ - `getSyncMode()` resolves the effective mode from the new `syncMode` field, falling back to the deprecated `autoSync` boolean for backward compatibility.
16
+ - `canConvertSyncMode()` and `availableSyncModeConversions()` in `constants.ts` enforce downgrade-only rule.
17
+ - `copyAllFromDefault()` now accepts a `SyncMode` parameter instead of a boolean.
18
+ - `detectBrokenSymlinks()` now detects broken individual symlinks inside real directories (half-manual mode), not just broken directory-level symlinks.
19
+ - TUI `ToggleAutoSync` screen rewritten as `Sync Mode` screen with color-coded mode labels and available-downgrade display.
20
+ - Instance info screen (`ShowInstanceInfo`) shows sync mode with color-coded labels instead of binary on/off.
21
+ - `plugin install/remove` commands blocked when instance is in half-manual mode (individually symlinked plugins cannot be individually managed).
22
+ - `fix-symlinks` command handles all three modes.
23
+
24
+ ### Changed
25
+ - **Responsive header with hamburger dropdown navigation**: The docs site header now collapses into a hamburger menu on tablet/mobile viewports (< 60rem). A custom `<nav-dropdown>` web component handles open/close with keyboard escape, outside-click dismiss, and coordination with Starlight's mobile sidebar.
26
+ - **Sticky sidebar with CSS grid overlay**: On desktop (≥ 72rem), the docs page uses a CSS grid where the sidebar and main content overlap in the same grid cell. The sidebar uses `position: sticky` so it scrolls with the page but stops at the bottom, never overlapping the site footer.
27
+ - **SSR site footer**: A full-width site footer is now injected during Astro's SSR build via a Vite plugin, so it spans the full viewport without sidebar overlap. Includes product links, docs links, and version number.
28
+ - Header spacing and navigation density adjusted for better visual balance.
29
+ - `Instance.autoSync` field deprecated in favor of `Instance.syncMode`. Old configs with `autoSync: false` resolve to `full-manual` via `getSyncMode()`.
30
+
31
+ ### Blog
32
+ - Blog post: [v0.8.2: Granular Sync Modes and Responsive Web](https://claude-multi.hmziq.xyz/blog/v082-granular-sync-modes-responsive-web/)
33
+
34
+ ## [0.8.1] - 2026-06-03
35
+
36
+ ### Fixed
37
+ - **CLI build output moved from `dist/` to `build/`**: The CLI and Astro docs builds both output to `dist/`, causing the published npm package to contain the docs site HTML instead of `cli.js`. Global installs would fail with `Module not found ... dist/cli.js`. The CLI now builds to `build/cli.js`, eliminating the collision.
38
+ - Updated `bin/claude-multi.js` to resolve `../build/cli.js` instead of `../dist/cli.js`.
39
+ - Updated CI workflows (`ci.yml`, `publish.yml`) to verify `build/cli.js` instead of `dist/cli.js`.
40
+
41
+ ### Blog
42
+ - Blog post: [v0.8.1: Fixing the Broken npm Package](https://claude-multi.hmziq.xyz/blog/v081-fixing-the-broken-npm-package/)
43
+
8
44
  ## [0.8.0] - 2026-06-01
9
45
 
10
46
  ### Changed
@@ -443,6 +479,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
443
479
  - Support for custom config and binary paths
444
480
  - Command-line interface built with Commander.js
445
481
 
482
+ [0.8.2]: https://github.com/hmziqrs/claude-multi/compare/v0.8.1...v0.8.2
483
+ [0.8.1]: https://github.com/hmziqrs/claude-multi/compare/v0.8.0...v0.8.1
484
+ [0.8.0]: https://github.com/hmziqrs/claude-multi/compare/v0.7.0...v0.8.0
485
+ [0.7.0]: https://github.com/hmziqrs/claude-multi/compare/v0.6.5...v0.7.0
486
+ [0.6.5]: https://github.com/hmziqrs/claude-multi/compare/v0.6.4...v0.6.5
446
487
  [0.6.4]: https://github.com/hmziqrs/claude-multi/compare/v0.6.3...v0.6.4
447
488
  [0.6.3]: https://github.com/hmziqrs/claude-multi/compare/v0.6.2...v0.6.3
448
489
  [0.5.5]: https://github.com/hmziqrs/claude-multi/compare/v0.5.1...v0.5.5
@@ -8,7 +8,7 @@ while [ -L "$SCRIPT" ]; do
8
8
  esac
9
9
  done
10
10
  DIR=$(cd "$(dirname "$SCRIPT")" && pwd)
11
- CLI="$DIR/../dist/cli.js"
11
+ CLI="$DIR/../build/cli.js"
12
12
 
13
13
  if command -v bun >/dev/null 2>&1; then
14
14
  exec bun "$CLI" "$@"