@@ -7,6 +7,61 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77
88## [ Unreleased]
99
10+ ## [ 0.4.0] - 2026-01-22
11+
12+ ### Added
13+
14+ - ** Full CLI Interface** - Complete command-line interface for plugin management
15+ - ` plum search <query> ` - Search plugins across all marketplaces
16+ - ` plum info <plugin> ` - Show detailed plugin information
17+ - ` plum install <plugin> ` - Install plugins to user/project/local scope
18+ - ` plum remove <plugin> ` - Remove plugins (aliases: ` uninstall ` , ` rm ` )
19+ - ` plum list ` - List installed plugins with filters (` --enabled ` , ` --disabled ` , ` --scope ` )
20+ - ` plum enable/disable <plugin> ` - Toggle plugin state
21+ - ` plum update [plugin] ` - Update plugins to latest versions
22+ - ` plum doctor ` - Health check for plugin installations
23+ - ` plum marketplace list ` - List available marketplaces
24+ - ` plum marketplace add/remove ` - Manage custom marketplaces
25+ - ` plum marketplace refresh ` - Fetch fresh data from GitHub
26+ - All commands support ` --json ` output for scripting
27+ - Scope support: ` --scope=user|project|local `
28+
29+ - ** Automatic Settings Backup** - Safety net for user configuration
30+ - Creates ` settings.json.backup-plum ` before first modification
31+ - One-time backup per settings file (idempotent)
32+ - Covers user and project scopes
33+ - Easy restore: ` cp ~/.claude/settings.json.backup-plum ~/.claude/settings.json `
34+
35+ - ** Settings Safety Documentation** - New README section explaining field preservation
36+ - Documents what plum manages vs preserves
37+ - Shows backup locations and restore instructions
38+ - Builds user confidence in plum safety
39+
40+ - ** Integration Tests** - End-to-end testing with real plum binary
41+ - Verifies settings preservation in realistic scenarios
42+ - Tests multiple operations in sequence
43+ - Run with: ` go test -tags=integration ./internal/integration/... -v `
44+
45+ ### Fixed
46+
47+ - ** CRITICAL: Settings.json Data Loss** - Fixed bug that destroyed user configuration
48+ - ** Previous behavior** : Installing/removing plugins deleted ` permissions ` , ` hooks ` , ` attribution ` , ` model ` , and other custom fields
49+ - ** New behavior** : All fields are preserved - plum only modifies ` enabledPlugins ` and ` extraKnownMarketplaces `
50+ - Implemented custom JSON marshaling to preserve unknown fields
51+ - Added 4 comprehensive unit tests for field preservation
52+ - This was a production blocker that affected all users
53+
54+ ### Security
55+
56+ - Addressed code review security issues in CLI commands
57+ - Added input validation for plugin names and marketplace sources
58+ - Atomic file writes with temp file + rename pattern
59+ - Secure file permissions (0600) for settings and backups
60+
61+ ### Changed
62+
63+ - Updated marketplace stats and plugin counts (2026-01-21 snapshot)
64+
1065## [ 0.3.6] - 2026-01-11
1166
1267### Changed
0 commit comments