Skip to content

Commit 45aaa26

Browse files
test: pin complete pty fleet-observation baseline
agent-session-id: dev3.dotfiles-cos-misc-agent-runtime-simplification agent-tool: Codex agent-tool-version: 0.145.0 agent-model: gpt-5.6-sol agent-runtime-profile: /home/schickling/.config/coding-agents/profile.json agent-skills-manifest: /nix/store/nk9iml2841l1yjjg0f6f0d3y60zkg1nn-agent-skills-corpus/share/agent-skills/manifest.json tooling-profile: dotfiles@4a0515f
1 parent ccf7f85 commit 45aaa26

2 files changed

Lines changed: 26 additions & 8 deletions

File tree

flake.lock

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

flake.nix

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
inputs = {
55
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
66
flake-utils.url = "github:numtide/flake-utils";
7-
# Runtime compatibility gate: this is the smallest pty revision containing both the
8-
# ambiguity-safe PID read and the single fleet-wide socket fallback budget.
9-
pty.url = "github:compoundingtech/pty/6de78841e05ac5b9f4fbe844a71b6dfcc7c7f9a5";
7+
# Runtime compatibility gate: reviewed coherent lifecycle baseline containing the
8+
# ambiguity-safe PID read, EPERM handling, and single fleet-wide socket fallback budget.
9+
pty.url = "github:compoundingtech/pty/afeb3b6234b7010b7db802fd029766ad17c14219";
1010
pty.inputs.nixpkgs.follows = "nixpkgs";
1111
};
1212

@@ -163,6 +163,8 @@
163163
checks.pty-fleet-contract = pkgs.runCommand "st2-pty-fleet-contract-${version}" {
164164
nativeBuildInputs = [
165165
pkgs.coreutils
166+
pkgs.jq
167+
pkgs.nodejs
166168
pty.packages.${system}.default
167169
st2
168170
];
@@ -174,6 +176,16 @@
174176
'agent "gone" { host "contract"; retired #true; command "true" }' \
175177
> "$catalog/agents/contract/gone/agent.kdl"
176178
179+
# Run the exact packaged producer's deterministic fault seams. These prove EPERM avoids
180+
# socket fallback and hundreds of indefinitely-hung ambiguous probes share one deadline.
181+
test_config=$(mktemp --suffix=.mjs)
182+
printf '%s\n' 'export default { test: {} }' > "$test_config"
183+
node \
184+
${pty.packages.${system}.default}/lib/pty/node_modules/vitest/vitest.mjs \
185+
run tests/list-liveness-budget.test.ts \
186+
--config "$test_config" \
187+
--root ${pty.packages.${system}.default}/lib/pty
188+
177189
for fleet_size in 0 75 100 500; do
178190
root=$(mktemp -d)
179191
i=0
@@ -184,10 +196,16 @@
184196
i=$((i + 1))
185197
done
186198
199+
PTY_ROOT="$root" timeout 2s pty list --json > "pty-$fleet_size.json"
200+
jq -e --argjson size "$fleet_size" \
201+
'length == $size and all(.status == "running")' \
202+
"pty-$fleet_size.json" >/dev/null
203+
187204
PTY_ROOT="$root" timeout 2s \
188205
st2 doctor --catalog "$catalog" --host contract \
189206
> "doctor-$fleet_size.out"
190-
grep -F 'contract.gone retirement complete' "doctor-$fleet_size.out" >/dev/null
207+
grep -F 'contract.gone retirement complete' \
208+
"doctor-$fleet_size.out" >/dev/null
191209
done
192210
193211
touch $out

0 commit comments

Comments
 (0)