You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The push trigger's paths-ignore becomes a paths list with negations so
baseline-only .md pushes still run CI. list-dir hides dot entries like
plain ls (--all opts in) and the migrator TODOs ls flags. vp/vpr/vpx
resolve through the case PATH first so VP_HOME/bin shims shadow the
harness aliases. A failing step now stops the case by default (shell-like
&& semantics) with continue-on-failure as the opt-out; the migrator
restores legacy semantics exactly by marking each command line's final
step. Bare runtime-tool versions (Node 24.x, pnpm 10.x from vp create)
redact by tool-name context while user semver stays assertable.
Claude-Session: https://claude.ai/code/session_01NRgjMi2Vus3iJctudGEWPT
Copy file name to clipboardExpand all lines: rfcs/interactive-snapshot-tests.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -232,7 +232,7 @@ The per-case bin dir fronts `packages/cli/bin` (the JS dispatch), which requires
232
232
-**PTY and screen.** Each step spawns in a fresh PTY with a 500x500 grid (large enough that wrapping and scrolling do not distort output; scrollback capture is an open question for outputs beyond 500 rows). Output feeds a vt100 emulator continuously; screens are read from the emulator, never from raw bytes. Plain capture flattens all styling; `formatted-snapshot = true` preserves SGR color codes (rendered as escaped `\x1b[31m` text) for cases that assert color behavior, with the ConPTY parity fix (bare SGR-reset stripping) inherited from `pty_terminal`.
233
233
-**Environment.** The child env is cleared and rebuilt: fixed baseline (`VP_CLI_TEST=1`, `VP_EMIT_MILESTONES=1`, `TERM=xterm-256color`, git identity, temp `VP_HOME`, temp `NPM_CONFIG_PREFIX`, controlled `HOME`), a small platform allow-list (Windows needs `SYSTEMROOT`, `APPDATA`, etc.), then case `env`/`unset-env`, then step `envs`. Today's ~40-pattern passthrough allow-list and its leakage risks go away. Notably absent from the baseline: `CI=true` and `NO_COLOR` (the PTY makes real interactive behavior the default, and the grid render makes color stripping unnecessary).
234
234
-**Timeouts.** Per-step, default 50s (120s for `local-registry` cases), overridable per step. On timeout the child is killed, the exit is recorded as `timeout`, and remaining steps are skipped. No leaked processes.
235
-
-**Exit codes.** Recorded in the snapshot when nonzero. Old `&&`chains that encoded "this must succeed before the next step" translate to sequential steps whose exit codes are asserted by the snapshot itself.
235
+
-**Exit codes.** Recorded in the snapshot when nonzero. A failing step stops the case by default (shell-like `&&`semantics), so later steps never bless output from a broken setup; `continue-on-failure = true` opts a step out for deliberate post-failure inspection. The migrator preserves legacy semantics exactly: `&&` chain members keep the stopping default, while each legacy command line's final step gets the opt-out, because old lines were independent.
236
236
-**Concurrency.**`libtest-mimic` runs trials in parallel. vite-task serializes on Linux because of ctrl-c signal-routing flakiness in parallel PTY tests; with a corpus this size we should scope that serialization to signal-sensitive cases (a `serial-signals` marker or a dedicated shard) rather than the whole suite. This needs measurement during implementation.
0 commit comments