@ngockhoale/ukit 3.1.7 → 3.1.8

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/CHANGELOG.md CHANGED
@@ -2,6 +2,11 @@
2
2
 
3
3
  All notable changes to UKit are documented here.
4
4
 
5
+ ## 3.1.8 - 2026-09-26
6
+
7
+ - **Agent VM IR v2**: `PARALLEL` (bounded fan-out, `join:'all'`) and `TIMEOUT` (deadline wrapper, `onTimeout: fail|escalate`, 30-minute ceiling) opcodes added to `planCompiler` + `vmEngine`; fault-injection coverage for crash-between-fan-out-and-join, non-idempotent child recovery, duplicate delivery. v2 plans hash under a `v2:`-prefixed serialization; v1 hashes unchanged.
8
+ - **Install seeds `.ukit/storage/observability/`** — the segment writer's safe `resolveRoot` rejects a missing parent, so the first emit on a fresh install previously failed with ENOENT. `ukit install` now creates the directory (advisory, never fails).
9
+
5
10
  ## 3.1.7 - 2026-09-26
6
11
 
7
12
  - **Observability + memory recording enabled by default on install.** Shipped `config.json` now sets `observability.stage: 'default'` (recorder + analytics + projector + evaluation — the full Data Foundation pipeline) and `learning.episodes.autoWrite: true` + `learning.candidates.stage: 'shadow'` (ukit-memory records evidence without auto-applying anything). Privacy gates (`sanitizeObserved`, `sanitizeForSupport` default-deny) are unchanged. Code defaults in `runtimeConfig.js` updated to match. New: `planLibrary.js` + 3 versioned reference plans (`bugfix-loop`, `handoff-review-batch`, `release-check`) as the V4 artifact seed for the Agent VM phase-2 plan.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ngockhoale/ukit",
3
- "version": "3.1.7",
3
+ "version": "3.1.8",
4
4
  "description": "Install/update an index-first AI workspace for Claude Code, OpenAI Codex and omp (Oh My Pi).",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -296,6 +296,13 @@ export async function runInstall({ packageRoot, projectRoot, packageVersion, arg
296
296
  reason: error?.message ?? 'provision_failed',
297
297
  };
298
298
  }
299
+
300
+ // Observability storage root: the segment writer's resolveRoot refuses a
301
+ // missing parent, so seed <project>/.ukit/storage/observability/ at install
302
+ // (advisory — never fails install). The recorder creates segments inside.
303
+ try {
304
+ await fs.mkdir(path.join(projectRoot, '.ukit', 'storage', 'observability'), { recursive: true });
305
+ } catch { /* advisory — never fail install */ }
299
306
  const { create, update, unchanged, skip } = result.summary;
300
307
 
301
308
  console.log(`[UKit] Project: ${result.projectContext.project.name}`);