You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bundles 11 merged PRs (#30-#40) since v3.15.4 closing out the
ADR-2244 wiki classification cycle:
Phase 2 #31#32 pilot migration analyzer + 1000-page
verification (96.7% kind-kept, passes target)
Phase 3 #33 stable page IDs (UUID4) + redirect data model
+ backfill CLI
Phase 3.2 #34 handler-layer redirect mechanics (wiki_read
follows transparently, wiki_list/wiki_reindex
exclude stubs, new wiki_rename tool)
Phase 4.1 #35#36 deterministic bulk migration for the 70
known pollution paths (.md.md, timestamp-slug,
path-leak)
Phase 4.2 #37 file-doc re-bucket (8734 pages from notes/
to reference/ with modern frontmatter)
Phase 5 #39 filter auto-generated pages from default
listings; INDEX.md splits human-authored
from auto-gen
Phase 6 #38 producer audit — codebase_analyze output
routes to kind=reference (root-causes the
8734-page misroute)
Phase 6.2 #40 producer audit — wiki_seed_codebase emits
modern kind tags the classifier reads
Security #30 authlib CVE-2026-44681 bump (dependabot #4)
Notes for users:
- Wiki on disk not migrated yet. Apply scripts (in scripts/) are
dry-run by default. Three commands to fully migrate; each is
idempotent and leaves redirect stubs.
- Phases 5/6/6.2 take effect on next MCP restart.
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: .claude-plugin/marketplace.json
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -6,14 +6,14 @@
6
6
},
7
7
"metadata": {
8
8
"description": "Persistent memory and cognitive profiling plugins for Claude Code",
9
-
"version": "3.15.4"
9
+
"version": "3.16.0"
10
10
},
11
11
"plugins": [
12
12
{
13
13
"name": "cortex",
14
14
"source": "./",
15
15
"description": "Persistent memory and cognitive profiling for Claude Code — thermodynamic memory with heat/decay, intent-aware retrieval, biological plasticity, codebase intelligence, and cognitive profiling. 47 MCP tools with enriched schemas. PostgreSQL + pgvector in CLI mode; automatic SQLite fallback in Cowork/sandboxed mode. Curated wiki (ADRs, specs, lessons) with audit-artefact filtering. Consolidate is set-based SQL batched — decay/plasticity/pruning run 100-500× faster on large stores. Workflow graph with caller-qualified CALLS chains rendering full method-to-method dependencies (native tree-sitter, no AP required). Side panel humanized for non-technical users. Ingests codebase analysis (ai-automatised-pipeline) and PRDs (prd-spec-generator) into wiki + memory + knowledge graph. Docker image available.",
filtering, and both producer audits. The wiki classification redesign
14
+
that started in v3.15.4 is now complete code-side; one-shot apply
15
+
scripts wait for operator authorisation.
16
+
17
+
### Added
18
+
-**Pilot migration analyzer + 1000-page accuracy verification (Phases 2).**`scripts/wiki_pilot_migration.py` walks the live wiki, runs each page through the post-#27/#28 classifier, and reports the proposed 4-tuple alongside the legacy kind. Live 1000-page sample landed at **96.7% kind-kept** — well above the ≥ 90% ADR-2244 acceptance target. The pilot also drove a calibration pass (Nygard heading skeleton detection for ADRs, `architecture` removed from adr.tag_aliases, security audience tightened to require `cryptograph(y|ic)` not bare `crypto`, `adrs` typo dir mapped to `adr`). ([#31](https://github.com/cdeust/Cortex/pull/31), [#32](https://github.com/cdeust/Cortex/pull/32))
19
+
-**Stable page IDs + redirect stubs (Phase 3 foundation).** Every wiki page now carries an immutable `id: <UUID4>` in its frontmatter so renames can leave redirect stubs that preserve inbound links during bulk migration. New modules: `mcp_server.core.wiki_identity` (UUID generation, parsing, validation) and `mcp_server.core.wiki_redirect` (redirect data model, path-based chain resolution with cycle + depth protection, stub authoring). New CLI: `scripts/wiki_backfill_ids.py` (idempotent one-shot that mints IDs on every page lacking one; dry-run by default). Live dry-run shows 9607 pages would receive a fresh id, 1 skipped (no frontmatter). ([#33](https://github.com/cdeust/Cortex/pull/33))
20
+
-**Handler-layer redirect mechanics + `wiki_rename` (Phase 3.2).**`wiki_read` now follows redirect chains transparently (≤ 5 hops; cycles and depth-exhaustion surface as errors). `wiki_list` excludes redirect stubs by default; `wiki_reindex` drops them from `.generated/INDEX.md`. New tool `wiki_rename` performs an atomic move + redirect-stub creation; refuses to operate on pages without a stable id or to chain stubs. ([#34](https://github.com/cdeust/Cortex/pull/34), folded onto main via [#36](https://github.com/cdeust/Cortex/pull/36))
21
+
-**Bulk migration — deterministic renames (Phase 4.1).**`scripts/wiki_bulk_migrate.py` walks three audit-confirmed pollution patterns and renames them via `wiki_rename`: `.md.md` duplicates (58 paths), `decision-created-YYYY-MM-DDt…z` timestamp slugs (10 paths), and `users-cdeust-…`-shaped path-leak slugs (10+ paths). Live dry-run detects 70 pollution paths in the current wiki, all correctly refused pre-backfill. ([#35](https://github.com/cdeust/Cortex/pull/35), folded onto main via [#36](https://github.com/cdeust/Cortex/pull/36))
22
+
-**Bulk migration — file-doc re-bucket (Phase 4.2).**`scripts/wiki_rebucket_file_docs.py` moves the 8,734 `notes/<domain>/<id>-file-*.md` pages produced by `codebase_analyze` to `reference/<domain>/<file-slug>.md` and rewrites the frontmatter to the modern schema (`kind: reference`, `lifecycle: seedling`, `audience: [developer]`, `provenance: auto-generated`, full generator block). Slug is derived from the `file:<path>` tag — canonical even when the on-disk filename was truncated to `98817-file-....md`. Idempotent; collisions resolved via `-<memory_id>` suffix. ([#37](https://github.com/cdeust/Cortex/pull/37))
23
+
-**Auto-generated pages filtered from default views (Phase 5).**`wiki_list` excludes pages with `provenance: auto-generated` by default — at the 8,700+ scale these would dominate any listing. Opt-in via `include_auto_generated=true`. `wiki_reindex` groups INDEX.md into two top-level sections ("Human-authored" and "Auto-generated reference"); deterministic output preserved. Both filters share a single per-page frontmatter read to keep listing latency under 500ms on the 9000-page wiki. ([#39](https://github.com/cdeust/Cortex/pull/39))
24
+
25
+
### Fixed
26
+
-**Producer audit — `codebase_analyze` routes to `kind=reference` (Phase 6).** The bare `codebase` tag emitted by `codebase_analyze._build_tags` was not in `reference.tag_aliases` (only `code-reference` with a hyphen was), so every file-doc page routed to `kind=explanation` via the legacy-fallback path — the producer-side root cause of the 8,734-page misroute that Phase 4.2 has to clean up. Adding `codebase` to the alias list closes the leak. ([#38](https://github.com/cdeust/Cortex/pull/38))
27
+
-**Producer audit — `wiki_seed_codebase` emits modern kind tags (Phase 6.2).**`_kind_for(rel_path)` used to return legacy kind names (`spec`, `convention`, `lesson`, `note`); the call-site wrote them as `kind:<value>` tags that the classifier never read. Now returns modern kind names that are themselves tag aliases (`adr`, `rfc`, `explanation`), and the tag list emits the bare name plus `imported` (provenance hint) — both forms the classifier picks up. ([#40](https://github.com/cdeust/Cortex/pull/40))
28
+
29
+
### Security
30
+
-**`authlib` 0.7.0 → 1.7.2** — Dependabot alert #4 (CVE-2026-44681 / GHSA-r95x-qfjj-fjj2). Unauthenticated open redirect in `OpenIDImplicitGrant` / `OpenIDHybridGrant` when the `openid` scope is omitted. Cortex is not an OIDC authorization server so the vulnerable code paths are never invoked, but the bump closes the alert and protects downstream applications that vendor Cortex's `uv.lock`. ([#30](https://github.com/cdeust/Cortex/pull/30))
31
+
32
+
### Notes for users
33
+
-**The wiki on disk has not been migrated yet.** All apply scripts are dry-run by default. To realise the cleanup:
34
+
```bash
35
+
python scripts/wiki_backfill_ids.py --apply # mint 9607 stable IDs
36
+
python scripts/wiki_bulk_migrate.py --apply # rename the 70 polluted paths
37
+
python scripts/wiki_rebucket_file_docs.py --apply # move the 8734 file-docs
38
+
```
39
+
Each step is idempotent. Every move leaves a redirect stub so inbound links continue to resolve via `wiki_read`.
40
+
- **Phase 5 + 6 + 6.2 take effect on next MCP restart.** Phase 5 changes how listings render; Phase 6 + 6.2 fix the producers so new writes go to the right place without further intervention.
41
+
- The full migration plan (Phases 1–6, including the parts that landed in v3.15.4) is captured in ADR-2244 inside the methodology wiki. The literature survey backing the schema design is at `docs/research/wiki-classification-survey.md` — GRADE certainty: moderate (strong convergence across 14 surveyed taxonomies, no empirical comparison study).
0 commit comments