@devrouter/cli 0.5.5 → 0.5.6

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.5.5",
3
+ "version": "0.5.6",
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",
@@ -60,6 +60,7 @@
60
60
  "qualify:cohorts": "node --import tsx scripts/qualify-lifecycle-cohorts.ts",
61
61
  "qualify:preparation": "node --import tsx scripts/qualify-process-preparation.ts",
62
62
  "qualify:profiles": "node --import tsx scripts/qualify-profile-alternation.ts",
63
+ "qualify:runtime-inputs": "node --import tsx scripts/qualify-runtime-inputs.ts",
63
64
  "qualify:host-suspend": "node --import tsx scripts/qualify-host-suspend.ts",
64
65
  "test:process": "bash scripts/test-devrouter-process.sh",
65
66
  "test:skills": "bash tests/worktree-reclaim/run-corpus.sh && bash tests/worktree-reclaim/test-reclaim.sh && bash tests/worktree-reclaim/test-manifest.sh",
@@ -0,0 +1,73 @@
1
+ # Upgrade to devrouter 0.5.6
2
+
3
+ This release extends managed startup with declared runtime variants and discovers
4
+ Docker-published loopback ports for host tools. It also strengthens suspend
5
+ qualification evidence and adds explicit stop recovery for externally replaced
6
+ Devsy containers.
7
+
8
+ - `managedRuntime.variants` declares additional startup selectors.
9
+ `devrouter ensure . --variant <name>` passes the selected name to the managed
10
+ adapter as `DEVROUTER_RUNTIME_VARIANT` and includes it in owned-process identity.
11
+ Profiles continue selecting resources. Omission selects `default`; `--repair`
12
+ retains the recorded variant. Non-default variants support manual lifecycles
13
+ and are refused before capacity admission effects.
14
+ - `managedRuntime.devcontainer.hostPorts` maps safe names to registered service
15
+ names and TCP targets. Consumer Compose publishes each target with
16
+ `host_ip: 127.0.0.1` and no fixed published port. Docker allocates the number;
17
+ Devrouter proves the exact live owner before injecting
18
+ `DEVROUTER_HOST_PORT_<KEY>` and reporting the endpoint through `devrouter env`.
19
+ A selected unavailable binding blocks launch; an inactive adapter value is
20
+ empty. Container clients continue using service DNS and the target port.
21
+ - Port mappings affect process reuse and may change after recreation. State
22
+ retains a declaration digest, never an allocated port lease. After declaration
23
+ drift, export remains unavailable until successful ensure. A failed transition
24
+ refuses prior-process relaunch and stays degraded; restore retained declarations
25
+ before repair.
26
+ - `stop --repair` explicitly re-proves a replaced Devsy population before stopping
27
+ it. It preserves volumes, requires unchanged identity and configuration, and
28
+ cannot combine with `--delete`. Ordinary stop does not relax ownership checks.
29
+ - Host-suspend qualification no longer treats scheduled wake requests as completed
30
+ wake evidence. Existing qualification receipts do not establish acceptance for
31
+ the corrected verifier; real suspend testing requires separate authorization.
32
+
33
+ ## Task
34
+
35
+ Install the published 0.5.6 CLI. Existing configurations retain their default
36
+ behavior; there is no mandatory schema migration. Bump a consumer's
37
+ `devrouter.version` only when consumer source changes are authorized. If it carries
38
+ a generated devrouter skill or AGENTS section, refresh that artifact through
39
+ `devrouter repo agents` within the same authorized consumer change.
40
+
41
+ Adopt variants or host-port declarations only when the consumer adaptation is
42
+ requested. A variant replaces selector signaling; repositories still own commands,
43
+ build plans and build-generation identity. Do not remove other marker artifacts
44
+ merely because a selector exists. For port discovery, update Compose and the
45
+ adapter together, and read current values after startup. Do not interpolate an
46
+ allocated number into the Compose model that creates it.
47
+
48
+ Preserve runtime ownership, containers, databases and dependency volumes. Do not
49
+ recreate or delete a runtime to make this upgrade pass. Stop repair and real host
50
+ suspend remain separately authorized actions.
51
+
52
+ ## Validation
53
+
54
+ 1. Run `devrouter -V` from the consumer checkout and confirm installed 0.5.6.
55
+ Inspect `devrouter upgrade 0.5.6` and existing static devcontainer verification.
56
+ 2. For an authorized variant adaptation, ensure the intended profile with default,
57
+ the declared variant, then default again. Verify the reported variant, owned
58
+ process replacement, repeat-ensure reuse and unchanged container identity.
59
+ Keep build-generation identity in the consumer's process fingerprint.
60
+ 3. For authorized host-port adoption, use two synthetic concurrent checkouts.
61
+ Confirm distinct current loopback endpoints with `devrouter env . --json`,
62
+ connect host clients, and verify adapter injection. Check the container client
63
+ separately using service DNS and target. An unavailable selected binding must
64
+ prevent adapter or host-command launch.
65
+ 4. Run the consumer's existing application smoke check. Stop every runtime touched
66
+ by these checks through its exact checkout path and verify provider stopped
67
+ plus zero exact routes, unless an explicit keep-running lease applies.
68
+
69
+ ## Report
70
+
71
+ Report installed version and executable, consumer changes, selected profile and
72
+ variant, endpoint and process-reuse results, retained container/volume identity,
73
+ exact stop proof, and any skipped checks or unresolved recovery boundary.