* development_actions007:
add vfs method to local vfs
add actor gen func
mcp fixes
code module fixes
Fix sidebar paths to include top-level directory names in wiki configuration
- Removed unused `os` import from `model_fsentry.v`. This
improves code clarity and reduces unnecessary dependencies.
- Updated `vfs_implementation_test.v` to use the correct
import paths for mail-related modules.
- Enable printing of RadixTree debug information: The `debug_db` and
`print_tree_from_node` functions now print detailed information
about the RadixTree's internal structure, aiding in debugging. This
improves the developer experience by providing better tools for
understanding and troubleshooting issues within the RadixTree.
- Remove unnecessary comments: Unnecessary comments in the `debug_db`
function have been removed to improve code clarity.
- Adds a new virtual file system (VFS) implementation for calendar data.
- The calendar VFS provides a read-only view of calendar events,
organized by calendar, date, title, and organizer.
- Includes new modules for factory, model, and implementation details.
- Adds unit tests to verify the functionality of the calendar VFS.
- Adds a new VFS module for accessing contact data.
- Provides read-only access to contacts, organized by groups and
browsable by name and email.
- Includes comprehensive documentation and unit tests.
- Added a new contacts database (`ContactsDB`) to store contact
information. This improves data organization and allows for
more efficient querying and manipulation of contact data.
- Implemented a virtual file system (VFS) for contacts
(`vfs_contacts`). This provides a file-like interface to access
and manage contact data, improving integration with existing
file-system-based tools and workflows. The VFS supports
listing by group, by name, and by email.
- Added model structs for contacts, improving data organization and
serialization. This lays the foundation for more robust data
handling and future expansion.
- Added tests to verify directory listing functionality after
creating and moving directories.
- Improved test coverage for file operations within directories.
- Ensured tests accurately reflect the updated behavior of
`dir_list` function.
- Return FSEntry from `rename` and `copy` operations in VFS
to provide more information about the result. This allows
access to metadata after a successful rename or copy.
- Update `LocalVFS` and `NestedVFS` implementations to return
the appropriate FSEntry objects after successful rename and
copy operations.
- Refactor `Directory.copy()` to use a struct for arguments,
improving readability and maintainability.
- Add comprehensive error handling to `Directory.copy()`,
preventing unexpected failures and providing informative error
messages. This includes handling cases where the source is not
a directory, or a source and destination path are the same.
- Implement recursive copying of directory contents, including files
and symlinks.
- Add unit tests to cover the new `copy` functionality and error
handling.
- Update `OurDBVFS.copy()` to utilize the improved `Directory.copy()`
method and add input validation.
- Add `move`, `copy`, and `rename` methods to `Directory` and `File`
for improved file system management.
- Refactor `move` operation in `Directory` for better error handling and
support for recursive directory moves. Improves robustness and
clarity of the move operation.
- Implement a `MoveDirArgs` struct to improve the clarity and
maintainability of the `move` function arguments.
- Remove unnecessary `save()` calls for improved performance.
- Add comprehensive tests for the new and improved file system
operations. Ensures reliability and correctness of the added
functionality.
- Added `rename` method to `Directory` struct to rename files and
directories, updating metadata and timestamps. This improves
file management capabilities.
- Added `rename` method to `OurDBVFS` to provide a unified
interface for renaming files and directories across the VFS. This
allows for consistent file system operations.
- Added tests for the new rename functionality in `vfsourdb_test.v`
to ensure correctness and robustness. This enhances confidence in
the implementation.
- Added `move` operation to `Directory` to rename files and
directories within the same directory. This improves
file management capabilities.
- Updated `VFS` interface to include `move` function with
FSEntry return type for consistency. This allows for
retrieving metadata of the moved file/directory.
- Implemented `move` operation for `LocalVFS`, `OurDBVFS`, and
`NestedVFS`. This provides consistent file move
functionality across different VFS implementations.
- Added tests for the new move functionality in
`vfsourdb_test.v`. This ensures the correct behavior of the
new feature.
- Remove unnecessary debug print statements in VFS and WebDAV
middleware for cleaner code.
- Fix a bug in `OurDBVFS.exists` to correctly handle root and
current directory paths.
- Enhance `OurDBVFS.get_entry` to handle '.' path correctly.
- Improve WebDAV authentication middleware to gracefully handle
unauthenticated requests.
- Added basic WebDAV functionality for interacting with the
underlying VFS.
- Created unit tests to verify WebDAV methods.
- Improved OurDBFS implementation by adding skip attribute to
myvfs field.
- Removed unnecessary dependencies and improved code structure in `webdav` module.
- Updated VFS configuration to use global VFS instance for WebDAV app.
- Renamed example VFS file to reflect WebDAV functionality.
- Removed redundant code and simplified app initialization.
- Used the vfs interface to interact with files and dirs.
- Add `move` operation to the VFS interface and implementations.
This allows for moving files and directories within the VFS.
- Add `is_dir`, `is_file`, and `is_symlink` methods to the
`FSEntry` interface and implementations. This allows for
robust file type checking before performing operations.
- Use a counter for consistent ID generation in OurDBFS: This
eliminates reliance on timestamps, preventing ID collisions and
improving data integrity.
- Refactor save methods to directly use the VFS's save_entry
function: This simplifies the code and reduces redundancy across
different file system entity types (Directory, File, Symlink).
- Update `save_entry` in OurDBFS to use IDs for database updates:
This ensures data is correctly updated in the database based on the
unique ID of each entry. This also fixes potential issues with
overwriting data.
- Add user authentication to the WebDAV server using a user
database.
- Implement encoding and decoding functionality for directories,
files, and symlinks in the OurDBFS VFS.
- Add comprehensive unit tests for the encoder and decoder
functions.
- Improve the OurDBFS factory method to handle directory creation
more robustly using pathlib.
- Add `delete` and `link_delete` methods to the `NestedVFS` and
`OurDBVFS` implementations (though currently unimplemented).
- Improve WebDAV file handling to correctly determine and set the
content type. The previous implementation was incomplete and
returned a dummy response.
- Update VFS test to actually test functionality.
- Remove unnecessary `root_dir` parameter from the WebDAV app.
- Fixed ID generation for files and directories in OurDBFS,
preventing collisions and improving data integrity. This
ensures that IDs are consistently and uniquely assigned.
- Updated save methods to correctly update the `metadata.id`
field across all FSEntry types (File, Directory, Symlink).
This change solves a previous issue where IDs weren't being
properly persisted.
- Added incremental mode to OurDB, improving performance for
large datasets. This allows for more efficient updates
instead of full overwrites.
- Replace custom VFS implementations with the core VFS module
- Simplify VFS setup and configuration in example code
- Improve code maintainability and consistency
- Handle updates correctly in OurDB `set` function, preventing errors
when incremental mode is enabled.
- Ensure directories are correctly created with metadata in OurDBFS.
- Add debug print statements to OurDBVFS for improved debugging.
- Simplify OurDBVFS `get_entry` function for better readability and
correctness. Fixes potential issues with returning references.
- Update tests to reflect changes and use a temporary directory
to avoid conflicts.
- Updated import paths to reflect the renaming of the
`crystallib` module to `herolib`. This change improves
consistency and clarity in the project structure.
- Remove unused `lock_manager` from the `App` struct.
- Comment out the lock and unlock handlers.
- Improve `propfind` response XML generation.
- Fix path handling in `generate_response_element`.
- Update content type handling for files.
- Improve XML generation for resource responses.
Co-authored-by: mahmmoud.hassanein <mahmmoud.hassanein@gmail.com>