7.7 KiB
0.25.9
20th August, 2025
Fixed
- CORS Checking messages now use replacements.
- Configuring CORS setting via the UI now respects the existing rules.
- Now startup-checking works correctly again, performs migration check serially and then it will also fix starting LiveSync or start-up sync. (#696)
- Statusline in editor now supported 'Bases'.
0.25.8
18th August, 2025
New feature
- Insecure chunk detection has been implemented.
- A notification dialogue will be shown if any insecure chunks are detected; these may have been created by v0.25.6 due to its issue. If this dialogue appears, please ensure you rebuild the database after backing it up.
Fixed
- Unexpected
Failed to obtain PBKDF2 saltor similar errors during bucket-synchronisation no longer occur. - Unexpected long delays for chunk-missing documents when using bucket-synchronisation have been resolved.
- Fetched remote chunks are now properly stored in the local database if
Fetch chunks on demandis enabled. - The 'fetch' dialogue's message has been refined.
- No longer overwriting any corrupted documents to the storage on boot-sequence.
Refactored
- Type errors have been corrected.
0.25.7
15th August, 2025
Since the release of 0.25.6, there are two large problem. Please update immediately.
- We may have corrupted some documents during the migration process. Please check your documents on the wizard.
- Due to a chunk ID assignment issue, some data has not been encrypted. Please rebuild the database using Rebuild Everything if you have enabled E2EE.
So, If you have enabled E2EE, please perform Rebuild everything. If not, please check your documents on the wizard.
In next version, insecure chunk detection will be implemented.
Fixed
- Off-loaded chunking have been fixed to ensure proper functionality (#693).
- Chunk document ID assignment has been fixed.
- Replication prevention message during version up detection has been improved (#686).
Keep AandKeep Bon Conflict resolving dialogue has been renamed toUse BaseandUse Conflicted(#691).
Improved
- Metadata and content-size unmatched documents are now detected and reported, prevented to be applied to the storage.
- This behaviour can be configured in
Patch->Edge case addressing (Behaviour)->Process files even if seems to be corrupted - Note: this toggle is for the direct-database-manipulation users.
- This behaviour can be configured in
New Features
Scan for Broken fileshas been implemented onHatch->TroubleShooting.
Refactored
- Off-loaded processes have been refactored for the better maintainability.
- Files prefixed
bg.workerare now work on the worker threads. - Files prefixed
bgWorker.are now also controls these worker threads. (I know what you want to say... I will rename them).
- Files prefixed
- Removed unused code.
0.25.5 0.25.6
(0.25.5 has been withdrawn due to a bug in the Fetch chunks on demand feature).
9th August, 2025
Fixed
- Storage scanning no longer occurs when
Suspend file watchingis enabled (including boot-sequence).- This change improves safety when troubleshooting or fetching the remote database.
Fetch chunks on demandis now working again (if you installed 0.25.5, other versions are not affected).
Improved
- Saving notes and files now consumes less memory.
- Data is no longer fully buffered in memory and written at once; instead, it is now written in each over-2MB increments.
- Chunk caching is now more efficient.
- Chunks are now managed solely by their count (still maintained as LRU). If memory usage becomes excessive, they will be automatically released by the system-runtime.
- Reverse-indexing is also no longer used. It is performed as scanning caches and act also as a WeakRef thinning.
- Both of them (may) are effective for #692, #680, and some more.
Changed
Incubate Chunks in Document(also known asEden) is now fully sunset.- Existing chunks can still be read, but new ones will no longer be created.
- The
Compute revisions for chunkssetting has also been removed.- This feature is now always enabled and is no longer configurable (restoring the original behaviour).
- As mentioned,
Memory cache size (by total characters)has been removed.- The
Memory cache size (by total items)setting is now the only option available (but it has 10x ratio compared to the previous version).
- The
Refactored
- A significant refactoring of the core codebase is underway.
- This is part of our ongoing efforts to improve code maintainability, readability, and to unify interfaces.
- Previously, complex files posed a risk due to a low bus factor. Fortunately, as our devices have become faster and more capable, we can now write code that is clearer and more maintainable (And not so much costs on performance).
- Hashing functions have been refactored into the
HashManagerclass and its derived classes. - Chunk splitting functions have been refactored into the
ContentSplitterCoreclass and its derived classes. - Change tracking functions have been refactored into the
ChangeManagerclass. - Chunk read/write functions have been refactored into the
ChunkManagerclass. - Fetching chunks on demand is now handled separately from the
ChunkManagerand chunk reading functions. Chunks are queued by theChunkManagerand then processed by theChunkFetcher, simplifying the process and reducing unnecessary complexity. - Then, local database access via
LiveSyncLocalDBhas been refactored to use the new classes.
- This is part of our ongoing efforts to improve code maintainability, readability, and to unify interfaces.
- References to external sources from
commonlibhave been corrected. - Type definitions in
types.tshave been refined. - Unit tests are being added incrementally.
- I am using
Denofor testing, to simplify testing and coverage reporting. - While this is not identical to the Obsidian environment,
jestmay also have limitations. It is certainly better than having no tests.- In other words, recent manual scenario testing has highlighted some shortcomings.
pouchdb-test, used for testing PouchDB with Deno, has been added, utilising thememoryadapter.
- I am using
Side note: Although class-oriented programming is sometimes considered an outdated style, However, I have come to re-evaluate it as valuable from the perspectives of maintainability and readability.
0.25.0
19th July, 2025 (beta1 in 0.25.0-beta1, 13th July, 2025)
After reading Issue #668, I conducted another self-review of the E2EE-related code. In retrospect, it was clearly written by someone inexperienced, which is understandable, but it is still rather embarrassing. Three years is certainly enough time for growth.
I have now rewritten the E2EE code to be more robust and easier to understand. It is significantly more readable and should be easier to maintain in the future. The performance issue, previously considered a concern, has been addressed by introducing a master key and deriving keys using HKDF. This approach is both fast and robust, and it provides protection against rainbow table attacks. (In addition, this implementation has been a dedicated package on the npm registry, and tested in 100% branch-coverage).
As a result, this is the first time in a while that forward compatibility has been broken. We have also taken the opportunity to change all metadata to use encryption rather than obfuscation. Furthermore, the Dynamic Iteration Count setting is now redundant and has been moved to the Patches pane in the settings. Thanks to Rabin-Karp, the eden setting is also no longer necessary and has been relocated accordingly. Therefore, v0.25.0 represents a legitimate and correct evolution.
Older notes are in updates_old.md.