Changelog
View SourceAll notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
Changed
- Hardened the public API contract to return deterministic shapes only:
:ok{:ok, value}{:error, %Jido.VFS.Errors.*{}}
- Standardized unsupported operation errors to
%Jido.VFS.Errors.UnsupportedOperation{operation, adapter}. - Added
Jido.VFS.supports?/2for explicit adapter capability checks. - Standardized
Jido.VFS.revisions/3output to%Jido.VFS.Revision{}across versioned adapters. - Removed legacy
:hakoruntime config reads; adapters now use:jido_vfsonly. - Hardened cross-filesystem copy fallback to use capability checks and tempfile spooling for bounded memory.
Fixed
- Normalized adapter error mapping to avoid raw string/atom leaks from public API paths.
- Fixed
InvalidPathconstruction in Local adapter to use theinvalid_path:field. - Hardened ETS version storage to avoid dynamic atom creation.
- Improved S3 edge behavior:
- paginated list/delete for large object sets
- multipart upload abort on halted/error flows
- prefix-scoped clear semantics
- path-scoped visibility resolution
- Hardened GitHub API error mapping for malformed content and API failures.
Migration Notes
{:error, :unsupported}has been replaced by%Jido.VFS.Errors.UnsupportedOperation{}.- Callers that inferred adapter capabilities from error payloads should use
Jido.VFS.supports?/2. revisions/3consumers should expect%Jido.VFS.Revision{}values (withshapopulated for all versioned adapters).- Runtime configuration for Git/GitHub must use
:jido_vfsapp env keys.
[1.0.0] - 2024-12-24
Added
- Git adapter with full versioning support (commit, revisions, rollback, read_revision)
- GitHub adapter for remote repository access via GitHub API
- ETS adapter with versioning support
- InMemory adapter with versioning support
- Polymorphic versioning interface in main Jido.VFS module
- Comprehensive integration test suites for all adapters
- GitHub Actions CI/CD workflows
Changed
- Updated Elixir version requirement to ~> 1.11
- Updated mix.exs to follow Jido ecosystem package standards
- Replaced Briefly test dependency with ExUnit's :tmp_dir
Fixed
- Path traversal security checks
[0.5.2] - 2021-09-16
Added
- Added WIP visibility handling with callbacks and converters
- Runtime configuration for filesystems via the app env
[0.5.1] - 2021-09-12
Changed
Jido.VFS.RelativePath.join_prefixdoes make sure trailing slashes are retained
[0.5.0] - 2020-08-16
Added
- New
Jido.VFS.Filesystemcallbackcopy/4to implement copy between filesystems - New
Jido.VFS.Filesystemcallbackfile_exists/2 - New
Jido.VFS.Filesystemcallbacklist_contents/2 - New
Jido.VFS.Filesystemcallbackcreate_directory/2 - New
Jido.VFS.Filesystemcallbackdelete_directory/2 - New
Jido.VFS.Filesystemcallbackclear/1
[0.4.0] - 2020-07-31
Added
- New
Jido.VFS.Filesystemcallbackcopy/4to implement copy between filesystems
[0.3.0] - 2020-07-29
Added
- New
Jido.VFS.Filesystemcallbackread_stream/2 - Added
:otp_appkey touse Jido.VFS.Filesystemmacro to be able to store settings in config files