Skip to content

fix: restore gateway terminal endpoints for the terminal fork - #26

Merged
Golden-Pigeon merged 1 commit into
mainfrom
fix/23-terminal-gateway-typert
Nov 9, 2026
Merged

Golden-Pigeon merged 1 commit into
mainfrom
fix/23-terminal-gateway-typert

Conversation

@Golden-Pigeon

Copy link
Copy Markdown
Owner

Fixes #23.

Original problem

With the plugin installed, gateway terminal clients failed on terminal/shells with its strict definition was withdrawn and SRC fallback is forbidden. The stock terminal-controller row is disabled and the fork package did not export ./typert, so the loader withdrew the stock descriptors and the gateway could not resolve any terminal endpoint.

Change

  • Add a ./typert host face to dsh-remote-terminal-controller that re-owns the stock terminal manifest under the fork package name.
  • Route gateway calls for mirrored Sessions through the plugin's RemoteTerminals; local Sessions keep the stock controller, so a gateway terminal for a mirrored Session does not spawn a local shell.
  • Require the host face in release packaging.

Fixed during this change

  • None.

Resolved

  • terminal/shells, terminal/list, terminal/create, terminal/attach and the other terminal endpoints resolve again for gateway clients.
  • Mirrored Sessions route to the remote PTY; local Sessions remain local.

Unresolved

  • A full third-party gateway UI (for example better-sidebar) against a real mirrored Session was not run; endpoint registration and host routing are covered by an isolated host probe and unit tests.

Testing

  • pnpm --filter dsh-remote-terminal-controller test (3/3)
  • pnpm --filter dsh-remote-local-plugin test (127/127)
  • pnpm --filter dsh-remote-local-plugin typecheck
  • Local plugin and terminal fork builds pass.
  • The release tarball contains node_modules/dsh-remote-terminal-controller/lib/typert.host.js, its .d.ts, and the ./typert export.
  • Isolated DSH host: terminal/shells reached the endpoint and returned session/not-found for a fake agent instead of 404 / definition-unavailable; terminal/list returned ok with an empty list.

The stock terminal-controller row is disabled, so the fork must export ./typert; without it the loader withdrew every terminal endpoint. Re-own the stock manifest under the fork package and route gateway calls for mirrored Sessions through RemoteTerminals while local Sessions keep the stock controller. Add manifest, routing, and packaging coverage.

Refs #23
@Golden-Pigeon
Golden-Pigeon merged commit 0cd6e96 into main Nov 9, 2026
2 checks passed
@Golden-Pigeon
Golden-Pigeon deleted the fix/23-terminal-gateway-typert branch November 9, 2026 11:45
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.

Gateway terminal endpoints are never registered: terminal/shells fails with "its strict definition was withdrawn"

1 participant