@cleocode/cleo 2026.4.96 → 2026.4.98

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.
@@ -0,0 +1,13 @@
1
+ -- T998: NEXUS plasticity columns — Hebbian co-access strengthening.
2
+ -- Adds weight, last_accessed_at, and co_accessed_count to nexus_relations so
3
+ -- edges can be strengthened each time the connected nodes are co-accessed
4
+ -- during retrieval (fire-together-wire-together principle).
5
+ -- Migration is idempotent: ALTER TABLE ADD COLUMN is a no-op if column exists (via ensureColumns band-aid in nexus-sqlite.ts).
6
+
7
+ ALTER TABLE `nexus_relations` ADD COLUMN `weight` real DEFAULT 0.0;
8
+ --> statement-breakpoint
9
+ ALTER TABLE `nexus_relations` ADD COLUMN `last_accessed_at` text;
10
+ --> statement-breakpoint
11
+ ALTER TABLE `nexus_relations` ADD COLUMN `co_accessed_count` integer DEFAULT 0;
12
+ --> statement-breakpoint
13
+ CREATE INDEX IF NOT EXISTS `idx_nexus_relations_last_accessed` ON `nexus_relations` (`last_accessed_at`);
@@ -0,0 +1,35 @@
1
+ -- T944 — additive role/scope/severity axes + experiments side-table
2
+ -- Orthogonal to existing `type` column. `type` is NOT deprecated; it remains
3
+ -- the hierarchical discriminator (epic/task/subtask). `role`, `scope`, and
4
+ -- `severity` are the new orthogonal axes for intent, granularity, and bug
5
+ -- priority respectively. See ADR / RCASD Round 2 for rationale.
6
+
7
+ ALTER TABLE `tasks` ADD COLUMN `role` TEXT NOT NULL DEFAULT 'work'
8
+ CHECK (role IN ('work','research','experiment','bug','spike','release'));--> statement-breakpoint
9
+ ALTER TABLE `tasks` ADD COLUMN `scope` TEXT NOT NULL DEFAULT 'feature'
10
+ CHECK (scope IN ('project','feature','unit'));--> statement-breakpoint
11
+ ALTER TABLE `tasks` ADD COLUMN `severity` TEXT
12
+ CHECK (severity IS NULL OR (severity IN ('P0','P1','P2','P3') AND role='bug'));--> statement-breakpoint
13
+
14
+ CREATE INDEX IF NOT EXISTS `idx_tasks_role` ON `tasks` (`role`);--> statement-breakpoint
15
+ CREATE INDEX IF NOT EXISTS `idx_tasks_scope` ON `tasks` (`scope`);--> statement-breakpoint
16
+ CREATE INDEX IF NOT EXISTS `idx_tasks_role_status` ON `tasks` (`role`,`status`);--> statement-breakpoint
17
+
18
+ -- Backfill role/scope from legacy `type` so the 948 production rows land on
19
+ -- sensible non-default values. Rows with type=NULL are treated as 'task'.
20
+ UPDATE `tasks` SET `scope` = 'project' WHERE `type` = 'epic';--> statement-breakpoint
21
+ UPDATE `tasks` SET `scope` = 'feature' WHERE `type` = 'task' OR `type` IS NULL;--> statement-breakpoint
22
+ UPDATE `tasks` SET `scope` = 'unit' WHERE `type` = 'subtask';--> statement-breakpoint
23
+
24
+ -- Experiments side-table keyed 1:1 to tasks.id for role='experiment' rows.
25
+ CREATE TABLE IF NOT EXISTS `experiments` (
26
+ `task_id` TEXT PRIMARY KEY REFERENCES `tasks`(`id`) ON DELETE CASCADE,
27
+ `sandbox_branch` TEXT,
28
+ `baseline_commit` TEXT,
29
+ `merged_at` TEXT,
30
+ `receipt_id` TEXT,
31
+ `metrics_delta_json` TEXT,
32
+ `created_at` TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
33
+ `updated_at` TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP
34
+ );--> statement-breakpoint
35
+ CREATE INDEX IF NOT EXISTS `idx_experiments_merged` ON `experiments` (`merged_at`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cleocode/cleo",
3
- "version": "2026.4.96",
3
+ "version": "2026.4.98",
4
4
  "description": "CLEO CLI — the assembled product consuming @cleocode/core",
5
5
  "type": "module",
6
6
  "main": "./dist/cli/index.js",
@@ -29,14 +29,14 @@
29
29
  "tree-sitter-ruby": "^0.23.1",
30
30
  "tree-sitter-rust": "0.23.1",
31
31
  "tree-sitter-typescript": "^0.23.2",
32
- "@cleocode/core": "2026.4.96",
33
- "@cleocode/cant": "2026.4.96",
34
- "@cleocode/contracts": "2026.4.96",
35
- "@cleocode/lafs": "2026.4.96",
36
- "@cleocode/caamp": "2026.4.96",
37
- "@cleocode/nexus": "2026.4.96",
38
- "@cleocode/playbooks": "2026.4.96",
39
- "@cleocode/runtime": "2026.4.96"
32
+ "@cleocode/caamp": "2026.4.98",
33
+ "@cleocode/contracts": "2026.4.98",
34
+ "@cleocode/cant": "2026.4.98",
35
+ "@cleocode/lafs": "2026.4.98",
36
+ "@cleocode/core": "2026.4.98",
37
+ "@cleocode/playbooks": "2026.4.98",
38
+ "@cleocode/nexus": "2026.4.98",
39
+ "@cleocode/runtime": "2026.4.98"
40
40
  },
41
41
  "engines": {
42
42
  "node": ">=24.0.0"
@@ -67,6 +67,7 @@
67
67
  "postbuild": "node scripts/assert-shebang.mjs",
68
68
  "typecheck": "tsc --noEmit",
69
69
  "test": "cd ../.. && vitest run packages/cleo/src",
70
+ "test:integration": "cd ../.. && vitest run --config packages/cleo/vitest.integration.config.ts",
70
71
  "postinstall": "node bin/postinstall.js"
71
72
  }
72
73
  }