feat: persist PTY output activity evidence - #5
Open
schickling-assistant wants to merge 3 commits into
Open
Conversation
Mirror compoundingtech/pty#168 in the Rust actor: stamp nonempty PtyData in memory, persist the newest unix-ms value on a trailing one-second deadline, and carry the final stamp into retained exit metadata. No per-chunk filesystem work or activity classification. Includes the user-confirmed initial VRS hierarchy defining compatibility, actor ownership, durability, write bounds, and executable evidence. agent-identity: unknown agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.0.3 agent-runtime: OMP 18.0.3 tooling-profile: dotfiles@e4789b0
schickling-assistant
marked this pull request as ready for review
August 26, 2026 17:18
agent-identity: unknown agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.0.3 agent-runtime: OMP 18.0.3 tooling-profile: dotfiles@e4789b0
agent-identity: unknown agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.0.3 agent-runtime: OMP 18.0.3 tooling-profile: dotfiles@e4789b0
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
pty-rust is the Rust implementation of the same PTY session/registry contract as compoundingtech/pty. Node PTY #168 adds launcher-agnostic
lastOutputAtMs; without parity, st2 session-fidelity observation depends on which PTY backend owns the session.Goal
Persist the newest PTY output timestamp with the same camelCase metadata field, bounded live write rate, and retained-exit guarantee as PTY #168.
Decisions
DaemonMsg::PtyDatain the existing single-threaded actor; no second observer.last_output_at_msandrecv_timeoutfor a trailing one-second persist deadline.lastOutputAtMsis evidence only. pty-rust does not classify active/idle or know any launcher/harness.docs/vrs/{requirements,spec}.md) with explicit user authorization.Verification
cargo check— green with Nix Rust + required Zig 0.15.2.cargo test --test cli_e2e --test registry_liveness— 16/16 green.axe vrs check --profile strict docs/vrs— green.Build invocation used the documented generated-dependency checkout bypass because libghostty's build script checks out Ghostty inside Cargo
target/and the megarepo wrapper otherwise mistakes it for a canonical branch mutation:MEGAREPO_ALLOW_CANONICAL_MUTATION=1 \ nix shell nixpkgs#cargo nixpkgs#rustc nixpkgs#zig_0_15 -c cargo test ...Complexity
Two actor fields (
Option<u64>,Option<Instant>), onerecv_timeoutbranch, one additive metadata field. No process, stream, writer thread, or per-chunk filesystem operation.Concerns
The repository has no native devshell/CI. Building libghostty requires Zig 0.15.2 exactly; nixpkgs
zigcurrently resolves to 0.16 and fails, whilezig_0_15is correct.Friction & bottlenecks
Follow-ups
References
Posted on behalf of @schickling
agent_identityagent_personaagent_supervisoragent_toolagent_tool_versionagent_runtimetooling_profile