Finalise 1.0.33 release notes and documentation

This commit is contained in:
vorotamoroz
2026-10-01 04:36:38 +00:00
parent 35dd9d9eab
commit d4d93782a4
7 changed files with 76 additions and 38 deletions
+1
View File
@@ -32,6 +32,7 @@ Always adhere to the following stylistic and spelling rules:
4. **Specific Terminology and Spelling**:
- Use **'dialogue'** in documentation, user-facing messages, and general text. Use **'dialog'** only inside source code (e.g. class names, methods).
- Use the hyphenated form **'plug-in'** in user-facing text. Use **'plugin'** only in codebase files, configuration settings, or technical contexts.
- Use **'Self-hosted LiveSync'** or, where the context is clear, **'this plug-in'** when referring to this product. Preserve exact interface labels, code identifiers, commands, package names, and quotations. In explanatory prose, write **'LiveSync mode'** for the Sync Mode.
5. **User Communication Language**:
- Always reply to the user in the language in which they asked the question.
+12 -5
View File
@@ -101,10 +101,10 @@ recovery guidance, or diagnostics intended for users.
- **JWT Authentication:** An experimental CouchDB authentication option which
uses a JSON Web Token instead of standard credentials. It requires a private
key or secret, algorithm, expiry duration, subject, and key ID.
- **LiveSync:** This name has two established meanings: the shortened plug-in
name for Self-hosted LiveSync, and the Sync Mode for continuous, real-time
synchronisation. Prefer 'Continuous replication' in design documentation
when the mode, rather than the product, is meant.
- **LiveSync:** The exact Sync Mode label for continuous, real-time
synchronisation. Write 'LiveSync mode' in user-facing explanations and
'Continuous replication' in design documentation. Product references use
'Self-hosted LiveSync' or 'this plug-in'.
- **livesync-serverpeer / WebPeer:** Specialised clients which assist WebRTC
peer-to-peer communication.
- **Metadata (file metadata):** A database document which stores file
@@ -168,13 +168,20 @@ device-local provenance.
semantic boundaries, such as paragraphs or sections, rather than arbitrary
byte boundaries.
- **Self-hosted LiveSync:** The name of this plug-in. 'Self-hosted' is one
hyphenated word.
hyphenated word. Use this full name for product references, or 'this plug-in'
when the context is clear.
- **Setting Doctor (Config Doctor):** A diagnostic utility which identifies
configuration mismatches or suboptimal settings and presents recommended
values and reasons.
- **Setup URI:** An encrypted representation of plug-in settings and remote
configuration which can be transferred to another device and opened with a
passphrase.
- **Time-bound:** A sharing choice which permits opening the URI until the
displayed end of the current fixed seven-day UTC window. Imported settings
and credentials remain usable afterwards.
- **Compatible (no time limit):** A sharing choice which retains the existing
encrypted URI format without a time condition. The receiving device must
still support the shared settings.
- **Signalling relay (P2P):** A Nostr-compatible WebSocket relay used for peer
discovery and WebRTC connection negotiation. It does not store or transfer
Vault content. The project author operates a public relay as a best-effort
+27
View File
@@ -2,6 +2,33 @@
This document contains earlier published releases from the 1.0 line of the [current Self-hosted LiveSync release history](../../updates.md). Beta and release-candidate builds published before 1.0.0 are recorded in the [1.0 preview history](1.0-previews.md). Earlier release lines continue in the [0.25 history](0.25.md) and the [legacy history](legacy.md).
## 1.0.28
9th September, 2026
I came across an article online that put its finger on something fundamental. Writing up the details in what seemed the most fitting format helped me organise my thoughts considerably.
The resulting manuscript and citation information are now available in the project's GitHub repository for researchers and practitioners who would like to cite Self-hosted LiveSync.
### Setup and compatibility
#### Fixed
- A missing legacy file-name case setting no longer makes the configuration mismatch dialogue require a database rebuild when this device already uses case-insensitive handling. Case-sensitive handling now correctly requires a compatibility decision when the remote omits that setting.
- Configuration review now compares the selected remote profile's trial settings, and discards a pending decision if its settings or active connection change before it can be applied.
## 1.0.27
7th September, 2026
For now, I am addressing the issues I can resolve first. I hope this helps.
### Synchronisation and storage
#### Fixed
- First-time Object Storage setup now completes when **Use Custom HTTP Handler** is enabled for an empty remote, including a new Cloudflare R2 bucket. LiveSync can now create the remote state required to begin synchronisation. (#1166)
## 1.0.26
~~1.0.25~~ was cancelled because pre-release validation found that LiveSync could appear to finish synchronising even though Android had not written a received file to the Vault; the warning appeared only after restart.
+19 -2
View File
@@ -87,10 +87,18 @@ Most preferred method to setup Self-hosted LiveSync. You can setup Self-hosted L
#### Connect with Setup URI
Setup the Self-hosted LiveSync with the `setup URI` which is [copied from another device](#copy-current-settings-as-a-new-setup-uri) or the setup script.
Set up Self-hosted LiveSync with a Setup URI [copied from a working device](#copy-the-current-settings-to-a-setup-uri) or generated by the setup script.
A current Setup URI retains its remote profiles, display names, and separate main and P2P selections. Older Setup URIs containing only flat connection settings remain supported and are migrated to a remote profile when applied.
Choose the action for the device being configured:
| Choice | Effect |
| --- | --- |
| **⚠️ Initialise or overwrite the remote** | Initialise the remote from this Vault. Existing data on the remote is overwritten. |
| **🔗 Join this device** | Join an existing remote and Fetch its synchronisation data onto this device. Use this for an additional device. |
| **⚙️ Apply settings only (advanced)** | Apply the settings without rebuilding or fetching. Use this only when this device already has compatible synchronisation data. |
#### Manual setup
Step-by-step setup for Self-hosted LiveSync. You can setup Self-hosted LiveSync manually with Minimal setting items.
@@ -105,7 +113,16 @@ This button only appears when the setup was not completed. If you have completed
#### Copy the current settings to a Setup URI
You can copy the current settings as a new setup URI. And this URI can be used to setup the other devices as [Use the copied setup URI](#use-the-copied-setup-uri).
Copy the current settings from a working device, then [open the Setup URI on the additional device](#connect-with-setup-uri). Keep the URI and its separate passphrase private.
After entering the passphrase, choose **Time-bound** or **Compatible (no time limit)** in **Setup URI availability**:
- **Time-bound** is the default. The dialogue shows the exact end time in this device's local time zone. It is the end of the current fixed seven-day UTC window, so the remaining time may be less than seven days. Receiving devices need a version which supports Time-bound Setup URIs.
- **Compatible (no time limit)** uses the existing encrypted URI format without a time condition. Older receiving devices must still support the settings carried by the URI.
The time condition is checked when opening the URI. Settings and credentials already imported remain usable afterwards. It does not revoke remote access or prevent reuse after rolling the device clock back. Generate a fresh URI from a working device if the displayed time has passed.
QR code sharing uses its existing format and has no time condition. Keep the QR code private because it carries the shared settings and credentials.
### 3. Extra menus
+3
View File
@@ -29,6 +29,9 @@ All guidelines and conventions listed below are disclosed and maintained solely
6. Single quotation marks (`'`) are preferred over double quotation marks (`"`) in general documentation text, unless the context requires double quotes (for example, inside JSON code blocks).
7. **Product name**: References to this product use 'Self-hosted LiveSync' or, where the context is clear, 'this plug-in'. Use this convention in documentation, user-facing messages, release notes, comments, commit messages, and PR or issue text.
- Preserve exact interface labels, existing code identifiers, commands, package names, and quotations. 'LiveSync' is the exact label of the Sync Mode for continuous synchronisation; write 'LiveSync mode' when explaining that mode.
### Terminology
Project-specific meanings are defined separately in the
+4
View File
@@ -121,6 +121,10 @@ When a notice identifies an unknown feature, update this device and every other
Generate an encrypted Setup URI from a working device. This preserves the intended remote profiles and selections while allowing the additional device to keep its own device-specific name. Store the URI and its passphrase separately.
Choose **Time-bound** for sharing until the displayed end time, or **Compatible (no time limit)** when the URI must remain reusable or the receiving client only supports the existing format. If a Time-bound URI can no longer be opened, check the device clock and generate a fresh URI on a working device. See the [Setup URI sharing choices](settings.md#copy-the-current-settings-to-a-setup-uri).
Adding a device or opening a copied Vault does not require a compatibility pause solely because its device-local version record is absent. If an earlier release already saved a compatibility pause, review the settings and resume synchronisation explicitly. Actual version or settings incompatibilities still require review.
For deliberate setting changes during normal use, use `Sync Settings via Markdown` under `Sync settings`.
### Choose a Setup URI passphrase
+10 -31
View File
@@ -8,7 +8,7 @@ None of this would have been possible without your issue reports, pull requests,
This will call for your help once again. I would be very grateful for your co-operation as we build a sounder foundation for the project and its future development.
Earlier releases remain available in the 1.0 release history, the 1.0 preview history, the 0.25 release history, and the legacy release history.
Earlier releases remain available in the [1.0 release history](docs/releases/1.0.md), the [1.0 preview history](docs/releases/1.0-previews.md), the [0.25 release history](docs/releases/0.25.md), and the [legacy release history](docs/releases/legacy.md).
## Unreleased
@@ -16,6 +16,8 @@ Earlier releases remain available in the 1.0 release history, the 1.0 preview hi
1st October, 2026
This has turned into quite a substantial release, and I think it brings meaningful improvements to the core of Self-hosted LiveSync. If you notice anything, please feel free to let me know.
### Privacy and compatibility
#### New Feature
@@ -36,16 +38,16 @@ Earlier releases remain available in the 1.0 release history, the 1.0 preview hi
#### Fixed
- We can now keep using an E2EE passphrase beginning with `%` after restarting Obsidian. (#1221)
- LiveSync encrypts it before saving the settings. If an earlier version saved it in plain text, re-enter the passphrase used to encrypt the existing data after updating. Treat that passphrase as exposed if the affected `data.json` was shared.
- This plug-in encrypts it before saving the settings. If an earlier version saved it in plain text, re-enter the passphrase used to encrypt the existing data after updating. Treat that passphrase as exposed if the affected `data.json` was shared.
- A receiving device now retries an unavailable CouchDB Chunk when file Metadata arrives before that Chunk is visible, helping rapid edits reach the Vault after an initial on-demand lookup misses it. (#1224)
- Retries start after two seconds and continue with increasing delays while finite replication is active. When it ends, LiveSync checks locally and makes a final lookup if needed, without waiting out the remaining retry delay.
- Retries start after two seconds and continue with increasing delays while finite replication is active. When it ends, this plug-in checks locally and makes a final lookup if needed, without waiting out the remaining retry delay.
- We can now distinguish initial on-demand Chunk requests (`🛄`) from retries (`🔁`) in the status bar. These replace `🧩`; each pending Chunk appears in one category, including while a retry is waiting.
### Synchronisation and storage
#### Fixed
- Received changes held during start-up or a fetch are applied when LiveSync becomes ready, without waiting for another change or a settings save. **Suspend database reflecting** continues to hold changes (#1200).
- Received changes held during start-up or a fetch are applied when this plug-in becomes ready, without waiting for another change or a settings save. **Suspend database reflecting** continues to hold changes (#1200).
- Customisation Sync now compares full millisecond timestamps, so the freshness labels and **Select All Shiny** no longer mistake an older copy for a newer one because of timestamp truncation. (#1194)
- **Hide not applicable items** now hides identical Customisation Sync items and refreshes the list when toggled. Items with applicable differences stay visible. (#1193)
@@ -83,6 +85,10 @@ Thank you for your contributions!
- [@bolikcraft](https://github.com/bolikcraft) ([#1187](https://github.com/vrtmrz/obsidian-livesync/pull/1187))
- [@speedy-axolotl](https://github.com/speedy-axolotl) ([#1212](https://github.com/vrtmrz/obsidian-livesync/pull/1212))
### Issue replies
I am a little behind on replying to issues, but I am reading them and will respond as I work through them. I have had little uninterrupted time recently, and that should improve soon.
## 1.0.32
27th September, 2026
@@ -152,30 +158,3 @@ Unusually for this project, I have added a feature that relies on a particular i
### Miscellaneous
In general, I would prefer to avoid features that depend on a particular service. Still, I think there is room for them when they are entirely optional, clearly explained, and maintainable. Even then, I would want open alternatives to remain available. I will write more about this principle separately.
## 1.0.28
9th September, 2026
I came across an article online that put its finger on something fundamental. Writing up the details in what seemed the most fitting format helped me organise my thoughts considerably.
The resulting manuscript and citation information are now available in the project's GitHub repository for researchers and practitioners who would like to cite Self-hosted LiveSync.
### Setup and compatibility
#### Fixed
- A missing legacy file-name case setting no longer makes the configuration mismatch dialogue require a database rebuild when this device already uses case-insensitive handling. Case-sensitive handling now correctly requires a compatibility decision when the remote omits that setting.
- Configuration review now compares the selected remote profile's trial settings, and discards a pending decision if its settings or active connection change before it can be applied.
## 1.0.27
7th September, 2026
For now, I am addressing the issues I can resolve first. I hope this helps.
### Synchronisation and storage
#### Fixed
- First-time Object Storage setup now completes when **Use Custom HTTP Handler** is enabled for an empty remote, including a new Cloudflare R2 bucket. LiveSync can now create the remote state required to begin synchronisation. (#1166)