@evident-ai/runner-synchroniser 3.4.1-dev.4c80d87 → 3.4.1-dev.77d5cb6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -6
- package/dist/cli.js +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -75,7 +75,7 @@ saved query.
|
|
|
75
75
|
|
|
76
76
|
### `session-db-classify`
|
|
77
77
|
|
|
78
|
-
Implementation-facing reference for the 7th command: it decides what a just-run `litestream restore` of `opencode.db` means and, on attempt 2 only, may run a recovery strategy against S3. `
|
|
78
|
+
Implementation-facing reference for the 7th command: it decides what a just-run `litestream restore` of `opencode.db` means and, on attempt 2 only, may run a recovery strategy against S3. `runner/docker-images/fargate/README.md`'s [Strategy/What/Cost table](../docker-images/fargate/README.md#when-the-replica-is-unusable-evident_on_unusable_replica) is the operator-facing view of the same command — this section doesn't restate it.
|
|
79
79
|
|
|
80
80
|
#### Activity recovery report
|
|
81
81
|
|
|
@@ -217,7 +217,7 @@ what it is.
|
|
|
217
217
|
- **`clear`** — deletes every key under `<prefix>/opencode.db/` passing `isDeletableReplicaKey`; that guard, not the `list()` prefix, is the boundary (IAM grants `s3:DeleteObject*` bucket-wide). One `try` per key. A **partial** clear still reports `recovered`/`32`. Cost: all saved history, unconditionally.
|
|
218
218
|
- **`crash`** — first in the switch, no S3 mutation even considered → `fatal(deliberate)`/`30` → `entrypoint.sh` `die`s → task replaced → **crash loop** until an operator intervenes.
|
|
219
219
|
|
|
220
|
-
#### The measured real-world key layout (litestream 0.5.13)
|
|
220
|
+
#### The measured real-world key layout (litestream 0.5.13 historical sample)
|
|
221
221
|
|
|
222
222
|
`parseLtxKey` (`src/replica-keys.ts`) expects
|
|
223
223
|
`<prefix>/opencode.db/<level:04d>/<minTxid>-<maxTxid>.ltx` — **no `ltx/` path segment**,
|
|
@@ -235,7 +235,7 @@ at boot the newest L0 is normally *absent* (`noL0Present`) or freshly written an
|
|
|
235
235
|
(`targetHealthy`) — `prune`'s real-world reach is narrower than the code alone suggests,
|
|
236
236
|
and it can never repair corruption at a higher compaction level.
|
|
237
237
|
|
|
238
|
-
`EVIDENT_ON_UNUSABLE_REPLICA` is a `
|
|
238
|
+
`EVIDENT_ON_UNUSABLE_REPLICA` is a `runner/docker-images/fargate` (entrypoint) variable translated into the flag above at boot — this CLI never reads it, so it has no row in this README's Configuration table below; see [the Fargate image README](../docker-images/fargate/README.md#when-the-replica-is-unusable-evident_on_unusable_replica). An unrecognised value (including wrong casing, e.g. `Prune`) exits `2`, outside `entrypoint.sh`'s `0|10|20|30|31|32|33` allow-list — a typo **crash-loops the task on attempt 1** rather than falling back to `prune`, and also logs the misleading "credential persistence is DEGRADED" ERROR.
|
|
239
239
|
|
|
240
240
|
See `specs/local-runner.feature`'s "Recovering session history at startup" scenarios for
|
|
241
241
|
the behavioural anchor (31 comes online, 30 does not).
|
|
@@ -344,8 +344,8 @@ alter the command's exit code.
|
|
|
344
344
|
|
|
345
345
|
`src/shell-contract.json` is the machine-checked source of truth for the command list, and
|
|
346
346
|
`shell-contract.test.ts` holds **every** shell that speaks it to it — Fargate's
|
|
347
|
-
`
|
|
348
|
-
`
|
|
347
|
+
`runner/docker-images/fargate/entrypoint.sh` and the MicroVM's
|
|
348
|
+
`runner/docker-images/microvm/hooks` (#608), discovered by grep so a third one
|
|
349
349
|
cannot go unchecked. Each shell must: call only subcommands the CLI implements (and, for
|
|
350
350
|
`entrypoint.sh`, call all of them); route every call through one `run_synchroniser`; report
|
|
351
351
|
a broken tool; and take each answer code the commands it calls can return **silently and by
|
|
@@ -375,7 +375,7 @@ key, so they never appear in `env`'s output or `litestream.yml`.
|
|
|
375
375
|
| `CLUSTER` † / `SERVICE` † | ECS cluster/service `self-stop` scales to `desiredCount=0`. | Warns "cannot self-stop" and exits `20` (keep the task). Ignored by every other command. |
|
|
376
376
|
| `EVIDENT_SELFSTOP_ROLE_ARN` † | Role `self-stop` assumes for its ECS calls. | Optional: falls back to the task role's own credentials. A failed/incomplete assume-role → `20`. |
|
|
377
377
|
|
|
378
|
-
`
|
|
378
|
+
`runner/docker-images/fargate/README.md` documents these same three from the deployment side —
|
|
379
379
|
keep them in sync.
|
|
380
380
|
|
|
381
381
|
Requiring **both** `LITESTREAM_BUCKET` and `LITESTREAM_PREFIX` (never just one) means
|
package/dist/cli.js
CHANGED
|
@@ -52330,7 +52330,7 @@ function renderLitestreamConfig(config) {
|
|
|
52330
52330
|
# (no static keys here).
|
|
52331
52331
|
#
|
|
52332
52332
|
# INVARIANT (see README "Single-writer invariant"): exactly ONE writer per S3
|
|
52333
|
-
# prefix \u2014
|
|
52333
|
+
# prefix \u2014 we do not enable Litestream's server-side lease, so never run two
|
|
52334
52334
|
# replicators on one prefix. Only opencode.db is replicated.
|
|
52335
52335
|
|
|
52336
52336
|
dbs:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@evident-ai/runner-synchroniser",
|
|
3
|
-
"version": "3.4.1-dev.
|
|
3
|
+
"version": "3.4.1-dev.77d5cb6",
|
|
4
4
|
"description": "Restores and syncs the Evident runner's OpenCode credential stores (and litestream config) to an object store, so a runner survives task replacement with almost no state loss.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/cli.js",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"tsup": "^8.3.5",
|
|
27
27
|
"typescript": "^5.7.2",
|
|
28
28
|
"vitest": "^3.1.1",
|
|
29
|
-
"runner-image": "workspace:*"
|
|
29
|
+
"runner-fargate-image": "workspace:*"
|
|
30
30
|
},
|
|
31
31
|
"engines": {
|
|
32
32
|
"node": ">=22.13.0"
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"repository": {
|
|
43
43
|
"type": "git",
|
|
44
44
|
"url": "https://github.com/sroze/evident.git",
|
|
45
|
-
"directory": "
|
|
45
|
+
"directory": "runner/synchroniser"
|
|
46
46
|
},
|
|
47
47
|
"homepage": "https://evident.run",
|
|
48
48
|
"author": "Evident <hello@evident.run>",
|