* add CachedFileSystem + CacheProvider trait and Mooncake/Yuanrong Provide
add CachedFileSystem + CacheProvider trait and Mooncake/Yuanrong Provide
* Handle poisoned known_keys mutexes in cache providers
* Add configurable cache support to ragfs python
* Add Redis cache provider support
* Prune native cache providers from default build
* Add RAGFS cache guides in Chinese and English
* delete .cargo/config.toml
* Fix stale cache invalidation across shared wrappers
* Document Yuanrong native concurrency limits
* add CachedFileSystem + CacheProvider trait and Mooncake/Yuanrong Provide
add CachedFileSystem + CacheProvider trait and Mooncake/Yuanrong Provide
* Handle poisoned known_keys mutexes in cache providers
* Add configurable cache support to ragfs python
* Add Redis cache provider support
* Prune native cache providers from default build
* Add RAGFS cache guides in Chinese and English
* delete .cargo/config.toml
* Fix stale cache invalidation across shared wrappers
* Document Yuanrong native concurrency limits
* Limit directory cache entries and add regression test
* docs: add TOS s3fs backend test design
* Add runtime cache config override
* add build guides for mooncake and yuanrong
* fix _FakeConfig test with cache
* fix(ragfs): cache encrypted data below the encryption layer
- pass runtime cache config to the Rust binding
- cache ciphertext instead of decrypted content
- disable cache for encrypted multi-write mounts
- update tests and provider build documentation
* fix(ragfs): invalidate cache after same-mount raw copy
Ensure copy_within_mount invalidates the cached destination file and
parent directory after the raw backend fast path writes data directly.
This prevents stale reads and stale directory metadata when cache is
enabled and Python cp() uses the same-mount copy optimization.
Add a regression test covering overwrite copy followed by read/list.
* fix(ragfs): preserve multi-write discovery through cache layer
Allow MountableFS::as_multiwrite() to unwrap CachedFileSystem when
discovering the underlying MultiWriteWrappedFS. This preserves
multi-write admin paths and same-mount copy behavior for cache-enabled,
unencrypted multi-write mounts.
Add a regression test covering sync status, sync retry, same-mount copy,
and unmount behavior for cached unencrypted multi-write mounts.
* feat(ragfs): add cache-aware tree traversal mode
- add configurable tree traversal mode to cache policy
- keep default tree behavior delegated to backend
- allow cached traversal to reuse read_dir directory cache
- bypass cached traversal for multi-write backends
- add regression coverage for tree cache behavior and fallbacks
* docs: design cache-aware grep traversal
* feat(ragfs): add cache-aware grep traversal
Introduce a shared cache traversal mode for recursive APIs and use it to
optionally run grep through CachedFileSystem.
- add CacheTraversalMode with backend and cached_traversal modes
- keep CacheTreeMode as a compatibility alias
- route tree and grep through cached traversal only when explicitly enabled
- reuse cached read_dir entries and full-file reads during grep traversal
- keep multi-write traversal on the backend path
- expose storage.agfs.cache.traversal_mode in Python config
- raise max cached directory entries threshold to 4096
- add regression tests for grep cache traversal and traversal config
* Optimize cached grep generation validation
* Parallelize cached grep file scanning
---------
Co-authored-by: fang <fang@fangMacBook-Air.local>
* reorg: rewrite agfs with rust, and named with ragfs, keep License
* reorg: rewrite agfs with rust, and named with ragfs, keep License
* reorg: rewrite agfs with rust, and named with ragfs, keep License
* reorg: rewrite agfs with rust, and named with ragfs, keep License
* reorg: rewrite agfs with rust, and named with ragfs, keep License
* reorg: rewrite agfs with rust, and named with ragfs, keep License
* reorg: rewrite agfs with rust, and named with ragfs, keep License
* reorg: rewrite agfs with rust, and named with ragfs, keep License
* fix: grep level limit
* fix: grep root
* fix: import error
* fix: rust code optimazation
* fix: CI error
* fix: CI go mod cache
* fix: grep level limit
* fix: CI
---------
Co-authored-by: openviking <openviking@example.com>
* feat: add Rust CLI implementation
* feat: add multi-platform CI and curl installer
- GitHub Actions workflow for Linux/macOS/Windows builds
- install.sh script with platform detection and checksum verification
- README updated with Rust CLI installation instructions
- Build badges and platform support documentation
* fix: improve Rust CI workflow and integrate with existing PR checks
- Rename build.yml to rust-cli.yml to avoid conflicts
- Add path filters to trigger only on Rust file changes
- Integrate Rust build into existing PR workflow
- Fix cross-compilation setup for ARM64 Linux
- Fix checksum generation for macOS compatibility
- Add proper environment variables for cross-compilation
* test: add test files for GitHub Actions release workflow
* test: bump Rust CLI version to test cross-platform build workflow
* fix: update GitHub Actions to use non-deprecated artifact actions v4
* fix: add test-release-actions branch to rust-cli workflow triggers
* fix: clean up unused imports and variables in Rust CLI
* fix: resolve OpenSSL build errors on Linux
- Switch reqwest to use rustls-tls instead of native-tls for better portability
- Add pkg-config and libssl-dev installation for Linux builds as fallback
- Eliminates openssl-sys dependency issues on Ubuntu runners
* fix: resolve config file parsing issues
- Add serde defaults for url and output fields to handle missing config values
- Add new 'config init' command to initialize configuration properly
- Make configuration backward compatible with existing configs
- Provide better error messages and initialization flow for users
* Fix CLI to work with OpenViking server
- Remove comfy-table dependency (unused, causing build issues with Rust 1.87)
- Fix error handling to properly handle null error field in API responses
- Update Cargo.toml to remove unused dependency
- Client now correctly parses responses from OpenViking server
Tested: openviking-cli ls / works correctly with remote server
* chore: remove test artifacts and debug logic
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
* feat: add rest of APIs
* rollback: pr workflow
* feat: try new build action
* feat: openviking-cli -> ov
* chore: redundant cleanup
* fix: checksum issue
* fix: update install script for zaynjarvis/openviking
- Change repository from volcengine/OpenViking to zaynjarvis/openviking
- Fix SKIP_CHECKSUM environment variable documentation
- Add validation to detect 'Not Found' checksum files and skip gracefully
* fix: unicode slice
* feat: uses updated actions for rust-cli
* feat: update install.sh for release
* feat: improve tree and ls alignment
---------
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>