feat: core kit — trim to the core engine + honest README + tests that run - #21
Merged
Merged
Conversation
Ship only the core memory engine. Removes leaf subsystems (confirmed non-load-bearing by reverse-dep scan) and unwires them from entrypoints. Removed: viewer/SSE, observability instrumentation dir, conflict, confidence, OCR, eval harness, hooks/plugins, notion-sync, archive/encryption, privacy-br (LGPD), telemetry/shadow-tracker, and the server-deps wiring for those. Entrypoints unwired (core routes/commands/tools preserved): - api-server.ts: dropped evals/telemetry/shadow routes + static dashboard + eval-metrics route; kept obs health/recent-ops/canary-tail + all core routes. - wire-up.ts: kept POST /api/answer only. - index.ts: removed sync-notion + notion calls in consolidate/retry-failed. - mcp-server.ts: unchanged (no removed tools were registered). - lib/ingest-router.ts: removed OCR probe/enqueue branch (kept entity/markdown dispatch); neutralized pdf-scanned kind. Deps: removed @google-cloud/documentai (OCR-only); moved @xenova/transformers to optionalDependencies (reranker is opt-in, kept). Build/test: tsconfig declaration:false; added tsconfig.test.json; test script now compiles + runs tests (was a silent no-op). Updated OpenAI provider conformance expectations (now a live provider → MissingKeyError, not NotImplementedError); fixed .ts->.js test import specifiers; portable tmp dirs; lazy Gemini provider construction so import is key-free. Tarball: 597.8kB/459 files -> 245.5kB/111 files. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ser_version Closes the 5 latent (scrub-induced) test failures surfaced once tests actually compile/run. Same pattern as the kg_entities.attributes fix. FIX 1 — kg_relations.relation_reason (edge-typing, 4 fails): - knowledge-graph.ts: add `relation_reason TEXT DEFAULT 'unknown'` to the kg_relations CREATE TABLE; idempotent ALTER + backfill + CREATE INDEX idx_kg_relations_reason for pre-existing DBs. - db.ts migrateToV8: materialize the canonical KG schema (kg_entities + kg_relations with relation_reason + indexes) so a clean install's getDb() always provides it. Without this, impact.ts / lib/spo-injection.ts / kg-* crash with "no such table: kg_relations" on a fresh DB before any KG write (ensureGraphTables ran lazily only on KG ops). Restores the column the consumers read instead of cutting them. FIX 2 — pragma-alignment (1 fail): - db.ts ensureSchema: set `PRAGMA user_version = SCHEMA_VERSION` on every call, including the early-return path (meta.schema_version is source of truth). Covers recovery DBs whose user_version was manually reset to 0 — re-open re-bumps the PRAGMA without reprocessing migrations. Idempotent. Result: npm test 586 pass / 0 fail / 4 skipped (E2E/key-gated + vec0-absent). Build clean. No README/claims/version changes. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Multi-provider: state what's real (gemini + any OpenAI-compatible, LLM & embeddings) vs interface-only (anthropic/voyage). Remove the Anthropic example that throws NotImplementedError. Add scope note: KG/consolidate/digest/query-expansion still call Gemini directly. - Numbers: add footnotes qualifying LoCoMo (retrieval metric vs Mem0 F1), LongMemEval 1.0 (oracle retrieval ceiling, not inference; ~68% standalone), KG-path 769x ($0 SQL path vs Mem0 Cloud incl. inference), <$11/mo (Hostinger + AI Studio free tier), +78.8% (vs internal baseline). - Badges: 'oracle validated' -> 'retrieval ceiling'; tests badge label -> 'tests pass' (586 passing/0 failing, now that tests actually run); aria/title updated. - De-personalize: drop persona names + /root from NOX_AGENTS default in npm README. Genericize schema-init line.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pre-launch "core kit" pass. Trims the public package to the core memory engine, makes the test suite actually run, fixes latent scrub bugs, and aligns the README with reality. Source of truth is the VPS, so trimming here loses nothing.
Trim (D1 — core kit)
Removed enterprise/nicho subsystems (leaves only; reverse-dep scan confirmed no core dependency): viewer, observability, conflict, confidence, OCR (+
@google-cloud/documentai), eval harness, hooks/plugins, notion-sync, telemetry, archive/encryption, privacy-br. Kept core: ingest/search (BM25+vec+RRF)/embed, salience, KG, reflect +/api/answer,/api/brief, memory ops, op-audit, generic privacy, regex-extract, CLI/MCP/HTTP.Tests now run (were a silent no-op)
tsconfigexcluded tests but the script globbeddist/__tests__→ 0 tests, false-green CI. Fixed withtsconfig.test.json+ realtestscript. Result: 590 tests, 586 pass, 0 fail, 4 skip (skips = E2E key-gated).declaration:false(drops 228 unused .d.ts).npm audit fix(4 high).@xenova/transformers→ optionalDependency.Latent bugs fixed (surfaced by enabling tests)
kg_relations.relation_reason+kg_entities.attributesmissing on clean install →kg-extract/impact/spocrashedno such table/column. Materialized canonical KG schema inmigrateToV8.PRAGMA user_versionnow always synced inensureSchema.README honesty (D2 + D4)
anthropic/voyage). Removed the Anthropic example that throws. Added scope note (KG/consolidate/digest/query-expansion still call Gemini directly).NOX_AGENTSdefault).Deferred (not blockers): REPRODUCE.md (gate for the HN/Reddit post, done with the campaign), full provider routing of the remaining Gemini paths.