Skip to content

fix: reset expired sudo elevation and restore podman fallback after#7

Merged
rekurt merged 1 commit into
feat/analyze-project-for-improvements-and-issuesfrom
pr-6
Apr 11, 2026
Merged

fix: reset expired sudo elevation and restore podman fallback after#7
rekurt merged 1 commit into
feat/analyze-project-for-improvements-and-issuesfrom
pr-6

Conversation

@rekurt

@rekurt rekurt commented Apr 11, 2026

Copy link
Copy Markdown
Owner

No description provided.

@rekurt rekurt merged commit 0de283d into feat/analyze-project-for-improvements-and-issues Apr 11, 2026
3 checks passed
@rekurt rekurt deleted the pr-6 branch April 11, 2026 08:45
rekurt pushed a commit that referenced this pull request Jun 12, 2026
…t, model health

Auto-reconnect (#1,#2,#3,#8):
- Backoff now actually grows for unreachable hosts. The reset was tied to
  a 'successful' 150ms spawn, which an unreachable host passes (it blocks
  on TCP timeout), so the delay never increased. Growth now happens on
  every attempt and is reset only after a tunnel stays Alive for
  STABLE_THRESHOLD (30s), via refresh_health.
- reconnect uses a new non-blocking restart_async() (no 150ms sleep in the
  render thread); failures are caught on the next tick. Manual restart()
  stays blocking for immediate feedback.
- After MAX_RETRIES attempts without recovery a tunnel is marked permanently
  failed (auto_reconnect=false); drop_failed() now prunes only those, so
  'save' no longer discards a tunnel that's mid-reconnect. auto_reconnect
  is now a meaningful flag.

Listener health in the model (#4,#5):
- New TunnelStatus::Unhealthy (process alive, local port not listening).
  Decision extracted to a pure, unit-tested decide_status(); a HEALTH_GRACE
  window and a scan_usable flag suppress false 'no listener' right after
  start and while auto-refresh is paused. cleanup() now takes the listening
  port set; the view no longer reaches into the scan.

Cleanups:
- command_string() shell-quotes args via shlex (#6).
- uptime column reuses prt-core format_duration (#7).
- private from_parts() constructor removes spawn duplication (#9).
- cross-reference comments between PROXY_PORTS and known_ports (#10).

New unit tests: decide_status, next_backoff, command_string quoting.
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.

1 participant