Skip to content

feat(memoria): perfil curado de memória v1 (injeção fail-closed + escada de confiança + curador), gated off#150

Merged
BrunooMoniz merged 11 commits into
mainfrom
feat/memoria-perfil-curado
Jun 19, 2026
Merged

feat(memoria): perfil curado de memória v1 (injeção fail-closed + escada de confiança + curador), gated off#150
BrunooMoniz merged 11 commits into
mainfrom
feat/memoria-perfil-curado

Conversation

@BrunooMoniz

Copy link
Copy Markdown
Owner

O quê

Evolução do subsistema de memória do Zinom inspirada no Hermes Agent e no Open Second Brain, reaproveitando infra dormente do engine. Adiciona uma camada de perfil curado por conta, pequena e injetada em toda sessão MCP, com escada de confiança determinística (sinal → evidência → confirmado) e um curador que a mantém.

Docs de desenho: docs/superpowers/specs/2026-06-18-memoria-perfil-curado-design.md (passou por revisão adversarial de 5 lentes) e docs/superpowers/plans/2026-06-18-memoria-perfil-curado.md.

Backend v1 (este PR)

  • Migração 0019 user_profile_facts + memory_audit (aditiva/idempotente; o slot 0018 já é rubrix_flows).
  • computeConfidence (puro, utility.ts): razão suavizada × decaimento de frescor, bandas 0.40/0.75.
  • renderProfile (puro): elegível = pinned OR (confirmed AND value≥0.75); orçamento de chars, nunca corta fato pela metade.
  • composeInstructions (puro): concat que nunca retorna '' e não muta as consts.
  • profile-storage account-scoped (load/upsert/audit), account_id em todo statement (não repete o tenant-leak do brain_facts).
  • dedup do remember por hash determinístico de conteúdo + guarda de segredo (looksLikeSecret/stripSecrets).
  • Injeção fail-closed no index.ts (resolveInstructions), gated por PROFILE_INJECT_ENABLED: o perfil só é carregado para o owner (gate no booleano owner, nunca em getAccountId() que faz fallback pra 'bruno'). Friend nunca toca os fatos do owner.
  • Curador determinístico owner-only (runMemoryCuration) + tick no brain-classifier gated por MEMORY_CURATION_ENABLED. Opera em user_profile_facts; nunca toca brain_chunks.

Segurança / risco

  • Tudo OFF por default (PROFILE_INJECT_ENABLED, MEMORY_CURATION_ENABLED): deploy = zero mudança de comportamento.
  • Fora do eval gate F8: não toca search.ts nem brain_chunks.
  • Owner-only no v1 (friends fora; thresholds calibram em dado de alto sinal antes).
  • 1325 testes verdes, tsc limpo.

Follow-ups (fora deste PR)

  • Portal (view + pin/prune/toggles) — plano Task 10.
  • Fase 2 LLM (MEMORY_CURATION_LLM): extração/fusão Haiku + guarda de segredo + budget/circuit-breaker.
  • Patch de 1 linha no repo do Odysseus pra entregar o perfil no 3º surface (hoje descarta as instructions do MCP).
  • Rollout owner-only: ligar flags + npm run eval na VPS (esperado zero delta).

🤖 Generated with Claude Code

BrunooMoniz and others added 11 commits June 18, 2026 23:02
… + curadoria)

Evolucao da memoria do Zinom inspirada no Hermes Agent e Open Second Brain,
reaproveitando infra dormente do engine. Owner-only, tudo gated off, curador
so na tabela nova (nunca brain_chunks -> off eval gate). Passou por revisao
adversarial de 5 lentes; 4 must-fix incorporados (leak cross-account no wiring,
AC4 fronteira real, account_id em todo statement, eval gate na dedup de chunks).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…r/portal)

10 tarefas bite-sized, cada uma testavel e revisavel isoladamente. Fase 2 (LLM)
e dedup de brain_chunks antigos ficam para planos proprios (eval-gated).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…scor)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…cteres

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…sed)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…sifier

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@BrunooMoniz BrunooMoniz merged commit 277a508 into main Jun 19, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant