feat(probe): add tmux and ssh discovery #6

Merged
KofTwentyTwo merged 1 commits from feature/GH-2-probe-ssh into develop 2026-05-26 20:23:00 +00:00
KofTwentyTwo commented 2026-05-26 20:22:20 +00:00 (Migrated from github.com)

Summary

Adds Milestone 2 discovery plumbing for limen: tmux session parsing, deterministic SSH argv construction, and injectable localhost/remote probing. This stays below the UI and exec-handoff boundary.

Scope

  • This PR matches a behavior described in docs/DESIGN.md.
  • If the PR changes intended behavior, the design doc is updated in this PR (or a preceding one).
  • If the PR adds a non-trivial dependency, the rationale is in the summary above.

Changes

  • Adds internal/tmuxinfo for local and remote tmux ls -F parsing.
  • Adds internal/ssh for local tmux argv, interactive SSH session argv, and remote probe argv.
  • Adds internal/probe with injected command execution, per-host timeout handling, no-server semantics, latency capture, and streaming result coordination.
  • Adds unit coverage for parser edge cases, SSH argv combinations, local/remote probe outcomes, timeout behavior, and concurrent probe startup.

How to test

go test -race -count=1 ./...
go vet ./...
go build ./...
go test -cover -count=1 ./...
nix flake check

Screenshots / asciinema

Not applicable. This milestone intentionally has no TUI.

Checklist

  • Tests added or updated, where appropriate.
  • go vet ./... passes.
  • No new TODOs that aren't tracked in an issue.
  • Commit messages follow Conventional Commits (feat:, fix:, docs: ...).

Closes #2

# Summary Adds Milestone 2 discovery plumbing for `limen`: tmux session parsing, deterministic SSH argv construction, and injectable localhost/remote probing. This stays below the UI and exec-handoff boundary. ## Scope - [x] This PR matches a behavior described in [`docs/DESIGN.md`](../docs/DESIGN.md). - [x] If the PR changes intended behavior, the design doc is updated in this PR (or a preceding one). - [x] If the PR adds a non-trivial dependency, the rationale is in the summary above. ## Changes - Adds `internal/tmuxinfo` for local and remote `tmux ls -F` parsing. - Adds `internal/ssh` for local tmux argv, interactive SSH session argv, and remote probe argv. - Adds `internal/probe` with injected command execution, per-host timeout handling, no-server semantics, latency capture, and streaming result coordination. - Adds unit coverage for parser edge cases, SSH argv combinations, local/remote probe outcomes, timeout behavior, and concurrent probe startup. ## How to test ```sh go test -race -count=1 ./... go vet ./... go build ./... go test -cover -count=1 ./... nix flake check ``` ## Screenshots / asciinema Not applicable. This milestone intentionally has no TUI. ## Checklist - [x] Tests added or updated, where appropriate. - [x] `go vet ./...` passes. - [x] No new TODOs that aren't tracked in an issue. - [x] Commit messages follow Conventional Commits (`feat:`, `fix:`, `docs:` ...). Closes #2
Sign in to join this conversation.