merge development into main branch #29

Merged
rawdaGastan merged 38 commits from development into main 2026-03-04 11:47:01 +00:00
Owner
No description provided.
- Remove code_from_herolib/ directory (legacy herolib integration)
- Remove duplicate 'README MyFS.md' (consolidated into README.md)
- Add FEATURE_VERIFICATION.md (feature testing guide)
- Sync frontend version to 0.2.0 to match backend
Major changes:
- ServerStore now properly uses client-provided hash for block storage
- Server block upload API now accepts optional hash, file_hash, and idx params
- Added upload_block_simple() for simplified blob storage without file tracking
- Unified block size to 512KB across pack.rs, upload.rs, and server
- Added DEFAULT_BLOCK_SIZE constant in lib.rs
- Simplified publish_website() to use upload_dir() internally
- Added documentation clarifying encrypted (pack) vs unencrypted (upload) paths

Architecture:
- Server is now a pure key-value blob store (zero-knowledge capable)
- Client handles all encryption/decryption via BlockStore wrapper
- File structure tracked only in client-side flist metadata
- Two clear modes: encrypted pack/unpack vs simple upload/download
- Remove --create-flist flag from upload-dir command (always create flist)
- Simplify upload_dir() to always use pack() with encryption
- Remove unused collect_files() function
- Update publish_website() to delegate to upload_dir()
- This ensures all uploaded directories have proper metadata and encryption
New test files:
- tests/core_tests.rs: 17 tests covering encryption, deduplication,
  pack/unpack edge cases (symlinks, permissions, special filenames,
  large files, empty dirs, nested dirs), DirStore, Router
- tests/cli_tests.rs: 12 tests covering CLI help commands, error
  handling, and integration roundtrips (binary, many files, deep dirs)
- tests/server_api_tests.rs: 8 tests (4 run, 4 ignored requiring server)
  covering error handling for corrupt blocks/flists/truncated data

ACCEPTANCE_MATRIX.md: Documents all test cases organized by category
with current coverage status (~48% overall, ~85% for unit tests)

Test coverage summary:
- Encryption & Security: 100% (5/5)
- Core Operations: 92% (12/13)
- CLI Commands: 100% (8/8)
- DirStore: 75% (3/4)
- Router: 67% (2/3)
- Edge Cases: 43% (3/7)
- Integration: 60% (6/10)

Total: 62 tests, 56 passing, 6 ignored (need external services)
Provides targets for:
- Build: build, build-release, lib, check, clean
- Test: test, test-all, test-core, test-cli, test-server, test-verbose
- Code Quality: fmt, fmt-check, lint, lint-fix
- Documentation: doc, doc-open
- Development: install, run-server, watch, watch-test
- CI/CD: ci, validate, release, dist
- Examples: pack-example, unpack-example
- Docker: docker-build, docker-run

Run 'make help' for full command list.
New test file: tests/container_mount_tests.rs (10 tests)
- Container tests (4): alpine conversion, filesystem structure,
  CLI help, invalid image handling
- Mount tests (5): CLI help, invalid flist, invalid mountpoint,
  container flist unpack, full mount cycle (ignored - needs FUSE)
- Integration test (1): full container flow (busybox → flist → unpack)

Updated ACCEPTANCE_MATRIX.md:
- Added Container Conversion section (K1-K5): 100% coverage
- Added FUSE Mount section (U1-U7): 43% coverage (rest needs FUSE)
- Extended CLI section with container/mount help tests
- Overall coverage: ~53% (50 of 96 test cases)
- Unit tests without external deps: ~90% coverage

Updated Makefile:
- Added test-container target (requires podman)
- Added test-mount target
- Updated help text
Container runtime detection:
- Added ContainerRuntime enum with Podman, Docker, Nerdctl variants
- ContainerRuntime::detect() finds first available runtime
- ContainerRuntime::is_available() checks if runtime is functional
- ContainerImageToFlist::with_runtime() allows specifying runtime
- ContainerImageToFlist::new() auto-detects runtime

Updated all container functions to use runtime parameter:
- pull_image(), create_container(), export_container()
- clean_container(), clean_image(), write_startup_toml()

Updated tests:
- is_container_runtime_available() replaces is_podman_available()
- Tests print which runtime is being used
- container_test.rs uses with_runtime() for explicit runtime

This allows users with docker or nerdctl (but not podman) to use
container-to-flist conversion.
docs: Add system requirements for FUSE mount and debug builds
Some checks failed
Unit and Integration Test / test (push) Failing after 20s
8ced03684b
- Add System Requirements section to README with:
  - Stack size requirements for debug builds (ulimit -s unlimited)
  - FUSE mount prerequisites (fuse3 package, user_allow_other config)
- Add module-level documentation in main.rs with requirements
- Update Mount command help text to mention FUSE requirements
- Add helpful error context in fs/mod.rs for mount failures

The FUSE on-demand filesystem requires:
1. fuse3 package installed
2. /etc/fuse.conf with 'user_allow_other' uncommented
3. Debug builds need unlimited stack size due to async runtime overhead
docs: Add system requirements for FUSE mount and debug builds
All checks were successful
Unit and Integration Test / test (push) Successful in 5m9s
62495991f5
- Add System Requirements section to README with:
  - Stack size requirements for debug builds (ulimit -s unlimited)
  - FUSE mount prerequisites (fuse3 package, user_allow_other config)
- Add module-level documentation in main.rs with requirements
- Update Mount command help text to mention FUSE requirements
- Add helpful error context in fs/mod.rs for mount failures

The FUSE on-demand filesystem requires:
1. fuse3 package installed
2. /etc/fuse.conf with 'user_allow_other' uncommented
3. Debug builds need unlimited stack size due to async runtime overhead
update with parallel unpacking and refine the tests
Some checks failed
Unit and Integration Test / test (push) Failing after 20s
64a335e28f
fix fmt and tests
All checks were successful
Unit and Integration Test / test (push) Successful in 4m50s
765f6587e9
Add build_lib build system with Makefile and updated workflows
Some checks failed
Build and Test / build (push) Failing after 17s
a0f9fddef6
Replace manual workflow scripts with build_lib pattern: buildenv.sh for
config, scripts/build_lib.sh for shared logic, Makefile for dev targets.
Add Linux ARM64 cross-compilation and macOS build workflows.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fix Makefile cargo and shell compatibility
All checks were successful
Build and Test / build (push) Successful in 6m13s
289cf64857
Add SHELL := /bin/bash to use bash instead of sh (enables source command)
Add CARGO_ENV helper to ensure cargo is in PATH before running cargo commands

This fixes exit code 127 errors in CI/CD environments where cargo might not
be in the default PATH.

Applies to all cargo-using targets: build, check, fmt, fmt-check, lint,
run, test, test-all, clean, installdev, deps.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
[RELIABILITY] Unbounded Temporary File Creation in website_handlers
All checks were successful
Build and Test / build (push) Successful in 5m36s
1450ed81e5
sync: Cargo.lock
All checks were successful
Build and Test / build (push) Successful in 5m42s
a0d75870fe
Update Cargo.lock with dependency version bumps
All checks were successful
Build and Test / build (push) Successful in 5m24s
fd02b4535a
Includes updates to anyhow, async-compression, bumpalo, clap,
compression-codecs, deranged, syn, and other transitive dependencies.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Merge branch 'development' into development_bugs
All checks were successful
Build and Test / build (push) Successful in 7m14s
cc6ae63c88
Merge pull request 'development_bugs' (#24) from development_bugs into development
All checks were successful
Build and Test / build (push) Successful in 6m54s
af96e64704
Reviewed-on: #24
Reviewed-by: thabeta <thabeta@incubaid.com>
follow consistent error structure across all crate modules
Some checks failed
Build and Test / build (push) Has been cancelled
a08590f553
fix parallel functions and tests
All checks were successful
Build and Test / build (push) Successful in 4m45s
3870c30109
Merge branch 'development' of https://forge.ourworld.tf/geomind_code/my_fs into main_rhai_bindings
All checks were successful
Build and Test / build (push) Successful in 5m38s
c8261b9584
undo different nonce changes
All checks were successful
Build and Test / build (push) Successful in 4m48s
ff6d42bc36
Reviewed-on: #25
Reviewed-by: thabeta <thabeta@incubaid.com>
Merge branch 'development' of https://forge.ourworld.tf/geomind_code/my_fs into develop_xmon
All checks were successful
Build and Test / build (push) Successful in 5m25s
293e1e9a4c
Merge pull request 'develop_xmon' (#10) from develop_xmon into development
All checks were successful
Build and Test / build (push) Successful in 4m47s
72b369e54c
Reviewed-on: #10
Reviewed-by: rawdaGastan <fawzyr@incubaid.com>
fix examples
All checks were successful
Build and Test / build (push) Successful in 5m3s
b3ba4da991
Merge pull request 'add rhai bindings and some examples' (#3) from main_rhai_bindings into development
All checks were successful
Build and Test / build (push) Successful in 5m1s
cdf44d0c11
Reviewed-on: #3
Reviewed-by: thabeta <thabeta@incubaid.com>
thabeta approved these changes 2026-03-04 11:46:49 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
geomind_code/my_fs!29
No description provided.