Problem
StatusBar shows stale v5.2.0 when the actual plugin version is v5.5.0. Root cause: hud-state.json freezes the version at session-start and is never re-read when the plugin updates.
Fix (Wave 1-A)
Strengthen get_fresh_version() with a deterministic tier-2 fallback:
- tier 1:
installed_plugins.json (global, authoritative after /plugin update)
- tier 2 (NEW):
../.claude-plugin/plugin.json (local, authoritative for dev installs) — resolved via __file__ relative path
- tier 3:
hud_state.version (last resort, may be stale)
API
New plugin_json_file: Optional[str] = None parameter:
None (default) — tier-2 disabled, preserves backcompat
"" — use default dev-install path (production enables this via main())
- non-empty string — test override
Tests
7 new behavior tests in test_hud_version.py:
- Fallback ordering (3 tests)
- Malformed plugin.json skipped
- Missing version key skipped
- Default path resolves to real repo file
- 3 existing tests remain passing (Optional[str]=None default preserves compat)
Acceptance
Closes the version-display bug reported as "버전도 v5.5.0 인데 v5.2.0 으로 나오고 있어"
Problem
StatusBar shows stale
v5.2.0when the actual plugin version isv5.5.0. Root cause:hud-state.jsonfreezes the version at session-start and is never re-read when the plugin updates.Fix (Wave 1-A)
Strengthen
get_fresh_version()with a deterministic tier-2 fallback:installed_plugins.json(global, authoritative after/plugin update)../.claude-plugin/plugin.json(local, authoritative for dev installs) — resolved via__file__relative pathhud_state.version(last resort, may be stale)API
New
plugin_json_file: Optional[str] = Noneparameter:None(default) — tier-2 disabled, preserves backcompat""— use default dev-install path (production enables this viamain())Tests
7 new behavior tests in
test_hud_version.py:Acceptance
format_status_line()in production calls withplugin_json_file=""viamain()Closes the version-display bug reported as "버전도 v5.5.0 인데 v5.2.0 으로 나오고 있어"