mirror of
https://github.com/vrtmrz/obsidian-livesync.git
synced 2026-11-06 16:28:18 +00:00
Add explicit stopped-Journal recovery to Obsidian and CLI
Offer a confirmation in Maintenance and the journal-skip command to skip only the current stopped Journal and resume receipt. Keep Commonlib notices visible on stderr during ordinary CLI use. Document the missing-content risk and replay procedure, and cover cancellation, stale failures, subsequent failures, and receipt with unit and plain and encrypted CLI and Obsidian end-to-end tests. Requires the Commonlib stopped-Journal recovery API. Adopt its exact published package version before integrating this consumer change.
This commit is contained in:
1 parent
bf2241e5ee
commit
a94c3fef90
18 files changed
+1321
-234
No files matched your search
+143
-207
@@ -1,209 +1,145 @@
|
||||
{
|
||||
"test:helpers": {
|
||||
"test": [
|
||||
"helpers/process.test.ts",
|
||||
"test-ci-task-contract.ts"
|
||||
]
|
||||
},
|
||||
"test": {
|
||||
"tasks": [
|
||||
"test:ci"
|
||||
]
|
||||
},
|
||||
"test:ci": {
|
||||
"script": "run-ci-suite.ts"
|
||||
},
|
||||
"test:p2p:compose": {
|
||||
"script": "run-compose-p2p.ts"
|
||||
},
|
||||
"test:local": {
|
||||
"tasks": [
|
||||
"test:setup-put-cat",
|
||||
"test:mirror",
|
||||
"test:daemon"
|
||||
]
|
||||
},
|
||||
"test:daemon": {
|
||||
"test": [
|
||||
"test-daemon.ts"
|
||||
]
|
||||
},
|
||||
"test:daemon-startup": {
|
||||
"test": [
|
||||
"test-daemon-startup.ts"
|
||||
]
|
||||
},
|
||||
"test:decoupled-vault": {
|
||||
"test": [
|
||||
"test-decoupled-vault.ts"
|
||||
]
|
||||
},
|
||||
"test:remote-commands": {
|
||||
"test": [
|
||||
"test-remote-commands.ts"
|
||||
]
|
||||
},
|
||||
"test:settings-writeback": {
|
||||
"test": [
|
||||
"test-settings-writeback.ts"
|
||||
]
|
||||
},
|
||||
"test:fetch-database-continuity": {
|
||||
"test": [
|
||||
"test-fetch-database-continuity.ts"
|
||||
]
|
||||
},
|
||||
"test:remote-administration-exit-codes": {
|
||||
"test": [
|
||||
"test-remote-administration-exit-codes.ts"
|
||||
]
|
||||
},
|
||||
"test:push-pull": {
|
||||
"test": [
|
||||
"test-push-pull.ts"
|
||||
]
|
||||
},
|
||||
"test:setup-put-cat": {
|
||||
"test": [
|
||||
"test-setup-put-cat.ts"
|
||||
]
|
||||
},
|
||||
"test:mirror": {
|
||||
"test": [
|
||||
"test-mirror.ts"
|
||||
]
|
||||
},
|
||||
"test:sync-two-local": {
|
||||
"test": [
|
||||
"test-sync-two-local-databases.ts"
|
||||
]
|
||||
},
|
||||
"test:sync-locked-remote": {
|
||||
"test": [
|
||||
"test-sync-locked-remote.ts"
|
||||
]
|
||||
},
|
||||
"test:p2p-host": {
|
||||
"test": [
|
||||
"test-p2p-host.ts"
|
||||
]
|
||||
},
|
||||
"test:p2p-peers": {
|
||||
"test": [
|
||||
"test-p2p-peers-local-relay.ts"
|
||||
]
|
||||
},
|
||||
"test:p2p-sync": {
|
||||
"test": [
|
||||
"test-p2p-sync.ts"
|
||||
]
|
||||
},
|
||||
"test:p2p-automatic-host": {
|
||||
"test": [
|
||||
"test-p2p-automatic-host.ts"
|
||||
]
|
||||
},
|
||||
"test:p2p-replacement": {
|
||||
"test": [
|
||||
"test-p2p-replicator-replacement.ts"
|
||||
]
|
||||
},
|
||||
"test:p2p-relay-disconnect": {
|
||||
"test": [
|
||||
"test-p2p-relay-disconnect.ts"
|
||||
]
|
||||
},
|
||||
"test:p2p:ci": {
|
||||
"test": [
|
||||
"test-p2p-sync.ts",
|
||||
"test-p2p-automatic-host.ts",
|
||||
"test-p2p-replicator-replacement.ts",
|
||||
"test-p2p-relay-disconnect.ts"
|
||||
]
|
||||
},
|
||||
"test:p2p-three-nodes": {
|
||||
"test": [
|
||||
"test-p2p-three-nodes-conflict.ts"
|
||||
]
|
||||
},
|
||||
"test:p2p-upload-download": {
|
||||
"test": [
|
||||
"test-p2p-upload-download-repro.ts"
|
||||
]
|
||||
},
|
||||
"test:benchmark-contract": {
|
||||
"test": [
|
||||
"test-benchmark-contract.ts"
|
||||
]
|
||||
},
|
||||
"bench:p2p": {
|
||||
"script": "bench-p2p.ts"
|
||||
},
|
||||
"bench:couchdb": {
|
||||
"script": "bench-couchdb.ts"
|
||||
},
|
||||
"bench:compression": {
|
||||
"script": "bench-compression.ts"
|
||||
},
|
||||
"bench:cases": {
|
||||
"script": "bench-network-cases.ts"
|
||||
},
|
||||
"bench:latency-sweep": {
|
||||
"script": "bench-latency-sweep.ts"
|
||||
},
|
||||
"bench:p2p-split-node": {
|
||||
"script": "bench-p2p-split-node.ts"
|
||||
},
|
||||
"bench:item1": {
|
||||
"command": "bash",
|
||||
"args": [
|
||||
"./bench-run-item1.sh"
|
||||
]
|
||||
},
|
||||
"bench:item1:full": {
|
||||
"command": "bash",
|
||||
"args": [
|
||||
"-lc",
|
||||
"BENCH_MD_FILE_COUNT=1500 BENCH_MD_MIN_SIZE_BYTES=1024 BENCH_MD_MAX_SIZE_BYTES=20480 BENCH_BIN_FILE_COUNT=500 BENCH_BIN_SIZE_BYTES=102400 BENCH_COUCHDB_RTT_MS=50 bash ./bench-run-item1.sh"
|
||||
]
|
||||
},
|
||||
"test:e2e-couchdb": {
|
||||
"test": [
|
||||
"test-e2e-two-vaults-couchdb.ts"
|
||||
]
|
||||
},
|
||||
"test:journal-chunk-recovery": {
|
||||
"test": [
|
||||
"test-journal-chunk-recovery.ts"
|
||||
]
|
||||
},
|
||||
"test:e2e-matrix": {
|
||||
"test": [
|
||||
"test-e2e-two-vaults-matrix.ts"
|
||||
]
|
||||
},
|
||||
"test:e2e-matrix:couchdb-enc0": {
|
||||
"test": [
|
||||
"test-e2e-two-vaults-matrix.ts"
|
||||
],
|
||||
"filter": "e2e matrix: COUCHDB-enc0"
|
||||
},
|
||||
"test:e2e-matrix:couchdb-enc1": {
|
||||
"test": [
|
||||
"test-e2e-two-vaults-matrix.ts"
|
||||
],
|
||||
"filter": "e2e matrix: COUCHDB-enc1"
|
||||
},
|
||||
"test:e2e-matrix:minio-enc0": {
|
||||
"test": [
|
||||
"test-e2e-two-vaults-matrix.ts"
|
||||
],
|
||||
"filter": "e2e matrix: MINIO-enc0"
|
||||
},
|
||||
"test:e2e-matrix:minio-enc1": {
|
||||
"test": [
|
||||
"test-e2e-two-vaults-matrix.ts"
|
||||
],
|
||||
"filter": "e2e matrix: MINIO-enc1"
|
||||
}
|
||||
"test:helpers": {
|
||||
"test": ["helpers/process.test.ts", "test-ci-task-contract.ts"]
|
||||
},
|
||||
"test": {
|
||||
"tasks": ["test:ci"]
|
||||
},
|
||||
"test:ci": {
|
||||
"script": "run-ci-suite.ts"
|
||||
},
|
||||
"test:p2p:compose": {
|
||||
"script": "run-compose-p2p.ts"
|
||||
},
|
||||
"test:local": {
|
||||
"tasks": ["test:setup-put-cat", "test:mirror", "test:daemon"]
|
||||
},
|
||||
"test:daemon": {
|
||||
"test": ["test-daemon.ts"]
|
||||
},
|
||||
"test:daemon-startup": {
|
||||
"test": ["test-daemon-startup.ts"]
|
||||
},
|
||||
"test:decoupled-vault": {
|
||||
"test": ["test-decoupled-vault.ts"]
|
||||
},
|
||||
"test:remote-commands": {
|
||||
"test": ["test-remote-commands.ts"]
|
||||
},
|
||||
"test:settings-writeback": {
|
||||
"test": ["test-settings-writeback.ts"]
|
||||
},
|
||||
"test:fetch-database-continuity": {
|
||||
"test": ["test-fetch-database-continuity.ts"]
|
||||
},
|
||||
"test:remote-administration-exit-codes": {
|
||||
"test": ["test-remote-administration-exit-codes.ts"]
|
||||
},
|
||||
"test:push-pull": {
|
||||
"test": ["test-push-pull.ts"]
|
||||
},
|
||||
"test:setup-put-cat": {
|
||||
"test": ["test-setup-put-cat.ts"]
|
||||
},
|
||||
"test:mirror": {
|
||||
"test": ["test-mirror.ts"]
|
||||
},
|
||||
"test:sync-two-local": {
|
||||
"test": ["test-sync-two-local-databases.ts"]
|
||||
},
|
||||
"test:sync-locked-remote": {
|
||||
"test": ["test-sync-locked-remote.ts"]
|
||||
},
|
||||
"test:p2p-host": {
|
||||
"test": ["test-p2p-host.ts"]
|
||||
},
|
||||
"test:p2p-peers": {
|
||||
"test": ["test-p2p-peers-local-relay.ts"]
|
||||
},
|
||||
"test:p2p-sync": {
|
||||
"test": ["test-p2p-sync.ts"]
|
||||
},
|
||||
"test:p2p-automatic-host": {
|
||||
"test": ["test-p2p-automatic-host.ts"]
|
||||
},
|
||||
"test:p2p-replacement": {
|
||||
"test": ["test-p2p-replicator-replacement.ts"]
|
||||
},
|
||||
"test:p2p-relay-disconnect": {
|
||||
"test": ["test-p2p-relay-disconnect.ts"]
|
||||
},
|
||||
"test:p2p:ci": {
|
||||
"test": [
|
||||
"test-p2p-sync.ts",
|
||||
"test-p2p-automatic-host.ts",
|
||||
"test-p2p-replicator-replacement.ts",
|
||||
"test-p2p-relay-disconnect.ts"
|
||||
]
|
||||
},
|
||||
"test:p2p-three-nodes": {
|
||||
"test": ["test-p2p-three-nodes-conflict.ts"]
|
||||
},
|
||||
"test:p2p-upload-download": {
|
||||
"test": ["test-p2p-upload-download-repro.ts"]
|
||||
},
|
||||
"test:benchmark-contract": {
|
||||
"test": ["test-benchmark-contract.ts"]
|
||||
},
|
||||
"bench:p2p": {
|
||||
"script": "bench-p2p.ts"
|
||||
},
|
||||
"bench:couchdb": {
|
||||
"script": "bench-couchdb.ts"
|
||||
},
|
||||
"bench:compression": {
|
||||
"script": "bench-compression.ts"
|
||||
},
|
||||
"bench:cases": {
|
||||
"script": "bench-network-cases.ts"
|
||||
},
|
||||
"bench:latency-sweep": {
|
||||
"script": "bench-latency-sweep.ts"
|
||||
},
|
||||
"bench:p2p-split-node": {
|
||||
"script": "bench-p2p-split-node.ts"
|
||||
},
|
||||
"bench:item1": {
|
||||
"command": "bash",
|
||||
"args": ["./bench-run-item1.sh"]
|
||||
},
|
||||
"bench:item1:full": {
|
||||
"command": "bash",
|
||||
"args": [
|
||||
"-lc",
|
||||
"BENCH_MD_FILE_COUNT=1500 BENCH_MD_MIN_SIZE_BYTES=1024 BENCH_MD_MAX_SIZE_BYTES=20480 BENCH_BIN_FILE_COUNT=500 BENCH_BIN_SIZE_BYTES=102400 BENCH_COUCHDB_RTT_MS=50 bash ./bench-run-item1.sh"
|
||||
]
|
||||
},
|
||||
"test:e2e-couchdb": {
|
||||
"test": ["test-e2e-two-vaults-couchdb.ts"]
|
||||
},
|
||||
"test:journal-chunk-recovery": {
|
||||
"test": ["test-journal-chunk-recovery.ts"]
|
||||
},
|
||||
"test:journal-receive-failure": {
|
||||
"test": ["test-journal-receive-failure.ts"]
|
||||
},
|
||||
"test:e2e-matrix": {
|
||||
"test": ["test-e2e-two-vaults-matrix.ts"]
|
||||
},
|
||||
"test:e2e-matrix:couchdb-enc0": {
|
||||
"test": ["test-e2e-two-vaults-matrix.ts"],
|
||||
"filter": "e2e matrix: COUCHDB-enc0"
|
||||
},
|
||||
"test:e2e-matrix:couchdb-enc1": {
|
||||
"test": ["test-e2e-two-vaults-matrix.ts"],
|
||||
"filter": "e2e matrix: COUCHDB-enc1"
|
||||
},
|
||||
"test:e2e-matrix:minio-enc0": {
|
||||
"test": ["test-e2e-two-vaults-matrix.ts"],
|
||||
"filter": "e2e matrix: MINIO-enc0"
|
||||
},
|
||||
"test:e2e-matrix:minio-enc1": {
|
||||
"test": ["test-e2e-two-vaults-matrix.ts"],
|
||||
"filter": "e2e matrix: MINIO-enc1"
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user