@camstack/server 1.2.631 → 1.2.633

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.
@@ -218,6 +218,6 @@ object-detection catalogs) on request. They are downloaded from their
218
218
  publishers, are not hosted or redistributed by CamStack, and keep their
219
219
  publishers' licences; Model Studio shows the licence where the source declares
220
220
  one. A model you upload or convert
221
- yourself, or pull from your own Frigate+ account, likewise keeps whatever
221
+ yourself, or pull from your own plus catalog account, likewise keeps whatever
222
222
  licence its author published. CamStack does not change it and does not record
223
223
  it.
@@ -48,7 +48,7 @@ exports.planAgentAddonScan = planAgentAddonScan;
48
48
  * drifted because no update channel refreshed it"*.
49
49
  *
50
50
  * The agent never got the change, and drifted exactly as predicted. Measured
51
- * 2026-08-11: little-unraid carried `@camstack/system@1.2.61` and macmini
51
+ * 2026-08-11: agent-a carried `@camstack/system@1.2.61` and macmini
52
52
  * `1.2.62` in their addon roots while both ran a `1.2.78` closure. Nothing
53
53
  * refreshed them, because `seedBuiltinsFromClosure` (now deleted) only wrote
54
54
  * the copy when it was ABSENT — a self-heal that guaranteed a copy existed and
@@ -22,7 +22,7 @@ exports.resolveAgentInfraCapabilities = resolveAgentInfraCapabilities;
22
22
  * The commit before this one gave that door the hub as its remote, so dropping
23
23
  * the engine leaves nothing stranded.
24
24
  *
25
- * Measured on `little-unraid` before the change: 17 tables, 33 objects, one
25
+ * Measured on `agent-a` before the change: 17 tables, 33 objects, one
26
26
  * page each. Every `*:addon-settings` table — `hub-forwarder`,
27
27
  * `metrics-native`, `platform-probe`, `storage-orchestrator`, and the shared
28
28
  * `addon-settings` — held **0 rows**. The only non-empty tables were
@@ -10,7 +10,7 @@
10
10
  * - the addon was NOT FOUND at all → `console.error`, continue.
11
11
  *
12
12
  * The second branch is strictly worse than the first and it was the quiet one.
13
- * On `little-unraid` the whole `@camstack/system` package was renamed out of
13
+ * On `agent-a` the whole `@camstack/system` package was renamed out of
14
14
  * `/data/addons/@camstack/` at 16:40 on 2026-08-07 (a builtin-shadow cleanup).
15
15
  * On an AGENT that directory is the SOLE source of the builtins — there is no
16
16
  * seed fallback — so the next boot came up with ZERO infra addons: no storage,
@@ -31,7 +31,7 @@
31
31
  *
32
32
  * It reports EVERY missing required capability in one throw, not just the
33
33
  * first — an operator staring at a crash-loop needs the whole list, and the
34
- * four that vanished together on little-unraid vanished for one single reason.
34
+ * four that vanished together on agent-a vanished for one single reason.
35
35
  */
36
36
  Object.defineProperty(exports, "__esModule", { value: true });
37
37
  exports.assertRequiredInfraResolved = assertRequiredInfraResolved;
@@ -508,7 +508,7 @@ async function startAgent(configPath) {
508
508
  // ONE COPY PER NODE — the same sweep the hub runs, at this role's own
509
509
  // healthy-boot moment (D45, task 32). Operator, 2026-08-13: "l'agente deve
510
510
  // essere identico all'hub" [the agent must be identical to the hub]. An agent is where the redundant copies actually
511
- // are: `little-unraid` still holds `<dataDir>/addons/@camstack/system@1.2.78`
511
+ // are: `agent-a` still holds `<dataDir>/addons/@camstack/system@1.2.78`
512
512
  // — a copy nothing loads (both roles pass `['@camstack/system']` as the
513
513
  // loader's skip list) and that WINS over the closure for anything resolving
514
514
  // through it.
@@ -156,8 +156,8 @@ deliveryLedger) {
156
156
  // returned `undefined` for a large one.
157
157
  //
158
158
  // Cost, 2026-08-07: every `camstack deploy packages/addon-pipeline -n
159
- // little-unraid` — a 4.9 MB tarball — read `nodeId = null` and took the HUB
160
- // branch. The CLI printed `✓ little-unraid: @camstack/addon-pipeline@1.2.43`
159
+ // agent-a` — a 4.9 MB tarball — read `nodeId = null` and took the HUB
160
+ // branch. The CLI printed `✓ agent-a: @camstack/addon-pipeline@1.2.43`
161
161
  // (the label it INTENDED, never the target the hub used) and the named agent
162
162
  // was never addressed at all. It reproduced 4× and was diagnosed as a stale
163
163
  // dist. Reading the fields after the drain is the fix here; the CLI also
@@ -14,7 +14,7 @@ exports.deliverAddonToAgent = deliverAddonToAgent;
14
14
  * every runner on that node keeps executing the PREVIOUS dist until something
15
15
  * else happens to restart it.
16
16
  *
17
- * Reproduced on little-unraid 2026-08-07 with a marker file inside `dist/`: the
17
+ * Reproduced on agent-a 2026-08-07 with a marker file inside `dist/`: the
18
18
  * marker was on disk 2 seconds after the `✓`, and not one of the 12 addon-runner
19
19
  * pids had been recycled. Four operators-hours were spent that day looking for a
20
20
  * stale tarball cache that does not exist — the bytes were always correct, they
@@ -31,7 +31,7 @@ exports.deliverAddonToAgent = deliverAddonToAgent;
31
31
  * `$agent.deploy` is the INSTALL, not a control call.
32
32
  *
33
33
  * This constant used to be 30 s and said "install work is bounded well inside
34
- * this". On 2026-09-11 that claim cost `little-unraid` an evening of running a
34
+ * this". On 2026-09-11 that claim cost `agent-a` an evening of running a
35
35
  * previous `addon-pipeline` dist: three deploys, three
36
36
  * `Request is timed out when call '$agent.deploy'` at exactly 30 s, while the
37
37
  * CLI printed `✓ Deployed to 1 target(s)` each time — true of the hub, silent
@@ -34,7 +34,7 @@
34
34
  * dispatcher has no notion of a DEFAULT provider and never had one: a
35
35
  * collection cap's binding set is derived and plural, so an absent pin
36
36
  * left the fan-out un-narrowed and bought a union. The cap's docblock
37
- * said otherwise for a day, and device 592 answered a `limit: 3` call
37
+ * said otherwise for a day, and device 107 answered a `limit: 3` call
38
38
  * with six rows because of it.
39
39
  * 2. **One failing source never empties the others.** Every source is called
40
40
  * independently and a rejection removes only its own rows — and says so,
@@ -96,9 +96,9 @@ const DEVICE_MANAGER_CAP = 'device-manager';
96
96
  * framework's answer to "which providers does this device have".
97
97
  *
98
98
  * It used to enumerate REGISTRATIONS, and that is what put `analytics` in the
99
- * picker three times on the first live run (device 592, 2026-09-20): one addon
99
+ * picker three times on the first live run (device 107, 2026-09-20): one addon
100
100
  * reached here as the device's native provider, as the hub-local registration
101
- * and again as `pipeline-analytics@little-unraid`, with a fourth on the Mac
101
+ * and again as `pipeline-analytics@agent-a`, with a fourth on the Mac
102
102
  * node that `resolveCollectionForDevice` had already dropped. Three tick-boxes
103
103
  * for one thing, and `listClips` triplicating every row underneath them.
104
104
  *
@@ -33,7 +33,7 @@
33
33
  "its whole tree — parser included — into `@camstack/system/dist`, and the",
34
34
  "patch travels inside the published tarball. Verified 2026-09-12 in the",
35
35
  "`@camstack/system@1.2.224` tarball and in the live closure on both the",
36
- "hub and the little-unraid agent.",
36
+ "hub and the agent-a agent.",
37
37
  "",
38
38
  "The closure ALSO carries an unpatched `node_modules/moleculer` — npm",
39
39
  "installs it for `@camstack/system`'s dependency entry — and exactly one",
@@ -88,7 +88,7 @@
88
88
  "installer's closure-dedupe (D343) links all three at ONE copy. That copy",
89
89
  "is a plain npm tarball. The closure has no `patches/` directory and had",
90
90
  "no lifecycle step that could apply one, so production ran werift 0.22.9",
91
- "UNPATCHED — verified 2026-09-12 on the hub, the little-unraid agent and",
91
+ "UNPATCHED — verified 2026-09-12 on the hub, the agent-a agent and",
92
92
  "the Mac-mini Electron agent, all three showing `RTP_HISTORY_SIZE = 128`",
93
93
  "and no forceTurn guard.",
94
94
  "",
@@ -714,7 +714,7 @@ class AddonPackageService {
714
714
  * version string is not a build. `@camstack/addon-pipeline@1.2.43` deployed
715
715
  * from the workspace and `@camstack/addon-pipeline@1.2.43` on npm were two
716
716
  * different bundles all of 2026-08-07, and every `camstack deploy` to
717
- * little-unraid was silently reverted ~1.5s later: the deploy's own
717
+ * agent-a was silently reverted ~1.5s later: the deploy's own
718
718
  * `$agent.reload` briefly emptied the node's reported addon list, the hub's
719
719
  * reconcile read it as "package missing", and the back-fill repaired the node
720
720
  * by installing the PUBLISHED 1.2.43 over the one just delivered. Nothing
@@ -9,7 +9,7 @@
9
9
  * "installed on the hub but missing on the node". A node whose `<dataDir>/addons`
10
10
  * had been wiped therefore came back with only its bootstrap packages
11
11
  * (`@camstack/system` + `camstack.agentBootstrapAddons`) and the hub never sent
12
- * the rest — measured live as 4 of 14 packages on `little-unraid`. Under the
12
+ * the rest — measured live as 4 of 14 packages on `agent-a`. Under the
13
13
  * volume-only image (no addons baked in) an empty addons dir is the ORDINARY
14
14
  * first-boot state of every new or rebuilt node, so that gap becomes the normal
15
15
  * case rather than an anomaly.
@@ -10,7 +10,7 @@
10
10
  * 1. `$agent.deploy`'s `onApplied` evicts the package's declaration ids from
11
11
  * the node's `loadedAddons`, so `$agent.status` stops reporting it;
12
12
  * 2. `$agent.reload` re-instantiates every runner, and a status read landing
13
- * mid-reload sees a PARTIAL roster — measured on `little-unraid`
13
+ * mid-reload sees a PARTIAL roster — measured on `agent-a`
14
14
  * 2026-08-07 as the same reconcile reporting "14 checked" and, seconds
15
15
  * later, "20 checked";
16
16
  * 3. the reload re-registers the node, which fires the reconcile, which reads
@@ -41,7 +41,7 @@ exports.AgentDeliveryLedger = exports.DELIVERY_GRACE_MS = void 0;
41
41
  *
42
42
  * Sized for the re-registration storm: `$agent.reload` returns when the runners
43
43
  * have been asked to restart, and their `$hub.registerNode` calls (one per
44
- * group runner — 12 on `little-unraid`) land over the following seconds. Each
44
+ * group runner — 12 on `agent-a`) land over the following seconds. Each
45
45
  * one fires a reconcile.
46
46
  */
47
47
  exports.DELIVERY_GRACE_MS = 60_000;
@@ -626,7 +626,7 @@ class AgentRegistryService {
626
626
  * declared (`ClusterNodeHistoryStore.getPackages`), delivering whatever is
627
627
  * missing. Without it a node whose addons dir was wiped came back with only
628
628
  * its bootstrap packages and the hub never sent the rest — 4 of 14 on
629
- * `little-unraid`, measured. Under the volume-only image that empty state is
629
+ * `agent-a`, measured. Under the volume-only image that empty state is
630
630
  * the ordinary first boot of every rebuilt node. See `agent-addon-backfill.ts`
631
631
  * for what defines the intended set and how retries are bounded.
632
632
  *
@@ -9,7 +9,7 @@
9
9
  * agent's own view of the hub never breaks, so nothing on the agent says "send
10
10
  * your manifest again". When the hub then sees the agent again
11
11
  * (`$node.connected`), it holds an online node with NO capabilities. On
12
- * 2026-10-14 little-unraid and the Mac sat that way for 50 minutes.
12
+ * 2026-10-14 agent-a and the Mac sat that way for 50 minutes.
13
13
  *
14
14
  * So on every `$node.connected` of an agent the hub calls
15
15
  * `$agent.requestRegistration`: one RPC, on the event, no timer (D3). The
@@ -624,7 +624,7 @@ class MoleculerService {
624
624
  // agent is authoritative for. Cross-node `system.ready-state` deltas
625
625
  // are telemetry (lossy) — a lost post-restart `ready` used to leave
626
626
  // this registry stuck on the synthesized `down` forever (2026-07-17:
627
- // pipeline-executor@little-unraid, 3.5h dispatch outage). The
627
+ // pipeline-executor@agent-a, 3.5h dispatch outage). The
628
628
  // periodic sweep below repairs deltas lost while CONNECTED.
629
629
  this.broker.localBus.on('$node.connected', ({ node }) => {
630
630
  const nodeId = node.id;
@@ -47,7 +47,7 @@ exports.buildSystemApplyClosurePatches = buildSystemApplyClosurePatches;
47
47
  * thing that notices is `findUnappliedClosurePatches` refusing the swap.
48
48
  *
49
49
  * Measured 2026-09-13 on the Mac-mini agent, which had bootstrapped npm 12.0.1
50
- * while hub and little-unraid still ran npm 11. That node sat two versions
50
+ * while hub and agent-a still ran npm 11. That node sat two versions
51
51
  * behind with no other symptom, and the applier — run by hand in the very same
52
52
  * staging closure — reported `APPLIED werift@0.22.9` on three files. The code
53
53
  * was never wrong; it was never called.
@@ -9,12 +9,12 @@ const types_1 = require("@camstack/types");
9
9
  *
10
10
  * One event carries the entire currently-available list **of one node** — the
11
11
  * scope that changed, never the union across nodes. The Notification Center
12
- * turns that into "2 aggiornamenti addon disponibili su little-unraid" with
12
+ * turns that into "2 aggiornamenti addon disponibili su agent-a" with
13
13
  * that node's packages under it.
14
14
  *
15
15
  * The union was the shape until 2026-08-19, and on a three-node cluster one
16
16
  * 6-hourly sweep sent the operator THREE pushes that each listed hub +
17
- * MacMiniAgent + little-unraid and named no node: every scope's change
17
+ * MacMiniAgent + agent-a and named no node: every scope's change
18
18
  * re-emitted the whole held map, so the notifications differed by one line and
19
19
  * read as identical. A list is only actionable if it belongs to somebody.
20
20
  *
@@ -184,7 +184,7 @@ async function bootManual(opts) {
184
184
  // calling `packPackage` — `npm pack <name>@<version>` — so the back-fill
185
185
  // repaired a node by installing the REGISTRY's build of a version over the
186
186
  // one an operator had just deployed. Same name, same version, different
187
- // bundle: every `camstack deploy … -n little-unraid` on 2026-08-07 was
187
+ // bundle: every `camstack deploy … -n agent-a` on 2026-08-07 was
188
188
  // reverted ~1.5s later and read as a stale dist. See `packInstalledPackage`.
189
189
  // Delivery is an RPC pair, never an event (D8/D11).
190
190
  const backfillLogger = loggingService.createLogger('agent-backfill');
package/package.json CHANGED
@@ -1,7 +1,16 @@
1
1
  {
2
2
  "name": "@camstack/server",
3
- "version": "1.2.631",
3
+ "version": "1.2.633",
4
4
  "license": "MIT",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/camstack/server.git",
8
+ "directory": "server/backend"
9
+ },
10
+ "homepage": "https://camstack-docs.zentik.app",
11
+ "bugs": {
12
+ "url": "https://github.com/camstack/server/issues"
13
+ },
5
14
  "private": false,
6
15
  "files": [
7
16
  "dist",
@@ -38,20 +47,20 @@
38
47
  ]
39
48
  },
40
49
  "dependencies": {
41
- "@camstack/addon-admin-ui": "1.2.468",
42
- "@camstack/addon-agent-ui": "1.2.267",
43
- "@camstack/addon-auth": "1.2.166",
44
- "@camstack/addon-benchmark": "1.2.266",
45
- "@camstack/addon-decoder-nodeav": "1.2.141",
46
- "@camstack/addon-notifiers": "1.2.619",
47
- "@camstack/addon-pipeline": "1.2.625",
48
- "@camstack/addon-pipeline-orchestrator": "1.2.627",
49
- "@camstack/addon-post-analysis": "1.2.634",
50
- "@camstack/develop": "0.1.34",
51
- "@camstack/sdk": "1.2.151",
52
- "@camstack/system": "1.2.482",
53
- "@camstack/types": "1.2.414",
54
- "@camstack/ui-library": "1.2.323",
50
+ "@camstack/addon-admin-ui": "1.2.470",
51
+ "@camstack/addon-agent-ui": "1.2.269",
52
+ "@camstack/addon-auth": "1.2.168",
53
+ "@camstack/addon-benchmark": "1.2.268",
54
+ "@camstack/addon-decoder-nodeav": "1.2.142",
55
+ "@camstack/addon-notifiers": "1.2.621",
56
+ "@camstack/addon-pipeline": "1.2.627",
57
+ "@camstack/addon-pipeline-orchestrator": "1.2.629",
58
+ "@camstack/addon-post-analysis": "1.2.636",
59
+ "@camstack/develop": "0.1.36",
60
+ "@camstack/sdk": "1.2.153",
61
+ "@camstack/system": "1.2.484",
62
+ "@camstack/types": "1.2.416",
63
+ "@camstack/ui-library": "1.2.325",
55
64
  "@fastify/compress": "^9.0.0",
56
65
  "@fastify/cookie": "^11.0.2",
57
66
  "@fastify/cors": "^11.2.0",