Skip to content

Retain bounded startup handshake diagnostics before ownership rollback #697

Open

Description

@Meta-Develop

A source-input visibility regression at #696 timed out during the systemd attachment handshake before the local reader was released. The error reported only that the transient unit did not reach its start gate. Successful rollback collected the unit and removed handshake markers, so retained evidence could not identify which setup transition stalled. An isolated unchanged rerun passed; the cause remains unproven. This is an observability gap, not evidence for increasing the three-second setup grace or weakening ownership checks.

Capture bounded parent-owned diagnostics before rollback: the last established handshake stage, monotonic elapsed/deadline information, and observed unit/ownership state. Preserve uncertainty when a marker or owned process cannot be established. Retain the original failure and terminal cleanup result.

Acceptance:

  • Distinguish waiting for owned cgroup, gate/owner-channel setup, guardian waiting, environment publication, ready acknowledgement, and sandbox verification in attachment-timeout evidence.
  • Retain useful evidence after successful cleanup, without serializing environment values, credentials, source bytes, or the full guardian command.
  • Keep existing setup and total deadlines, target-release ordering, private proof boundaries, and conservative handling of unknown ownership unchanged.
  • Exercise deterministic withheld-handshake-stage cases and verify that the reported stage is observed rather than inferred; include cleanup outcome and missing-marker cases.

Relevant implementation: src/process_runner/part3.rs attachment loop and rollback, and src/process_runner.rs guardian. This work is independent of provider/model comparisons and is not needed to reinterpret the passing isolated rerun as a root-cause diagnosis.

Activity

  1. Meta-Develop commented on Sep 28, 2026

    @Meta-Develop
    OwnerAuthor

    The genuine read-only source-input attempt with the corrected controller from #703 now passes preclaim and prompt preparation and records Sol/xhigh from the actual parent app-server evidence. The first hash/source-inspection command fails inside bubblewrap while binding src/runtime_adapter/gemini.rs to the managed workspace: Unable to mount source on destination: No such file or directory.

    The same read command then requests approval, which the read-only terminal correctly refuses. Missing pricing and incomplete/estimated usage stop the later Auditors; those are secondary to the failed mount. Three-lens validation remains 0/3. The parent retains 17,962 input + 735 output = 18,697 tokens as incomplete usage, with 448 reasoning tokens included in output; this is not complete billing evidence.

    No source writes or retry occurred. Next scope is the minimum source/ancestor visibility and mount-order correction inside the real sandbox, preserving read-only access, hidden-root isolation and approval refusal. No budget or permission bypass is admitted.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions