Skip to content

docs: roadmap additions from audit batch (doctor, CLI flags, local-only)#24

Merged
flamerged merged 1 commit into
masterfrom
docs/roadmap-doctor-cli-flags
May 2, 2026
Merged

docs: roadmap additions from audit batch (doctor, CLI flags, local-only)#24
flamerged merged 1 commit into
masterfrom
docs/roadmap-doctor-cli-flags

Conversation

@flamerged
Copy link
Copy Markdown
Owner

Summary

Three new user-facing roadmap items from the latest 3-audit batch. Most of the audit findings overlapped with what's already in the Roadmap or in the project's internal reliability backlog (recorded in memory, not here).

  • `sshshot doctor`: a single health-check command. Node version, platform/session detection, OS-tool availability (`pngpaste`/`xclip`/`wl-clipboard`/`pbcopy`), config shape, daemon PID sanity, target reachability, SSH auth, remote dir writability.
  • Non-interactive CLI surface: `sshshot start `, `sshshot start --local`, `sshshot status --json`, `sshshot config add/remove/list`, `sshshot uninstall --yes`, `--foreground`. Makes scripts/dotfiles/launch agents painless.
  • Start in `local` mode with zero remotes: currently `start` exits if `remotes.length === 0` even though `local` is always a valid target. First-run UX should offer "local only" as a path.

Internal reliability fixes (`pipeToRemote` BatchMode/timeout/EPIPE, killAllSshshotProcesses respecting the daemon's grace window, decoupling uploads from polling, mac-screenshot burst handling, atomic config writes, unknown-command exit code, PID-file race, etc.) are tracked in project memory as the Round-M reliability backlog — not user-facing roadmap items.

`docs:` only, no release fired.

Test plan

  • yarn format:check
  • CI matrix Node 20/22/24 green (no source changes)

Three new user-facing items surfaced by the latest audits:

- `sshshot doctor`: health-check command (Node, tools, config, daemon
  PID, SSH auth, target reachability)
- Non-interactive CLI surface (`start <target>`, `--json`, `--local`,
  `--foreground`, `--yes`, `config add/remove/list`) for scripting
- Allow starting in `local` mode with zero configured remotes

Internal reliability backlog from the same audits (P0/P1/P2 fixes,
test gaps, doc drift) is recorded in project memory rather than the
README — those are housekeeping, not user direction.
@flamerged flamerged merged commit 1ab2a33 into master May 2, 2026
5 checks passed
@flamerged flamerged deleted the docs/roadmap-doctor-cli-flags branch May 2, 2026 20:51
flamerged added a commit that referenced this pull request May 2, 2026
## Summary

Course correction on PR #24. I was too strict on "user-facing only" — a
bunch of the Round-M items I'd parked in private memory are actually
user-visible bugs (uploads hang, screenshot bursts dropped, slow upload
misses next poll, typo'd commands silently run setup, fatal errors exit
0). Those belong in the public roadmap.

This PR:

1. Splits \`## Roadmap\` into two subsections — **Reliability fixes**
and **Features and ergonomics** — so the list stays scannable.
2. Pulls 11 user-visible bug-class items out of memory into the
Reliability subsection.
3. Leaves purely-internal items (commitlint config doc, semantic-release
idempotency wiring, package.json metadata cleanup, CI smoke checks,
monitor.ts split, tsconfig test/ inclusion) in memory — those are
housekeeping, not user direction.

## Items added under **Reliability fixes**

- SSH upload \`BatchMode=yes\` + timeout + EPIPE handler
- \`sshshot stop\` honors the 5 s graceful-shutdown window
- Decouple poll loop from upload completion
- macOS screenshot burst handling (oldest-first)
- \`sshshot config\` preserves \`activeTarget\` + \`paused\`
- Typo'd CLI commands print error + exit 1
- Fatal CLI errors set non-zero exit code
- \`loadConfig\` shape validation + \`saveConfig\` atomic writes
- Cache clipboard-tool availability at startup
- \`~/.ssh/config\` parse defensiveness + \`?\` wildcard filter + dedup
- \`removePidFile\` only-if-still-ours guard

\`docs:\` only, no release fired.

## Test plan

- [x] yarn format:check
- [ ] CI matrix Node 20/22/24 green (no source changes)
@github-actions
Copy link
Copy Markdown

🎉 This PR is included in version 0.9.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant