You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Give third-party SSH clients reachability to NAT'd id hosts by tunnelling SSH over iroh (tailnet-like); iroh-over-SSH only where UDP is blocked but port 22 is open. SSH servers in id stay rare and opt-in.
Not started. grep -rn 'tunnel\|direct_tcpip' pkgs/id/src/world_ssh.rs finds no tunnel or port-forward code; the relay kit's tunnel.toml is an iroh-relay deploy config, not this.
Acceptance criteria
An unmodified ssh client connects to a world behind NAT through the tunnel
A test proves the iroh-over-SSH fallback negotiates when UDP is denied
Trust stays at host keys + peer IDs: a peer that reaches the SSH server through iroh still authenticates to id normally (no identity bypass)
SSH-over-iroh landed on PR #842 (SshTunnelProtocol + id world ssh-tunnel, verified with unmodified OpenSSH). Remaining open here: the iroh-over-SSH fallback when UDP is denied — needs a non-QUIC iroh transport or SSH-carried datagram channel, which does not exist yet. F13.2's exec transport covers joins in that network meanwhile.
Related: Phase 13 sibling set — #785 (F13.3), #786 (F13.4), #787 (F13.5), #788 (F13.6), #789 (F13.7), #790 (F13.8); this issue is F13.3 SSH-over-iroh reachability (and iroh-over-SSH fallback). It is a forward roadmap/spec item, not a reported fixed bug; nothing in the issue or its comments indicates it has been implemented.
Notes / risks: acceptance criteria were already present in the body; none appended. Phase-13 items are large, interdependent platform work (effort/l, priority/low as roadmap items): the set should be sequenced deliberately rather than picked up piecemeal by a worker, and earlier-phase dependencies should be confirmed before implementation starts.
Suggested approach: keep in the Phase 13 backlog until its phase dependencies land; when scheduled, split into a design pass plus implementation slices rather than a single change.
Acceptance 3 is met: the tunnel carries SSH bytes and the host still performs normal SSH authentication; the implementation comment says iroh peer identity grants no SSH access by itself.
Acceptance 2 is not met: current code and repo-wide search show no iroh-over-SSH fallback for UDP-denied networks. The existing path is SSH-over-iroh, the opposite direction.
The latest note on transport tracker #536 describes D1-051 as superseded by Phase 13, but that accounts for the SSH-over-iroh path only; it does not satisfy this issue's explicit UDP-denied fallback criterion. The remaining scope is L and needs a transport design decision (implement a non-QUIC/SSH-carried transport, or revise the requirement based on the existing F13.2 SSH-exec route). I did not enqueue it as a small_fix: that would misclassify the unresolved transport design. #785 stays OPEN with queue/blocked + status/blocked until the fallback requirement is settled; no Drew-specific decision is being escalated.
🤖 Agent note · blocked
Agent: queue worker (repo-worker-code), OpenChamber scheduled lane
Expectation: evidence-based verdict and truthful issue state; verdict posted and issue marked blocked; no implementation follow-up was enqueued because the remaining design is L-sized and unresolved.
@dezren39 — Should criterion 2 require A) literal Iroh-over-SSH via a new non-QUIC transport/SSH-carried datagram channel, B) session-level failover to the existing SSH exec frame transport (recommended, reuses F13.2 and meets the port-22 world-join outcome), or C) explicit id world join --via ssh only and remove automatic fallback? I recommend B and updating the criterion's wording so it names the transport actually used. The design records the implementation plan either way and does not close #785.
Agent: queue worker (repo-worker-code), lane D shift
Session / ID: task 5759
Found via: queue claim
Task: Triage of issue id: Phase 13 F13.3 SSH-over-iroh reachability (and iroh-over-SSH fallback) #785 reconciled as already done: this packet was created at 16:34Z, before the design landed — the design record was posted on this issue at 16:45Z and PR design(id): #785 UDP-denied SSH fallback #3798 merged at 16:48Z, closing the issue. No parallel record from this lane. The A/B/C question for Drew in the 16:45Z design summary (recommendation: B, session-level failover to the F13.2 SSH exec frame transport) remains open for Drew's ruling and is surfaced in this shift's report.
Activity
developing-today commentedon Oct 24, 2026
CODE-113
feat(id): SSH-over-iroh tunnel for third-party SSH clients (F13.3)
dezren39 commentedon Oct 25, 2026
SSH-over-iroh landed on PR #842 (SshTunnelProtocol +
id world ssh-tunnel, verified with unmodified OpenSSH). Remaining open here: the iroh-over-SSH fallback when UDP is denied — needs a non-QUIC iroh transport or SSH-carried datagram channel, which does not exist yet. F13.2's exec transport covers joins in that network meanwhile.dezren39 commentedon Oct 26, 2026
Intake review
Fleet monitor intake pass (protocol §5).
Related: Phase 13 sibling set — #785 (F13.3), #786 (F13.4), #787 (F13.5), #788 (F13.6), #789 (F13.7), #790 (F13.8); this issue is F13.3 SSH-over-iroh reachability (and iroh-over-SSH fallback). It is a forward roadmap/spec item, not a reported fixed bug; nothing in the issue or its comments indicates it has been implemented.
Notes / risks: acceptance criteria were already present in the body; none appended. Phase-13 items are large, interdependent platform work (effort/l, priority/low as roadmap items): the set should be sequenced deliberately rather than picked up piecemeal by a worker, and earlier-phase dependencies should be confirmed before implementation starts.
Suggested approach: keep in the Phase 13 backlog until its phase dependencies land; when scheduled, split into a design pass plus implementation slices rather than a single change.
Labels normalized by the monitor.
17 remaining items
dezren39 commentedon Nov 1, 2026
Triage verdict — PARTIALLY SATISFIED; fallback remains blocked on transport design
Freshly checked against current
origin/main(9be9c2298c51368f8eacaacd2f50bfe2b627ba99) and GitHub on 2026-11-01:SshTunnelProtocol(pkgs/id/src/world_ssh.rs:83+), theid world ssh-tunnelclient (pkgs/id/src/commands/world.rs:926+), and thessh_reaches_the_world_through_the_iroh_tunneltest (world_ssh.rs:2728+). id: Phase 13 first slice — shell contract (F13.1), SSH transports (F13.2/F13.3), F13.7 design #842 also records verification with unmodified OpenSSH.The latest note on transport tracker #536 describes D1-051 as superseded by Phase 13, but that accounts for the SSH-over-iroh path only; it does not satisfy this issue's explicit UDP-denied fallback criterion. The remaining scope is L and needs a transport design decision (implement a non-QUIC/SSH-carried transport, or revise the requirement based on the existing F13.2 SSH-exec route). I did not enqueue it as a
small_fix: that would misclassify the unresolved transport design. #785 stays OPEN withqueue/blocked+status/blockeduntil the fallback requirement is settled; no Drew-specific decision is being escalated.🤖 Agent note · blocked
dezren39 commentedon Nov 1, 2026
🤖 Agent note · done
docs(id): design UDP-denied SSH fallback for #785
dezren39 commentedon Nov 1, 2026
Design summary
--viamodes stay unchanged.Question for Drew
@dezren39 — Should criterion 2 require A) literal Iroh-over-SSH via a new non-QUIC transport/SSH-carried datagram channel, B) session-level failover to the existing SSH exec frame transport (recommended, reuses F13.2 and meets the port-22 world-join outcome), or C) explicit
id world join --via sshonly and remove automatic fallback? I recommend B and updating the criterion's wording so it names the transport actually used. The design records the implementation plan either way and does not close #785.Merge pull request #3798 from developing-today/design/id-785
dezren39 commentedon Nov 1, 2026
🤖 Agent note · done