原始 JSON 报告 机器可读
{
"data": {
"repo": {
"topics": [
"ai-memory",
"ai-tools",
"anti-hallucination",
"graph-database",
"graphrag",
"hebbian-learning",
"knowledge-graph",
"mcp",
"mcp-server",
"model-context-protocol",
"pagerank",
"postgresql",
"rag",
"semantic-search",
"vector-search",
"exponential-decay",
"rust",
"npm-package",
"pypi-package",
"episodic-memory"
],
"is_fork": false,
"size_kb": 4578,
"has_wiki": false,
"homepage": "https://registry.modelcontextprotocol.io",
"languages": {
"Rust": 910884,
"Shell": 16630,
"Python": 48915,
"PLpgSQL": 15765,
"Dockerfile": 3455,
"JavaScript": 8341
},
"pushed_at": "2026-07-17T17:53:44Z",
"created_at": "2026-03-08T06:23:50Z",
"owner_type": "User",
"updated_at": "2026-07-17T17:53:27Z",
"description": "Persistent memory MCP server for AI agents — Rust, 19 tools, knowledge graph, Hebbian learning, episodic memory, contradiction detection, prospective triggers, Bayesian calibration, zero-config Docker setup.",
"is_archived": false,
"is_disabled": false,
"license_spdx": "AGPL-3.0",
"default_branch": "main",
"license_spdx_raw": "AGPL-3.0",
"primary_language": "Rust",
"significant_languages": [
"Rust"
]
},
"owner": {
"blog": "leandropatodo@gmail.com",
"name": "Leandro Pérez G.",
"type": "User",
"login": "LeandroPG19",
"company": null,
"location": "Mexico-Guanajuato",
"followers": 12,
"avatar_url": "https://avatars.githubusercontent.com/u/151863062?v=4",
"created_at": "2023-11-23T16:17:27Z",
"is_verified": null,
"public_repos": 21,
"account_age_days": 972
},
"license": {
"state": "standard",
"spdx_id": "AGPL-3.0",
"raw_spdx": "AGPL-3.0",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "v0.15.0",
"kind": "minor",
"published_at": "2026-07-17T17:43:32Z"
},
{
"tag": "v0.14.1",
"kind": "patch",
"published_at": "2026-07-15T16:24:16Z"
},
{
"tag": "v0.14.0",
"kind": "minor",
"published_at": "2026-07-15T14:15:26Z"
},
{
"tag": "v0.13.1",
"kind": "patch",
"published_at": "2026-07-14T05:36:19Z"
},
{
"tag": "v0.13.0",
"kind": "minor",
"published_at": "2026-07-14T04:50:35Z"
},
{
"tag": "v0.12.0",
"kind": "minor",
"published_at": "2026-07-14T01:10:31Z"
},
{
"tag": "v0.11.2",
"kind": "patch",
"published_at": "2026-07-13T18:16:56Z"
},
{
"tag": "v0.11.1",
"kind": "patch",
"published_at": "2026-07-13T16:21:51Z"
},
{
"tag": "v0.11.0",
"kind": "minor",
"published_at": "2026-07-13T14:54:22Z"
},
{
"tag": "v0.10.0",
"kind": "minor",
"published_at": "2026-06-04T11:08:15Z"
},
{
"tag": "v0.9.3",
"kind": "patch",
"published_at": "2026-05-05T01:07:50Z"
},
{
"tag": "v0.7.0",
"kind": "minor",
"published_at": "2026-04-13T19:37:48Z"
},
{
"tag": "v0.6.0",
"kind": "minor",
"published_at": "2026-04-04T23:55:59Z"
},
{
"tag": "v0.3.0",
"kind": "minor",
"published_at": "2026-03-28T08:23:12Z"
}
],
"recent_commits": [
{
"oid": "d5a69ead36de3d81c70164134e140844ed436c6a",
"body": "…s 100-char cap\n\nThe updated description (117 chars) failed publish with a 422:\n\"expected length <= 100\". Shortened to 89 chars.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMC7oU1y3rb3DxCDSBnK74",
"is_bot": false,
"headline": "fix(release): shorten server.json description under the MCP Registry'…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-17T17:53:17Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "43051a316cdfeee5564721a0367a5fd038c80afb",
"body": "…itter codegraph\n\nCargo 0.15.0 · npm 0.15.0 · PyPI 1.17.0\n\nSummary of everything in this release (see CHANGELOG.md for the full\nwrite-up): the server no longer dies when PostgreSQL is unreachable at\nstartup (the actual reason Glama's quality check never went green),\ngit hooks that keep the memory gr\n[…]\nEL 9), and 22 bugs found and fixed\nin a self-audit of all of the above.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMC7oU1y3rb3DxCDSBnK74",
"is_bot": false,
"headline": "chore(release): 0.15.0 — git-native sync, relation provenance, tree-s…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-17T17:16:11Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "991423b3114ac3a5e19ce97fdd903d1df0d48d25",
"body": "The prebuilt binary required glibc >= 2.39 (compiled on ubuntu-latest's\nrunner), which doesn't exist on Debian 12, Ubuntu 22.04, or RHEL 9 —\nstill common server distros. Anyone on one of those got a cryptic\nlibc.so.6 error from `npx cuba-memorys` / `pip install cuba-memorys`\nand most likely just gav\n[…]\ny\nlinked per ldd, --version and the MCP initialize handshake both work.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMC7oU1y3rb3DxCDSBnK74",
"is_bot": false,
"headline": "fix(release): build the Linux x64 binary against musl, not glibc",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-17T17:03:17Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "5c2c42392163395da535b8f26460824e0ecf6640",
"body": "…1 fixed directly)\n\n- codegraph build always resolved project_id=None (globally unscoped):\n crate::session::project_id() is only ever set by the MCP handlers\n (cuba_proyecto/cuba_jornada), never by this standalone CLI process\n or the git hook that invokes it. Added --project NAME, falling back\n \n[…]\n new, never-cleaned-up observation for every\nunchanged symbol below it.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMC7oU1y3rb3DxCDSBnK74",
"is_bot": false,
"headline": "fix(codegraph): close 6 gaps found in self-audit (5 from a workflow, …",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-17T16:34:43Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "4435d7167ce32078491193e8119cdfbef220c5d1",
"body": "A relation first written by predict(persist=true) as\nprovenance='predicted' stayed labeled 'predicted' forever even after a\nhuman explicitly asserted it via create — the ON CONFLICT DO UPDATE\nclause only touched strength/last_traversed. Found in self-audit,\nadversarially verified.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMC7oU1y3rb3DxCDSBnK74",
"is_bot": false,
"headline": "fix(graph): create() didn't reset provenance on an existing relation",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-17T16:34:22Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "dde98ed03278e001493ce8db26da53f3b841dfcd",
"body": "- RelationRow had no provenance field, so migration 0035's\n extracted/predicted/inferred tag was silently dropped on every\n export and import — a relation persisted as 'predicted' round-tripped\n through sync as unlabeled/defaulted, losing the distinction entirely.\n- export() never removed per-ite\n[…]\nas\n hardcoded to DO NOTHING, so overwrite behaved identically to skip.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMC7oU1y3rb3DxCDSBnK74",
"is_bot": false,
"headline": "fix(sync): close 3 gaps in cuba_sync export/import found in self-audit",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-17T16:34:17Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "08c6ac3e4fc3ef7fc8346a7091b966f48ec13d18",
"body": "…in self-audit\n\n- install() never checked the exit status of the two `git config`\n calls that register the merge driver — a failing one (e.g.\n read-only .git/) was silently swallowed and install() still printed\n \"merge driver: configured\".\n- merge_driver()'s path dispatch only recognized entity f\n[…]\nses per finding,\n2+ agreeing before treating it as real) before fixing.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMC7oU1y3rb3DxCDSBnK74",
"is_bot": false,
"headline": "fix(sync): close 7 gaps in hook install/uninstall/merge-driver found …",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-17T16:34:08Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "90fc53f6ff89988f8360fb068b82e225387101a9",
"body": "- linkedin_setup.py's local callback server (localhost:8765) served\n exactly one request via handle_request() called once. A stray\n malformed/non-HTTP connection (a probe, a health check, another dev\n tool) never reaches do_GET, so it consumes the one-shot listener\n before LinkedIn's real redire\n[…]\nitted\n REDDIT_REFRESH_TOKEN, the variable that actually gates posting.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMC7oU1y3rb3DxCDSBnK74",
"is_bot": false,
"headline": "fix(secure): close 2 gaps in the OAuth scripts found in self-audit",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-17T16:33:57Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "fa3f718b23ddd802e0d9ec9095a8e140bcbd321f",
"body": "…artup path\n\nFollow-up to the fix that lets the server start when PostgreSQL is\nunreachable, found by an adversarially-verified self-review (each\nfinding checked by 3 independent lenses before being treated as real).\n\n- create_lazy_pool could still fail on a syntactically invalid\n DATABASE_URL (not\n[…]\nease hook that resets it on every release, not just on\n first connect.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMC7oU1y3rb3DxCDSBnK74",
"is_bot": false,
"headline": "fix(startup): close 3 gaps a self-audit found in the Postgres-down st…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-17T16:33:50Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "772c466f9664ba7c862bd7886938f4bfe13b7682",
"body": "…ures\n\n- hook uninstall: was missing entirely — install had no way back short of\n hand-editing .git/hooks/*, .git/config, and .gitattributes. Removes\n exactly what install added; leaves a pre-existing hook's own content\n before the marker untouched (tested).\n- hook install --with-codegraph: the g\n[…]\ne parameter (validated against\n VALID_RELATION_TYPES, same as create).\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMC7oU1y3rb3DxCDSBnK74",
"is_bot": false,
"headline": "fix: close 3 completeness gaps found in a self-review of the new feat…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-16T17:39:22Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "a1dfabd4ac083a306a5a232410d3b8bcbccfc5ae",
"body": "Forgot to run this before the last three commits — cargo fmt --check\nwas failing CI on formatting alone, everything else was green.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMC7oU1y3rb3DxCDSBnK74",
"is_bot": false,
"headline": "style: cargo fmt",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-16T16:36:29Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "85ef92128460bd7aa620fdfaa39b4ae149317a3e",
"body": "The biggest structural gap versus Graphify-style tools: they extract a\nreal dependency graph from source (calls/imports/inherits) via\ntree-sitter, deterministic and LLM-free. cuba-memorys had no code\nunderstanding at all — only what an agent chose to write down by hand.\n\n`cuba-memorys codegraph buil\n[…]\n40\nresolved call edges, 393 import statements, 0 files failed to parse.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMC7oU1y3rb3DxCDSBnK74",
"is_bot": false,
"headline": "feat(codegraph): tree-sitter code parsing folded into the existing graph",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-16T16:27:41Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "c7ce7f070c5277f5caa58d17a3fc3413e1cbd2da",
"body": "Closes another gap with Graphify, whose edges carry an EXTRACTED/INFERRED\nconfidence tag so callers can tell a graph fact from a graph guess.\ncuba_puente already drew that line internally (create persists an\nassertion, predict only ever returned Adamic-Adar suggestions) but the\nschema made every row\n[…]\n, which is what predict has always\ndone by default and continues to do.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMC7oU1y3rb3DxCDSBnK74",
"is_bot": false,
"headline": "feat(graph): provenance tag on relations — extracted vs predicted",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-16T16:01:06Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "1cc619116074d40515e8dd1833af6c12ae95b266",
"body": "Closes the gap with tools like Graphify that keep a code graph in sync\nautomatically on every commit instead of relying on the agent to\nremember to export.\n\n`cuba-memorys sync <export|import|diff|status>` exposes the existing\ncuba_sync engine as a CLI command, so it can be driven from git hooks\nwith\n[…]\nive\nproduction corpus into a scratch repo before this guard was added.)\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMC7oU1y3rb3DxCDSBnK74",
"is_bot": false,
"headline": "feat(sync): git hooks + structural merge driver for the knowledge graph",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-16T15:51:17Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "2e8503a9ea7da38fdfb290dc8782246f05533b08",
"body": "The check job sets working-directory: rust for every step by default,\nso `node npm/install.test.js` was resolving to rust/npm/install.test.js\n— a path that has never existed, since the npm wrapper lives at the\nrepo root. This has failed CI on every push since at least the 0.14.1\nrelease; the actual Rust checks (fmt, clippy, test, audit) were always\ngreen.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMC7oU1y3rb3DxCDSBnK74",
"is_bot": false,
"headline": "fix(ci): run the npm smoke test from the repo root, not rust/",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-16T15:02:00Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "23b35eb0ba4bc4dc8fe784b26ae83c4f406c831d",
"body": "…sh token\n\nReddit's password grant meant REDDIT_PASSWORD sat in repo secrets in\nplaintext and broke under 2FA. reddit_setup.py now does the OAuth\nauthorization_code dance (duration=permanent, scope=submit only) and\nwrites the resulting refresh token straight to `gh secret set` — never\nprinted, never\n[…]\night to `gh secret set` instead of being\nprinted for manual copy-paste.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMC7oU1y3rb3DxCDSBnK74",
"is_bot": false,
"headline": "fix(secure): stop storing the raw Reddit password, use a scoped refre…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-16T14:59:40Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "1d8965bc2658cf48f59b92aea0b4c68c70e06ee5",
"body": "…he protocol\n\nrun_mcp() propagated create_pool's error with `?`, so an unreachable\ndatabase made the process exit(1) before it could answer initialize or\ntools/list. Glama's quality check boots the container without a real\nDATABASE_URL to catalog the tools, so this is why it stayed stuck on\n\"not tes\n[…]\ntays alive; cargo test (236 tests) stays green against a real\ndatabase.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01AMC7oU1y3rb3DxCDSBnK74",
"is_bot": false,
"headline": "fix(mcp): start without PostgreSQL instead of dying before speaking t…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-16T14:59:28Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "a5dc2d44de531567a96d311586e80b88ea828151",
"body": "…migrations\n\nCargo/npm/server 0.14.1 · PyPI 1.16.1. Corrective release over 0.14.0, which\nshipped a migration checksum drift that broke startup against any pre-0.14\ndatabase. Bundles:\n- fix(gpu): models runtime --gpu installs CUDA providers; doctor reports real GPU state (c13dd85)\n- fix(migrations):\n[…]\ncomments — migrations are immutable once applied (a245f62)\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01Jab7HsRHVDiZnqzrvsSrFn",
"is_bot": false,
"headline": "chore(release): 0.14.1 — GPU providers, honest GPU doctor, immutable …",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-15T16:14:01Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "a245f62ebae2c72d033c62df054236630bc3c62d",
"body": "… once applied\n\nCommit e96df5d stripped comments from 33 already-published migration files as\npart of the no-inline-comments sweep. That changed each file's SHA-384 checksum,\nand sqlx validates the checksum of every applied migration at startup: any\ndatabase created before 0.14 (i.e. every real inst\n[…]\nr-byte (33/33), and migration 0034\napplies cleanly on top.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01Jab7HsRHVDiZnqzrvsSrFn",
"is_bot": false,
"headline": "fix(migrations): restore original comments — migrations are immutable…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-15T15:52:22Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "c13dd856e1352264ad7733184a6685ad5bbd25d4",
"body": "…s real GPU state\n\ndownload_runtime bailed early whenever any libonnxruntime already existed, so\n`--gpu` on a machine that already had the CPU runtime was a silent no-op. And\nextract_library only pulled the main shared object, never\nlibonnxruntime_providers_cuda.so / _providers_shared.so, so even a \n[…]\n, doctor loads all\nthree models on CUDA, peak 3.8 GB VRAM.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01Jab7HsRHVDiZnqzrvsSrFn",
"is_bot": false,
"headline": "fix(gpu): models runtime --gpu installs CUDA providers; doctor report…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-15T15:17:38Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "2de896680c678e85beabf59ad102aeebb3eba487",
"body": "…mit anterior\n\nEl commit del fix anterior falló el git add (incluía scripts/create-app-role.sql, ya\nmovido), así que secure_cli.rs se quedó con el include_str viejo apuntando a un archivo\nque ya no existe — rompiendo TODOS los builds, no solo aarch64. Este commit sí lleva el\npath local a secure_role.sql.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_014niDVZavMbtqvqwp5Vpy72",
"is_bot": false,
"headline": "fix(secure): commitear el path de include_str que quedó fuera del com…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-15T05:04:13Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "66481ab231e75c91a35facc6392e38052c7d8ab4",
"body": "…e aarch64\n\n`include_str!(\"../../scripts/create-app-role.sql\")` apuntaba desde rust/src a la raíz\ndel repo. Los builds nativos (Linux x64, Windows, macOS) tienen todo el árbol montado y\ncompilaban; el cross-build de aarch64 corre en un contenedor que monta sólo rust/, así\nque scripts/ no existía ahí\n[…]\nte\nmismo run, así que ese riesgo quedó descartado de paso.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_014niDVZavMbtqvqwp5Vpy72",
"is_bot": false,
"headline": "fix(secure): el include_str salía del crate y rompía el cross-build d…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-15T04:58:18Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "fabd5c184f3ce69ab726f1f5766c93d3c8593e0e",
"body": "…er +92%, cross-platform\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_014niDVZavMbtqvqwp5Vpy72",
"is_bot": false,
"headline": "merge: v0.14.0 — modos (local/red/completo), GPU, procedencia, rerank…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-15T03:57:28Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "173b494486a6cd2216758e55e6c851ff5de7e6fe",
"body": "…r fin rinde\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_014niDVZavMbtqvqwp5Vpy72",
"is_bot": false,
"headline": "release: v0.14.0 — modos de funcionamiento, GPU, y el reranker que po…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-15T03:57:28Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "e96df5d4e53e16154bddcbde7de9475266f4dd63",
"body": "…ripts\n\nCompleta el estándar sin-comentarios en el resto del proyecto: los tests (Rust), las\nmigraciones SQL, los wrappers de npm, Cargo.toml y los scripts .py/.sh. src/ ya estaba\nlimpio; esto cierra tests (221), SQL (333), scripts (140) y Cargo.toml (52).\n\nVerificado sin romper nada: build y tests \n[…]\nero a una BD nueva (34 migraciones, 27 tablas, sin dirty).\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_014niDVZavMbtqvqwp5Vpy72",
"is_bot": false,
"headline": "style: quitar comentarios de tests, migraciones, npm, Cargo.toml y sc…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-15T03:46:53Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "9063f6dc8fd1253e128d5e4adc7a4d6e7631f0aa",
"body": "…-lotes de 16\n\nEl batching metía los 50 candidatos en una sola pasada [50, seq], y con un cross-encoder\nXLM-RoBERTa-large en CPU eso genera activaciones de varios GB: el runtime nativo no daba\nun error, segfaultaba (exit 139). El eval con reranker crasheaba en vez de correr.\n\nscore_pairs ahora proce\n[…]\n por defecto degrada a RRF; el +92% se materializa en GPU.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_014niDVZavMbtqvqwp5Vpy72",
"is_bot": false,
"headline": "fix(rerank): segfault del reranker con batch grande — procesar en sub…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-15T03:08:24Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "35382b7a68c8fe6a797b3c3f8a19e2fbd7925b07",
"body": "…rys secure)\n\nLa app corría como superuser, que en Postgres ignora RLS y puede alterar el audit_log:\nel aislamiento por proyecto y la trazabilidad append-only quedaban decorativos. El rol\nno-superuser cuba_app, las policies y el mecanismo CUBA_SKIP_MIGRATIONS ya existían, pero\ncrear el rol era un pa\n[…]\ntodo en modo red, donde varias\nmáquinas comparten la base.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_014niDVZavMbtqvqwp5Vpy72",
"is_bot": false,
"headline": "feat(secure): rol cuba_app sin superuser para RLS efectivo (cuba-memo…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-15T01:22:40Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "35b8aa0640a14162d56ce4dd80ffe08f5fdaa0ad",
"body": "README con la sección de modos (local/red/completo), el nuevo `cuba-memorys models`\n(reemplaza los .sh), la aceleración GPU, y \"dos máquinas una memoria\" (Supabase/Neon +\nCUBA_NODE_NAME). Tabla de env vars con CUBA_MODE, CUBA_NODE_NAME, CUBA_RERANKER_PATH.\nReferencias a los download_*.sh borrados co\n[…]\na 15\n(añadido models). Entrada de CHANGELOG para la tanda.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_014niDVZavMbtqvqwp5Vpy72",
"is_bot": false,
"headline": "docs: modos de funcionamiento, subcomando models, GPU y procedencia",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-15T01:10:28Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "a38ee07083e98836c5cec848d24ac13d97fffbfd",
"body": "… completo\n\nEl reranker mide +92% de calidad pero en CPU tarda decenas de segundos por búsqueda.\nEn GPU es instantáneo, y ahí el modo completo deja de tener un coste de latencia.\n\ncrate::gpu::configure() registra los execution providers compilados en orden —CUDA,\nluego DirectML— y ort cae al siguien\n[…]\nte. La aceleración\nreal se verifica en la máquina con GPU.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_014niDVZavMbtqvqwp5Vpy72",
"is_bot": false,
"headline": "feat(gpu): auto-detección de GPU (CUDA → DirectML → CPU) para el modo…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-15T01:06:23Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "31e39354cdcee0f5223583aef60896efaea8be4e",
"body": "Nuevo estándar: código limpio y auto-explicativo, el porqué en los mensajes de commit.\nEste barrido quita las ~3100 líneas de comentario restantes en src/ (los módulos que no\nse tocaron esta sesión). build, clippy --all-targets y los tests unitarios siguen en\nverde — sólo se quitaron comentarios, ninguna línea de código.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_014niDVZavMbtqvqwp5Vpy72",
"is_bot": false,
"headline": "style: quitar todos los comentarios inline del código",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-15T00:39:00Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "57d4240e84283a844d8a78aefcdb0b163ccb3daa",
"body": "…mentarios\n\n## CUBA_MODE: tres presets de funcionamiento\n\nUn preset que configura conexión y capacidades a la vez, en vez de alinear a mano la\nbase de datos, los modelos y la red saliente:\n\n local (default) — Postgres en Docker local, modelos locales, sin red saliente.\n Privado, \n[…]\n y los wrappers de npm. El build y clippy siguen en verde.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_014niDVZavMbtqvqwp5Vpy72",
"is_bot": false,
"headline": "feat: modo de funcionamiento (local | red | completo) + código sin co…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-15T00:07:56Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "897c1a44f28a82d9af597e8dc1d93946ae5983fe",
"body": "…s +92%\n\nA field install on Windows (v0.13.1, from a screenshot) exposed a chain of failures\nthat all shared one shape: something the shell scripts or npm did on Linux quietly did\nnothing on Windows, and the server ran degraded without saying so. This fixes the chain\nand, in the process, finally tur\n[…]\naking a request), and the three shell scripts are deleted.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_014niDVZavMbtqvqwp5Vpy72",
"is_bot": false,
"headline": "feat: cross-platform onboarding, provenance, and a reranker that earn…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-14T23:08:37Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "ca96dc1f22bf572b16ee49d49a5d3bf0d1e664df",
"body": "Found by installing it, not by trusting the green checkmark.\n\n## cuba_docs shipped to nobody\n\nIt was gated behind a Cargo feature that is off by default — and the published binaries\nARE the default build. The tool existed for an entire release and could not be invoked\nby a single person who installe\n[…]\nstart doubting the message instead of their configuration.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_014niDVZavMbtqvqwp5Vpy72",
"is_bot": false,
"headline": "release: v0.13.1 — two things v0.13.0 shipped that nobody could use",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-14T05:27:54Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "33b23863f0b725f6407f4c3fef79d48c8f52b86b",
"body": "Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_014niDVZavMbtqvqwp5Vpy72",
"is_bot": false,
"headline": "merge: v0.13.0 — local NLI entailment + cuba_docs",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-14T04:37:04Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "d7d0d1625e934567c3b5601f85485a2209bc4865",
"body": "…lready knew\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_014niDVZavMbtqvqwp5Vpy72",
"is_bot": false,
"headline": "release: v0.13.0 — verify stopped needing an LLM to tell it what it a…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-14T04:37:04Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "483366feeb12e6245b4dfe1c949903678a4e504b",
"body": "demo.sh claimed 13 CLI commands (there are 14) and 210 tests (there are 234). Small\nnumbers, but they are the ones a stranger checks first, and a README that cannot count\nits own commands is not evidence of a project that measures things.\n\nAlso notes the tool count moves to 29 with --features docs.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_014niDVZavMbtqvqwp5Vpy72",
"is_bot": false,
"headline": "docs: the demo was advertising a CLI and a suite that no longer exist",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-14T04:30:24Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "7e9d1dd7d95963767ed9a422df9c01a4c773f95d",
"body": "A memory server can tell you what you decided. It cannot tell you what signature\n`tokio::spawn_blocking` shipped with last month — and a model confidently writing an\nAPI that was renamed two versions ago is a failure memory cannot prevent, because the\nmemory of the API is the thing that is wrong.\n\n`\n[…]\n one that gates the merge is `cloud_metadata_is_rejected`.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_014niDVZavMbtqvqwp5Vpy72",
"is_bot": false,
"headline": "feat(docs): cuba_docs, and the SSRF guard cuba-search never actually had",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-14T04:28:43Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "96a5797cd044f5fe9774b858daec578b40ad6534",
"body": "…ement killed\n\n`cuba_faro mode=verify` handed every claim to an LLM: ~20 s through the `claude`\nCLI, and with no CLI and no MCP sampling, no verdict at all. Entailment is a\nclassification problem, so it is now classified — mDeBERTa-v3-base-xnli on the ONNX\nruntime this crate already links. ~50 ms, o\n[…]\n and from the MCP was hitting two\ndifferent vector spaces.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_014niDVZavMbtqvqwp5Vpy72",
"is_bot": false,
"headline": "feat(verify): decide entailment locally — and three ideas that measur…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-14T03:59:09Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "8c9165c376ef8ecb188cc23fae98800292233791",
"body": null,
"is_bot": false,
"headline": "chore: ignore the eval generator's checkpoint file",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-14T01:02:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5038a426e743af4eae649909ee27c4f40b9cee4e",
"body": "… that lied\n\nCargo 0.12.0 · npm 0.12.0 · PyPI 1.14.0\n\nThe README opened with \"every number in this README measured rather than assumed.\"\nEvery number in it came from a benchmark with ten queries that graded relevance by\nsubstring match and normalized nDCG against what it had retrieved rather than wh\n[…]\nD warnings · 223 tests · audit · integration — all exit 0.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01B7NSDXYAiPYahRcGiU9cqg",
"is_bot": false,
"headline": "release: v0.12.0 — the README was publishing numbers from a benchmark…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-14T00:51:46Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "7c7e7e7a1844a64ec36c2e9f66319ebd395c015f",
"body": "…to measure\n\nTwo published findings are withdrawn, and the reranker turns out to have never run.\n\n## The benchmark was broken three ways, not one\n\nIt had TEN queries — a 95% interval of roughly ±0.12 and a minimum detectable effect\nnear 0.25 nDCG. That much was already known. What was not known:\n\n**\n[…]\nh zram.\n\nfmt · clippy -D warnings · 206 tests — all clean.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01B7NSDXYAiPYahRcGiU9cqg",
"is_bot": false,
"headline": "fix(eval): the benchmark could not measure what this project claimed …",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-13T23:57:16Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "3bc1444c278b102d3dbc53e42928d514344848c8",
"body": "CC BY-NC 4.0 was the wrong license for this. Creative Commons themselves\nrecommend against using their licenses for software: they do not distinguish\nsource from binary and carry no patent grant. Worse, the NonCommercial clause\nmade cuba-memorys unusable by the people it is written for — a memory se\n[…]\nmpany.\n\nDependencies stay permissively licensed (see rust/deny.toml): our own code can\nbe relicensed later, someone else's cannot.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Relicense under AGPL-3.0",
"author_name": "Leandro Pérez G.",
"author_login": "LeandroPG19",
"committed_at": "2026-07-13T20:08:38Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "3a50e6aeb3d67eaa3cbc1f1d41ac17e69f3316f3",
"body": "Cargo 0.11.2 · npm 0.11.2 · PyPI 1.13.2\n\nI went to update the README and the demo. The demo pointed at verify, and verify\ntold me — with 0.61 confidence — that cuba-memorys is written in Java.\n\n`cuba_faro mode=verify` scored claims by cosine similarity to the retrieved\nevidence. Similarity measures \n[…]\nrnings · 210 tests · audit · build · integration — exit 0.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01B7NSDXYAiPYahRcGiU9cqg",
"is_bot": false,
"headline": "release: v0.11.2 — the anti-hallucination feature was hallucinating",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-13T18:00:15Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "322cf60dd40fa64143dd63ea19651c7a41272e5b",
"body": "…ditionally\n\nMy own test failed CI while passing locally. The reason is the guard it was testing\naround: cronica writes NEITHER vector NOR label when no ONNX model is loaded — a\nhash-fallback vector wearing a real model's name would corrupt search far worse\nthan a missing vector would. CI has no 570\n[…]\nill fails when the constant is put back at the write site.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01B7NSDXYAiPYahRcGiU9cqg",
"is_bot": false,
"headline": "test: the model-tag invariant is conditional, and I asserted it uncon…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-13T16:05:24Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "1c4efc210d03eda838699237b89063153df04ddd",
"body": "Cargo 0.11.1 · npm 0.11.1 · PyPI 1.13.1\n\nBoth are in the same family v0.11.0 set out to eliminate — something breaks and\nnothing says so — which is the point worth keeping: that class of bug is not a list\nyou finish, it is a habit you build.\n\nThe model tag: every write site reached for a `pub const \n[…]\nrnings · 200 tests · audit · build · integration — exit 0.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01B7NSDXYAiPYahRcGiU9cqg",
"is_bot": false,
"headline": "release: v0.11.1 — two bugs found by using v0.11.0, not by testing it",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-13T15:49:30Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "f67f92f2234c274938b111b90232aa1871dd6ed8",
"body": "One observation was missing a vector. The only cure `reembed` offered was to\nrecompute all 1,461 — overwriting 1,460 good vectors to fill one empty. That is not\na maintenance command, it is a threat, and the permission classifier stopped me from\nrunning it on the live brain for exactly that reason.\n\n[…]\nies. Both forms parse now, and an unknown one is an error.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01B7NSDXYAiPYahRcGiU9cqg",
"is_bot": false,
"headline": "fix(reembed): its smallest unit of work was \"everything\"",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-13T15:45:27Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "8ce70c1d9cdc94f4cf5cee85e690f558d3d9b679",
"body": "`embeddings::onnx` exposed a `pub const CURRENT_MODEL = \"multilingual-e5-small\"`\nright next to a `current_model()` that reads CUBA_EMBED_MODEL. Someone wrote that\nfunction precisely to fix this, and documented it — \"Overridable with\nCUBA_EMBED_MODEL so a bge-m3 corpus is tagged correctly\". Then four\n[…]\nrnings · 200 tests · audit · build · integration — exit 0.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01B7NSDXYAiPYahRcGiU9cqg",
"is_bot": false,
"headline": "fix(embeddings): every new memory was stamped with the wrong model name",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-13T15:38:12Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "954c81f97a31ed1056e731c8a833b33af64f4607",
"body": "…have advertised the old release\n\nOne release, one number, four files each holding their own copy of it:\n\n Cargo.toml names the release binaries\n package.json builds npm's postinstall download URL\n pyproject.toml the PyPI version (its own series: 1.{minor+2}.{patch})\n server.json what t\n[…]\nrnings · 200 tests · audit · build · integration — exit 0.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01B7NSDXYAiPYahRcGiU9cqg",
"is_bot": false,
"headline": "fix(release): server.json still said 0.10.0 — the MCP Registry would …",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-13T14:38:15Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "ad09fceeee59bfce2ec9ffd27c9dc54a0f5707dc",
"body": "Three bugs, one root: argument parsing ended in a catch-all that fell through to\nthe MCP server. Anything the binary did not recognise booted the server.\n\n`cuba-memorys --version` therefore connected to PostgreSQL and applied migrations.\nThat is the one command a person runs precisely BECAUSE they d\n[…]\nrnings · 200 tests · audit · build · integration — exit 0.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01B7NSDXYAiPYahRcGiU9cqg",
"is_bot": false,
"headline": "fix(cli): --version ran migrations; npm could launch a different version",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-13T14:26:24Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "4fd75779e204958129a35b3ddedcd979fc3c57f8",
"body": "The E2E job caught what the unit tests could not: making `compact` the default\nshipped a response an agent can read but cannot act on.\n\ncompact carried entity, content, type, importance and score — and no id. Deleting\na memory needs the observation_id (cuba_cronica delete). Reinforcing or correcting\n[…]\ns · unit tests · audit · build · integration — all exit 0.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01B7NSDXYAiPYahRcGiU9cqg",
"is_bot": false,
"headline": "fix(faro): compact left out the id, making every result a dead end",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-13T13:55:22Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "990d2f677b98ce912a34fef9a59a6c80a9ceac14",
"body": "… error hid why\n\nThree defects, one chain, found by actually using the thing.\n\n1. THE MIGRATION SCRIPT HAD A HARDCODED TABLE LIST. It named brain_observations\n and brain_episodes. Migration 0033 then added brain_procedures with its own\n vector column, the script did not know, and that table stay\n[…]\n\nfmt, clippy -D warnings, test, audit, build — all exit 0.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01B7NSDXYAiPYahRcGiU9cqg",
"is_bot": false,
"headline": "fix: a hand-written table list broke the embedding migration, and the…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-13T13:40:59Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "390ef5c771d860032262609f0295de784c5ce043",
"body": "…g 384-d\n\nWarp Terminal keeps its own `~/.warp/.mcp.json` and spawns cuba-memorys from it\nexactly like Claude does. It was not on the audit's list, so it kept launching\n384-d servers against a 1024-d column — vector branch dead, results silently\nlexical — while `setup check` reported \"all configs co\n[…]\nturned a Solid Edge\nVPN decision and a CSS animation note.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01B7NSDXYAiPYahRcGiU9cqg",
"is_bot": false,
"headline": "fix(setup): audit Warp's MCP config too — it was the one still servin…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-13T13:29:38Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "0fd63bf3b695b3f61bf2c9b84ca3b1eeee26afa4",
"body": "cargo audit failed CI — a step my local pre-flight was not running, which is why\nthis reached GitHub instead of being caught here.\n\n quinn-proto 0.11.14 → 0.11.16 RUSTSEC-2026-0185, severity 7.5 (HIGH)\n remote memory exhaustion from unbounded\n \n[…]\n exit 0\n cargo build --release exit 0\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01B7NSDXYAiPYahRcGiU9cqg",
"is_bot": false,
"headline": "security: patch two RUSTSEC advisories in transitive dependencies",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-13T05:16:22Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "39404425a9ade22c3fa82fb4de96e1f902ed8906",
"body": "Two smoke tests were protecting nothing, and one of them failed the release.\n\n`test_all_tools_defined` asserted an exact count — `assert_eq!(tools.len(), 25)`.\nThat is the wrong invariant twice over: it says nothing about WHICH tools exist,\nand it breaks on the one change that is always safe — addin\n[…]\ny -D warnings, and the full suite all pass on exit code 0.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01B7NSDXYAiPYahRcGiU9cqg",
"is_bot": false,
"headline": "test: assert the invariants these tests claimed to assert",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-13T05:04:23Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "7c6e61fd95ae7e4284b8173af391e6983f9dc0f7",
"body": "Version bump across the three channels: Cargo 0.11.0 · npm 0.11.0 · PyPI 1.13.0\n(PyPI keeps its independent offset). The tag must be v0.11.0 — npm/postinstall.js\nfetches the binary from releases/download/v${package.json.version}/.\n\nCHANGELOG documents what landed, and equally what did NOT: the cross\n[…]\nish a version. Waiting for CI to go green on GitHub first.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01B7NSDXYAiPYahRcGiU9cqg",
"is_bot": false,
"headline": "release: v0.11.0 — zero technical debt, ready to publish",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-13T04:56:22Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "19eda8537c56663ca12e7ba20df3d5dcdf035ed3",
"body": "… layers of fix\n\nCaught it live. The MCP was serving visibly worse results than the CLI running\nthe same code: same query, vector_score=0.0 from the server and 0.00766 from the\ncommand line. The reason was a 384-d model talking to a 1024-d column after the\nbge-m3 migration — pgvector rejects every c\n[…]\nstic across runs, degraded=false.\n183 tests, clippy clean.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01B7NSDXYAiPYahRcGiU9cqg",
"is_bot": false,
"headline": "fix: a dimension mismatch made hybrid search silently lexical — three…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-13T04:44:27Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "b521137fd1305ade9c3341057a1be94a54daa75f",
"body": "… v0.11\n\ndocs/ and sandbox/ were never install material. sandbox/ carries /home/leandro\npaths and references to a live brain; docs/ are work plans, not documentation a\nuser needs to run the project; and sandbox/.prod-baseline should never have been\ncommitted. Removed from git with --cached — they st\n[…]\nipts, and the package manifests.\n\n181 tests, clippy clean.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01B7NSDXYAiPYahRcGiU9cqg",
"is_bot": false,
"headline": "chore: remove internal working files from the repo; refresh README to…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-13T04:19:38Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "23cd6a3f225a0fc67b6b0c0d236bbf984fecbda9",
"body": "…lls export\n\nThe taxonomy the field converged on has four stores: episodic (what happened),\nsemantic (what is true), PROCEDURAL (how something is done), and working. cuba\nhad three. Its eight observation types can all record that something IS the case;\nnone of them records how to DO something — how \n[…]\nration 0033 applied to brain: 1443 observations\nuntouched.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01B7NSDXYAiPYahRcGiU9cqg",
"is_bot": false,
"headline": "feat(receta): procedural memory — the fourth memory (ACT-R), with Ski…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-13T03:16:24Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "7d274c35a76ab43fe4b47e83e66aafaf9985a887",
"body": "…dacted\n\nThe redaction tests used the project's REAL Postgres password as their fixture,\nin a PUBLIC repository. A test that asserts secrets never leak has no business\nshipping one.\n\nSwapped for a fake, and parameterized sandbox/env.sh.\n\nNote for the record: `memorys2026` was already public in this \n[…]\n, rotate it — and it does not\nbelong in source either way.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01B7NSDXYAiPYahRcGiU9cqg",
"is_bot": false,
"headline": "security: fake credentials in the tests that prove credentials are re…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-13T02:41:43Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "15b928460c8e8d9ef00128ff9fea6fdccb8c08d5",
"body": "Linux appends \" (deleted)\" to /proc/<pid>/exe when the running image is replaced,\nso the file NAME becomes \"cuba-memorys (deleted)\". The check matched the raw name\nagainst \"cuba-memorys\" and skipped anything else — filtering out precisely the\nprocesses it exists to find.\n\nCaught it on the live machi\n[…]\nbefore comparing. Now: 6 stale processes, correctly named.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01B7NSDXYAiPYahRcGiU9cqg",
"is_bot": false,
"headline": "fix(doctor): the staleness check could not see a stale process",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-13T02:30:59Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "aa9f9e4ecda1eaca5beab42049ceca867ffca4d6",
"body": "Trae dos bloques de trabajo, todo verificado en un sandbox aislado contra una\ncopia de brain, sin que la base viva se tocara en ningún momento.\n\nPLAN A — las 16 mejoras de la investigación de Engram (6-jul), que se habían\nquedado en 1 de 14 ramas cuando aquella sesión se cortó:\n doctor, CLI search/\n[…]\ndo, y con el resultado escrito.\n\n185 tests, clippy limpio.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01B7NSDXYAiPYahRcGiU9cqg",
"is_bot": false,
"headline": "merge: sandbox/all-improvements — Plan A (DX) + Tier 1 (medido)",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-13T02:16:57Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "0a6b8a336e48a73bd2c10f929aa8523dbd8111cb",
"body": "Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01B7NSDXYAiPYahRcGiU9cqg",
"is_bot": false,
"headline": "style: tests after code (clippy)",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-13T02:16:04Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "a2b4d418c8eca3cb1cf6351850574b958c6e1821",
"body": "The CLAUDE.md driving this setup says: \"MANDATORY session start → cuba_jornada\nthen cuba_faro\". And the same file lists forgetting to do it as anti-pattern AP2,\nContext Amnesia — which is the author admitting, in writing, that the instruction\nis not reliable enough to trust. Asking a model to rememb\n[…]\nontext and teaches nothing.\n\n175 tests pass, clippy clean.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01B7NSDXYAiPYahRcGiU9cqg",
"is_bot": false,
"headline": "feat(recall): a hook cannot forget — deterministic session context (AP2)",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-13T02:11:17Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "34e7aee865563170f2d193113788ac530c1ea9d6",
"body": "…it does not earn its place\n\nThe reranker has never run. It was in \"identity fallback\" with no model on disk,\nso the feature existed on paper only. Downloaded bge-reranker-v2-m3, ran it, and\nfound two things.\n\nTHE INTEGRATION COULD NOT HAVE WORKED. faro added `cross_encoder_score * 0.0001`\nto the fu\n[…]\n a 1.1 GB model on a hunch.\n\n172 tests pass, clippy clean.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01B7NSDXYAiPYahRcGiU9cqg",
"is_bot": false,
"headline": "fix(rerank): wire the cross-encoder correctly — then cut it, because …",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-13T01:53:10Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "3e51927abfc5b8a348b6ef7f032a6fdda545a75f",
"body": "…ot earn its place\n\n151 of 259 entities had no relation at all: invisible to PageRank, to community\ndetection, and to multi-hop retrieval. Yet 128 of them appear in a working\nsession beside another entity. The evidence was in the corpus; nothing turned it\ninto an edge.\n\n`cuba-memorys link` proposes \n[…]\nected rather than repeated.\n\n172 tests pass, clippy clean.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01B7NSDXYAiPYahRcGiU9cqg",
"is_bot": false,
"headline": "feat(graph): NPMI auto-linking — and the associative retrieval does n…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-13T01:30:50Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "ed68ec853139a5b4359b298216985c6dc0e78710",
"body": "…o functions lost\n\nAll 25 tool schemas ride in the agent's context on every session: 25,060\ncharacters of JSON, most of it describing maintenance surfaces (REM cycles, the\naudit log, GDPR erasure, Bayesian calibration) an agent never reaches for\nmid-task. It pays that whether it searches memory once\n[…]\nnumber is the measured one.\n\n167 tests pass, clippy clean.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01B7NSDXYAiPYahRcGiU9cqg",
"is_bot": false,
"headline": "feat(tools): progressive disclosure — 67% smaller tool catalogue, zer…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-13T01:06:31Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "1f265594d1ad04313b6bfce792c238e1a9755acd",
"body": "…al calibration\n\nSwitching abstention on for the first time revealed it rejected 100% of\nANSWERABLE queries. Four separate defects, each measured, each fixed.\n\n1. THE EVAL PANICKED on an empty result list. precision_at_k did\n `k.min(len).max(1)` — added to dodge a division by zero — so with zero\n \n[…]\nabstentions, nDCG unchanged.\n164 tests pass, clippy clean.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01B7NSDXYAiPYahRcGiU9cqg",
"is_bot": false,
"headline": "fix(ood): abstention works for the first time — Ledoit-Wolf + conform…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-13T00:53:25Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "53cc2b854584b537462008731c4b1eed4f3410ad",
"body": "… not just quality\n\nThree defects, each invisible without the number that was missing.\n\n1. The token budget counted the wrong thing. It summed each row's FULL content,\n and compact_result afterwards truncated that same content. So the caller's\n 5000-token budget was spent counting text that was \n[…]\nrefuses to answer anything.\n\n159 tests pass, clippy clean.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01B7NSDXYAiPYahRcGiU9cqg",
"is_bot": false,
"headline": "perf(faro,eval): 40% fewer tokens at identical quality; measure cost,…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-13T00:11:59Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "fadc73d5b0c3531225a282b471c45074708759af",
"body": "…red retrieval\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01B7NSDXYAiPYahRcGiU9cqg",
"is_bot": false,
"headline": "docs: final state of the sandbox implementation — 16/16 Plan A, measu…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-12T23:23:36Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "a3e9d25e7518a0805b109a53b04a2e8e3308b887",
"body": "… (A11)\n\nUntil now \"scope\" was a search filter: every query appends project_id, and the\ntenant_isolation policy trusts app.current_project — a session variable the\napplication sets itself. That stops two projects bleeding into each other by\naccident. It is not authorization: nothing said WHO may rea\n[…]\nql).\ndoctor reports it as `runtime_role`.\n\n159 tests pass.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01B7NSDXYAiPYahRcGiU9cqg",
"is_bot": false,
"headline": "feat(rbac): principals × grants, the minimum real authorization model…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-12T23:21:11Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "54ae09dfa4831b3d09f6b40e787dcd309f95dd87",
"body": "The Obsidian export makes the graph browsable; nothing showed the system's own\nstate — which invariants hold, how much of the corpus is reachable, what is\nsilently degraded. This renders the same checks `doctor` runs, plus the shape of\nthe corpus, into one HTML file.\n\nNo web server and no new depend\n[…]\nt, exactly the two we emit.\n\n159 tests pass, clippy clean.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01B7NSDXYAiPYahRcGiU9cqg",
"is_bot": false,
"headline": "feat(dashboard): self-contained read-only HTML view of the brain (A6)",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-12T23:14:13Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "3047404339e1e87474136360575a4b64e209e577",
"body": "…unstable hash\n\npayload_hash claimed sha256 in its docstring and called DefaultHasher in its\nbody — and that is not cosmetic. std's hasher is explicitly NOT stable across\nRust releases (\"should not be relied upon over releases\"), yet this hash is\npersisted in brain_sync_state and compared ACROSS MAC\n[…]\nchars, import reads it back.\n158 tests pass, clippy clean.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01B7NSDXYAiPYahRcGiU9cqg",
"is_bot": false,
"headline": "feat(sync): content-addressed chunks + Transport seam (A9, A10); fix …",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-12T23:08:35Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "66aa6d64f4d8f7d07b63e50164a44eb26c44f220",
"body": "…sign docs (A8, A12, A16)\n\nThe judge sends observation text to an external model — the `claude` CLI, the\nclient's sampling endpoint, or the API. Observations are written by agents about\nreal work, and real work contains connection strings and tokens. The project's\nown security rules forbid logging o\n[…]\ndoes nothing.\n - why the heavy stack, and why NOT SQLite.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01B7NSDXYAiPYahRcGiU9cqg",
"is_bot": false,
"headline": "fix(judge): stop shipping credentials to a third-party LLM (A15) + de…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-12T22:53:35Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "eec5584156b8ebcd901f727d3302f288a58b1a1b",
"body": "…(A7, A14/B3, A3)\n\nsetup — declarative client registration, born from a real bug: ~/.mcp.json had\nONNX_MODEL_PATH, ~/.claude.json did not, so every MCP process spawned from the\nsecond config ran with no embedding model and the vector branch returned an\nempty vec, silently. `setup check` audits every\n[…]\nder a parallel\ntest runner.\n\n143 tests pass, clippy clean.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01B7NSDXYAiPYahRcGiU9cqg",
"is_bot": false,
"headline": "feat(setup,profiles,doctor): client wiring, tool profiles, staleness …",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-12T22:43:03Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "4c4f340a62de5aacc63630afd8ec4b6fa86a6885",
"body": "…A5, A2)\n\nThe brain was invisible: the only way to ask it anything was to ask an LLM to\nask it for you. That is a strange property for a system whose job is to\nremember your work.\n\n cuba-memorys search \"...\" hybrid retrieval, same engine as cuba_faro\n cuba-memorys save <e> \"...\" same dedup/e\n[…]\ny list with 151 singletons.\n\n137 tests pass, clippy clean.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01B7NSDXYAiPYahRcGiU9cqg",
"is_bot": false,
"headline": "feat(cli): human surface — search/save/delete + Obsidian export (A4, …",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-12T22:31:33Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "5840e20c9f4e3520fb0dff6ebf1355085ef4fa0f",
"body": "src/cuba_memorys/ was confirmed orphaned: no [project.scripts] entry\nin pyproject.toml, maturin builds bindings=\"bin\" from rust/Cargo.toml\nonly, and no pyo3/PyModule linkage exists anywhere in rust/src or\nrust/Cargo.toml. It was last touched by the Rust rewrite commit and\nhas been dead weight since.\n[…]\n a broader git grep\nconfirming all remaining cuba_memorys references are the Rust crate's\nown module path (rust/src, rust/tests, rust/examples, RUST_LOG docs),\nunrelated to the removed Python package.",
"is_bot": false,
"headline": "chore: remove dead Python legacy code from pre-Rust-rewrite",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-12T22:17:04Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e76d4a06e46c675225716c5fe73981c49f10b697",
"body": "Every one of the four critical v0.10 bugs was silent: the server kept\nanswering, just wrong. `cuba-memorys doctor` asserts the invariants those\nbugs violated and exits non-zero when the system is lying:\n\n - cuba_or_tsquery present (its absence = zero recall, silently)\n - ONNX model actually loaded\n[…]\nanary: written in the sandbox, absent\nfrom the live brain.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01B7NSDXYAiPYahRcGiU9cqg",
"is_bot": false,
"headline": "feat(doctor): read-only health check + isolated sandbox (A1)",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-12T22:17:04Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "27ad5bdbb07cdc630e80a1bb67ffbb6309bc115e",
"body": "Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_014AckURooVGZsexXPrji9xw",
"is_bot": false,
"headline": "docs: mark 0.7, 1.2, bge-m3 (1.4/5) and 2.1b done, with measured results",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-10T21:50:02Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "03355b737ea6c503aead445a142ce708e62cd359",
"body": "…nomy)\n\nLongMemEval's corpus is conversational (haystack sessions) and can't be ingested\nverbatim into cuba's entity/observation KG, so instead adopt its 5-ability\ntaxonomy in the runnable harness: EvaluationSample gains `ability`\n(question_type) and `abstain`; run_faro_eval reports a per-ability nD\n[…]\n2, abstention=100%,\nknowledge-update=1.00, temporal=0.979.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_014AckURooVGZsexXPrji9xw",
"is_bot": false,
"headline": "feat(2.1b): per-ability eval breakdown + abstention (LongMemEval taxo…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-10T21:47:33Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "1714dbfb8507bb2f227519a31a8b6030bc57f354",
"body": "Decouple the ONNX pipeline from e5-small so a stronger multilingual model can\nbe swapped in by config (no recompile): CUBA_EMBEDDING_DIM (runtime dim),\nCUBA_QUERY_PREFIX/CUBA_PASSAGE_PREFIX (e5 prefixes vs none), CUBA_POOLING\n(mean vs cls), CUBA_EMBED_MODEL (corpus tag). token_type_ids is now passed\n[…]\n),\n+19.5 pts; knowledge-update +36.9. brain never touched.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_014AckURooVGZsexXPrji9xw",
"is_bot": false,
"headline": "feat(5): model-agnostic embeddings + bge-m3 1024-d migration",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-10T21:47:33Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "6c52e25641f25ad8902f4c53576d12289ba3cbe0",
"body": "…yle)\n\nCloses gap #2: cuba resolved conflicts by a cosine threshold. Now the LLM\njudge classifies each candidate vs its most similar existing fact and that\nverdict maps to an explicit operation (cognitive/memory_op.rs): supersedes/\ncontradicts -> Update (supersede old + keep new), complementary/unre\n[…]\nmporal). 6 unit tests for the judgment->operation mapping.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_014AckURooVGZsexXPrji9xw",
"is_bot": false,
"headline": "feat(1.2): explicit ADD/UPDATE/DELETE/NOOP memory operations (mem0-st…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-10T21:26:03Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "1eb944809f238aba0904c73b195a61fd27a295c3",
"body": "…forced\n\nThe MCP ran as superuser `cuba`, which has implicit BYPASSRLS and is an\nimplicit MEMBER of every role, making migration 0017 RLS policies and the\n0016 audit-log tamper guard inert. Fix: run the app as a NOSUPERUSER\nNOBYPASSRLS role `cuba_app` (scripts/create-app-role.sql, idempotent,\ndata-p\n[…]\na_app with CUBA_SKIP_MIGRATIONS=1 and eval runs unchanged.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_014AckURooVGZsexXPrji9xw",
"is_bot": false,
"headline": "fix(0.7): non-superuser runtime — RLS + audit append-only actually en…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-10T21:15:56Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "380e944e1c8d76604ad1e6591c0414de876c62af",
"body": "… sync)\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01E9vbnhcYtrQJhK7UoK2qFx",
"is_bot": false,
"headline": "merge: feat/dimension-aware-sync — Phase 5 readiness (dimension-aware…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-10T17:51:35Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "40c659f3375d3e4c382f5cde8338fb115c84203e",
"body": "Fixes a latent bug and prepares the switch to bge-m3 (1024-d) without touching\ndata. cuba_sync export already wrote each vector at its true length, but import\nhardcoded rec_size = 16 + 384*4, so importing a blob from any non-384 model\n(bge-m3) would misparse and silently skip every vector. Now the m\n[…]\nt, clippy --all-targets -D warnings, 125 unit tests green.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01E9vbnhcYtrQJhK7UoK2qFx",
"is_bot": false,
"headline": "feat(sync): dimension-aware embedding blob; Phase 5 (bge-m3) readiness",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-10T17:51:35Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "8917f9c44b5aff5a11df3f0b01a7d8317044fa2d",
"body": "…date\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01E9vbnhcYtrQJhK7UoK2qFx",
"is_bot": false,
"headline": "merge: feat/knowledge-update-supersede — Phase 4, opt-in knowledge up…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-10T17:45:26Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "c3eee23d1f123c2dfe646561c0a7a531fb7c7a56",
"body": "Adds the \"knowledge update\" ability (LongMemEval dimension; Zep/Graphiti's\nsignature move) on top of cuba's bitemporal supersede. Opt-in\n`supersede_conflicts` on cuba_ingesta auto_extract: for each extracted fact,\nfind the most similar existing observation of the same entity in the\nrelated-but-not-d\n[…]\nt, clippy --all-targets -D warnings, 125 unit tests green.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01E9vbnhcYtrQJhK7UoK2qFx",
"is_bot": false,
"headline": "feat(auto_extract): knowledge-update via supersede (Phase 4)",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-10T17:45:26Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "f3f9f9683572d67dbeee7839794d538f1980af5e",
"body": "Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01E9vbnhcYtrQJhK7UoK2qFx",
"is_bot": false,
"headline": "docs: mark auto_extract (Phase 3) done in the plan",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-10T17:18:19Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "8f6ffe8ed9e923a2261f1644c89f3c1f5f57f005",
"body": "…ampling\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01E9vbnhcYtrQJhK7UoK2qFx",
"is_bot": false,
"headline": "merge: feat/auto-extract-sampling — Phase 3, LLM extraction via MCP S…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-10T17:17:39Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "2cb1f592dfb233b21c1e14f0d30b1e1d6619c627",
"body": "…hase 3)\n\nCloses cuba's biggest gap vs mem0/Zep: it had no automatic extraction, so the\nagent had to remember to call the write tools explicitly (the AP2 Context\nAmnesia failure). New `cuba_ingesta action=auto_extract`:\n\n- Asks the *calling client's* LLM — via MCP Sampling, so $0 and no API key,\n r\n[…]\nippy --all-targets -D warnings, 125 unit tests (+4) green.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01E9vbnhcYtrQJhK7UoK2qFx",
"is_bot": false,
"headline": "feat(ingesta): auto_extract — LLM fact extraction via MCP Sampling (P…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-10T17:17:39Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "f619309a0219fbf2b554fbbe8efb849f663bc43a",
"body": "Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01E9vbnhcYtrQJhK7UoK2qFx",
"is_bot": false,
"headline": "docs: mark associative retrieval (Phase 2) done in the plan",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-10T17:03:47Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "5bd7c8c95840f4ac3ce0fca91204cc88a343e024",
"body": "Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01E9vbnhcYtrQJhK7UoK2qFx",
"is_bot": false,
"headline": "merge: feat/associative-retrieval — Phase 2, opt-in multi-hop expansion",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-10T17:02:52Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "bd21ffc6db1b6b7ca442275568d17a7f25b2de9b",
"body": "HippoRAG-style associative retrieval, wired into cuba_faro and measured with the\nPhase 1 eval harness. Seeds spreading activation (graph::activation, already in\nthe tree but never used by search) from the entities matching the query, then\npulls in the top-importance observations on graph-connected e\n[…]\nt, clippy --all-targets -D warnings, 121 unit tests green.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01E9vbnhcYtrQJhK7UoK2qFx",
"is_bot": false,
"headline": "feat(faro): associative multi-hop expansion (Phase 2)",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-10T17:02:52Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "817c241a4239c2a3218b0d242e117798c339e9cb",
"body": "Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01E9vbnhcYtrQJhK7UoK2qFx",
"is_bot": false,
"headline": "docs: mark eval harness (Phase 1) done in the plan",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-10T16:46:33Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "a20ccb4e427d85d89ba104592ccd3717f8e586bc",
"body": "…eval\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01E9vbnhcYtrQJhK7UoK2qFx",
"is_bot": false,
"headline": "merge: feat/eval-harness-entrypoint — Phase 1, runnable non-mutating …",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-10T16:45:40Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "3b30b8e06c3cffed3c8bf7f04940f9f0de669914",
"body": "The eval harness (rust/src/eval/) had zero callers: nDCG/MRR/P@k/R@k existed but\nnothing invoked them, so no mechanism in the cognitive/graph stack had a way to\nprove it improved retrieval. This is Phase 1 of docs/PLAN-MEJORAS-v0.11.md —\nmeasure before optimizing.\n\n- New CLI subcommand: `cuba-memory\n[…]\nt, clippy --all-targets -D warnings, 121 unit tests green.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01E9vbnhcYtrQJhK7UoK2qFx",
"is_bot": false,
"headline": "feat(eval): make the retrieval benchmark runnable (Phase 1)",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-10T16:45:40Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "b78783213f2838d9d096a2a642b05435c716f47b",
"body": "Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01E9vbnhcYtrQJhK7UoK2qFx",
"is_bot": false,
"headline": "docs: mark Tier-0 fixes 0.6/0.8/0.9/0.10 as done in the plan",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-10T16:28:28Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "181874294f9cfd7466f8fe48b18b9ce75ef0a654",
"body": "…oral checks, indexes\n\nSecond audit round. Additive migrations only; brain verified unchanged\n(obs=1420, ent=258, facts=550, err=35). Gate green.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01E9vbnhcYtrQJhK7UoK2qFx",
"is_bot": false,
"headline": "merge: fix/decay-community-schema — decay anchor, Louvain fix, bitemp…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-10T16:24:47Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "29d8ab94630eb59ddc3bbf9085bd639e66c851f0",
"body": "Second round of audit findings. All migrations are additive; no stored datum\nis modified or removed (verified: brain unchanged at obs=1420, ent=258,\nfacts=550, err=35 before and after).\n\n1. Compounding decay (migration 0028 + protocol.rs + zafra.rs)\n\n The REM daemon runs every 4h and applied\n \n[…]\nigrations applied to brain with counts verified unchanged.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01E9vbnhcYtrQJhK7UoK2qFx",
"is_bot": false,
"headline": "fix: compounding decay, Louvain modularity, bitemporal checks, indexes",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-10T16:24:39Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "008e8e8ad98bc0f7d2249e78e221ec8165546e55",
"body": "…ession, task drain\n\nFour silent-failure bugs, each verified against the live corpus before and\nafter. Full gate green: fmt, clippy --all-targets -D warnings, 121 unit tests,\n3 DB integration tests, e2e_all_tools.py, mcp_live_session 25/25 tools.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01E9vbnhcYtrQJhK7UoK2qFx",
"is_bot": false,
"headline": "merge: fix/critical-bugs-v0.10 — recall, OOD threshold, per-process s…",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-10T15:37:27Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "c90a66e0a90f56c4869167f7bd4fa45b1874d84d",
"body": "All four degrade the server without ever telling the agent, which is why\nthey survived four releases and a passing test suite.\n\n1. Zero recall on multi-term queries (migration 0026)\n\n Every full-text branch used `plainto_tsquery('simple', $1)`, which joins\n lexemes with AND. A document had to co\n[…]\n test that\nprobes actual samples rather than the centroid.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01E9vbnhcYtrQJhK7UoK2qFx",
"is_bot": false,
"headline": "fix: four silent-failure bugs in retrieval, OOD, sessions and shutdown",
"author_name": "LeandroPG19",
"author_login": "LeandroPG19",
"committed_at": "2026-07-10T15:36:49Z",
"body_truncated": true,
"is_coding_agent": true
}
],
"releases_count": 14,
"commits_last_year": 169,
"latest_release_at": "2026-07-17T17:43:32Z",
"latest_release_tag": "v0.15.0",
"releases_from_tags": false,
"days_since_last_push": 5,
"active_weeks_last_year": 10,
"days_since_latest_release": 5,
"mean_days_between_releases": 4.8
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": true,
"health_percentage": 85,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"ecosystem": {
"packages": [
{
"name": "cuba-memorys",
"exists": true,
"license": "AGPL-3.0-only",
"keywords": [
"mcp",
"memory",
"knowledge-graph",
"ai-agent",
"model-context-protocol",
"hebbian",
"anti-hallucination",
"pagerank",
"postgresql",
"rust"
],
"ecosystem": "npm",
"matches_repo": true,
"registry_url": "https://www.npmjs.com/package/cuba-memorys",
"is_deprecated": false,
"latest_version": "0.15.0",
"repository_url": "https://github.com/LeandroPG19/cuba-memorys",
"versions_count": 14,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 1,
"monthly_downloads": 2229,
"first_published_at": "2026-03-28T11:32:00.623000Z",
"latest_published_at": "2026-07-17T17:43:46.962000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 5
},
{
"name": "cuba-memorys",
"exists": true,
"license": "AGPL-3.0-only",
"keywords": [
"mcp",
"memory",
"knowledge-graph",
"hebbian",
"ai-agent",
"anti-hallucination",
"pagerank",
"model-context-protocol",
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: GNU Affero General Public License v3",
"Operating System :: MacOS",
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX :: Linux",
"Programming Language :: Rust",
"Topic :: Scientific/Engineering :: Artificial Intelligence"
],
"ecosystem": "pypi",
"matches_repo": null,
"registry_url": "https://pypi.org/project/cuba-memorys/",
"is_deprecated": false,
"latest_version": "1.17.0",
"repository_url": null,
"versions_count": 15,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": null,
"first_published_at": "2026-03-28T11:16:10.196390Z",
"latest_published_at": "2026-07-17T17:51:37.361328Z",
"latest_version_yanked": null,
"days_since_latest_publish": 5
}
]
},
"popularity": {
"forks": 3,
"stars": 26,
"watchers": 3,
"fork_history": {
"days": [
{
"date": "2026-03-09",
"count": 1
},
{
"date": "2026-03-16",
"count": 1
},
{
"date": "2026-03-28",
"count": 1
}
],
"complete": true,
"collected": 3,
"total_forks": 3
},
"star_history": null,
"open_issues_and_prs": 12
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [
"examples"
],
"has_llms_txt": false,
"has_dockerfile": true,
"has_mcp_signal": false,
"bootstrap_files": [],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [],
"toolchain_manifests": [
"rust/Cargo.toml"
],
"largest_source_bytes": 47932,
"source_files_sampled": 130,
"oversized_source_files": 0,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"dependencies": {
"manifests": [
"package.json",
"pyproject.toml",
"rust/Cargo.toml"
],
"advisories": {
"error": null,
"scope": null,
"source": null,
"findings": [],
"collected": false,
"malicious": [],
"truncated": false,
"by_severity": {},
"advisory_count": 0,
"affected_count": 0,
"assessed_count": 0,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 0,
"direct_affected_count": 0
},
"ecosystems": [
"crates",
"npm",
"pypi"
],
"dependencies": [
{
"name": "half",
"manifest": "rust/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "2"
},
{
"name": "futures",
"manifest": "rust/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.3"
},
{
"name": "tokio",
"manifest": "rust/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "1"
},
{
"name": "tokio-util",
"manifest": "rust/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.7"
},
{
"name": "sqlx",
"manifest": "rust/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.8"
},
{
"name": "pgvector",
"manifest": "rust/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.4"
},
{
"name": "serde",
"manifest": "rust/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "1"
},
{
"name": "serde_json",
"manifest": "rust/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "1"
},
{
"name": "ort",
"manifest": "rust/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "=2.0.0-rc.12"
},
{
"name": "tokenizers",
"manifest": "rust/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.21"
},
{
"name": "tracing",
"manifest": "rust/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.1"
},
{
"name": "tracing-subscriber",
"manifest": "rust/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.3"
},
{
"name": "anyhow",
"manifest": "rust/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "1"
},
{
"name": "async-trait",
"manifest": "rust/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.1"
},
{
"name": "tiktoken-rs",
"manifest": "rust/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.7"
},
{
"name": "nalgebra",
"manifest": "rust/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.33"
},
{
"name": "sha2",
"manifest": "rust/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.10"
},
{
"name": "hex",
"manifest": "rust/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.4"
},
{
"name": "uuid",
"manifest": "rust/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "1"
},
{
"name": "chrono",
"manifest": "rust/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.4"
},
{
"name": "lru",
"manifest": "rust/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.12"
},
{
"name": "zstd",
"manifest": "rust/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.13"
},
{
"name": "reqwest",
"manifest": "rust/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.12"
},
{
"name": "flate2",
"manifest": "rust/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "1"
},
{
"name": "tar",
"manifest": "rust/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.4"
},
{
"name": "zip",
"manifest": "rust/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "2"
},
{
"name": "url",
"manifest": "rust/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "2"
},
{
"name": "html2text",
"manifest": "rust/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.12"
},
{
"name": "metrics",
"manifest": "rust/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.24"
},
{
"name": "metrics-exporter-prometheus",
"manifest": "rust/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.16"
},
{
"name": "mimalloc",
"manifest": "rust/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.1"
},
{
"name": "tree-sitter",
"manifest": "rust/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.26.11"
},
{
"name": "tree-sitter-rust",
"manifest": "rust/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.24.2"
},
{
"name": "tree-sitter-python",
"manifest": "rust/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.25.0"
}
],
"all_dependencies": {
"error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
"source": null,
"packages": [],
"collected": false,
"truncated": false,
"total_count": null,
"direct_count": null,
"indirect_count": null
}
},
"maintainership": {
"issues": {
"open_prs": 12,
"merged_prs": 3,
"open_issues": 0,
"closed_ratio": null,
"closed_issues": 0,
"closed_unmerged_prs": 0
},
"bus_factor": 1,
"bot_contributors": 0,
"top_contributors": [
{
"type": "User",
"login": "LeandroPG19",
"commits": 152,
"avatar_url": "https://avatars.githubusercontent.com/u/151863062?v=4"
}
],
"contributors_sampled": 1,
"top_contributor_share": 1
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"announce.yml",
"ci.yml",
"publish.yml"
],
"has_docs_dir": false,
"linter_configs": [],
"has_editorconfig": false,
"has_linter_config": true,
"has_precommit_config": true
},
"security_signals": {
"lockfiles": [
"Cargo.lock"
],
"scorecard": {
"checks": [
{
"name": "Binary-Artifacts",
"score": 10,
"reason": "no binaries found in the repo",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
},
{
"name": "Branch-Protection",
"score": 0,
"reason": "branch protection not enabled on development/release branches",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": null,
"reason": "no pull request found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
},
{
"name": "CII-Best-Practices",
"score": 0,
"reason": "no effort to earn an OpenSSF best practices badge detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
},
{
"name": "Code-Review",
"score": 0,
"reason": "Found 0/30 approved changesets -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 3,
"reason": "project has 1 contributing companies or organizations -- score normalized to 3",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
},
{
"name": "Dangerous-Workflow",
"score": 10,
"reason": "no dangerous workflow patterns detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
},
{
"name": "Dependency-Update-Tool",
"score": 0,
"reason": "no update tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
},
{
"name": "Fuzzing",
"score": 0,
"reason": "project is not fuzzed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
},
{
"name": "License",
"score": 10,
"reason": "license file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 10,
"reason": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
},
{
"name": "Packaging",
"score": 10,
"reason": "packaging workflow detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
},
{
"name": "Pinned-Dependencies",
"score": 0,
"reason": "dependency not pinned by hash detected -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": 0,
"reason": "no SAST tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 10,
"reason": "security policy file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
},
{
"name": "Signed-Releases",
"score": 0,
"reason": "Project has not signed or included provenance with any releases.",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
},
{
"name": "Token-Permissions",
"score": 0,
"reason": "detected GitHub workflow tokens with excessive permissions",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 0,
"reason": "13 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "d5a69ead36de3d81c70164134e140844ed436c6a",
"ran_at": "2026-07-23T00:58:03Z",
"aggregate_score": 3.7,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": true,
"has_dependabot_config": false
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-07-17T18:09:26Z",
"oldest_open_prs": [
{
"number": 1,
"created_at": "2026-03-13T19:16:22Z",
"last_comment_at": "2026-03-13T19:16:23Z",
"last_comment_author": "google-labs-jules"
},
{
"number": 2,
"created_at": "2026-03-13T19:19:29Z",
"last_comment_at": "2026-03-13T19:19:30Z",
"last_comment_author": "google-labs-jules"
},
{
"number": 3,
"created_at": "2026-03-13T19:20:08Z",
"last_comment_at": "2026-03-13T19:20:09Z",
"last_comment_author": "google-labs-jules"
},
{
"number": 4,
"created_at": "2026-03-18T18:12:36Z",
"last_comment_at": "2026-03-18T18:12:37Z",
"last_comment_author": "google-labs-jules"
},
{
"number": 5,
"created_at": "2026-03-18T18:12:47Z",
"last_comment_at": "2026-03-18T18:12:48Z",
"last_comment_author": "google-labs-jules"
},
{
"number": 6,
"created_at": "2026-03-18T18:20:07Z",
"last_comment_at": "2026-03-18T18:20:08Z",
"last_comment_author": "google-labs-jules"
},
{
"number": 7,
"created_at": "2026-03-18T18:21:12Z",
"last_comment_at": "2026-03-18T18:21:14Z",
"last_comment_author": "google-labs-jules"
},
{
"number": 8,
"created_at": "2026-03-23T19:01:35Z",
"last_comment_at": "2026-03-23T19:01:37Z",
"last_comment_author": "google-labs-jules"
},
{
"number": 9,
"created_at": "2026-03-23T19:02:21Z",
"last_comment_at": "2026-03-23T19:02:22Z",
"last_comment_author": "google-labs-jules"
},
{
"number": 10,
"created_at": "2026-03-23T19:02:36Z",
"last_comment_at": "2026-03-23T19:02:37Z",
"last_comment_author": "google-labs-jules"
},
{
"number": 11,
"created_at": "2026-03-23T19:02:39Z",
"last_comment_at": "2026-03-23T19:02:40Z",
"last_comment_author": "google-labs-jules"
},
{
"number": 12,
"created_at": "2026-03-23T19:02:42Z",
"last_comment_at": "2026-03-23T19:02:43Z",
"last_comment_author": "google-labs-jules"
}
],
"last_merged_pr_at": "2026-06-04T11:02:19Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": []
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/LeandroPG19/cuba-memorys",
"host": "github.com",
"name": "cuba-memorys",
"owner": "LeandroPG19"
},
"metrics": {
"overall": {
"key": "overall",
"band": "moderate",
"name": "Overall health",
"note": null,
"notes": [],
"value": 61,
"inputs": {
"security": 37,
"vitality": 79,
"community": 49,
"governance": 52,
"engineering": 81
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "good",
"name": "Vitality",
"value": 79,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "good",
"name": "Development activity",
"note": null,
"notes": [],
"value": 71,
"inputs": {
"commits_last_year": 169,
"human_commit_share": 1,
"days_since_last_push": 5,
"active_weeks_last_year": 10
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 5 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "push_recency",
"params": {
"days": 5
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "10/52 weeks with commits",
"points": 6.9,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 10
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "169 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 169
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "excellent",
"name": "Release discipline",
"note": null,
"notes": [],
"value": 90,
"inputs": {
"releases_count": 14,
"latest_release_tag": "v0.15.0",
"releases_from_tags": false,
"days_since_latest_release": 5,
"mean_days_between_releases": 4.8
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "14 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 14
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 5 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 5
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~4.8 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 4.8
}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "Project has not signed or included provenance with any releases.",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "abandonment",
"band": "excellent",
"name": "Abandonment",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"cap": null,
"state": "unverified",
"guards": [],
"signals": [],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": "repository_too_young",
"unanswered_open_prs": null,
"unanswered_open_issues": null,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": null,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "maintenance record not established from the collected data",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_unverified",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "at_risk",
"name": "Community & Adoption",
"value": 49,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "critical",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 27,
"inputs": {
"forks": 3,
"stars": 26,
"watchers": 3,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "26 stars",
"points": 22.7,
"status": "partial",
"details": [
{
"code": "stars",
"params": {
"count": 26
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "3 forks",
"points": 2.5,
"status": "partial",
"details": [
{
"code": "forks",
"params": {
"count": 3
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "3 watchers",
"points": 1.7,
"status": "partial",
"details": [
{
"code": "watchers",
"params": {
"count": 3
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "good",
"name": "Community health",
"note": null,
"notes": [],
"value": 70,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": true,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "recognized license (AGPL-3.0)",
"points": 22.5,
"status": "met",
"details": [
{
"code": "license_standard",
"params": {}
},
{
"code": "license_spdx",
"params": {
"spdx": "AGPL-3.0"
}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 18,
"status": "met",
"details": [],
"max_points": 18
},
{
"key": "code_of_conduct",
"name": "Code of conduct",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 13.5
},
{
"key": "issue_template",
"name": "Issue template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.2
},
{
"key": "pr_template",
"name": "PR template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.3
}
]
},
{
"key": "ecosystem_adoption",
"band": "moderate",
"name": "Ecosystem adoption (downloads)",
"note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"registry_dependents"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 56,
"inputs": {
"packages": [
"cuba-memorys",
"cuba-memorys"
],
"dependents": null,
"ecosystems": "npm, pypi",
"total_downloads": null,
"monthly_downloads": 2229
},
"components": [
{
"key": "monthly_downloads",
"name": "Monthly downloads",
"detail": "2,229 downloads/month across npm, pypi",
"points": 44.6,
"status": "partial",
"details": [
{
"code": "downloads_monthly",
"params": {
"count": 2229,
"ecosystems": "npm, pypi"
}
}
],
"max_points": 80
},
{
"key": "registry_dependents",
"name": "Registry dependents",
"detail": "not reported by this ecosystem",
"points": 0,
"status": "excluded",
"details": [
{
"code": "not_reported_by_this_ecosystem",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "moderate",
"name": "Sustainability & Governance",
"value": 52,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "critical",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 13,
"inputs": {
"bus_factor": 1,
"contributors_sampled": 1,
"top_contributor_share": 1
},
"components": [
{
"key": "bus_factor",
"name": "Bus factor",
"detail": "1 contributor(s) cover half of all commits",
"points": 9,
"status": "partial",
"details": [
{
"code": "bus_factor",
"params": {
"count": 1
}
}
],
"max_points": 54
},
{
"key": "commit_distribution",
"name": "Commit distribution",
"detail": "top contributor authored 100% of commits",
"points": 0,
"status": "missed",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 100
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "1 contributors",
"points": 1.4,
"status": "partial",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 1
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 1 contributing companies or organizations -- score normalized to 3",
"points": 3,
"status": "partial",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "good",
"name": "Issue & PR responsiveness",
"note": "Excluded from scoring (no data or not applicable): Issue resolution. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"issue_resolution"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 72,
"inputs": {
"merged_prs": 3,
"open_issues": 0,
"closed_issues": 0,
"issue_closed_ratio": null,
"closed_unmerged_prs": 0
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "no issues or no data",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_issues_or_data",
"params": {}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "3/3 decided PRs merged",
"points": 38.2,
"status": "met",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 3,
"decided": 3
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 0/30 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "at_risk",
"name": "Ownership & stewardship",
"note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"verified_domain"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 41,
"inputs": {
"followers": 12,
"owner_type": "User",
"is_verified": null,
"owner_login": "LeandroPG19",
"public_repos": 21,
"account_age_days": 972
},
"components": [
{
"key": "ownership_backing",
"name": "Ownership backing",
"detail": "personal (user) account",
"points": 10,
"status": "partial",
"details": [
{
"code": "owner_personal",
"params": {}
}
],
"max_points": 30
},
{
"key": "verified_domain",
"name": "Verified domain",
"detail": "not applicable to user accounts",
"points": 0,
"status": "excluded",
"details": [
{
"code": "not_applicable_to_user_accounts",
"params": {}
}
],
"max_points": 20
},
{
"key": "owner_reach",
"name": "Owner reach",
"detail": "12 followers of LeandroPG19",
"points": 8,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 12,
"login": "LeandroPG19"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "21 public repos, account ~2 yr old",
"points": 15.1,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 21
}
},
{
"code": "account_age_years",
"params": {
"years": 2
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"cuba-memorys",
"cuba-memorys"
],
"ecosystems": "npm, pypi",
"any_deprecated": false,
"min_days_since_publish": 5
},
"components": [
{
"key": "published_resolvable",
"name": "Published & resolvable",
"detail": "2 package(s) on npm, pypi",
"points": 25,
"status": "met",
"details": [
{
"code": "packages_published",
"params": {
"count": 2,
"ecosystems": "npm, pypi"
}
}
],
"max_points": 25
},
{
"key": "publish_recency",
"name": "Publish recency",
"detail": "latest publish 5 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 5
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "15 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 15
}
}
],
"max_points": 20
},
{
"key": "not_deprecated",
"name": "Not deprecated",
"detail": "active, not deprecated or yanked",
"points": 20,
"status": "met",
"details": [
{
"code": "package_not_deprecated",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "good",
"name": "Engineering Quality",
"value": 81,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "excellent",
"name": "Engineering practices",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_ci_tests"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 92,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": false,
"has_linter_config": true,
"has_precommit_config": true
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "3 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 3
}
}
],
"max_points": 24
},
{
"key": "tests_present",
"name": "Tests present",
"detail": null,
"points": 24,
"status": "met",
"details": [],
"max_points": 24
},
{
"key": "linter_config",
"name": "Linter config",
"detail": null,
"points": 16,
"status": "met",
"details": [],
"max_points": 16
},
{
"key": "pre_commit_hooks",
"name": "Pre-commit hooks",
"detail": null,
"points": 9.6,
"status": "met",
"details": [],
"max_points": 9.6
},
{
"key": "editorconfig",
"name": ".editorconfig",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "no pull request found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "moderate",
"name": "Documentation",
"note": null,
"notes": [],
"value": 65,
"inputs": {
"topics": [
"ai-memory",
"ai-tools",
"anti-hallucination",
"graph-database",
"graphrag",
"hebbian-learning",
"knowledge-graph",
"mcp",
"mcp-server",
"model-context-protocol",
"pagerank",
"postgresql",
"rag",
"semantic-search",
"vector-search",
"exponential-decay",
"rust",
"npm-package",
"pypi-package",
"episodic-memory"
],
"has_wiki": false,
"homepage": "https://registry.modelcontextprotocol.io",
"has_readme": true,
"has_docs_dir": false,
"has_description": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 30,
"status": "met",
"details": [],
"max_points": 30
},
{
"key": "documentation_directory",
"name": "Documentation directory",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": "https://registry.modelcontextprotocol.io",
"points": 15,
"status": "met",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": "20 topics",
"points": 10,
"status": "met",
"details": [
{
"code": "topics_count",
"params": {
"count": 20
}
}
],
"max_points": 10
},
{
"key": "wiki",
"name": "Wiki",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
}
],
"description": "Are baseline engineering and documentation practices in place?"
},
{
"key": "security",
"band": "at_risk",
"name": "Security",
"value": 37,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "at_risk",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): CI-Tests. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"ci_tests"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 37,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 17,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 1,
"scorecard_aggregate": 3.7
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "no binaries found in the repo",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "branch_protection",
"name": "Branch-Protection",
"detail": "branch protection not enabled on development/release branches",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "no pull request found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 2.5
},
{
"key": "cii_best_practices",
"name": "CII-Best-Practices",
"detail": "no effort to earn an OpenSSF best practices badge detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "code_review",
"name": "Code-Review",
"detail": "Found 0/30 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 1 contributing companies or organizations -- score normalized to 3",
"points": 0.8,
"status": "partial",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "no dangerous workflow patterns detected",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "dependency_update_tool",
"name": "Dependency-Update-Tool",
"detail": "no update tool detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "fuzzing",
"name": "Fuzzing",
"detail": "project is not fuzzed",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "license",
"name": "License",
"detail": "license file detected",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "packaging",
"name": "Packaging",
"detail": "packaging workflow detected",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "no SAST tool detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file detected",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "Project has not signed or included provenance with any releases.",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "detected GitHub workflow tokens with excessive permissions",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "13 existing vulnerabilities detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "high_risk_jurisdiction_exposure",
"band": "excellent",
"name": "High-Risk Jurisdiction Exposure",
"note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
"notes": [
{
"code": "jurisdiction_evidence_limits",
"params": {}
}
],
"value": 100,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": false,
"exposures": [],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"review_only_matches": 0,
"assessed_self_published_locations": 2
},
"components": [
{
"key": "policy_exposure_multiplier",
"name": "Policy exposure multiplier",
"detail": "no confirmed policy-scope location match",
"points": 100,
"status": "met",
"details": [
{
"code": "jurisdiction_no_match",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
},
{
"key": "ai_readiness",
"band": "moderate",
"name": "AI Readiness",
"value": 64,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "at_risk",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 1,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": "no CLAUDE.md / AGENTS.md / editor rules",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_agent_instructions",
"params": {}
}
],
"max_points": 45
},
{
"key": "machine_readable_docs_llms_txt",
"name": "Machine-readable docs (llms.txt)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "legible_commit_history",
"name": "Legible commit history",
"detail": "100 of 100 human commits state their intent (structured subject or explanatory body)",
"points": 40,
"status": "met",
"details": [
{
"code": "legible_history",
"params": {
"legible": 100,
"sampled": 100
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "good",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 77,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"Cargo.lock"
],
"has_dockerfile": true,
"typed_language": true,
"bootstrap_files": [],
"has_devcontainer": false,
"has_linter_config": true,
"typecheck_configs": [],
"agent_commit_share": 0.98,
"toolchain_manifests": [
"rust/Cargo.toml"
],
"dependency_bot_commit_share": 0
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": "rust/Cargo.toml (toolchain convention, no task runner)",
"points": 12.6,
"status": "partial",
"details": [
{
"code": "toolchain_convention",
"params": {
"files": "rust/Cargo.toml"
}
}
],
"max_points": 18
},
{
"key": "automated_tests",
"name": "Automated tests",
"detail": null,
"points": 22,
"status": "met",
"details": [],
"max_points": 22
},
{
"key": "lint_format_config",
"name": "Lint / format config",
"detail": null,
"points": 11,
"status": "met",
"details": [],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "Rust (statically typed)",
"points": 11,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "Rust"
}
}
],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": "Dockerfile, lockfile",
"points": 10,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "Dockerfile, lockfile"
}
}
],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "98 of the last 100 commits agent-authored or agent-credited",
"points": 10,
"status": "met",
"details": [
{
"code": "agent_authored_commits",
"params": {
"count": 98,
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "no automated dependency updates observed",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_dependency_automation",
"params": {}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "excellent",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"primary_language": "Rust",
"largest_source_bytes": 47932,
"source_files_sampled": 130,
"oversized_source_files": 0
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "Rust (statically typed)",
"points": 45,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "Rust"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "0/130 source files over 60KB",
"points": 55,
"status": "met",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 130,
"oversized": 0
}
}
],
"max_points": 55
}
]
},
{
"key": "ai_interfaces",
"band": "at_risk",
"name": "Machine-readable interfaces",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"example_dirs": [
"examples"
],
"has_mcp_signal": false,
"api_schema_files": []
},
"components": [
{
"key": "api_schema_openapi_graphql_proto",
"name": "API schema (OpenAPI/GraphQL/proto)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 40
},
{
"key": "mcp_server",
"name": "MCP server",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 20
},
{
"key": "runnable_examples",
"name": "Runnable examples",
"detail": "examples",
"points": 40,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "examples"
}
}
],
"max_points": 40
}
]
}
],
"description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
}
],
"metrics_version": "1.13.0"
},
"warnings": [
"Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
"Could not fetch crates package 'cuba-memorys' from its registry",
"GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
"deps.dev does not index npm:cuba-memorys@0.15.0; advisories assessed against the repository dependency graph instead"
],
"report_type": "repository",
"generated_at": "2026-07-23T00:58:07.885913Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/l/LeandroPG19/cuba-memorys.svg",
"full_name": "LeandroPG19/cuba-memorys",
"license_state": "standard",
"license_spdx": "AGPL-3.0"
}