@devrouter/cli 0.0.72 → 0.0.74

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devrouter/cli",
3
- "version": "0.0.72",
3
+ "version": "0.0.74",
4
4
  "description": "Local dev routing CLI with shared Traefik reverse proxy",
5
5
  "author": "Roland Schlaefli",
6
6
  "homepage": "https://github.com/rschlaefli/devrouter#readme",
@@ -0,0 +1,54 @@
1
+ # Upgrade to devrouter 0.0.73
2
+
3
+ This patch release adds opt-in bounded automatic recovery and fixes three
4
+ capacity-managed defects found while dogfooding the eLearning canary.
5
+
6
+ - Capacity-enrolled `exec` now returns the wrapped command's output. The
7
+ controller captured a supervised worker's stdout and stderr into its bounded
8
+ buffer and the client exposed it through `onOutput`, but the CLI never
9
+ forwarded it, so `devrouter exec <path> -- <command>` returned only the exit
10
+ status. The controller-supervised path now streams each bounded page to the
11
+ caller and prints one notice if the buffer dropped earlier bytes.
12
+ - A capacity-enrolled operation keeps its effect authority while the controller
13
+ cannot observe capacity. Renewal previously wrote a zero deadline before each
14
+ attempt and again on failure, so one missing, stale, or unknown sample revoked
15
+ authority mid-start and later commands failed with `Capacity effect authority
16
+ is absent or stale.` Renewal now extends only when every reserved domain has a
17
+ usable sample. Ownership evidence also compares environment identity instead
18
+ of whole journal records, so the controller rewriting its own bookkeeping no
19
+ longer reports `unknown` for a healthy runtime.
20
+ - The observation collector reports a required managed process that has
21
+ positively exited as a failed capability instead of `unknown`, so bounded
22
+ recovery can act on it. Ambiguous or unreadable process state stays `unknown`.
23
+ - Optional bounded automatic recovery. A new `recovery` block in the capacity
24
+ policy enables a supervisor that reacts to a positively failed required
25
+ capability with one journal-admitted corrective `ensure`, bounded by
26
+ per-scope restart counts, an aggregate corrective-action cap and a rolling
27
+ observation window. The block is absent by default. Parking and controlled
28
+ resume remain model-only, and there is no OOM detection: a container-local OOM
29
+ still surfaces only as a failed capability.
30
+
31
+ No `.devrouter.yml` schema, CLI flag, or default behavior changes.
32
+
33
+ ## Task
34
+
35
+ Install the published release and update `.devrouter.yml` devrouter.version to
36
+ 0.0.73. No configuration change is required. Enabling bounded recovery is
37
+ optional: add a `recovery` block to the operator capacity policy only when you
38
+ want automatic corrective ensures.
39
+
40
+ ## Validation
41
+
42
+ On a capacity-enrolled checkout, run
43
+ `devrouter exec <path> -- bash -lc 'echo checked'` and confirm the command's
44
+ output appears. Confirm a failing command still returns its non-zero exit
45
+ status, and that `devrouter ensure <path>` reports the environment ready with
46
+ its routes published. If you enabled recovery, confirm an environment whose
47
+ required process is positively absent is corrected by one admitted `ensure`
48
+ within the configured bound.
49
+
50
+ ## Report
51
+
52
+ Report the installed CLI version, the enrolled repository, the observed `exec`
53
+ output and exit code, the final `ensure` readiness with its route count, and
54
+ whether the recovery policy was enabled.
@@ -0,0 +1,35 @@
1
+ # Upgrade to devrouter 0.0.74
2
+
3
+ This patch fixes canonical stop after managed Devsy startup fails before
4
+ registration, including Devsy-only installations without the legacy DevPod CLI.
5
+ It preserves completed startup outcomes and refuses unknown ownership, live
6
+ workers, surviving containers (including stopped containers), and routes.
7
+ No configuration schema, command, or flag migration is required. Successful
8
+ absence proof is reported as `runtimeAbsent: true` in stop JSON.
9
+
10
+ ## Task
11
+
12
+ Use the published 0.0.74 CLI. Update `.devrouter.yml` devrouter.version to 0.0.74
13
+ when consumer source changes are authorized; preserve another task's staged
14
+ work. No DevPod installation or runtime-selection change is needed. Refresh
15
+ generated agent guidance only when that repository's owner authorizes it.
16
+
17
+ For an affected exact linked checkout, use canonical `devrouter stop <path>
18
+ --json`. A completed journal alone is not evidence that resources are absent;
19
+ do not edit lifecycle state or delete provider data to bypass a refusal. This
20
+ fix does not recover retained-container identity drift or replace surviving
21
+ resources.
22
+
23
+ ## Validation
24
+
25
+ Verify the CLI version and exact checkout ownership. Run the supported stop
26
+ under the checkout owner's recovery authority. Require successful absence proof
27
+ and settled lifecycle state before retrying ensure. Revalidate the original port
28
+ conflict before that retry, then require provider, application and route proof.
29
+ Do not infer consumer recovery from package or regression tests.
30
+
31
+ ## Report
32
+
33
+ Report the installed CLI version and release revision, exact checkout, stop
34
+ result, lifecycle state, subsequent ensure and route/application evidence, or
35
+ the precise fail-closed blocker. Confirm source/index and runtime data retention.