Skip to content

feat: add ssh meta-command to browser repl#2188

Closed
KCarretto wants to merge 1 commit intomainfrom
ssh-meta-cmd-7239299451537543956
Closed

feat: add ssh meta-command to browser repl#2188
KCarretto wants to merge 1 commit intomainfrom
ssh-meta-cmd-7239299451537543956

Conversation

@KCarretto
Copy link
Copy Markdown
Collaborator

This pull request adds a new browser REPL ssh meta command (ssh("user:password@target")).

It enables browser REPLs to spawn standard terminal windows via xterm and websocket bindings directly into an active, tunneled SSH session.

  • Updated implants/lib/eldritch/eldritch-wasm logic to parse the command and proxy the meta event down to TS.
  • Added SshTerminal.tsx as an Xterm container for the new session, directly connecting to /portals/ssh/ws.
  • Updated TS Hooks and routing.

PR created automatically by Jules for task 7239299451537543956 started by @KCarretto

Added the `ssh` meta-command to the Eldritch WebAssembly Browser REPL, which triggers a new SSH session on the target address over the Tavern Portal network.

Changes include:
*   Added `Ssh` variant to `MetaCommand` in the Rust `browser.rs` logic.
*   Updated Rust AST parsing in `BrowserRepl::input` to extract `ssh("target")` calls.
*   Added `useShellTerminal.ts` logic to intercept `ssh` meta commands and open a new `SshTerminal` route via `window.open`.
*   Created `SshTerminal.tsx` to handle `/ssh` connections, manage xterm instances, and pipe data over a WebSocket to `/portals/ssh/ws`.
*   Mapped the new `/ssh` route in `App.tsx`.
*   Updated React signatures to properly pipe down `portalId` to use within the new meta command handling.

Co-authored-by: KCarretto <16250309+KCarretto@users.noreply.github.com>
@google-labs-jules
Copy link
Copy Markdown
Contributor

👋 Jules, reporting for duty! I'm here to lend a hand with this pull request.

When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down.

I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

@github-actions
Copy link
Copy Markdown
Contributor

Summary

Tests 📝 Passed ✅ Failed ❌ Skipped ⏭️ Other ❓ Flaky 🍂 Duration ⏱️
719 718 1 0 0 0 1ms

Previous Results

Build 🏗️ Result 🧪 Tests 📝 Passed ✅ Failed ❌ Skipped ⏭️ Other ❓ Flaky 🍂 Duration ⏱️
#1981 719 718 1 0 0 0 493286h 27m

Insights

Average Tests per Run Total Flaky Tests Total Failed Slowest Test (p95)
719 0 1 5.5s

Fail Rate

Fail Rate 0.14%
Test 📝 Results 📊 Passed ✅ Failed ❌ Fail Rate (%) 📈
TestMetrics_QuestTimelineChart 1 0 1 100.00    ↑100.00

Failed Tests

Failed Tests
❌ TestMetrics_QuestTimelineChart
=== RUN   TestMetrics_QuestTimelineChart
    metrics_test.go:101: 
        	Error Trace:	/home/runner/work/realm/realm/tavern/internal/graphql/metrics_test.go:101
        	Error:      	Not equal: 
        	            	expected: 1
        	            	actual  : 0
        	Test:       	TestMetrics_QuestTimelineChart
--- FAIL: TestMetrics_QuestTimelineChart (0.02s)

Trace:

No trace available

Test Changes

0 test added, 0 removed

Slowest Tests

Test 📝 Results 📊 Duration (avg) ⏱️ Duration (p95) ⏱️
TestDockerExecutor_Build_ContextCancellation 1 5.5s 5.5s
TestInteractiveShell 1 5.1s 5.1s
TestOtherStreamOutput 1 5.0s 5.0s
TestDockerExecutor_Build_SimpleEcho 1 2.7s 2.7s
TestDockerExecutor_Build_StreamsOutputInRealTime 1 1.5s 1.5s
TestGetRandomName/NoDuplicates 1 1.3s 1.3s
TestGetRandomName 1 1.3s 1.3s
TestCreateTestData 1 1.1s 1.1s
TestRedirector_ContextCancellation 1 1.1s 1.1s
TestTruncation 1 1.0s 1.0s

🍂 No flaky tests in this run.

Github Test Reporter by CTRF 💚

@KCarretto KCarretto closed this Apr 12, 2026
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