Conversation
Move all Linux-only code (sim execution, inspect, run-in) to native.rs and VM dispatch to vm.rs. Run/Prepare/Test commands auto-detect: native on Linux, VM elsewhere. Shared RunArgs struct via clap flatten. VmCommand Test reuses TestArgs. No more scattered #[cfg(target_os)] in main.rs. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace cargo binstall with a direct curl+tar from the rolling release. Faster, no extra tooling, and works reliably in CI. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add back #[ctor::ctor] init_userns_for_ctor() in native.rs so test binaries spawned by nextest set up user namespaces before main(). Replace cargo binstall with direct curl+tar from rolling release. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Use nextest --message-format libtest-json for structured test results instead of parsing human-readable output. Extract shared helpers (run_piped, parse_nextest_json, has_nextest) from test.rs and reuse in compare.rs. Falls back to cargo test with text parsing when nextest is unavailable. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Server auto-generates run.json from test-results.jsonl on push when no run.json is present. Directories with run.json but no events.jsonl and no children are now treated as leaf runs (not empty groups). Push response includes view_url. Compare page no longer hangs on "Loading lab state..." for test runs without state.json. parse_nextest_json moved to patchbay-utils for reuse by server. CI template simplified to nextest + curl (no patchbay binary needed). Stderr flows to console. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Run discovery uses events.jsonl as the sole leaf-run indicator. run.json without events.jsonl is a group manifest, not a leaf. Server merges test-results.jsonl into existing run.json on push instead of auto-generating. CompareView detects group params (no matching run) and builds synthetic manifests from child runs. Fix double-prefix bug in test click navigation by tracking leftDir/rightDir separately. CI template uses jq for run.json and gh CLI for PR comments. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace resolve_test_dirs with build_test_list: scan dirs for events.jsonl first (authoritative), create TestResults from directory names, then enrich with nextest status/duration. Server prefixes dir fields with group name for navigable full paths. GroupPage enhanced for test groups (PR link, pass/fail, test table). CompareView cleanly separates group mode (diff table only) vs run mode (split view only). RunsIndex shows PR links and links groups to /group/. Remove batch/inv legacy aliases. TimelineTab includes tracing_jsonl. Push view_url points to /group/. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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.
Overhauls run discovery, test result handling, and the compare UI to support the full CI-to-UI workflow without requiring a patchbay binary in CI.
The server now uses
events.jsonlas the sole leaf-run indicator and treatsrun.jsonwithout it as a group manifest. Test results are built from directory structure first (authoritative names likepatchbay/holepunch_simple), then enriched with status and duration from nextest JSONL output. This replaces the old approach that started from nextest$-style names and tried to reverse-match directories. The server mergestest-results.jsonlinto manifests at discovery time and recomputes pass/fail counts, so CI only needscargo nextest run > test-results.jsonlplustar | curlto push results — no patchbay binary needed.The group page now handles both sim and test groups. For test groups it shows manifest metadata (PR link, branch, commit, outcome) and a table of per-test results with clickable links to individual run views. The runs index links groups to their group page and displays PR numbers. The compare view cleanly separates group mode (diff table only) from run mode (side-by-side split view only), and group compare synthesizes manifests from child runs when no
run.jsonexists. Test names in the diff table come from directory paths and link to the correct individual run comparisons.Other fixes: the timeline tab now includes
tracing_jsonlfiles (device tracing events were previously filtered out), the compare page no longer hangs on "Loading lab state..." for test runs withoutstate.json, and the ctor bootstrap for user namespace init is restored for nextest-spawned test processes. Legacybatch/invocationaliases are removed.