Skip to content

Use serde_json_lenient, implement setup-zed experimental command - #1195

Merged
twitchyliquid64 merged 2 commits into
mainfrom
tom/sftp
Aug 11, 2026
Merged

Use serde_json_lenient, implement setup-zed experimental command#1195
twitchyliquid64 merged 2 commits into
mainfrom
tom/sftp

Conversation

@twitchyliquid64

@twitchyliquid64 twitchyliquid64 commented Aug 10, 2026

Copy link
Copy Markdown
Member

Note

Replace serde_json with serde_json_lenient workspace-wide and add setup-zed session command

  • Replaces serde_json with serde_json_lenient across all crates at the workspace level, so JSON parsing throughout the daemon, client, RPC layer, session store, graph wire format, and diagnostics now accepts lenient JSON syntax (e.g. trailing commas, comments).
  • Adds a hidden min session setup-zed <session> subcommand that generates a Zed SSH connection entry for a session; with --print it outputs the JSON entry, otherwise it upserts the entry into Zed's settings.json and reports whether it was Added, Updated, or Unchanged.
  • The new zed.rs module provides helpers for resolving the default Zed settings path (XDG-aware), building the ssh_connections entry, and tracking upsert outcomes.
  • Risk: serde_json_lenient is a drop-in replacement but error types change from serde_json::Error to serde_json_lenient::Error; any code that matches on error internals may need updates. RUSTSEC-2026-0247 is suppressed in deny.toml.

Macroscope summarized b0a6789.

Summary by CodeRabbit

  • New Features
    • Added a hidden command to register sessions as SSH connections in Zed, including settings updates, backups, and optional JSON output.
  • Enhancements
    • Improved JSON handling across session management, diagnostics, networking, caching, CLI commands, and RPC workflows to accept leniently formatted JSON.
    • Preserved existing validation, error handling, permissions, and data formats.
  • Documentation
    • Updated fuzzing guidance for lenient JSON parsing.
  • Chores
    • Documented an exception for an unmaintained dependency advisory.

@twitchyliquid64
twitchyliquid64 requested a review from a team as a code owner August 10, 2026 19:40
@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The workspace replaces serde_json with serde_json_lenient across persistence, diagnostics, graph wire formats, RPC, CLI, and tests. It also adds hidden Zed SSH setup support with settings upsert and backup behavior.

Changes

Lenient JSON migration

Layer / File(s) Summary
Workspace and persistence paths
Cargo.toml, crates/checkouts/..., crates/common/..., crates/lcache/..., crates/minimal-tui/..., crates/sessions/...
Dependencies and persistence paths now use serde_json_lenient.
Graph wire formats
crates/graph/...
Graph cache and synchronous and asynchronous wire paths now use lenient JSON APIs and errors.
Diagnostics and RPC paths
crates/diagnostics/..., crates/minimal/src/diag/..., crates/minimald/..., crates/minimal-client/..., crates/minimald-rpc/...
Diagnostic, bundle, redaction, RPC, policy, and test JSON paths now use serde_json_lenient.
CLI, VM, package, logging, and image paths
crates/minvmd/..., crates/mip/..., crates/mlog/..., crates/op/...
CLI, VM, package, log, and OCI image JSON paths now use serde_json_lenient.

Zed SSH setup

Layer / File(s) Summary
Zed command and connection model
crates/minimal/src/lib.rs, crates/minimal/src/zed.rs
The hidden setup-zed command resolves a session and renders a socket-pinned SSH connection.
Settings upsert and validation
crates/minimal/src/zed.rs
Settings parsing supports JSONC, missing and empty files, session-based updates, directory creation, and backups.
Validation and supporting updates
crates/minimal/src/zed.rs, deny.toml, docs/fuzzing.md
Tests cover rendering, insertion, idempotency, updates, preservation, backups, and round trips. Advisory and fuzzing records reflect the dependency change.

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Operator
  participant MinimalCLI
  participant SessionStore
  participant ZedSettings
  Operator->>MinimalCLI: invoke hidden setup-zed
  MinimalCLI->>SessionStore: resolve session and daemon connection
  SessionStore-->>MinimalCLI: return session connection data
  MinimalCLI->>ZedSettings: read and parse settings
  MinimalCLI->>ZedSettings: insert or update SSH entry
  ZedSettings-->>MinimalCLI: write settings and backup
  MinimalCLI-->>Operator: print entry or report outcome
Loading

Possibly related PRs

Suggested labels: needs-human

Suggested reviewers: norrietaylor

Poem

Lenient JSON hops through the burrow bright,
Zed finds a tunnel, settings sit right.
Backups rest safely, entries align,
A rabbit approves this tidy design. 🐇

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description summarizes the changes but omits the required Summary, Testing, and Checklist sections, including test evidence and checklist confirmations. Add the required sections, document executed tests with relevant output, and complete the checklist; add a BREAKING CHANGE footer if applicable.
✅ Passed checks (4 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly identifies both primary changes: adopting lenient JSON and adding the experimental setup-zed command.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch tom/sftp

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Nitpick comments (11)
crates/minimal/src/lib.rs (1)

2383-2484: 🩺 Stability & Availability | 🔵 Trivial | 💤 Low value

Move the settings-file I/O off the async path.

cmd_session_setup_zed is async, and zed::read_settings and zed::write_settings call std::fs directly. If the settings path lives on a wedged filesystem (for example a stalled network mount for $HOME), the runtime worker blocks. Wrap the read/upsert/write block in tokio::task::spawn_blocking, as crates/minimal/src/diag/collect.rs does for filesystem work.

Based on learnings: "In this Rust repo, avoid blocking filesystem work in async contexts (e.g., don't call std::fs directly from async tasks)."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@crates/minimal/src/lib.rs` around lines 2383 - 2484, Move the settings-file
I/O in cmd_session_setup_zed into a tokio::task::spawn_blocking closure,
including zed::read_settings, zed::upsert, and zed::write_settings, then await
and propagate both task and operation errors. Keep path selection, outcome
handling, and user-facing messages on the async path while ensuring no direct
filesystem work remains there.

Source: Learnings

crates/minimal/src/zed.rs (2)

216-221: 🩺 Stability & Availability | 🔵 Trivial | ⚡ Quick win

Write the settings file atomically.

std::fs::write truncates settings.json first. If the process dies or the disk fills during the write, the user is left with a truncated settings file, and Zed then starts with no settings. Write the rendered document to a temporary file in the same directory, then rename it over the target. The .bak copy limits the damage, but a rename removes the window entirely.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@crates/minimal/src/zed.rs` around lines 216 - 221, Replace the direct
std::fs::write call in the settings-writing flow with an atomic same-directory
temporary-file write followed by a rename over path. Ensure the complete
rendered content is flushed to the temporary file before renaming, preserve the
existing error context, and clean up the temporary file if writing or renaming
fails.

21-29: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Centralize the shared SSH contract constants.

SESSION_ID_ENV matches the daemon value, and both workspace values resolve to /workbench. Define the constants in minimald-rpc, which both crates already depend on, to prevent silent session-routing or project-path drift.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@crates/minimal/src/zed.rs` around lines 21 - 29, Move the shared SSH contract
constants SESSION_ID_ENV and WORKSPACE_ROOT from the minimal crate into
minimald-rpc, defining them once with the existing values. Update the daemon and
CLI references to use the centralized minimald-rpc symbols, removing duplicate
local definitions while preserving the current session-routing and
workspace-root behavior.
crates/minimal-tui/src/state.rs (1)

71-84: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win

Exercise lenient JSON syntax in the state tests.

These tests cover valid JSON and empty input, but they do not prove support for comments or trailing commas. Add a fixture with both forms so a future parser replacement cannot pass without preserving the intended lenient behavior. The crate documents these forms as enabled by default. (docs.rs)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@crates/minimal-tui/src/state.rs` around lines 71 - 84, Add a state
deserialization test alongside the existing DashState tests that uses JSON
containing both comments and trailing commas, then assert it parses successfully
into the expected DashState value. Keep the existing valid-JSON and empty-input
tests unchanged, and exercise the default lenient parser behavior through
serde_json_lenient.

Source: MCP tools

crates/sessions/src/store.rs (1)

336-336: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Add a regression fixture for lenient storage input.

The loader tests currently create canonical JSON with serde_json_lenient::to_vec. A regression to strict parsing would keep those tests green. Add hand-written record.json and index.json fixtures with a comment or trailing comma, then verify DiskLoader::new and self-healing accept them. These are the lenient input forms supported by the dependency. (docs.rs)

Also applies to: 403-403

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@crates/sessions/src/store.rs` at line 336, Add regression fixtures for
lenient storage input in the loader tests: hand-write record.json and index.json
using supported comments or trailing commas instead of generating them with
serde_json_lenient::to_vec. Verify both DiskLoader::new and the self-healing
path successfully load these fixtures, preserving coverage against a future
switch to strict JSON parsing.

Source: MCP tools

deny.toml (1)

13-14: 🔒 Security & Privacy | 🔵 Trivial | 🏗️ Heavy lift

Track the transitive bitmaps dependency. bitmaps 3.2.1 enters through nickel-lang-corenickel-lang-vectorimbl-sized-chunks. Track an upstream update or replacement, then remove this ignore when bitmaps leaves the lockfile.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@deny.toml` around lines 13 - 14, Track the transitive bitmaps 3.2.1
dependency through nickel-lang-core, nickel-lang-vector, and imbl-sized-chunks;
update or replace the upstream dependency so bitmaps leaves the lockfile, then
remove the RUSTSEC-2026-0247 ignore entry from deny.toml.

Source: MCP tools

crates/graph/src/wire.rs (2)

1144-1144: 🗄️ Data Integrity & Integration | 🔵 Trivial | ⚡ Quick win

Exercise lenient input in the wire tests.

These fixtures now use serde_json_lenient::to_vec, but they still generate canonical JSON. They do not prove that readers accept the parser's added comment or trailing-comma forms. Add one hand-written fixture using a supported lenient form and retain a canonical fixture for compatibility. The dependency documents comments and trailing commas as its added syntax. (docs.rs)

Also applies to: 1245-1245

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@crates/graph/src/wire.rs` at line 1144, Update the wire tests around the
LocalFileHeader fixtures to include one hand-written JSON fixture containing a
supported lenient form, such as a comment or trailing comma, and retain a
separate canonical JSON fixture to verify compatibility. Ensure both fixtures
are exercised by the existing reader tests and avoid generating the lenient case
with serde_json_lenient::to_vec.

265-275: 🗄️ Data Integrity & Integration | 🔵 Trivial | ⚡ Quick win

Preserve the graph stream byte contract.

GraphWriter hashes the exact record payload bytes, but STREAM_VERSION remains unchanged. Verify that every serde_json_lenient::to_vec call preserves the previous writer's bytes and that an older reader can consume a new stream. If the bytes can change, add a version bump or compatibility path. Add a golden stream fixture because synchronous and asynchronous round trips can pass when both sides use the same new serializer.

Also applies to: 296-310, 338-338, 744-755, 777-793, 822-822

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@crates/graph/src/wire.rs` around lines 265 - 275, Preserve the existing
serialized record bytes across every GraphWriter serde_json_lenient::to_vec
call, including the BuildSpecRecord and the additional call sites noted in the
review. Compare against the previous writer format and either retain byte
compatibility or bump STREAM_VERSION and add the corresponding reader
compatibility path. Add a golden stream fixture that validates exact bytes and
is exercised by both synchronous and asynchronous round trips.
crates/op/src/oci_image.rs (1)

129-129: 🗄️ Data Integrity & Integration | 🔵 Trivial | ⚡ Quick win

Verify OCI blob serialization before changing the digest contract.

The image configuration and manifest bytes are external OCI JSON blobs, and this function hashes their exact bytes for blob paths and descriptor digests. The OCI image specification defines these as JSON media types. (github.com) serde_json_lenient adds lenient input syntax and provides its own serializer. (docs.rs) Verify that serde_json_lenient::to_vec emits strict JSON and preserves expected image digest fixtures. If byte changes are intentional, document the digest migration; otherwise keep strict serialization at this external boundary.

Also applies to: 179-179

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@crates/op/src/oci_image.rs` at line 129, Verify the serialization used for
OCI image configuration and manifest bytes in the relevant image-building
function, including both serde_json_lenient::to_vec calls. Ensure the external
OCI blobs are emitted as strict JSON and preserve existing digest and blob-path
fixtures; if lenient serialization changes bytes, replace it with the
established strict JSON serializer, or document an intentional digest migration.
docs/fuzzing.md (1)

247-247: 🩺 Stability & Availability | 🔵 Trivial | ⚡ Quick win

Qualify the fuzzing exemption for the lenient parser.

serde_json_lenient adds comment and trailing-comma grammar to its serde_json fork. Upstream serde_json fuzzing does not, by itself, establish coverage of those added parser paths. (docs.rs) Keep this exemption only if the workspace's dependency version covers the lenient paths with tests or fuzzing. Otherwise, add a target or narrow the rationale.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/fuzzing.md` at line 247, Update the lcache::EntryMeta::read_from
fuzzing-exemption entry to verify that the workspace’s serde_json_lenient
version has tests or fuzzing covering its comment and trailing-comma parsing
paths; if not, add a dedicated fuzz target or narrow the exemption rationale so
upstream serde_json coverage is not treated as sufficient.
crates/minimald-rpc/src/lib.rs (1)

897-897: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Exercise lenient JSON syntax in an RPC test.

This test only parses standard {}. Add a request with a comment or trailing comma, then assert the same defaults. This verifies the intended lenient behavior at the RPC boundary. (docs.rs)

Suggested regression case
         assert_eq!(req, DiagBundleRequest::default());
+
+        let lenient: DiagBundleRequest = serde_json_lenient::from_str(
+            r#"{"include_state_listing": true, // accepted comment
+            }"#,
+        )
+        .expect("deserialize lenient JSON");
+        assert_eq!(lenient, DiagBundleRequest::default());
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@crates/minimald-rpc/src/lib.rs` at line 897, Update the RPC test around
DiagBundleRequest deserialization to parse a lenient JSON payload containing a
comment or trailing comma instead of only standard "{}". Keep the existing
assertions and verify the deserialized request retains the same default values.

Source: MCP tools

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@crates/checkouts/src/error.rs`:
- Line 32: Review the public checkouts::Error API around StatefileInvalid before
merging: either preserve the existing serde_json::Error-compatible payload via a
crate-owned wrapper and update workspace consumers that format it, or explicitly
treat the serde_json_lenient::Error payload change as breaking by applying the
required version bump and updating all affected consumers.

In `@crates/minimal/src/zed.rs`:
- Line 1: Update the module documentation comment to show the parser’s command
order, using `min session setup-zed <session>` instead of `min session <id>
setup-zed`; leave the parsing implementation and
setup_zed_parses_as_a_session_verb unchanged.
- Around line 205-214: Update the backup path construction in the read/backup
block of cmd_session_setup_zed to append “.json.bak” to the complete filename
rather than replacing its existing extension; preserve all existing read, write,
and error-handling behavior while ensuring settings.jsonc becomes
settings.jsonc.json.bak and extensionless names receive the same suffix.

---

Nitpick comments:
In `@crates/graph/src/wire.rs`:
- Line 1144: Update the wire tests around the LocalFileHeader fixtures to
include one hand-written JSON fixture containing a supported lenient form, such
as a comment or trailing comma, and retain a separate canonical JSON fixture to
verify compatibility. Ensure both fixtures are exercised by the existing reader
tests and avoid generating the lenient case with serde_json_lenient::to_vec.
- Around line 265-275: Preserve the existing serialized record bytes across
every GraphWriter serde_json_lenient::to_vec call, including the BuildSpecRecord
and the additional call sites noted in the review. Compare against the previous
writer format and either retain byte compatibility or bump STREAM_VERSION and
add the corresponding reader compatibility path. Add a golden stream fixture
that validates exact bytes and is exercised by both synchronous and asynchronous
round trips.

In `@crates/minimal-tui/src/state.rs`:
- Around line 71-84: Add a state deserialization test alongside the existing
DashState tests that uses JSON containing both comments and trailing commas,
then assert it parses successfully into the expected DashState value. Keep the
existing valid-JSON and empty-input tests unchanged, and exercise the default
lenient parser behavior through serde_json_lenient.

In `@crates/minimal/src/lib.rs`:
- Around line 2383-2484: Move the settings-file I/O in cmd_session_setup_zed
into a tokio::task::spawn_blocking closure, including zed::read_settings,
zed::upsert, and zed::write_settings, then await and propagate both task and
operation errors. Keep path selection, outcome handling, and user-facing
messages on the async path while ensuring no direct filesystem work remains
there.

In `@crates/minimal/src/zed.rs`:
- Around line 216-221: Replace the direct std::fs::write call in the
settings-writing flow with an atomic same-directory temporary-file write
followed by a rename over path. Ensure the complete rendered content is flushed
to the temporary file before renaming, preserve the existing error context, and
clean up the temporary file if writing or renaming fails.
- Around line 21-29: Move the shared SSH contract constants SESSION_ID_ENV and
WORKSPACE_ROOT from the minimal crate into minimald-rpc, defining them once with
the existing values. Update the daemon and CLI references to use the centralized
minimald-rpc symbols, removing duplicate local definitions while preserving the
current session-routing and workspace-root behavior.

In `@crates/minimald-rpc/src/lib.rs`:
- Line 897: Update the RPC test around DiagBundleRequest deserialization to
parse a lenient JSON payload containing a comment or trailing comma instead of
only standard "{}". Keep the existing assertions and verify the deserialized
request retains the same default values.

In `@crates/op/src/oci_image.rs`:
- Line 129: Verify the serialization used for OCI image configuration and
manifest bytes in the relevant image-building function, including both
serde_json_lenient::to_vec calls. Ensure the external OCI blobs are emitted as
strict JSON and preserve existing digest and blob-path fixtures; if lenient
serialization changes bytes, replace it with the established strict JSON
serializer, or document an intentional digest migration.

In `@crates/sessions/src/store.rs`:
- Line 336: Add regression fixtures for lenient storage input in the loader
tests: hand-write record.json and index.json using supported comments or
trailing commas instead of generating them with serde_json_lenient::to_vec.
Verify both DiskLoader::new and the self-healing path successfully load these
fixtures, preserving coverage against a future switch to strict JSON parsing.

In `@deny.toml`:
- Around line 13-14: Track the transitive bitmaps 3.2.1 dependency through
nickel-lang-core, nickel-lang-vector, and imbl-sized-chunks; update or replace
the upstream dependency so bitmaps leaves the lockfile, then remove the
RUSTSEC-2026-0247 ignore entry from deny.toml.

In `@docs/fuzzing.md`:
- Line 247: Update the lcache::EntryMeta::read_from fuzzing-exemption entry to
verify that the workspace’s serde_json_lenient version has tests or fuzzing
covering its comment and trailing-comma parsing paths; if not, add a dedicated
fuzz target or narrow the exemption rationale so upstream serde_json coverage is
not treated as sufficient.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 43419166-8fd2-4538-bad0-4b0dc5047ee1

📥 Commits

Reviewing files that changed from the base of the PR and between fdf699a and e3e379d.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (64)
  • Cargo.toml
  • crates/checkouts/Cargo.toml
  • crates/checkouts/src/error.rs
  • crates/checkouts/src/lib.rs
  • crates/common/Cargo.toml
  • crates/common/src/spec_hash.rs
  • crates/diagnostics/Cargo.toml
  • crates/diagnostics/src/bundle.rs
  • crates/diagnostics/src/kmsg.rs
  • crates/diagnostics/src/procs.rs
  • crates/diagnostics/src/redact.rs
  • crates/diagnostics/src/system.rs
  • crates/graph/Cargo.toml
  • crates/graph/src/loader.rs
  • crates/graph/src/wire.rs
  • crates/lcache/Cargo.toml
  • crates/lcache/src/entry_meta.rs
  • crates/minimal-client/Cargo.toml
  • crates/minimal-client/src/lib.rs
  • crates/minimal-tui/Cargo.toml
  • crates/minimal-tui/src/state.rs
  • crates/minimal/Cargo.toml
  • crates/minimal/src/diag/collect.rs
  • crates/minimal/src/diag/guest.rs
  • crates/minimal/src/diag/net.rs
  • crates/minimal/src/lib.rs
  • crates/minimal/src/zed.rs
  • crates/minimal/tests/bug.rs
  • crates/minimal/tests/cli.rs
  • crates/minimald-rpc/Cargo.toml
  • crates/minimald-rpc/src/lib.rs
  • crates/minimald/Cargo.toml
  • crates/minimald/src/connection.rs
  • crates/minimald/src/diag.rs
  • crates/minimald/src/net/policy.rs
  • crates/minimald/src/rpc.rs
  • crates/minimald/src/test_harness.rs
  • crates/minvmd/Cargo.toml
  • crates/minvmd/examples/exec.rs
  • crates/minvmd/src/cmd/config.rs
  • crates/minvmd/src/cmd/status.rs
  • crates/minvmd/src/rpc_client.rs
  • crates/minvmd/tests/config_cli_integration.rs
  • crates/minvmd/tests/minimald_session_integration.rs
  • crates/minvmd/tests/resource_vm_integration.rs
  • crates/minvmd/tests/supervision_integration.rs
  • crates/mip/Cargo.toml
  • crates/mip/src/cmd_dump.rs
  • crates/mip/src/cmd_run.rs
  • crates/mlog/Cargo.toml
  • crates/mlog/src/lib.rs
  • crates/op/Cargo.toml
  • crates/op/src/error.rs
  • crates/op/src/oci_image.rs
  • crates/sessions/Cargo.toml
  • crates/sessions/src/lib.rs
  • crates/sessions/src/store.rs
  • crates/sessions/src/wire/errors.rs
  • crates/sessions/src/wire/policy.rs
  • crates/sessions/src/wire/primitives.rs
  • crates/sessions/src/wire/request.rs
  • crates/sessions/tests/client_flow1.rs
  • deny.toml
  • docs/fuzzing.md

Comment thread crates/checkouts/src/error.rs
Comment thread crates/minimal/src/zed.rs Outdated
Comment thread crates/minimal/src/zed.rs
@twitchyliquid64
twitchyliquid64 merged commit 5d69c3e into main Aug 11, 2026
30 checks passed
@twitchyliquid64
twitchyliquid64 deleted the tom/sftp branch August 11, 2026 21:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants