@devrouter/cli 0.0.37 → 0.0.39
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 +7 -0
- package/bin/devrouter-process +97 -9
- package/dist/devrouter.js +2441 -369
- package/package.json +2 -1
- package/upgrade-prompts/0.0.38.md +45 -0
- package/upgrade-prompts/0.0.39.md +48 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@devrouter/cli",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.39",
|
|
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",
|
|
@@ -57,6 +57,7 @@
|
|
|
57
57
|
"test:watch": "vitest",
|
|
58
58
|
"routing:smoke": "./scripts/smoke-routing.sh",
|
|
59
59
|
"devcontainer:smoke": "./scripts/smoke-devcontainer.sh",
|
|
60
|
+
"devpod:profile-smoke": "./scripts/smoke-devpod-profile-lifecycle.sh",
|
|
60
61
|
"workspace:lifecycle-smoke": "./scripts/smoke-workspace-lifecycle.sh",
|
|
61
62
|
"workspace:cleanup-smoke": "./scripts/smoke-workspace-cleanup-report.sh",
|
|
62
63
|
"bench:startup": "zsh -lc 'set -euo pipefail; echo \"=== dev --help (x5) ===\"; for i in {1..5}; do /usr/bin/time -p node dist/devrouter.js --help >/dev/null; done; echo \"=== dev app add --help (x5) ===\"; for i in {1..5}; do /usr/bin/time -p node dist/devrouter.js app add --help >/dev/null; done; echo \"=== dev status --json (x3, best effort) ===\"; for i in {1..3}; do /usr/bin/time -p node dist/devrouter.js status --json >/dev/null || true; done'",
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Upgrade to devrouter 0.0.38
|
|
2
|
+
|
|
3
|
+
Devrouter now supports profile-scoped environments: a `profiles` map in
|
|
4
|
+
`.devrouter.yml` plus `devrouter ensure --profile <name>` starts, routes, and
|
|
5
|
+
readiness-probes only the apps a task needs. Comma-separated selections
|
|
6
|
+
(`--profile manage,pwa`) merge profiles with deduplication, and managed
|
|
7
|
+
adapters receive `DEVROUTER_PROFILE` so they can scope their dev process tree
|
|
8
|
+
to the same selection.
|
|
9
|
+
|
|
10
|
+
1. Install `@devrouter/cli@0.0.38` on the host and bump `.devrouter.yml` to
|
|
11
|
+
`devrouter.version: 0.0.38`.
|
|
12
|
+
2. No schema or data migration is required. Repositories without a `profiles`
|
|
13
|
+
key keep the implicit full behavior; adding `profiles` is optional.
|
|
14
|
+
Validation is strict: unknown keys, references to apps that are not routed
|
|
15
|
+
(`kind=app`), references to apps that are not `kind=dependency` in
|
|
16
|
+
`dependencies`, `readiness` entries outside the profile's apps, and more
|
|
17
|
+
than one `default: true` are rejected at config-load time.
|
|
18
|
+
3. Optional: declare profiles and select one per task, e.g.
|
|
19
|
+
`devrouter ensure <checkout> --profile <name>` or
|
|
20
|
+
`devrouter ensure <checkout> --profile <name-a>,<name-b>`. The merged name
|
|
21
|
+
is canonicalized (sorted unique), so order does not affect identity.
|
|
22
|
+
Repository post-start adapters can read `DEVROUTER_PROFILE` and must treat
|
|
23
|
+
an empty/unset value as the default profile.
|
|
24
|
+
4. Consumers that parse `ensure --json` output must accept the new `profile`
|
|
25
|
+
field in the result object.
|
|
26
|
+
|
|
27
|
+
Verification:
|
|
28
|
+
|
|
29
|
+
- Run `devrouter -V --repo <checkout>` and confirm both the installed CLI and
|
|
30
|
+
the local repository report `0.0.38`.
|
|
31
|
+
- Run `devrouter doctor --repo <checkout> --json` and confirm the config still
|
|
32
|
+
validates.
|
|
33
|
+
- With profiles declared, run `devrouter ensure <checkout> --profile <name>
|
|
34
|
+
--json` and confirm the result reports `"profile": "<name>"` and that only
|
|
35
|
+
the profile's routes are published (`devrouter ls`).
|
|
36
|
+
- Re-run `devrouter ensure <checkout> --json` without `--profile` and confirm
|
|
37
|
+
the default/full route set is restored.
|
|
38
|
+
|
|
39
|
+
Report template:
|
|
40
|
+
|
|
41
|
+
- CLI/config version: `0.0.38`
|
|
42
|
+
- Config validation: `<passed or details>`
|
|
43
|
+
- Profile-scoped ensure: `<passed or details>`
|
|
44
|
+
- Default (full) ensure after profile use: `<passed or details>`
|
|
45
|
+
- Remaining blockers: `<none or details>`
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Upgrade to devrouter 0.0.39
|
|
2
|
+
|
|
3
|
+
Devrouter now lets managed devcontainers select independent runtime dimensions.
|
|
4
|
+
The optional `managedRuntime` registry names base Compose services, optional
|
|
5
|
+
Compose capabilities, and repository-owned process markers. Profiles may select
|
|
6
|
+
routed apps, optional services, and processes independently, including
|
|
7
|
+
route-free capability profiles such as an AI gateway or MCP server.
|
|
8
|
+
|
|
9
|
+
1. Install `@devrouter/cli@0.0.39` on the host and bump `.devrouter.yml` to
|
|
10
|
+
`devrouter.version: 0.0.39`.
|
|
11
|
+
2. Repositories without `managedRuntime` keep their existing app-only profile
|
|
12
|
+
behavior. No database or data migration is required.
|
|
13
|
+
3. For a managed devcontainer, register every base service, optional Compose
|
|
14
|
+
service, and managed process marker. Keep the source `devcontainer.json`
|
|
15
|
+
as the full native configuration; `devrouter ensure` owns its ignored
|
|
16
|
+
generated sibling for selective startup.
|
|
17
|
+
4. Add profiles for the real dependency graph. For example, an `ai` profile
|
|
18
|
+
can select the application, `litellm`, and its process, while an `mcp`
|
|
19
|
+
profile can select only the MCP service and process. Omitted optional
|
|
20
|
+
dimensions stay stopped; use `*` or a `full` profile for the complete set.
|
|
21
|
+
5. Refresh generated discoverability artifacts with `devrouter repo agents`.
|
|
22
|
+
Do not commit `.devcontainer/devcontainer.devrouter.json` or place secrets
|
|
23
|
+
in the registry or managed runtime state.
|
|
24
|
+
|
|
25
|
+
Verification:
|
|
26
|
+
|
|
27
|
+
- Run `devrouter -V --repo <checkout>` and confirm both the installed CLI and
|
|
28
|
+
local repository report `0.0.39`.
|
|
29
|
+
- Run `devrouter doctor --repo <checkout> --json` and confirm the configuration
|
|
30
|
+
and managed registry validate.
|
|
31
|
+
- Run a managed app profile and a capability-only profile with
|
|
32
|
+
`devrouter ensure <checkout> --profile <name> --json`; confirm desired and
|
|
33
|
+
active services/processes match and that a capability-only profile has no
|
|
34
|
+
application routes.
|
|
35
|
+
- Switch profiles in the same workspace and confirm the DevPod and volumes are
|
|
36
|
+
retained, post-create does not rerun, and dropped resources stop only after
|
|
37
|
+
exact ownership proof.
|
|
38
|
+
- Run `devrouter status --repo <checkout> --json` and inspect any reported drift
|
|
39
|
+
before continuing development.
|
|
40
|
+
|
|
41
|
+
Report template:
|
|
42
|
+
|
|
43
|
+
- CLI/config version: `0.0.39`
|
|
44
|
+
- Registry and profile validation: `<passed or details>`
|
|
45
|
+
- Managed app profile: `<passed or details>`
|
|
46
|
+
- Capability-only profile: `<passed or details>`
|
|
47
|
+
- Warm transition and exact stop: `<passed or details>`
|
|
48
|
+
- Remaining blockers: `<none or details>`
|