Skip to content

Review Workspace Ports - #1844

Merged
paseo-bot[bot] merged 3 commits into
mainfrom
submit/issue-1843
Nov 3, 2026
Merged

paseo-bot[bot] merged 3 commits into
mainfrom
submit/issue-1843

Conversation

@github-actions

@github-actions github-actions Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

Closes #1843. Submitted by @maneeshv.

Ready for artifact review. The reviewer will resolve the submitted source and complete the registry listing.

Submission: submissions/1843.json.
Git references are optional. Use a supplied reference; otherwise resolve main during review. Git updates are submitted manually.

@github-actions github-actions Bot added the submission Plugin submission label Nov 3, 2026
@github-actions github-actions Bot mentioned this pull request Nov 3, 2026
2 of 9 tasks
@maneeshv

maneeshv commented Nov 3, 2026

Copy link
Copy Markdown

@paseo-bot paseo-bot Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Workspace Ports is approved, @maneeshv. I completed the pinned registry record, removed the intake file and updated the branch from main. Your overview, description, icon and supplied interface image are retained. No action is needed from you; publication follows merge.

Optional next release: mention that tunnel readiness assumes the viewing client's clock agrees with the tunnel host within 20 seconds, so users can diagnose a working SSH connection reported as disconnected. Overview guidance.

Review data
  • Policy: main REVIEW.md blob 3c5e763c9565b93ea33fa48c9aeb83e415c72d67. Intake head 7e220c137b61a30df72c8dc6d0045d262e167843; completed reviewed head 6153be947b0c9418454e9ccfc782902b74ba1e8e. Read the PR, linked submission #1843 and all discussion; no inline comments. Submitter and source repository owner share API account ID 10337336.
  • Artifact: root of https://github.com/maneeshv/paseo-workspace-ports.git, exact main commit resolved during review 8e4c93cce3d4309d082c6140447b5ea1ffa1d03f (0.1.0). Fetched without hooks/submodules; checked every archive path/type before confined extraction. Git archive SHA-256 56e356c74f5109697b80df9139e5340f0c3eb9049f64b69498b69cab07ebcb09.
  • Inspected both entries, all client/server/shared runtime modules, local import aliases, manifest/package metadata and complete lock metadata, README, English overview and verification record. Viewed the supplied PNG interface image; it clearly shows the Ports panel with sample services and suitable controls. Declared local icon/media exist. The public thumbnail URL supplied in your PR and issue replies returns HTTP 200/image/png and is byte-identical to the pinned local screenshot, so the existing manifest media already uses that image. No translations or redundant registry fallback needed.
  • Declared preparation is npm ci --ignore-scripts, intentionally installing SDK/type tooling needed by the builder. The npm v3 root dependency declarations match package.json; all 281 locked package entries have exact versions, npm-registry resolved sources and integrity. No other build command, acquisition lifecycle script or runtime dependency declaration. esbuild/fsevents dependency hooks are suppressed by the preparation flag. No plugin/dependency code or its tests were installed, built, imported, required or run; third-party implementation internals were not exhaustively audited.
  • server/discovery.ts:69 calls macOS lsof with argument arrays to read TCP listeners and process working directories; canonical paths must be within the selected workspace. Only PID/name/port/loopback target data reaches the client. No arbitrary process-killing control exists for detected listeners. Server RPC input/output schemas validate workspace/script/actions and returned apps. server/apps.ts resolves the workspace through Paseo, enumerates configured services, then uses Paseo CLI argument arrays with timeout/output limits for start/stop. Script names follow --; no shell interpolation. Explicit PASEO_CLI/home settings are used for local routing; PASEO_HOST is removed from the child environment.
  • Requested service logs use the verified configured terminal, checked against that workspace's terminals, and capture the last 100 lines with ANSI stripped. Logs/process details/settings pass through the existing Paseo host connection to authorized clients. Pairing stores host/workspace IDs and SSH target in host-scoped settings, not key/password contents. No independent telemetry, model-provider request, credential-file parser or software installer found in the plugin runtime.
  • client/panel.tsx confirms a remote destination and editable local port before calling openTunnel; Stop app has its own confirmation and only targets a configured service. Local browser URLs are constructed from loopback addresses and numeric ports. SSH aliases/IDs/ports are validated; client/tunnels.ts passes variable inputs as positional arguments to a fixed shell script. SSH uses noninteractive key authentication, strict known-host checking, disabled agent/X11 forwarding, no remote command, and a private control socket. It adds one forward bound to 127.0.0.1 targeting 127.0.0.1 or ::1 on the remote host. The chosen SSH configuration governs the explicitly configured destination.
  • Tunnel wrapper creates a private temporary directory with umask 077, cleans up its own SSH master, and moves only that directory to Trash. Tunnel recovery matches full serialized identity in the chosen helper workspace; disconnect kills that matching terminal, not the app. Closing the panel leaves forwarding running, as documented. No unrelated file deletion or input-to-shell-source injection found in inspected paths. Heartbeat readiness depends on client/host clock agreement and a 20-second age window; network loss/reconnect/platform behavior was not exercised here.
  • Registry edits: exact artifact/repository pin, supplied workspaces/utils categories, verified submitter/original submission time; removed submissions/1843.json. Merged current main so the final diff adds only the intended listing. Retained authoritative English overview/description and suitable local PNG media. Trusted current-main online validation: 463 well-formed records, one matching changed artifact, zero skipped. Held intake validation was approved; its superseded intake-only failure creates no author task.
  • Limits: static review, no independent live macOS/SSH/Desktop or plugin test execution. The author documents clean installation on an earlier commit, live two-Mac checks and fixture tests; these are author evidence, not rerun here. Latest author CI has no executed steps, so it supplies no test evidence for this exact commit. No concrete malicious or seriously unsafe behavior, remaining author requirement or policy/validator conflict identified. Exact-head registry checks and head are checked before merge.

@paseo-bot
paseo-bot Bot merged commit 478d71e into main Nov 3, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

submission Plugin submission

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Workspace Ports

1 participant