Prepare release 1.0.24

This commit is contained in:
vorotamoroz
2026-09-03 04:17:05 +00:00
parent ba8f910865
commit 7b4f7bf514
10 changed files with 32 additions and 14 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
{
"id": "obsidian-livesync",
"name": "Self-hosted LiveSync",
"version": "1.0.23",
"version": "1.0.24",
"minAppVersion": "1.7.2",
"description": "Community implementation of self-hosted livesync. Reflect your vault changes to some other devices immediately. Please make sure to disable other synchronize solutions to avoid content corruption or duplication.",
"author": "vorotamoroz",
+5 -5
View File
@@ -1,12 +1,12 @@
{
"name": "obsidian-livesync",
"version": "1.0.23",
"version": "1.0.24",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "obsidian-livesync",
"version": "1.0.23",
"version": "1.0.24",
"license": "MIT",
"workspaces": [
"src/apps/cli",
@@ -12937,7 +12937,7 @@
},
"src/apps/cli": {
"name": "self-hosted-livesync-cli",
"version": "1.0.23-cli",
"version": "1.0.24-cli",
"dependencies": {
"chokidar": "^4.0.0",
"minimatch": "^10.2.5",
@@ -12962,7 +12962,7 @@
},
"src/apps/webapp": {
"name": "livesync-webapp",
"version": "1.0.23-webapp",
"version": "1.0.24-webapp",
"dependencies": {
"octagonal-wheels": "^0.1.53"
},
@@ -12974,7 +12974,7 @@
}
},
"src/apps/webpeer": {
"version": "1.0.23-webpeer",
"version": "1.0.24-webpeer",
"dependencies": {
"octagonal-wheels": "^0.1.53"
},
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "obsidian-livesync",
"version": "1.0.23",
"version": "1.0.24",
"description": "Reflect your vault changes to some other devices immediately. Please make sure to disable other synchronize solutions to avoid content corruption or duplication.",
"main": "main.js",
"type": "module",
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "self-hosted-livesync-cli",
"private": true,
"version": "1.0.23-cli",
"version": "1.0.24-cli",
"main": "dist/index.cjs",
"type": "module",
"scripts": {
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "livesync-webapp",
"private": true,
"version": "1.0.23-webapp",
"version": "1.0.24-webapp",
"type": "module",
"description": "Browser-based Self-hosted LiveSync using FileSystem API",
"scripts": {
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "webpeer",
"private": true,
"version": "1.0.23-webpeer",
"version": "1.0.24-webpeer",
"type": "module",
"scripts": {
"dev": "vite",
+2 -1
View File
@@ -1,4 +1,5 @@
import type { Locator, Page } from "playwright";
import { $msg } from "../../../src/common/translation.ts";
import { evalObsidianJson } from "./cli.ts";
import { captureObsidianDialogue, captureObsidianElement, withObsidianPage } from "./ui.ts";
@@ -166,7 +167,7 @@ export async function generateSetupURIFromDevice(
);
await withObsidianPage(port, async (page) => {
const result = modalByTitle(page, resultTitle);
await result.getByRole("button", { name: "OK", exact: true }).click({ timeout: uiTimeoutMs });
await result.getByRole("button", { name: $msg("Ok"), exact: true }).click({ timeout: uiTimeoutMs });
await result.waitFor({ state: "hidden", timeout: uiTimeoutMs });
});
+3 -2
View File
@@ -1,5 +1,6 @@
import { readFile } from "node:fs/promises";
import { join } from "node:path";
import { $msg } from "../../../src/common/translation.ts";
import { discoverObsidianCli, requireObsidianBinary } from "../runner/environment.ts";
import { createE2eCouchDbPluginData, waitForLiveSyncCoreReady } from "../runner/liveSyncWorkflow.ts";
import { assertMobileDialogueLayout, assertMobileNoticeLayout, setObsidianMobileTestMode } from "../runner/mobileUi.ts";
@@ -909,7 +910,7 @@ async function verifyLogAndReportSurfaces(): Promise<{ log: string; report: stri
if (!report.includes("# ---- Debug Info Dump ----")) {
throw new Error("The full-report dialogue did not contain the generated debug report.");
}
await modal.getByRole("button", { name: "OK", exact: true }).waitFor({
await modal.getByRole("button", { name: $msg("Ok"), exact: true }).waitFor({
state: "visible",
timeout: uiTimeoutMs,
});
@@ -920,7 +921,7 @@ async function verifyLogAndReportSurfaces(): Promise<{ log: string; report: stri
const modal = page.locator(".modal-container").filter({
hasText: "Your Debug info is ready to be copied",
});
await modal.getByRole("button", { name: "OK", exact: true }).click({ timeout: uiTimeoutMs });
await modal.getByRole("button", { name: $msg("Ok"), exact: true }).click({ timeout: uiTimeoutMs });
await modal.waitFor({ state: "hidden", timeout: uiTimeoutMs });
});
+15
View File
@@ -12,6 +12,21 @@ Earlier releases remain available in the 1.0 release history, the 1.0 preview hi
## Unreleased
## 1.0.24
3rd September, 2026
### Interface and translation
#### Fixed
- The Setup Wizard now correctly explains that the existing-device path adds this device to an existing synchronisation (PR #1118). Thank you to @nikhilmaddirala for the contribution!
- Spanish translations now resolve the **Display language** placeholder, cover previously untranslated Setup Wizard and CouchDB text, translate user-facing Config Doctor values and confirmation controls, and use Spanish sentence case (PR #1129). Thank you to @zeedif for the contribution!
#### Improved
- The Setup Wizard now shows the passphrase and **Obfuscate Properties** controls only after E2EE is enabled, provides a password-visibility button, allows longer translated labels to wrap, and keeps the invitation link compact on desktop while preserving its mobile touch target (PR #1130). Thank you to @zeedif for the contribution!
### Synchronisation and storage
#### Fixed
+2 -1
View File
@@ -35,5 +35,6 @@
"1.0.20": "1.7.2",
"1.0.21": "1.7.2",
"1.0.22": "1.7.2",
"1.0.23": "1.7.2"
"1.0.23": "1.7.2",
"1.0.24": "1.7.2"
}