Skip to content

feat(harness): migrate ynh install/uninstall/export to CommandRunnerSheet#316

Merged
eyelock merged 1 commit into
developfrom
feat/ynh-ops-to-sheet
May 13, 2026
Merged

feat(harness): migrate ynh install/uninstall/export to CommandRunnerSheet#316
eyelock merged 1 commit into
developfrom
feat/ynh-ops-to-sheet

Conversation

@eyelock
Copy link
Copy Markdown
Owner

@eyelock eyelock commented May 12, 2026

Summary

Replaces transient terminal cards for ynh install, ynh uninstall, and ynd export with CommandRunnerSheet-backed progress sheets. The old approach spawned a real terminal card that auto-ran a shell command and monitored exit via termqDirectSessionExited notifications — sheets give structured success/failure state, a retry button on failure, and cleaner lifecycle without the tab management overhead.

Changes

  • HarnessInstallProgressSheet — runs ynh install with live output; refreshes harness list on success
  • HarnessUninstallSheet — runs ynh uninstall <id> with live output; clears YNHPersistence associations on success
  • HarnessExportSheet — runs ynd export <path> -o <dir> with live output
  • HarnessLifecycleCoordinator — drops installCardIDs, uninstallCardIDs, handleTransientSessionExit, and all transient card spawning; gains sheet-state properties for the three new flows
  • ContentView — drops termqDirectSessionExited notification handler; gains three .sheet modifiers; onDeleteLocal: nil (sidebar falls back to onUninstall, which handles the direct-delete path for non-YNH harnesses)
  • Localization strings added for all three sheet titles and error messages
  • Tests updated to cover new sheet state

Testing

  • Install: pick a harness from install sheet → progress sheet shows live output → success refreshes list
  • Install: retry button appears on failure
  • Uninstall (YNH-managed): uninstall sheet shows → success clears associations + refreshes list
  • Uninstall (local/no-YNH): deleted directly, no sheet
  • Export: sheet shows live output → success/failure state correct
  • ynh/ynd not found: error message shown, no crash

🤖 Generated with Claude Code

…heet

Replaces transient terminal cards for ynh install, ynh uninstall, and
ynd export with CommandRunnerSheet-backed progress sheets. The old
approach spawned a real terminal card that auto-ran a shell command —
sheets give us structured success/failure state, a retry button on
failure, and cleaner lifecycle without the tab management overhead.

HarnessLifecycleCoordinator drops installCardIDs, uninstallCardIDs, and
handleTransientSessionExit entirely. ContentView drops the
termqDirectSessionExited notification handler and gains three .sheet
modifiers for the new flow.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@eyelock eyelock force-pushed the feat/ynh-ops-to-sheet branch from 6a215e8 to 30d8f99 Compare May 13, 2026 06:34
@eyelock eyelock marked this pull request as ready for review May 13, 2026 06:40
@eyelock eyelock merged commit be42c7c into develop May 13, 2026
7 checks passed
@eyelock eyelock deleted the feat/ynh-ops-to-sheet branch May 13, 2026 06:40
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