mirror of
https://github.com/vrtmrz/obsidian-livesync.git
synced 2026-09-04 01:37:05 +00:00
Prepare release 1.0.24
This commit is contained in:
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"id": "obsidian-livesync",
|
"id": "obsidian-livesync",
|
||||||
"name": "Self-hosted LiveSync",
|
"name": "Self-hosted LiveSync",
|
||||||
"version": "1.0.23",
|
"version": "1.0.24",
|
||||||
"minAppVersion": "1.7.2",
|
"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.",
|
"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",
|
"author": "vorotamoroz",
|
||||||
|
|||||||
Generated
+5
-5
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "obsidian-livesync",
|
"name": "obsidian-livesync",
|
||||||
"version": "1.0.23",
|
"version": "1.0.24",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "obsidian-livesync",
|
"name": "obsidian-livesync",
|
||||||
"version": "1.0.23",
|
"version": "1.0.24",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"workspaces": [
|
"workspaces": [
|
||||||
"src/apps/cli",
|
"src/apps/cli",
|
||||||
@@ -12937,7 +12937,7 @@
|
|||||||
},
|
},
|
||||||
"src/apps/cli": {
|
"src/apps/cli": {
|
||||||
"name": "self-hosted-livesync-cli",
|
"name": "self-hosted-livesync-cli",
|
||||||
"version": "1.0.23-cli",
|
"version": "1.0.24-cli",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"chokidar": "^4.0.0",
|
"chokidar": "^4.0.0",
|
||||||
"minimatch": "^10.2.5",
|
"minimatch": "^10.2.5",
|
||||||
@@ -12962,7 +12962,7 @@
|
|||||||
},
|
},
|
||||||
"src/apps/webapp": {
|
"src/apps/webapp": {
|
||||||
"name": "livesync-webapp",
|
"name": "livesync-webapp",
|
||||||
"version": "1.0.23-webapp",
|
"version": "1.0.24-webapp",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"octagonal-wheels": "^0.1.53"
|
"octagonal-wheels": "^0.1.53"
|
||||||
},
|
},
|
||||||
@@ -12974,7 +12974,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"src/apps/webpeer": {
|
"src/apps/webpeer": {
|
||||||
"version": "1.0.23-webpeer",
|
"version": "1.0.24-webpeer",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"octagonal-wheels": "^0.1.53"
|
"octagonal-wheels": "^0.1.53"
|
||||||
},
|
},
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "obsidian-livesync",
|
"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.",
|
"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",
|
"main": "main.js",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "self-hosted-livesync-cli",
|
"name": "self-hosted-livesync-cli",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "1.0.23-cli",
|
"version": "1.0.24-cli",
|
||||||
"main": "dist/index.cjs",
|
"main": "dist/index.cjs",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "livesync-webapp",
|
"name": "livesync-webapp",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "1.0.23-webapp",
|
"version": "1.0.24-webapp",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"description": "Browser-based Self-hosted LiveSync using FileSystem API",
|
"description": "Browser-based Self-hosted LiveSync using FileSystem API",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "webpeer",
|
"name": "webpeer",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "1.0.23-webpeer",
|
"version": "1.0.24-webpeer",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import type { Locator, Page } from "playwright";
|
import type { Locator, Page } from "playwright";
|
||||||
|
import { $msg } from "../../../src/common/translation.ts";
|
||||||
import { evalObsidianJson } from "./cli.ts";
|
import { evalObsidianJson } from "./cli.ts";
|
||||||
import { captureObsidianDialogue, captureObsidianElement, withObsidianPage } from "./ui.ts";
|
import { captureObsidianDialogue, captureObsidianElement, withObsidianPage } from "./ui.ts";
|
||||||
|
|
||||||
@@ -166,7 +167,7 @@ export async function generateSetupURIFromDevice(
|
|||||||
);
|
);
|
||||||
await withObsidianPage(port, async (page) => {
|
await withObsidianPage(port, async (page) => {
|
||||||
const result = modalByTitle(page, resultTitle);
|
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 });
|
await result.waitFor({ state: "hidden", timeout: uiTimeoutMs });
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import { readFile } from "node:fs/promises";
|
import { readFile } from "node:fs/promises";
|
||||||
import { join } from "node:path";
|
import { join } from "node:path";
|
||||||
|
import { $msg } from "../../../src/common/translation.ts";
|
||||||
import { discoverObsidianCli, requireObsidianBinary } from "../runner/environment.ts";
|
import { discoverObsidianCli, requireObsidianBinary } from "../runner/environment.ts";
|
||||||
import { createE2eCouchDbPluginData, waitForLiveSyncCoreReady } from "../runner/liveSyncWorkflow.ts";
|
import { createE2eCouchDbPluginData, waitForLiveSyncCoreReady } from "../runner/liveSyncWorkflow.ts";
|
||||||
import { assertMobileDialogueLayout, assertMobileNoticeLayout, setObsidianMobileTestMode } from "../runner/mobileUi.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 ----")) {
|
if (!report.includes("# ---- Debug Info Dump ----")) {
|
||||||
throw new Error("The full-report dialogue did not contain the generated debug report.");
|
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",
|
state: "visible",
|
||||||
timeout: uiTimeoutMs,
|
timeout: uiTimeoutMs,
|
||||||
});
|
});
|
||||||
@@ -920,7 +921,7 @@ async function verifyLogAndReportSurfaces(): Promise<{ log: string; report: stri
|
|||||||
const modal = page.locator(".modal-container").filter({
|
const modal = page.locator(".modal-container").filter({
|
||||||
hasText: "Your Debug info is ready to be copied",
|
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 });
|
await modal.waitFor({ state: "hidden", timeout: uiTimeoutMs });
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
+15
@@ -12,6 +12,21 @@ Earlier releases remain available in the 1.0 release history, the 1.0 preview hi
|
|||||||
|
|
||||||
## Unreleased
|
## 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
|
### Synchronisation and storage
|
||||||
|
|
||||||
#### Fixed
|
#### Fixed
|
||||||
|
|||||||
+2
-1
@@ -35,5 +35,6 @@
|
|||||||
"1.0.20": "1.7.2",
|
"1.0.20": "1.7.2",
|
||||||
"1.0.21": "1.7.2",
|
"1.0.21": "1.7.2",
|
||||||
"1.0.22": "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"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user