@norskvideo/ctl-dev-kit 0.1.28 → 0.1.30

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.
@@ -45,6 +45,24 @@
45
45
  named capability in its manifest's `requires: [...]`; ctl refuses only if it
46
46
  lacks that capability. Reach for a capability as rarely as possible — it is the
47
47
  escape hatch, not the default.
48
+ - **Reloading a rebuilt image into a running daemon needs the remove-then-refetch
49
+ dance — a plain rebuild never reaches launched instances.** The daemon launches
50
+ from a STORED template snapshot fetched once at `product add`, and refuses to
51
+ overwrite a stored template by name (`product reload` refreshes only the
52
+ manifest; `product pull` doesn't re-render). So after `build:image` the loop is:
53
+ `instance delete <id> --purge` -> `template remove <t>` -> `product remove <p>`
54
+ (plus `docker rm -f norsk-product-<p>` if the control-plane container lingers,
55
+ else its host port stays allocated) -> `product add --image <img> --license-file
56
+ <lic>` -> `instance launch-template`. Each product ships this as
57
+ `deployment/iterate.sh` (`bun run iterate`); model new ones on it. Two gotchas it
58
+ encodes: (1) the **built image name must satisfy the license's imageRef** — the
59
+ licensed repo (e.g. `norskvideo/norsk-<x>-product`), not a throwaway `:dev` name;
60
+ `product add` 400s on a mismatch, so build UNDER that repo. (2) the **license must
61
+ entitle both `norsk-studio` and the product** (the runtime does the
62
+ studio<->media handshake as `norsk-studio`). Needs a running daemon
63
+ (`norsk-ctl serve`) + `norsk-ctl` on PATH (the nix shell) + `NORSK_LICENSE_FILE`.
64
+ Anything the daemon can't see for you — a stored template, a rebuilt image — is
65
+ stale until this loop re-runs; don't debug a ghost.
48
66
  - **The shared CI workflow is single-sourced too.** `.github/workflows/upgrade-latest.yml`
49
67
  is copied verbatim from `@norskvideo/ctl-dev-kit` (`conventions/upgrade-latest.yml`),
50
68
  same as this core block and `flake.nix`; `check:drift` fails CI if a copy
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@norskvideo/ctl-dev-kit",
3
- "version": "0.1.28",
3
+ "version": "0.1.30",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./package.json": "./package.json",