Skip to content

feat: harden session reliability and multi-source evidence - #46

Closed
alvarohulse wants to merge 21 commits into
AmElmo:mainfrom
alvarohulse:feat/reliability-multi-source
Closed

alvarohulse wants to merge 21 commits into
AmElmo:mainfrom
alvarohulse:feat/reliability-multi-source

Conversation

@alvarohulse

@alvarohulse alvarohulse commented Aug 10, 2026

Copy link
Copy Markdown

Summary

  • make browser, server, tmux, launcher, and capture-worker ownership durable, interruption-safe, and exactly recoverable without touching unrelated processes
  • add named concurrent pane/process/file evidence, synchronized browser/environment viewing, integrity-aware verdicts, and non-vacuous screenshot/media validation
  • publish ordered explicit multi-session and screenshot selections only from finalized, hash-verified artifacts whose repository, branch, commit, and clean source provenance match the target PR head
  • build on the isolated-session lifecycle work in fix: isolate ProofShot session lifecycle #45 and add required browser packaging plus Linux tmux, real FFmpeg, built-CLI, and package-content CI gates

Test plan

Build / Unit / Integration / E2E

  • npm run build
  • npm test — 26 files, 106 tests
  • npm run test:ffmpeg — generated, trimmed, and decoded a real WebM
  • npm pack --dry-run — verified published package contents and built CLI
  • Doggo Linux package install + full four-pane tmux/browser/publication soak + five repeated process cycles — all six verdicts PASS
  • Doggo leak checks — no owned process, tmux session/socket, listener, registry, or sidecar accumulation

User Testing

  • Recorded a nonblank browser proof with an explicit visible-selector assertion, screenshot, viewer, canonical evidence, verdict, and provenance manifest
  • Ran explicit dry-run session/screenshot publication against the finalized manifest

Revert risk

High: this intentionally changes core start/stop ownership, evidence finalization, and PR publication behavior. Commits are organized so the reliability extension can be reverted independently of #45 if needed.

justinTM and others added 21 commits July 28, 2026 11:25
Use exact process-group ownership on macOS, retain session ownership on Linux, and add pull-request build/test coverage so the PR 45 baseline is verifiable across supported Unix hosts.

Co-authored-by: cursoragent <cursoragent@cursor.com>
Persist the actual browser mode and viewport, and validate trimmed media before replacing the original so failed or empty FFmpeg output cannot destroy usable proof.

Co-authored-by: cursoragent <cursoragent@cursor.com>
Build Git dependencies when development tooling is present and ship a verified prebuilt fallback so global installs still expose the CLI when npm omits dev dependencies.

Co-authored-by: cursoragent <cursoragent@cursor.com>
Persist browser and server identities before fallible waits, recover delayed agent-browser PID records after timeouts, and keep a global retryable inventory whenever cleanup cannot be proven complete.

Co-authored-by: cursoragent <cursoragent@cursor.com>
Add exact tmux, direct-process, and file-source ownership with per-source canonical evidence, history/live boundaries, PTY semantics, bounded capture, readiness cleanup, and shared-server safety.

Co-authored-by: cursoragent <cursoragent@cursor.com>
Finalize one canonical browser/environment evidence bundle, derive grouped incidents and structured verdicts, preserve authoritative timelines across short media, and surface source-level integrity in the viewer.

Co-authored-by: cursoragent <cursoragent@cursor.com>
Finalize hashed per-session manifests and make PR publication select one commit-compatible session, reject drift and tampering, and withhold comments after partial uploads.

Co-authored-by: cursoragent <cursoragent@cursor.com>
Document multi-source environment configuration, canonical viewer/verdict semantics, exact recovery, and explicit provenance-safe PR publication.

Co-authored-by: cursoragent <cursoragent@cursor.com>
Track pipe attachment ownership before fallible capture steps so failed startup never detaches a pre-existing consumer, while tightening public state types and the documented title precedence.

Co-authored-by: cursoragent <cursoragent@cursor.com>
Prefer agent-browser's account cache before system Chrome and allow tmux startup output to race correctly between history and live capture while preserving the explicit boundary assertion.

Co-authored-by: cursoragent <cursoragent@cursor.com>
Use the browser version installed for agent-browser before system Chrome so headless devbox sessions do not inherit incompatible system defaults.

Co-authored-by: cursoragent <cursoragent@cursor.com>
Continue only when a timed-out navigation demonstrably reached the requested URL, preserving valid slow devbox pages without masking unrelated launch failures.

Co-authored-by: cursoragent <cursoragent@cursor.com>
Track when recording actually begins and rebase actions and retained log events so startup latency does not falsely classify complete media as truncated.

Co-authored-by: cursoragent <cursoragent@cursor.com>
Preserve data URLs and other valid targets containing shell metacharacters while preventing them from being interpreted by the command shell.

Co-authored-by: cursoragent <cursoragent@cursor.com>
Retain recovery state for corrupt or mismatched ownership and keep global cleanup bound to the original control record.

Co-authored-by: cursoragent <cursoragent@cursor.com>
Close the final review gaps so malformed configuration, interrupted capture, unsafe artifacts, and publication drift fail closed while exact owned resources remain recoverable.

Co-authored-by: cursoragent <cursoragent@cursor.com>
Support ordered multi-session publication, require the browser runtime, and gate the release path with real FFmpeg and package smoke coverage.

Co-authored-by: cursoragent <cursoragent@cursor.com>
Re-encode recordings with zero-based timestamps and separate physical trimming from the canonical timeline offset so compressed idle frames cannot truncate recorded actions.

Co-authored-by: cursoragent <cursoragent@cursor.com>
Use the provenance-validated target repository for artifact uploads so fork PRs never attempt to write their evidence branch to the upstream parent.

Co-authored-by: cursoragent <cursoragent@cursor.com>
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.

2 participants