-
Notifications
You must be signed in to change notification settings - Fork 0
feat: extract Rust SDK as five workspace crates #352
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
51 commits
Select commit
Hold shift + click to select a range
1fc5deb
docs(23): capture phase context
FSM1 f9ed606
docs(23): research phase domain
FSM1 50a3711
docs(23): add validation strategy
FSM1 686ceff
docs(23): create phase plan
FSM1 918e166
Merge remote-tracking branch 'origin/main' into feat/phase-23-rust-sd…
FSM1 4ba2d04
docs(23): update plans for Phase 20 vault blob v2 + dual IPNS changes
FSM1 523d3de
feat(23-01): create Cargo workspace and cipherbox-crypto crate
FSM1 97d2482
feat(23-01): rewire desktop app to use cipherbox-crypto workspace crate
FSM1 11f505e
docs(23-01): complete workspace and crypto crate extraction plan
FSM1 d168e8e
feat(23-03): create cipherbox-api-client crate
FSM1 2b35140
feat(23-02): create cipherbox-core crate with domain modules
FSM1 c0502e9
test(23-03): add failing cross-language parity tests
FSM1 49f5abf
feat(23-02): rewire desktop app to use cipherbox-core crate
FSM1 760b070
docs(23-02): complete core crate extraction plan
FSM1 6ac58b6
docs(23-03): complete API client and cross-language test vectors plan
FSM1 2ca2fc1
feat(23-05): create cipherbox-sdk crate with sync, queue, state, and …
FSM1 cf69b4b
feat(23-05): rewire desktop app to use cipherbox-sdk
FSM1 58b27c8
docs(23-05): complete cipherbox-sdk crate extraction plan
FSM1 31e6640
feat(23-04): move FUSE operations and platform modules, rewire desktop
FSM1 774af52
docs(23-04): complete cipherbox-fuse crate extraction plan
FSM1 7979f3f
ci(23-07): update CI for workspace builds and add cross-language pari…
FSM1 db74584
chore(23-07): configure Release Please for Rust crates
FSM1 08e5128
docs(23-07): complete CI and Release Please plan
FSM1 ae14cc8
refactor(23-06): clean up dead code and unused imports across workspace
FSM1 3bb9168
docs(23-06): complete desktop thin shell cleanup plan
FSM1 bf14e4b
refactor(23): delete orphaned desktop FUSE files and fix crate qualit…
FSM1 7afa061
docs(23): create gap closure plan for Windows WinFsp extraction
FSM1 72f8814
feat(23-08): move Windows WinFsp operation files to cipherbox-fuse crate
FSM1 9c3d069
refactor(23-08): delegate desktop Windows ops to cipherbox-fuse crate
FSM1 66ad216
docs(23-08): complete gap closure summary and mark phase 23 complete
FSM1 7ff9ef2
fix(crypto): add zeroization for Ed25519 keypair generation
FSM1 ebc6d50
refactor(fuse): remove dead fetch_and_populate_folder functions
FSM1 0ecb751
docs(security): add Phase 23 Rust SDK security review report
FSM1 e96cc94
merge: resolve release-please manifest conflict
FSM1 075720c
test(crypto): add 75 unit tests across all crypto modules
FSM1 707f967
test(core): add 55 unit tests across all core modules
FSM1 773f25a
test(sdk): add 33 unit tests for queue, state, registry, and errors
FSM1 fc0caae
fix(ci): fix Windows cargo check and cross-language parity job
FSM1 3996129
fix(sdk): correct copy-paste bug in device registry update path
FSM1 9a85aad
fix(ci): gate fuser dependency on cfg(unix) to fix Windows builds
FSM1 50187b2
fix: address PR review comments
FSM1 6ae9e78
fix: address CodeRabbit review comments
FSM1 b3bde55
fix: address Copilot review comments (round 3)
FSM1 617db07
fix(ci): disable cipherbox-fuse default features on Windows + build T…
FSM1 6a0cef5
fix(ci): move fuser back to regular optional deps and fix TS build order
FSM1 81521c9
fix(ci): make vendored fuser compile as empty crate on Windows
FSM1 62557b0
fix(ci): disable default features on workspace cipherbox-fuse dependency
FSM1 bab1825
docs: add Windows build debug session notes for handoff
FSM1 cd8c98b
fix(desktop): resolve Windows WinFsp build errors for cargo check and…
FSM1 8384070
fix: address PR review comments on IPNS resolve validation and error …
FSM1 43229d6
chore: make desktop codecov check informational
FSM1 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -3,6 +3,7 @@ node_modules/ | |
|
|
||
| # Build output | ||
| dist/ | ||
| target/ | ||
|
|
||
| # Environment files | ||
| **/.env | ||
|
|
||
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,31 @@ | ||
| # Windows Build Errors Must Be Debugged on Windows | ||
|
|
||
| **Date:** 2026-03-25 | ||
|
|
||
| ## Original Prompt | ||
|
|
||
| > In the phase 23 planning docs there is a markdown file related to the debug of the Windows build of the Tauri app. Continue debugging this issue locally until you have both working cargo scripts. | ||
|
|
||
| ## What I Learned | ||
|
|
||
| - CI and build issues in the desktop app should **always be debugged on the target platform**. The Windows `winfsp` feature gate means the entire `platform/windows/` module tree and the desktop app's `fuse/windows/` module are never compiled on macOS or Linux. Errors are invisible until you run `cargo check` on an actual Windows machine. | ||
| - Rust's `super::` in nested modules is a common gotcha: if you wrap code in `mod implementation { }` inside a file, `super::` from inside that inner module resolves to the **file-level module**, not the file's parent. Reaching sibling modules requires `super::super::`. | ||
| - `pub(crate)` visibility on inner modules breaks cross-crate access. When a library crate exposes types consumed by a separate binary crate (like `cipherbox-fuse` -> `cipherbox-desktop`), those modules must be `pub`, not `pub(crate)`. | ||
| - The macOS and Windows mount code in the desktop app are structurally similar but were written at different times. The macOS version had `.map_err(|e| format!("{}", e))` on API calls; the Windows version used bare `.await?`. Always check parity when porting patterns across platform modules. | ||
|
|
||
| ## What Would Have Helped | ||
|
|
||
| - Running `cargo check --workspace --no-default-features --features winfsp` on Windows before merging the Phase 23 extraction work | ||
| - A CI matrix that catches these errors before they accumulate (already exists but was failing) | ||
| - The debug doc in `.planning/phases/23-rust-sdk-extraction/WINDOWS-BUILD-DEBUG.md` was accurate about the symptoms but the hypothesis about feature resolution was a red herring — the real issue was `super::` path depth | ||
|
|
||
| ## Key Files | ||
|
|
||
| - `crates/fuse/src/platform/windows/mod.rs` — module declarations | ||
| - `crates/fuse/src/platform/windows/operations.rs` — WinFsp FileSystemContext impl, delegates to sibling modules | ||
| - `crates/fuse/src/platform/windows/read_ops.rs` — read operation handlers | ||
| - `crates/fuse/src/platform/windows/write_ops.rs` — write operation handlers | ||
| - `crates/fuse/src/platform/windows/dir_ops.rs` — directory operation handlers | ||
| - `apps/desktop/src-tauri/src/fuse/windows/mod.rs` — desktop WinFsp mount/unmount | ||
| - `apps/desktop/src-tauri/src/fuse/mod.rs` — FUSE bridge re-exports | ||
| - `.github/workflows/ci.yml` — CI cargo-windows job definition |
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.