0.2.0
ยท 5804 words
Appโ
๐ Securityโ
- Added an account creation key requirement in order to sign up to the server
- Changed authentication protocol to use a Proof-of-Possession (PoP) in addition to bearer token
- Bumped
vitefrom7.1.3to7.1.5to address CVE-2025-58751 and CVE-2025-58752 (#8) - Bumped
tar-fsversions to address CVE-2025-59343 (#12)
โจ Additionsโ
- Added multi-user support
- Added ability to rename files/folders
- Added a button to open the Excalibur folder to the file explorer ellipsis menu
- Added a better enrolment process
- Added a new welcome page
- Added autodetection of API server that is running on the same host
- The app will now check for an API server on port
52419and, if it finds one, use it as the API server URL
- The app will now check for an API server on port
- Added a popup that shows the vault key when a new user is registered via the app
- Does not show up if the user already exists on the server or is created on the server
- Added a small warning if the vault key has changed manually by the user
- Added more details to the slideover menu on the main file explorer page
โ๏ธ Changesโ
- Changed key generation process to include username
- Changed native file saving behaviour to better deal with errors
- Made all network fetches have a default timeout of 3 seconds
- Changed how directory items are deleted
- Instead of swiping to reveal delete option, it is now placed in the ellipsis menu
- Changed behaviour of server URL entry to check for port
52419if no port is specified - Changed options for the crypto chunk size (and also made the default value 512 KiB instead of 256 KiB)
- Updated app credits
๐ Performance Improvementsโ
- Use manual chunking in Vite build to split imported NodeJS modules into smaller chunks
๐ง Fixesโ
- Fixed an issue where the keyboard on android devices may cover up the password field when typing
- Fixed a small inconsistency of how directories with an
.exefsuffix are displayed- They will now correctly display the
.exefsuffix
- They will now correctly display the
- Fixed a misalignment of the heights of the toolbar and slideover menu on the main file explorer page
๐ฆ Dependenciesโ
- Updated
reactandreact-domfrom19.1.1to19.2.0 - Updated
vitefrom7.1.5to7.1.9, and upgraded@vitejs/plugin-reactfrom5.0.1to5.0.4 - Upgraded CapacitorJS dependencies:
@capacitor/appfrom7.0.2to7.1.0@capacitor/keyboardfrom7.0.2to7.0.3
- Upgraded Cypress from
14.5.4to15.3.0 - Upgraded
@ionic/reactand@ionic/react-routerfrom8.7.3to8.7.5 - Upgraded
eslintfrom9.33.0to9.37.0, and upgradedtypescript-eslintfrom8.40.0to8.45.0 - Upgraded
globalsfrom16.3.0to16.4.0 - Upgraded
tailwindcssand@tailwindcss/vitefrom4.1.12to4.1.14 - Upgraded
typescriptfrom5.9.2to5.9.3 - Upgraded android dependencies:
- AGP from
8.12.1to8.13.0 - AndroidX JUnit from
1.2.1to1.3.0 - AndroidX Espresso Core from
3.6.1to3.7.0
- AGP from
- Upgraded various types dependencies:
@types/reactfrom19.1.10to19.2.0@types/react-domfrom19.1.7to19.2.0
โ๏ธ Internalโ
- Added more tests
- Changed the WebSocket format in the authentication protocol to use a more standardized format
- Disabled privacy screen for android builds if using a prerelease version
- Split
CHANGELOG.mdfile contents into per-version changes - Updated internal scripts
Serverโ
๐ Securityโ
- Added an account creation key requirement in order to sign up to the server
- Added missing encryption in some routes
- Changed authentication protocol to use a Proof-of-Possession (PoP) in addition to bearer token
โจ Additionsโ
- Added multi-user support
- Added server-side configuration file to more easily set up and configure server
- Added the Excalibur Progressive Web App (PWA) to some server distributables
- Added an endpoint that renames a file or folder
- Added logging to files (i.e., server logs will now be written to files)
- Added a banner that appears upon running CLI commands
โ๏ธ Changesโ
- Changed the WebSocket format in the authentication protocol to use a more standardized format
- Changed behaviour for invalid path of directory name in the directory creation endpoint
- It now returns
406 Not Acceptableinstead of400 Bad Requestif the directory name is invalid
- It now returns
- Changed default host when starting the server to
localhost(was0.0.0.0) - Changed default port from
8888to52419 - Made the warnings for 'non-standard' flags (e.g., debug mode) nicer
๐ง Fixesโ
- Fixed a server-side issue where the encryption/decryption of chunked requests would fail on the app with a message saying "footer must be 16 bytes (got 32 bytes)"
- Fixed an issue where an equivalent endpoint was exposed at a path without the
/apiprefix - Fixed
well-knownendpoint names
๐ฆ Dependenciesโ
- Upgraded
cachetoolsfrom6.1.0to6.2.0 - Upgraded
fastapifrom0.116.1to0.118.0 - Upgraded
ipythonin dev dependencies from9.4.0to9.6.0 - Upgraded
pydanticfrom2.11.7to2.11.9, and upgradedpydantic-settingsfrom2.10.1to2.11.0 - Upgraded
ruffin dev dependencies from0.12.9to0.13.3 - Upgraded
sqlmodelfrom0.0.24to0.0.25 - Upgraded
typerfrom0.16.1to0.19.2 - Upgraded
uvicornfrom0.35.0to0.37.0
โ๏ธ Internalโ
- Added a new
excalibur buildcommand for generating builds - Added a lot more tests
- Added a debug endpoint for generating authentication tokens
- Sped up the
test_token_bucket.pytests by mocking the time instead of usingtime.sleep - Split
CHANGELOG.mdfile contents into per-version changes