Repository navigation
fix(remote): restore CLI capabilities and complete HTML previews - #3574
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Mac Desktop controlling a Linux CLI host now opens unsupported PR/MR links in the controller's default browser, can browse the peer's file tree, and can preview complete HTML pages from the peer's workspace. HTML previews also resolve CSS/JS/images correctly for nested build output in local and SSH workspaces. Ordinary CLI and daemon hosts now start the existing Cron service instead of exposing a tool that fails with
cron service not initialized.Type and Areas
Type: bug fix
Areas: Peer Device, Web UI, CLI bootstrap, workspace filesystem, HTML preview, scheduled jobs
Behavior
explorer_get_*and legacy directory/tree commands to the CLI's existing workspace-aware filesystem service. Keep registry declarations and dispatch handlers in sync. Legacy read/write/rename requests use their actualfilePath/oldPathfor connection resolution instead of requiring an unrelatedpathfield.workspace_html_preview_v1before using the peer channel. Old peers get an explicit upgrade message. No read falls back to the controller filesystem./assets/...beside the selected HTML before falling back to the workspace root; retain workspace-relative document URLs for relative and parent-relative imports. Use distinct preview cookies, bounded 256 KiB chunks, source/revision checks, and cancellation on close/device switch. Offline resource reads fail explicitly and can be retried after reconnect.execdoes not wait for future timers. Unreadable or future-version task stores remain unchanged and do not prevent normal CLI turns.Verification
Passed locally:
pnpm run check:web,pnpm run build:webpassed.openssh_html_preview_reads_nested_site_resources -- --ignored.node tests/e2e/scripts/run-html-preview.mjspassed with a freshly built Desktop and Web UI. It verified applied CSS, module execution, dynamic imports, images, encoded filenames and reloading the first of two concurrent previews, using isolated storage.Final head
1dcc09437d250ad845357c8875e3521cb16f0d46passed the complete three-platform CLI and Rust checks, frontend build/tests, and aggregate validation in CI run 40632850257. The two impact-gated packaging/contract jobs were skipped by the existing workflow rules.Remote evidence: SSH was exercised through a real loopback SSH/SFTP transport; peer resource transfer used the actual encrypted Relay/HTTP transport with a fixture host; native browser execution ran on macOS. A physical Mac-to-Linux session, mobile/bot Remote Control, and Detached Dispatch were not exercised. These tests do not claim a full live multi-machine UI acceptance run.
Reviewer Notes
AI-assisted change. No new runtime dependencies or destructive persisted-data migration. New request fields default when omitted; peer functionality is explicitly negotiated. The preview resource limit remains 64 MiB. Remote symlink resources remain explicitly rejected.
Checklist