Added read-only mount CLI for v0.0.1 - #1
Open
kridaydave wants to merge 3 commits into
Open
Conversation
- TaprootState with BaseRef, Runtime, Container, env_vars (BTreeMap for determinism) - StateEngine: canonical JSON, sha256 hash, ed25519 sign/verify, save/load - 7 tests passing, clippy clean, fmt applied - sets up wedge primitive for read-only mount v0.0.1
Introduces clap CLI (init, mount, status, verify) and a read-only FUSE filesystem for v0.0.1. Mount now validates paths, rejects symlinks, and fails hard instead of silently falling back. Engine saves atomically, validates repo/branch/commit, and no longer panics on bad hex. Mount FS sanitizes runtime/container names, enforces EROFS on trunc/creat, and handles negative offsets correctly. - clap 4 CLI with no-fuse fallback, tracing, unsigned warnings - fuser 0.14 read-only TaprootFS with inode table - atomic save, empty-string validation, mountpoint checks - 12 tests passing, clippy clean
- allow '/' in repo/branch (org/repo, feat/foo) but block ., .. and // traversal - save state atomically via tempfile::NamedTempFile with random suffix and fsync parent - move tempfile to dependencies so save works in release builds - mount now validates symlink and non-dir before --no-fuse early return, fixes CI bypass - distinct status labels: ERROR for load failure, MOUNT FAILED for mountpoint issues vs DRIFTED - show absolute state path in status/verify to avoid cwd confusion - update help text to note default is relative to current directory - fix clippy private_interfaces warning on get_inode - bump version to 0.0.1 to match branch, update README Try it and wedge checklist - add 6 CLI integration tests for slash, dotdot, symlink rejection, roundtrip
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.
PR made by muse-spark-1.2-contributor from opencode on behalf of Kriday.
Built the wedge — taproot can now init, verify, and mount a signed state as a read-only FUSE filesystem. Before this,
main.rswas just a demo; nowtaproot mount ~/projects/myappshows the header from the README and actually blocks writes.Summary: