fix(web): restore SSH session toolbar after page reload#270
Conversation
Adding .gitkeep for PR creation (default mode). This file will be removed when the task is complete. Issue: ProverCoderAI#269
Wire Open browser, Apply, Task manager, and New terminal handlers in the standalone /ssh/session/:id view so the full toolbar appears after reload, matching the dashboard-launched terminal. Closes ProverCoderAI#269
Working session summaryPR #270 is updated and ready for review: #270
This summary was automatically extracted from the AI working session output. |
🤖 Solution Draft LogThis log file contains the complete execution trace of the AI solution draft process. 💰 Cost: $11.145712📊 Context and tokens usage:Claude Opus 4.7: (4 sub-sessions)
Total: (9.1K new + 346.0K cache writes + 13.8M cache reads) input tokens, 81.8K output tokens, $11.145712 cost 🤖 Models used:
📎 Log file uploaded as Gist (4712KB)Now working session is ended, feel free to review and add any feedback on the solution draft. |
🔄 Auto-restart triggered (iteration 1)Reason: CI failures detected Starting new session to address the issues. Auto-restart-until-mergeable mode is active. This run will stop after 5 restart iterations. |
Replaces six tap+catchAll pairs in app-terminal-session-handlers.ts with
Effect.match({ onFailure, onSuccess }) to satisfy the Effect-TS lint
rule that flags catchAll for discarding typed errors. Behavior is
unchanged — same success and failure side-effects, no Effect.asVoid
needed since match already returns Effect<void, never>.
Working session summaryAll 15 CI checks now pass on commit SummaryThe Effect-TS lint job failed with 6 Fix (commit 7b46abc): Replaced all six Verified locally: CI status on PR #270: all 15 checks green (Lint Effect-TS, Build, Lint, Types, Test, Snapshot, all E2E variants, dist-deps-prune). This summary was automatically extracted from the AI working session output. |
🔄 Auto-restart-until-mergeable Log (iteration 1)This log file contains the complete execution trace of the AI solution draft process. 💰 Cost: $1.723786📊 Context and tokens usage:
Total: (54 new + 56.9K cache writes + 2.2M cache reads) input tokens, 10.6K output tokens, $1.723787 cost 🤖 Models used:
📎 Log file uploaded as Gist (5796KB)Now working session is ended, feel free to review and add any feedback on the solution draft. |
🔄 Auto-restart triggered (iteration 2)Reason: Uncommitted changes detected Starting new session to address the issues. Auto-restart-until-mergeable mode is active. This run will stop after 5 restart iterations. |
Working session summaryEverything is in order:
Nothing further to do — PR #270 (#270) is ready for human review. This summary was automatically extracted from the AI working session output. |
🔄 Auto-restart-until-mergeable Log (iteration 2)This log file contains the complete execution trace of the AI solution draft process. 💰 Cost: $0.834357📊 Context and tokens usage:
Total: (38 new + 43.1K cache writes + 938.0K cache reads) input tokens, 3.8K output tokens, $0.834357 cost 🤖 Models used:
📎 Log file uploaded as Gist (6446KB)Now working session is ended, feel free to review and add any feedback on the solution draft. |
✅ Ready to mergeThis pull request is now ready to be merged:
Monitored by hive-mind with --auto-restart-until-mergeable flag |
This reverts commit 028e1d4.
|
CI/CD лежит. Исправь |
|
Смержи main Ветку к нам |
|
🤖 AI Work Session Started Starting automated work session at 2026-05-11T18:55:42.280Z The PR has been converted to draft mode while work is in progress. This comment marks the beginning of an AI work session. Please wait for the session to finish, and provide your feedback. |
|
@skulidropek спасибо за фидбек. Что сделано:
По красному чеку E2E (Clone cache): Тест 30 минут ждал завершения |
🤖 Solution Draft LogThis log file contains the complete execution trace of the AI solution draft process. 💰 Cost estimation:
📊 Context and tokens usage:
Total: (29 new + 62.7K cache writes + 1.1M cache reads) input tokens, 5.7K output tokens, $1.080339 cost 🤖 Models used:
📎 Log file uploaded as Gist (764KB)Now working session is ended, feel free to review and add any feedback on the solution draft. |
🔄 Auto-restart 1/5Detected uncommitted changes from previous run. Starting new session to review and commit or discard them. Uncommitted files: Auto-restart will stop after changes are committed or discarded, or after 4 more iterations. Please wait until working session will end and give your feedback. |
Working session summaryDone. Reverted the unrelated formatting change to PR #270 status:
This summary was automatically extracted from the AI working session output. |
🔄 Auto-restart 1/5 LogThis log file contains the complete execution trace of the AI solution draft process. 💰 Cost: $0.870544📊 Context and tokens usage:
Total: (38 new + 39.5K cache writes + 1.0M cache reads) input tokens, 4.5K output tokens, $0.870544 cost 🤖 Models used:
📎 Log file uploaded as Gist (1623KB)Now working session is ended, feel free to review and add any feedback on the solution draft. |
✅ Ready to mergeThis pull request is now ready to be merged:
Monitored by hive-mind with --auto-restart-until-mergeable flag |
Summary
Fixes the regression where reloading the page on
/ssh/session/:idleft only Detach and Kill in the terminal toolbar. The standalone SSH session view now wires the same project-action handlers as the dashboard-launched terminal, restoring Open browser, Apply, Task manager, and New terminal alongside Detach/Kill.Closes #269
Root cause
TerminalOnlyReadyinpackages/app/src/web/app-terminal-session.tsxrenderedTerminalPanelwith onlyonDetach,onKill, andonMessage. The toolbar'sOptionalTerminalActionButtonhides any button whoseonClickisundefined, so the four project-scoped actions never appeared after a reload — even though the underlying session lookup already exposed the project context (browserProjectId,browserProjectKey,browserProjectName).Fix
onOpenBrowser,onApplyProject,onOpenTaskManager,onOpenTerminal) using the existing API helpers (loadProjectBrowser,applyProject,loadProjectTasks,createProjectTerminalSession).projectKeyis missing).max-lines(300) andmax-lines-per-function(50):app-terminal-session.tsx— state machine + compositionapp-terminal-session-handlers.ts— Effect-based runners anduseProjectActionHandlers/useTaskManagerHandlershooksapp-terminal-session-ui.tsx— styles and presentational componentsTest plan
packages/app/tests/docker-git/app-terminal-session-handlers.test.tscovering:projectIdis missing.onOpenTerminalhides whenprojectKeyis missing.onOpenTaskManagerinvokes the supplied open-request callback.bun run typecheck— passes.bun run lint— 0 errors, 0 warnings.bun run test— 283 tests across 52 files pass./ssh/session/:idshows the full toolbar.Visual evidence
Before (only Detach and Kill after reload):
Expected / after fix (full toolbar restored):
Release notes
Added a changeset (
.changeset/restore-ssh-session-toolbar.md) atpatchlevel for@prover-coder-ai/docker-git.