You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-`src/runtime-plan.ts` resolves the final coprocessor/runtime shape consumed by regeneration.
86
+
-`src/render-env.ts`, `src/render-config.ts`, and `src/render-compose.ts` are the only rendering layers.
75
87
- Discovery is not terminal output only. It feeds env regeneration before dependent services start.
76
88
- Resume is step-based via `state.json`, not "rerun the bash ritual and hope".
77
-
-`upgrade` is intentionally narrow: it only rebuilds and restarts active runtime override groups.
89
+
- Tracked compose files are the default runtime truth. `.fhevm/compose` only contains generated overrides for coprocessor topology and active local-override components.
90
+
-`upgrade` is intentionally narrow: it only rebuilds and restarts active runtime override groups or local coprocessor scenario instances.
78
91
-`up --dry-run` exercises the same target-aware resolve and preflight path without mutating runtime state.
Generated runtime artifacts always live under `.fhevm/`:
54
+
55
+
-`.fhevm/env/*.env`
56
+
-`.fhevm/compose/*.yml` for generated runtime overrides only
57
+
-`.fhevm/config/relayer.yaml`
58
+
-`.fhevm/addresses/*`
59
+
-`.fhevm/locks/*`
60
+
-`.fhevm/state.json`
61
+
62
+
Tracked compose files are the default runtime truth. `.fhevm/compose` only holds generated overrides when runtime structure or local-image policy actually changes, with coprocessor topology as the only structural expansion.
63
+
64
+
The code follows the same split:
65
+
66
+
-`src/runtime-plan.ts`: resolve one runtime plan from bundle + env overrides + scenario/shorthand
3. Apply either `--scenario <file>` or the `--override coprocessor` shorthand
78
+
4. Materialize generated env/config/compose state under `.fhevm/`
79
+
40
80
## Targets
41
81
42
82
-`latest-release`: latest stable fhevm release plus checked-in companion defaults
@@ -160,7 +200,7 @@ The matrix has four sections:
160
200
|`externalDefaults`| Pinned versions for non-workspace components | modern relayer SHA |
161
201
|`anchors`| Git history reference points | simple-ACL cutover commit |
162
202
163
-
CI workflows read these values via `./fhevm-cli compat-defaults` instead of hardcoding them.
203
+
CI workflows read `externalDefaults` and `anchors` via `./fhevm-cli compat-defaults` instead of hardcoding them.
164
204
165
205
### How to update
166
206
@@ -187,7 +227,7 @@ When the minimum supported version passes the threshold, delete the `legacyShims
187
227
./fhevm-cli up --target latest-release --resume --from-step relayer
188
228
./fhevm-cli up --target latest-release --override coprocessor
189
229
./fhevm-cli up --target latest-release --override coprocessor:host-listener,tfhe-worker
190
-
./fhevm-cli up --target latest-release --coprocessors 2 --threshold 2
230
+
./fhevm-cli up --target latest-release --scenario ./scenarios/two-of-two.yaml
191
231
./fhevm-cli upgrade coprocessor
192
232
193
233
./fhevm-cli status
@@ -222,6 +262,8 @@ Supported groups:
222
262
./fhevm-cli up --target latest-release --override coprocessor
223
263
```
224
264
265
+
For `coprocessor`, this is also the shorthand local-dev scenario: one coprocessor instance, threshold `1`, source mode `local`.
266
+
225
267
### Override specific runtime services
226
268
227
269
Runtime override groups also support per-service filtering:
@@ -284,27 +326,31 @@ If a runtime override is already active and you only want to rebuild and restart
284
326
./fhevm-cli upgrade coprocessor
285
327
```
286
328
287
-
`upgrade` only supports active runtime override groups: `coprocessor`, `kms-connector`, and `test-suite`. It rebuilds and restarts runtime services only; one-shot DB migration containers are not rerun.
329
+
`upgrade` only supports active runtime override groups: `coprocessor`, `kms-connector`, and `test-suite`. For `coprocessor`, it rebuilds only the local coprocessor instances from the active shorthand/scenario state. One-shot DB migration containers are not rerun.
288
330
289
331
## Dropped Convenience Commands
290
332
291
333
-`smoke`: use explicit `up ...` plus `test ...`
292
334
-`test debug`: use `docker exec -it fhevm-test-suite-e2e-debug sh`
293
335
294
-
## Multicopro
336
+
## Coprocessor Scenarios
337
+
338
+
Use `--scenario <file>` for consensus and rollout matrices. The file is the source of truth for:
339
+
340
+
- coprocessor count and threshold
341
+
- per-instance source mode: `inherit`, `registry`, or `local`
./fhevm-cli up --target latest-release --scenario ./scenarios/two-of-two.yaml
349
+
./fhevm-cli up --target latest-release --scenario ./scenarios/one-registry-outlier.yaml
350
+
./fhevm-cli up --target latest-release --scenario ./scenarios/one-local-outlier.yaml
305
351
```
306
352
307
-
Generated env, compose overlays, addresses, locks, and state all live under `.fhevm/`.
353
+
`--scenario` cannot be combined with `--override coprocessor`. Keep `--override coprocessor` for the fast local e2e loop; use scenarios when you need an explicit consensus matrix.
308
354
309
355
## Runtime State
310
356
@@ -316,4 +362,4 @@ The CLI owns:
316
362
-`.fhevm/compose/`
317
363
-`.fhevm/addresses/`
318
364
319
-
`status` shows the active stack state and any CLI-owned local build images.
365
+
`status` shows the active stack state, the active scenario origin when present, and any CLI-owned local build images.
0 commit comments