Skip to content

fix: library right rail reads live IPC + clean version string - #24

Merged
johnnyhuy merged 1 commit into
mainfrom
feat/library-surface
Aug 10, 2026
Merged

fix: library right rail reads live IPC + clean version string#24
johnnyhuy merged 1 commit into
mainfrom
feat/library-surface

Conversation

@johnnyhuy

Copy link
Copy Markdown
Contributor

Small fix to the Library surface from #23.

What I caught while running locally:

  1. The INSTALL / REINSTALL / HEALTH panels in the right rail were
    hardcoded KV values (1.0.42, ~/.hoist/harnesses/claude-code, claude,
    3d ago, 12m ago) and a fictional REINSTALL terminal code block.
    None of it reflected the real install. The Library was the only
    surface whose right rail was static.
  2. The list row version read "2.1.211 (Claude Code)" because
    discover() embeds the harness name in the version string. Cluttered.

Fixes:

  • Lift library state to App (window.hoist.library.list) so the right
    rail can read it.
  • Add cleanVersion() that strips a trailing "()" suffix.
  • Wire LibraryInspectionPanel to the selected entry's fields:
    • INSTALL heading now shows the entry name.
    • version / path / id / status / exec come from the live entry.
  • Add an early-return for the no-entry state.
  • DetailRail takes library prop.

Verified: typecheck/lint/build all green, the running app now shows
the real discovered install (Claude Code 2.1.211, path
/opt/homebrew/bin/claude) in both the list row and the right rail.

While running the Library surface locally, two rough edges stood out:

1. The INSTALL / REINSTALL / HEALTH panels were hardcoded KV values
   (1.0.42, ~/.hoist/harnesses/claude-code, claude, 3d ago, 12m ago)
   and a fictional REINSTALL terminal code block. None of it reflected
   the real install. The Library was the only surface whose right rail
   was static.

2. The list row version read "2.1.211 (Claude Code)" because the
   discover() output embeds the harness name in the version string.
   The row label was cluttered.

Fixes:

- Lift library state to App (window.hoist.library.list) so the right
  rail can read it.
- Add a cleanVersion() helper that strips the trailing "(<harness name>)"
  suffix from the version string.
- Wire LibraryInspectionPanel to the selected entry's fields:
    INSTALL heading now shows the entry name
    version comes from entry.version
    path from entry.exec
    id from entry.id
    status from entry.status
- Add an early-return when no entry is selected, so the rail doesn't
  crash on empty state.
- DetailRail now takes library prop and passes library[0] into the
  Library inspection panel.

Verified: npm run typecheck/lint/build green. The running app now
shows the real discovered install (Claude Code 2.1.211, path
/opt/homebrew/bin/claude) in both the list row and the right rail.
@johnnyhuy
johnnyhuy merged commit 76a51dd into main Aug 10, 2026
7 checks passed
@johnnyhuy
johnnyhuy deleted the feat/library-surface branch August 10, 2026 11:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant