Skip to content

Phase 1: Protocol consolidation (FileRead/FileWrite options + wire error visibility) - #300

Open
chipsenkbeil wants to merge 10 commits into
masterfrom
feature/mount-phase-1
Open

Phase 1: Protocol consolidation (FileRead/FileWrite options + wire error visibility)#300
chipsenkbeil wants to merge 10 commits into
masterfrom
feature/mount-phase-1

Conversation

@chipsenkbeil

Copy link
Copy Markdown
Owner

Summary

  • Collapse FileRead/FileReadText/FileWrite/FileWriteText/FileAppend/FileAppendText into FileRead + FileWrite with ReadFileOptions/WriteFileOptions
  • Custom Msg Deserialize that preserves inner errors instead of collapsing to "did not match any variant"
  • hex_preview utility for binary-safe error logging of wire payloads
  • All backends (host, ssh, docker) updated with offset/len/append support

Part of

Phase 1 of the file-mount branch decomposition. See docs/superpowers/specs/2026-04-16-file-mount-decomposition-design.md

Test plan

  • All existing tests pass (protocol consolidation is backwards-compatible via #[serde(default)])
  • New option-specific serde round-trip tests (ReadFileOptions, WriteFileOptions)
  • Msg failure_paths tests verify inner error propagation
  • hex_preview unit tests
  • Full workspace clippy + test clean (426 passed, 0 failed)

Design spec for decomposing the feature/file-mount branch into 8 phased
PRs. Covers protocol consolidation, network resilience, event system,
mount lifecycle, distant-mount crate, CLI, and 4 mount backends (NFS,
FUSE, FileProvider, Cloud Files). Includes AI dev process guardrails
and test reliability strategy.
…pend

Update all Api trait implementations (host, ssh, docker) and callsites
to use the new 2-method file API (read_file with ReadFileOptions,
write_file with WriteFileOptions) instead of the previous 6-method API.

Host backend: full offset/len/append support with fast paths for default
options. SSH/Docker backends: stub updates to match trait signatures.
Pre-existing lint caught by newer clippy (1.95.0) on CI. Three match
arms in SSH config parsing had if-conditions that should be match
guards.
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.

1 participant