@camstack/server 1.2.34 → 1.2.35

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.
@@ -2265,7 +2265,17 @@ class AddonRegistryService {
2265
2265
  this.configService.setSettingsStore(provider);
2266
2266
  }
2267
2267
  this.storageService.setSettingsBackend(provider);
2268
- this.integrationRegistry = new system_4.IntegrationRegistry(provider);
2268
+ // The registry needs the DOOR's own shape, not `ISettingsBackend`.
2269
+ // `CapabilityProviderMap` still types this cap as the hand-written
2270
+ // interface, which has drifted from the cap definition it is meant
2271
+ // to describe — it never grew `deleteWhere` / `updateWhere`. The
2272
+ // same provider object satisfies both; reconciling the two types is
2273
+ // its own change (it makes `query` / `insert` non-generic for every
2274
+ // `ISettingsBackend` consumer in the backend).
2275
+ const store = this.capabilityRegistry.getProviderByAddon('settings-store', addonId);
2276
+ if (!store)
2277
+ return;
2278
+ this.integrationRegistry = new system_4.IntegrationRegistry(store);
2269
2279
  void this.integrationRegistry.initialize().then(() => {
2270
2280
  this.logger.info('IntegrationRegistry initialized', { meta: { phase: 'v2' } });
2271
2281
  });
package/dist/launcher.js CHANGED
@@ -413,6 +413,28 @@ async function launch() {
413
413
  Module._initPaths();
414
414
  console.log(`[launcher] NODE_PATH extended with: ${extraNodePaths.join(sep)}`);
415
415
  }
416
+ // WHICH COPY did this node just commit to? ([D45](../../../docs/decisions/adr-0045.md))
417
+ //
418
+ // A node can hold several copies of a host-provided package — the image seed
419
+ // under /opt, a legacy /data/framework on NODE_PATH, the active closure, an
420
+ // installed copy under /data/addons. Which one wins is a resolution outcome,
421
+ // and on 2026-08-03 three consecutive deductions about it were each disproved
422
+ // by the next measurement, while every status surface reported the version of
423
+ // a copy nobody was running. Resolution happens HERE, right after NODE_PATH
424
+ // is final and before the runtime imports anything — so this is the one place
425
+ // that can answer it, and it costs a stat call per package.
426
+ //
427
+ // A version number without a path is not evidence. Log both.
428
+ for (const pkg of ['@camstack/system', '@camstack/types']) {
429
+ try {
430
+ const resolved = require.resolve(`${pkg}/package.json`);
431
+ const version = JSON.parse(fs.readFileSync(resolved, 'utf-8')).version;
432
+ console.log(`[launcher] resolved ${pkg}@${String(version)} from ${resolved}`);
433
+ }
434
+ catch (err) {
435
+ console.warn(`[launcher] could NOT resolve ${pkg}: ${err instanceof Error ? err.message : String(err)}`);
436
+ }
437
+ }
416
438
  // Now safe to load the role's runtime entry (both have static imports from
417
439
  // @camstack/system, resolved only after the framework dir + NODE_PATH setup
418
440
  // above). The agent boots from THIS same @camstack/server closure — there is
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/server",
3
- "version": "1.2.34",
3
+ "version": "1.2.35",
4
4
  "private": false,
5
5
  "files": [
6
6
  "dist",
@@ -40,11 +40,11 @@
40
40
  "@camstack/addon-notifiers": "1.2.11",
41
41
  "@camstack/addon-pipeline": "1.2.39",
42
42
  "@camstack/addon-pipeline-orchestrator": "1.2.19",
43
- "@camstack/addon-post-analysis": "1.2.23",
43
+ "@camstack/addon-post-analysis": "1.2.24",
44
44
  "@camstack/sdk": "1.2.9",
45
45
  "@camstack/shm-ring": "1.1.9",
46
- "@camstack/system": "1.2.30",
47
- "@camstack/types": "1.2.22",
46
+ "@camstack/system": "1.2.31",
47
+ "@camstack/types": "1.2.23",
48
48
  "@camstack/ui-library": "1.2.18",
49
49
  "@fastify/compress": "^9.0.0",
50
50
  "@fastify/cookie": "^11.0.2",