Files
Triple-C/app/src-tauri/src
shadowdaoandClaude Opus 5.5 2eabf6972b
Secret Scan / scan (push) Successful in 9s
Build App (Preview) / compute-version (pull_request) Successful in 9s
Secret Scan / scan (pull_request) Successful in 8s
Build App (Preview) / create-release (pull_request) Successful in 2s
Build App (Preview) / test (pull_request) Successful in 4m10s
Build App (Preview) / build-macos (pull_request) Successful in 3m12s
Build App (Preview) / build-linux (pull_request) Successful in 9m31s
Build App (Preview) / build-windows (pull_request) Successful in 6m47s
Build App (Preview) / prune-previews (pull_request) Successful in 3s
Build Container / build-container (pull_request) Successful in 17m21s
Address review of the keepalive / container-watch change
- Event renamed to `project-container-exited` and carries a reason:
  `exited` (died while the app was watching) toasts; `found_stopped` (the
  first look of a run, e.g. after a host reboot) updates silently.
  Reconnect sweeps report `exited`, since the app was running then.
- listen() in useProjectStatusEvents gets a .catch, like its sibling.
- Keepalive respawns are throttled to ~1/s with a fork-free pause
  (`read -t` on a FIFO, `sleep 1` fallback), so a failing fork or an
  instantly-dying sleep cannot spin a core. Measured: 10748 respawns in
  3 s unthrottled vs 3.
- Watcher backoff resets only after a working connection (an event
  delivered, or up for 60 s); ping-OK-but-events-fail now backs off to
  60 s instead of re-sweeping every 5 s.
- Every Docker call in the watcher (ping, sweep, inspect, stream) races
  the app's cancellation, so a wedged daemon cannot hold shutdown.
- TOCTOU between the inspect and the flip: ProjectsStore now counts
  writes; running_on() returns a sighting at a revision and mark_exited()
  refuses with Changed if anything was written since (a stop+start of the
  same container id included), and settle() re-confirms.
- The "Running on this container" rule lives once, in the store, with
  the 12-char guard on both ids, matched under the lock without cloning.
- Marketplace readiness fallback also requires a root-owned process.
- TECHNICAL.md no longer documents the `su … sleep infinity` ending.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 16:15:31 -08:00
..