@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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devrouter/cli",
3
- "version": "0.0.37",
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>`