@devrouter/cli 0.5.5 → 0.6.0
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 +13 -2
- package/assets/preview/github-sweep.yml +23 -0
- package/assets/preview/github.yml +35 -0
- package/assets/preview/gitlab-template.yml +34 -0
- package/assets/preview/gitlab.yml +22 -0
- package/assets/preview/installation.json +54 -0
- package/bin/devrouter-process +29 -2
- package/dist/devrouter-lifecycle-worker.js +1554 -425
- package/dist/devrouter-preview-gitlab-ingress.js +182 -0
- package/dist/devrouter.js +9442 -2701
- package/package.json +11 -2
- package/upgrade-prompts/0.5.6.md +73 -0
- package/upgrade-prompts/0.6.0.md +57 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@devrouter/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
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",
|
|
@@ -12,12 +12,17 @@
|
|
|
12
12
|
"files": [
|
|
13
13
|
"bin",
|
|
14
14
|
"dist",
|
|
15
|
-
"upgrade-prompts"
|
|
15
|
+
"upgrade-prompts",
|
|
16
|
+
"assets/preview"
|
|
16
17
|
],
|
|
17
18
|
"type": "commonjs",
|
|
18
19
|
"engines": {
|
|
19
20
|
"node": ">=24"
|
|
20
21
|
},
|
|
22
|
+
"exports": {
|
|
23
|
+
"./preview/gitlab-ingress": "./dist/devrouter-preview-gitlab-ingress.js",
|
|
24
|
+
"./*": "./*"
|
|
25
|
+
},
|
|
21
26
|
"bin": {
|
|
22
27
|
"devrouter": "dist/devrouter.js",
|
|
23
28
|
"devrouter-process": "bin/devrouter-process"
|
|
@@ -47,6 +52,9 @@
|
|
|
47
52
|
"dev": "tsx src/cli.ts",
|
|
48
53
|
"test": "vitest run && pnpm test:process",
|
|
49
54
|
"test:package": "./scripts/package-smoke.sh",
|
|
55
|
+
"qualify:preview-northflank": "node --import tsx scripts/qualify-preview-northflank.ts",
|
|
56
|
+
"qualify:preview-forge": "node --import tsx scripts/qualify-preview-forge.ts",
|
|
57
|
+
"qualify:preview-control": "node --import tsx scripts/qualify-preview-control.ts",
|
|
50
58
|
"qualify:lifecycle": "node --import tsx scripts/qualify-lifecycle.ts",
|
|
51
59
|
"qualify:capacity": "node --import tsx scripts/qualify-capacity.ts",
|
|
52
60
|
"qualify:controller": "node --import tsx scripts/qualify-controller.ts",
|
|
@@ -60,6 +68,7 @@
|
|
|
60
68
|
"qualify:cohorts": "node --import tsx scripts/qualify-lifecycle-cohorts.ts",
|
|
61
69
|
"qualify:preparation": "node --import tsx scripts/qualify-process-preparation.ts",
|
|
62
70
|
"qualify:profiles": "node --import tsx scripts/qualify-profile-alternation.ts",
|
|
71
|
+
"qualify:runtime-inputs": "node --import tsx scripts/qualify-runtime-inputs.ts",
|
|
63
72
|
"qualify:host-suspend": "node --import tsx scripts/qualify-host-suspend.ts",
|
|
64
73
|
"test:process": "bash scripts/test-devrouter-process.sh",
|
|
65
74
|
"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.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Upgrade to devrouter 0.6.0
|
|
2
|
+
|
|
3
|
+
This release adds experimental, opt-in remote preview planning and installed
|
|
4
|
+
controller integrations for GitHub and GitLab, with Northflank as the first
|
|
5
|
+
provider. It also invalidates controller authority across short host sleeps.
|
|
6
|
+
Local routing and profile configuration retain their existing behavior.
|
|
7
|
+
|
|
8
|
+
## Task
|
|
9
|
+
|
|
10
|
+
Install the published 0.6.0 CLI and inspect `devrouter upgrade 0.6.0`.
|
|
11
|
+
There is no mandatory consumer schema migration. Bump `devrouter.version` only
|
|
12
|
+
within an authorized consumer adaptation, and refresh generated agent guidance
|
|
13
|
+
with `devrouter repo agents` when that repository carries it.
|
|
14
|
+
|
|
15
|
+
Remote preview adoption is separate from a CLI upgrade. `.devrouter.yml` retains
|
|
16
|
+
local routing and profile membership; `.devrouter.preview.yml` declares remote
|
|
17
|
+
resource bindings. Read `docs/PREVIEWS.md` in the release source before adopting
|
|
18
|
+
previews. Use `preview init` without `--write` to inspect a scaffold, or
|
|
19
|
+
`preview plan --list --json` and `preview plan --alias <name> --json` when a
|
|
20
|
+
reviewed manifest already exists. Offline planning requires no cloud credentials
|
|
21
|
+
or application runtime and does not authorize deployment.
|
|
22
|
+
|
|
23
|
+
Installed integrations require reviewed private policy, durable state, scoped
|
|
24
|
+
credentials and installation-specific qualification. GitHub integration generation
|
|
25
|
+
requires full immutable commit SHAs for both controller and policy references;
|
|
26
|
+
use the release commit SHA for the controller. GitLab callers pin the controller
|
|
27
|
+
commit and a controller image digest containing the reviewed policy. Before
|
|
28
|
+
creating or exposing a trigger, set the controller project's pipeline-variable
|
|
29
|
+
minimum role to `no_one_allowed` and verify it with
|
|
30
|
+
`preview doctor --live --installation <file>`. Installing this npm package alone
|
|
31
|
+
does not install a PR-comment workflow or qualify native infrastructure.
|
|
32
|
+
Keep admission disabled until each required native proof and acceptance check
|
|
33
|
+
passes. Provider output commands must be bounded, read-only and idempotent;
|
|
34
|
+
client timeout does not terminate the remote command.
|
|
35
|
+
|
|
36
|
+
## Validation
|
|
37
|
+
|
|
38
|
+
1. Run `devrouter -V` in the consumer checkout and confirm installed 0.6.0.
|
|
39
|
+
Inspect the adaptation prompt and run existing static configuration checks.
|
|
40
|
+
2. If preview adoption is authorized and a reviewed manifest exists, run offline
|
|
41
|
+
alias listing and planning. Account for every selected profile member and
|
|
42
|
+
intentional omission; an incomplete or unbound plan cannot authorize effects.
|
|
43
|
+
3. For separately authorized controller activation, verify forge-specific
|
|
44
|
+
controller and policy pins, scoped credentials, durable state and every native
|
|
45
|
+
admission proof before allocation. Source tests and a successful offline plan
|
|
46
|
+
establish neither cloud readiness nor viewer access.
|
|
47
|
+
4. Use the consumer's focused checks for any actual source adaptation. This
|
|
48
|
+
metadata upgrade and offline planning do not require an application runtime.
|
|
49
|
+
If an authorized live check touches a runtime, stop its exact checkout and
|
|
50
|
+
verify provider stopped plus zero owned routes unless explicitly kept running.
|
|
51
|
+
|
|
52
|
+
## Report
|
|
53
|
+
|
|
54
|
+
Report installed version and executable, consumer changes, offline plan results,
|
|
55
|
+
controller and policy pins when applicable, qualification still pending, and the
|
|
56
|
+
outcome of any separately authorized live checks. Distinguish CLI publication,
|
|
57
|
+
installation activation and working application acceptance.
|