You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
v1.0.3 — Self-heal broken statusline integration for all pre-existing users
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Fixed (silent-broken-statusline self-heal — completes the v1.0.2 fix for ALL pre-existing users)
install-statusline is now self-healing. v1.0.2 fixed the cwd bug for new installs but left two cohorts of real users with silently-broken statusline counters: (1) public users who installed via v1.0.0/1.0.1 — they have a marker-bracketed segment that lacks cd "$__FI_DIR" handling; (2) early-adopter / dogfood users from pre-v0.1.7 — they have a 3-line handwritten snippet (no markers) embedded in their ~/.claude/statusline.sh per the old setup.md template. Both cohorts see no counter even though install reported success.
The fix:
install-statusline now classifies the existing state of ~/.claude/statusline.sh (none / installed-fixed / installed-broken / legacy-handwritten / legacy-and-installed).
installed-broken (v1.0.0/1.0.1 marker block missing cwd handling): auto-rewrites in place — no flag needed, because the markers give us deterministic block boundaries. Users just re-run found-issues install-statusline and it self-heals.
legacy-handwritten (pre-v0.1.7 handwritten snippet): requires explicit --migrate flag. The CLI surgically removes the 3-line handwritten block (signature: a comment line containing found-issues, the FI_SEG=$(found-issues status --format=segment ...) invocation, and the LINE1 assembly follow-up) and inserts the canonical marker-bracketed block. Migration is opt-in because the heuristic could mismatch user-edited variants.
legacy-and-installed: cleans up both with --migrate.
New subcommand doctor-statusline: dry-run diagnosis of the current state. Reports which of the 5 states the user's statusline is in and the recommended fix command. No file modifications.
SessionStart hook self-heal nudge: detects broken/legacy statusline state at session start. If found, emits a one-time-per-day directive to Claude pointing at found-issues doctor-statusline and the migration command. Cost of breakage (silent broken counter) is high; cost of a one-line nudge is low.
status subcommand now accepts --cwd PATH and falls back to $CLAUDE_PROJECT_DIR when no flag is passed. Defensive correctness for any caller that knows the workspace dir explicitly (hooks, scripts, future statusline integrations).
found-issues uninstall now also strips pre-v0.1.7 handwritten snippets (in addition to the marker-bracketed block). Previously, dogfood-era users who ran the uninstall flow would still have the broken handwritten lines left behind in ~/.claude/statusline.sh. Reuses the same fi_strip_legacy_handwritten helper that powers install-statusline --migrate.
Added
13 new bats tests covering: --cwd flag, CLAUDE_PROJECT_DIR fallback, all 5 classifier states via doctor-statusline, --migrate rewrites for legacy-handwritten / installed-broken / legacy-and-installed, idempotency after migration, true e2e proving pre-migration broken renders empty AND post-migration renders the count, and the new uninstall legacy-snippet cleanup. 180 tests total (was 167).
Changed (release-channel consolidation from prior Unreleased section, no plugin code change)
Removed standalone marketplace at AltDoug/found-issues. Deleted .claude-plugin/marketplace.json from this repo. The single canonical install path is now the aggregator at AltDoug/claude-plugins. Why: dual install paths created confusion (e.g. /plugin marketplace add AltDoug/found-issues would register under marketplace name found-issues while the aggregator registers as altdoug-plugins, leading to mismatches in /plugin marketplace remove commands). One marketplace, one install path, one canonical name.
README + AGENTS.md install instructions now use /plugin marketplace add AltDoug/claude-plugins.
CI json validation step no longer validates the removed marketplace.json.
Migration for users who installed via the standalone path: /plugin marketplace remove found-issues then /plugin marketplace add AltDoug/claude-plugins. The plugin itself doesn't need reinstalling — same code, just a different marketplace registration.
How existing users pick up the fix
v1.0.0/1.0.1 marker-bracketed installs: found-issues install-statusline (no flag — auto-detects + auto-rewrites).
Pre-v0.1.7 handwritten installs: found-issues install-statusline --migrate (explicit opt-in for surgical line removal).
Not sure: found-issues doctor-statusline first to inspect, then run the recommended command it prints.
Auto-discovery: SessionStart will nudge once per day until fixed.