[{"data":1,"prerenderedAt":694},["ShallowReactive",2],{"navigation_docs":3,"-docs-memory-overview":356,"-docs-memory-overview-surround":689},[4,8,34,64,90,139,157,171,193,227,241,266,312,334],{"title":5,"path":6,"stem":7},"Documentation","\u002Fdocs","docs\u002Findex",{"title":9,"path":10,"stem":11,"children":12},"Getting started","\u002Fdocs\u002Fgetting-started","docs\u002F01.getting-started\u002Findex",[13,14,18,22,26,30],{"title":9,"path":10,"stem":11},{"title":15,"path":16,"stem":17},"Introduction","\u002Fdocs\u002Fgetting-started\u002Fintroduction","docs\u002F01.getting-started\u002F01.introduction",{"title":19,"path":20,"stem":21},"Concepts","\u002Fdocs\u002Fgetting-started\u002Fconcepts","docs\u002F01.getting-started\u002F02.concepts",{"title":23,"path":24,"stem":25},"Quickstart (5 minutes)","\u002Fdocs\u002Fgetting-started\u002Fquickstart","docs\u002F01.getting-started\u002F03.quickstart",{"title":27,"path":28,"stem":29},"Local development","\u002Fdocs\u002Fgetting-started\u002Flocal-development","docs\u002F01.getting-started\u002F04.local-development",{"title":31,"path":32,"stem":33},"FAQ","\u002Fdocs\u002Fgetting-started\u002Ffaq","docs\u002F01.getting-started\u002F05.faq",{"title":35,"path":36,"stem":37,"children":38},"Architecture","\u002Fdocs\u002Farchitecture","docs\u002F02.architecture\u002Findex",[39,40,44,48,52,56,60],{"title":35,"path":36,"stem":37},{"title":41,"path":42,"stem":43},"Architecture overview","\u002Fdocs\u002Farchitecture\u002Foverview","docs\u002F02.architecture\u002F01.overview",{"title":45,"path":46,"stem":47},"Services","\u002Fdocs\u002Farchitecture\u002Fservices","docs\u002F02.architecture\u002F02.services",{"title":49,"path":50,"stem":51},"Request lifecycle","\u002Fdocs\u002Farchitecture\u002Frequest-lifecycle","docs\u002F02.architecture\u002F03.request-lifecycle",{"title":53,"path":54,"stem":55},"Data model","\u002Fdocs\u002Farchitecture\u002Fdata-model","docs\u002F02.architecture\u002F04.data-model",{"title":57,"path":58,"stem":59},"Status and evidence","\u002Fdocs\u002Farchitecture\u002Fstatus-and-evidence","docs\u002F02.architecture\u002F05.status-and-evidence",{"title":61,"path":62,"stem":63},"Target architecture and authority","\u002Fdocs\u002Farchitecture\u002Ftarget-architecture","docs\u002F02.architecture\u002F06.target-architecture",{"title":65,"path":66,"stem":67,"children":68},"Auth","\u002Fdocs\u002Fauth","docs\u002F03.auth\u002Findex",[69,70,74,78,82,86],{"title":65,"path":66,"stem":67},{"title":71,"path":72,"stem":73},"Overview","\u002Fdocs\u002Fauth\u002Foverview","docs\u002F03.auth\u002F01.overview",{"title":75,"path":76,"stem":77},"Organization and agent model","\u002Fdocs\u002Fauth\u002Forg-project-model","docs\u002F03.auth\u002F02.org-project-model",{"title":79,"path":80,"stem":81},"Issuing API keys","\u002Fdocs\u002Fauth\u002Fissuing-api-keys","docs\u002F03.auth\u002F03.issuing-api-keys",{"title":83,"path":84,"stem":85},"Multi-tenant RLS","\u002Fdocs\u002Fauth\u002Fmulti-tenant-rls","docs\u002F03.auth\u002F04.multi-tenant-rls",{"title":87,"path":88,"stem":89},"Operator sessions and step-up","\u002Fdocs\u002Fauth\u002Foperator-sessions","docs\u002F03.auth\u002F05.operator-sessions",{"title":91,"path":92,"stem":93,"children":94},"Proxy","\u002Fdocs\u002Fproxy","docs\u002F04.proxy\u002Findex",[95,96,99,103,107,111,115,119,123,127,131,135],{"title":91,"path":92,"stem":93},{"title":71,"path":97,"stem":98},"\u002Fdocs\u002Fproxy\u002Foverview","docs\u002F04.proxy\u002F01.overview",{"title":100,"path":101,"stem":102},"Authentication","\u002Fdocs\u002Fproxy\u002Fauthentication","docs\u002F04.proxy\u002F02.authentication",{"title":104,"path":105,"stem":106},"Request routing","\u002Fdocs\u002Fproxy\u002Frequest-routing","docs\u002F04.proxy\u002F03.request-routing",{"title":108,"path":109,"stem":110},"Sessions","\u002Fdocs\u002Fproxy\u002Fsessions","docs\u002F04.proxy\u002F04.sessions",{"title":112,"path":113,"stem":114},"Directives","\u002Fdocs\u002Fproxy\u002Fdirectives","docs\u002F04.proxy\u002F05.directives",{"title":116,"path":117,"stem":118},"Idempotency and budgets","\u002Fdocs\u002Fproxy\u002Fidempotency-and-budgets","docs\u002F04.proxy\u002F06.idempotency-and-budgets",{"title":120,"path":121,"stem":122},"Rate limiting","\u002Fdocs\u002Fproxy\u002Frate-limiting","docs\u002F04.proxy\u002F07.rate-limiting",{"title":124,"path":125,"stem":126},"Provider adapters","\u002Fdocs\u002Fproxy\u002Fprovider-adapters","docs\u002F04.proxy\u002F08.provider-adapters",{"title":128,"path":129,"stem":130},"Auth caching","\u002Fdocs\u002Fproxy\u002Fauth-caching","docs\u002F04.proxy\u002F09.auth-caching",{"title":132,"path":133,"stem":134},"Configuration","\u002Fdocs\u002Fproxy\u002Fconfiguration","docs\u002F04.proxy\u002F10.configuration",{"title":136,"path":137,"stem":138},"Provider routing and resilience","\u002Fdocs\u002Fproxy\u002Fprovider-routing-and-resilience","docs\u002F04.proxy\u002F11.provider-routing-and-resilience",{"title":140,"path":141,"stem":142,"children":143},"Memory","\u002Fdocs\u002Fmemory","docs\u002F05.memory\u002Findex",[144,145,149,153],{"title":140,"path":141,"stem":142},{"title":146,"path":147,"stem":148},"Memory overview","\u002Fdocs\u002Fmemory\u002Foverview","docs\u002F05.memory\u002F01.overview",{"title":150,"path":151,"stem":152},"Write path","\u002Fdocs\u002Fmemory\u002Fwrite-path","docs\u002F05.memory\u002F02.write-path",{"title":154,"path":155,"stem":156},"Search and lifecycle","\u002Fdocs\u002Fmemory\u002Fsearch-and-lifecycle","docs\u002F05.memory\u002F03.search-and-lifecycle",{"title":158,"path":159,"stem":160,"children":161},"Context","\u002Fdocs\u002Fcontext","docs\u002F06.context\u002Findex",[162,163,167],{"title":158,"path":159,"stem":160},{"title":164,"path":165,"stem":166},"Assembly pipeline","\u002Fdocs\u002Fcontext\u002Foverview","docs\u002F06.context\u002F01.overview",{"title":168,"path":169,"stem":170},"Ranking and packing","\u002Fdocs\u002Fcontext\u002Franking-and-packing","docs\u002F06.context\u002F02.ranking-and-packing",{"title":172,"path":173,"stem":174,"children":175},"Intelligence","\u002Fdocs\u002Fintelligence","docs\u002F07.intelligence\u002Findex",[176,177,181,185,189],{"title":172,"path":173,"stem":174},{"title":178,"path":179,"stem":180},"Workers","\u002Fdocs\u002Fintelligence\u002Fworkers","docs\u002F07.intelligence\u002F01.workers",{"title":182,"path":183,"stem":184},"Extraction","\u002Fdocs\u002Fintelligence\u002Fextraction","docs\u002F07.intelligence\u002F02.extraction",{"title":186,"path":187,"stem":188},"Embedder","\u002Fdocs\u002Fintelligence\u002Fembedder","docs\u002F07.intelligence\u002F03.embedder",{"title":190,"path":191,"stem":192},"Extraction evaluation","\u002Fdocs\u002Fintelligence\u002Fevaluation","docs\u002F07.intelligence\u002F04.evaluation",{"title":194,"path":195,"stem":196,"children":197},"API reference","\u002Fdocs\u002Fapi-reference","docs\u002F08.api-reference\u002Findex",[198,199,203,207,211,215,219,223],{"title":194,"path":195,"stem":196},{"title":200,"path":201,"stem":202},"Chat completions","\u002Fdocs\u002Fapi-reference\u002Fchat-completions","docs\u002F08.api-reference\u002F01.chat-completions",{"title":204,"path":205,"stem":206},"Responses","\u002Fdocs\u002Fapi-reference\u002Fresponses","docs\u002F08.api-reference\u002F02.responses",{"title":208,"path":209,"stem":210},"Errors","\u002Fdocs\u002Fapi-reference\u002Ferrors","docs\u002F08.api-reference\u002F03.errors",{"title":212,"path":213,"stem":214},"Health and metrics","\u002Fdocs\u002Fapi-reference\u002Fproxy-health","docs\u002F08.api-reference\u002F04.proxy-health",{"title":216,"path":217,"stem":218},"HTTP route inventory","\u002Fdocs\u002Fapi-reference\u002Fhttp-routes","docs\u002F08.api-reference\u002F05.http-routes",{"title":220,"path":221,"stem":222},"Management API","\u002Fdocs\u002Fapi-reference\u002Fmanagement-api","docs\u002F08.api-reference\u002F06.management-api",{"title":224,"path":225,"stem":226},"Auth gRPC (ValidateToken, ValidateAgent)","\u002Fdocs\u002Fapi-reference\u002Fauth-grpc","docs\u002F08.api-reference\u002F07.auth-grpc",{"title":228,"path":229,"stem":230,"children":231},"MCP","\u002Fdocs\u002Fmcp","docs\u002F09.mcp\u002Findex",[232,233,237],{"title":228,"path":229,"stem":230},{"title":234,"path":235,"stem":236},"Memory server","\u002Fdocs\u002Fmcp\u002Fmemory-server","docs\u002F09.mcp\u002F01.memory-server",{"title":238,"path":239,"stem":240},"Operator gateway","\u002Fdocs\u002Fmcp\u002Foperator-gateway","docs\u002F09.mcp\u002F02.operator-gateway",{"title":242,"path":243,"stem":244,"children":245},"Security","\u002Fdocs\u002Fsecurity","docs\u002F10.security\u002Findex",[246,247,251,254,258,262],{"title":242,"path":243,"stem":244},{"title":248,"path":249,"stem":250},"Security overview","\u002Fdocs\u002Fsecurity\u002Foverview","docs\u002F10.security\u002F01.overview",{"title":100,"path":252,"stem":253},"\u002Fdocs\u002Fsecurity\u002Fauthentication","docs\u002F10.security\u002F02.authentication",{"title":255,"path":256,"stem":257},"Tenant isolation","\u002Fdocs\u002Fsecurity\u002Ftenant-isolation","docs\u002F10.security\u002F03.tenant-isolation",{"title":259,"path":260,"stem":261},"Secrets and keys","\u002Fdocs\u002Fsecurity\u002Fsecrets-and-keys","docs\u002F10.security\u002F04.secrets-and-keys",{"title":263,"path":264,"stem":265},"Prompt injection","\u002Fdocs\u002Fsecurity\u002Fprompt-injection","docs\u002F10.security\u002F05.prompt-injection",{"title":267,"path":268,"stem":269,"children":270},"Operations","\u002Fdocs\u002Foperations","docs\u002F11.operations\u002Findex",[271,272,276,280,284,288,292,296,300,304,308],{"title":267,"path":268,"stem":269},{"title":273,"path":274,"stem":275},"Observability","\u002Fdocs\u002Foperations\u002Fobservability","docs\u002F11.operations\u002F01.observability",{"title":277,"path":278,"stem":279},"Traces and ClickHouse","\u002Fdocs\u002Foperations\u002Ftraces-and-clickhouse","docs\u002F11.operations\u002F02.traces-and-clickhouse",{"title":281,"path":282,"stem":283},"Health checks","\u002Fdocs\u002Foperations\u002Fhealth-checks","docs\u002F11.operations\u002F03.health-checks",{"title":285,"path":286,"stem":287},"Incident response","\u002Fdocs\u002Foperations\u002Fincident-response","docs\u002F11.operations\u002F04.incident-response",{"title":289,"path":290,"stem":291},"Troubleshooting","\u002Fdocs\u002Foperations\u002Ftroubleshooting","docs\u002F11.operations\u002F05.troubleshooting",{"title":293,"path":294,"stem":295},"Billing and budgets","\u002Fdocs\u002Foperations\u002Fbilling-and-budgets","docs\u002F11.operations\u002F06.billing-and-budgets",{"title":297,"path":298,"stem":299},"Evidence and relay","\u002Fdocs\u002Foperations\u002Fevidence-and-relay","docs\u002F11.operations\u002F07.evidence-and-relay",{"title":301,"path":302,"stem":303},"Console","\u002Fdocs\u002Foperations\u002Fconsole","docs\u002F11.operations\u002F08.console",{"title":305,"path":306,"stem":307},"Failure modes and recovery","\u002Fdocs\u002Foperations\u002Ffailure-and-recovery","docs\u002F11.operations\u002F09.failure-and-recovery",{"title":309,"path":310,"stem":311},"Data lifecycle and deletion","\u002Fdocs\u002Foperations\u002Fdata-lifecycle-and-deletion","docs\u002F11.operations\u002F10.data-lifecycle-and-deletion",{"title":313,"path":314,"stem":315,"children":316},"Deployment","\u002Fdocs\u002Fdeployment","docs\u002F12.deployment\u002Findex",[317,318,322,326,330],{"title":313,"path":314,"stem":315},{"title":319,"path":320,"stem":321},"Docker Compose (dev)","\u002Fdocs\u002Fdeployment\u002Fdocker-compose","docs\u002F12.deployment\u002F01.docker-compose",{"title":323,"path":324,"stem":325},"Environment variables","\u002Fdocs\u002Fdeployment\u002Fenvironment-variables","docs\u002F12.deployment\u002F02.environment-variables",{"title":327,"path":328,"stem":329},"Kubernetes","\u002Fdocs\u002Fdeployment\u002Fkubernetes","docs\u002F12.deployment\u002F03.kubernetes",{"title":331,"path":332,"stem":333},"Production readiness","\u002Fdocs\u002Fdeployment\u002Fproduction-readiness","docs\u002F12.deployment\u002F04.production-readiness",{"title":335,"path":336,"stem":337,"children":338},"Reference","\u002Fdocs\u002Freference","docs\u002F13.reference\u002Findex",[339,340,344,348,352],{"title":335,"path":336,"stem":337},{"title":341,"path":342,"stem":343},"Glossary","\u002Fdocs\u002Freference\u002Fglossary","docs\u002F13.reference\u002F01.glossary",{"title":345,"path":346,"stem":347},"Roadmap and gates","\u002Fdocs\u002Freference\u002Froadmap","docs\u002F13.reference\u002F02.roadmap",{"title":349,"path":350,"stem":351},"Architecture decisions","\u002Fdocs\u002Freference\u002Fadr","docs\u002F13.reference\u002F03.adr",{"title":353,"path":354,"stem":355},"Compatibility and versioning","\u002Fdocs\u002Freference\u002Fcompatibility","docs\u002F13.reference\u002F04.compatibility",{"id":357,"title":146,"audience":358,"author":359,"authorUrl":359,"body":360,"coverIndex":359,"coverLabel":359,"coverTone":359,"date":359,"decisionStatus":359,"description":680,"excerpt":359,"extension":681,"featured":682,"historical":682,"meta":683,"navigation":684,"path":147,"readingTime":359,"scope":685,"seo":686,"sourceOfTruth":687,"status":366,"stem":148,"tags":359,"verifiedDate":367,"__hash__":688},"docs\u002Fdocs\u002F05.memory\u002F01.overview.md","integrator",null,{"type":361,"value":362,"toc":671},"minimark",[363,368,372,379,383,394,397,427,431,438,441,493,497,504,536,539,542,548,577,583,587,609,613],[364,365],"page-status",{"status":366,"verified":367},"IMPLEMENTED","2026-10-21",[369,370,371],"p",{},"The memory service is a Python\u002FFastAPI process backed by PostgreSQL and pgvector. It stores tenant- and agent-scoped memories, computes embeddings, deduplicates near-identical content, records conflict candidates, and serves similarity search plus a Redis hot cache.",[369,373,374,378],{},[375,376,377],"strong",{},"What the status means:"," the substrate is implemented and locally evidenced. It is not a claim of production isolation, complete deletion semantics, or an accepted typed lifecycle. GAP-007 remains open.",[380,381,150],"h2",{"id":382},"write-path",[384,385,391],"pre",{"className":386,"code":388,"language":389,"meta":390},[387],"language-text","request → validate tenant\u002Fagent → PII policy → embed → near-dedup\n        → historical conflict candidates → persist memory + links\n        → hot-cache update → metrics\u002Ftraces\n","text","",[392,393,388],"code",{"__ignoreMap":390},[369,395,396],{},"Key properties:",[398,399,400,411,414,417,424],"ul",{},[401,402,403,406,407,410],"li",{},[392,404,405],{},"org_id"," and ",[392,408,409],{},"agent_id"," are bound from the authenticated principal, not from arbitrary body fields.",[401,412,413],{},"Memory and label inserts share a transaction.",[401,415,416],{},"Near-duplicate detection runs against historical conflict candidates, not the default user-read view.",[401,418,419,420,423],{},"Idempotency uses the shared ",[392,421,422],{},"(org_id, agent_id, key)"," ledger. If the ledger is unavailable, writes fail closed rather than silently duplicating.",[401,425,426],{},"PII detection and redaction are applied before persistence.",[380,428,430],{"id":429},"read-path","Read path",[369,432,433,434,437],{},"The default user read is ",[375,435,436],{},"validity-fenced"," and returns current memories only. Internal conflict and dedup paths can request historical candidates through a dedicated capability. This prevents normal search from surfacing superseded memories while preserving write-time conflict detection.",[369,439,440],{},"Search modes:",[442,443,444,457],"table",{},[445,446,447],"thead",{},[448,449,450,454],"tr",{},[451,452,453],"th",{},"Path",[451,455,456],{},"Purpose",[458,459,460,469,477,485],"tbody",{},[448,461,462,466],{},[463,464,465],"td",{},"Vector search (HNSW)",[463,467,468],{},"Semantic recall through pgvector.",[448,470,471,474],{},[463,472,473],{},"Full-text fallback",[463,475,476],{},"Supplements vector results when the requested page is not filled.",[448,478,479,482],{},[463,480,481],{},"Hot cache",[463,483,484],{},"Redis sorted set of recent, high-value memories for an agent.",[448,486,487,490],{},[463,488,489],{},"Historical candidates",[463,491,492],{},"Internal conflict\u002Fdedup only; not a user-facing read mode.",[380,494,496],{"id":495},"http-surface","HTTP surface",[369,498,499,500,503],{},"The memory service exposes, under ",[392,501,502],{},"\u002Fv1\u002Fmemories",":",[398,505,506,512,518,524,530],{},[401,507,508,511],{},[392,509,510],{},"POST \u002Fv1\u002Fmemories"," — create a memory.",[401,513,514,517],{},[392,515,516],{},"POST \u002Fv1\u002Fmemories\u002Fsearch"," — semantic search.",[401,519,520,523],{},[392,521,522],{},"GET \u002Fv1\u002Fmemories\u002Fhot"," — hot-cache memories for the current agent.",[401,525,526,529],{},[392,527,528],{},"POST \u002Fv1\u002Fmemories\u002F{memory_id}\u002Ffeedback"," — record usefulness feedback.",[401,531,532,535],{},[392,533,534],{},"POST \u002Fv1\u002Fmemories\u002F{memory_id}\u002Fforget"," — lifecycle\u002Fforget path.",[369,537,538],{},"These routes are part of the local service. They are not evidence of a generally available hosted API.",[380,540,53],{"id":541},"data-model",[369,543,544,545,503],{},"Core tables live in ",[392,546,547],{},"ibex_core",[398,549,550,556,562,568,574],{},[401,551,552,555],{},[392,553,554],{},"memories"," — content, category, confidence, validity timestamps, provenance, embedding.",[401,557,558,561],{},[392,559,560],{},"memory_labels"," — multi-label support; the primary category is synchronized by trigger.",[401,563,564,567],{},[392,565,566],{},"memory_relationships"," — reserved relationship graph.",[401,569,570,573],{},[392,571,572],{},"memory_conflicts"," — candidate\u002Fresolution records.",[401,575,576],{},"embedding and lifecycle support columns added by forward migrations.",[369,578,579,580,582],{},"All access is tenant-scoped with explicit ",[392,581,405],{}," predicates in addition to RLS.",[380,584,586],{"id":585},"limits-and-open-work","Limits and open work",[398,588,589,596,603,606],{},[401,590,591,592,595],{},"Typed lifecycle, provenance checkpoints, and a durable revision ledger are ",[375,593,594],{},"not implemented",".",[401,597,598,599,602],{},"Historical candidate search and temporal reads are fenced; ",[392,600,601],{},"SearchMode"," remains an internal capability that must be audited at new call sites.",[401,604,605],{},"The deferred org-scope GDPR\u002FMinIO purge path and stale-cache behavior remain open.",[401,607,608],{},"Local tests do not certify hosted\u002FHA operation or end-to-end deletion.",[380,610,612],{"id":611},"evidence","Evidence",[398,614,615,625,633,641,649,657,665],{},[401,616,617,624],{},[618,619,623],"a",{"href":620,"rel":621},"https:\u002F\u002Fgithub.com\u002FRick1330\u002Fibex-harness\u002Fblob\u002Fmain\u002Fengineering\u002Fadr\u002F0047-memory-temporal-validity.md",[622],"nofollow","ADR-0047"," — temporal validity.",[401,626,627,632],{},[618,628,631],{"href":629,"rel":630},"https:\u002F\u002Fgithub.com\u002FRick1330\u002Fibex-harness\u002Fblob\u002Fmain\u002Fengineering\u002Fadr\u002F0055-memory-write-path-dedup.md",[622],"ADR-0055"," — write-path dedup.",[401,634,635,640],{},[618,636,639],{"href":637,"rel":638},"https:\u002F\u002Fgithub.com\u002FRick1330\u002Fibex-harness\u002Fblob\u002Fmain\u002Fengineering\u002Fadr\u002F0057-memory-write-orchestration.md",[622],"ADR-0057"," — write orchestration.",[401,642,643,648],{},[618,644,647],{"href":645,"rel":646},"https:\u002F\u002Fgithub.com\u002FRick1330\u002Fibex-harness\u002Fblob\u002Fmain\u002Fengineering\u002Fadr\u002F0058-semantic-search-fts-fallback-trigger.md",[622],"ADR-0058"," — FTS fallback.",[401,650,651,656],{},[618,652,655],{"href":653,"rel":654},"https:\u002F\u002Fgithub.com\u002FRick1330\u002Fibex-harness\u002Fblob\u002Fmain\u002Fengineering\u002Fadr\u002F0059-hot-cache-read-path.md",[622],"ADR-0059"," — hot-cache read path.",[401,658,659,664],{},[618,660,663],{"href":661,"rel":662},"https:\u002F\u002Fgithub.com\u002FRick1330\u002Fibex-harness\u002Fblob\u002Fmain\u002Fengineering\u002Fadr\u002F0060-memory-service-tenant-isolation.md",[622],"ADR-0060"," — tenant isolation.",[401,666,667,670],{},[618,668,669],{"href":58},"GAP-007"," — open lifecycle and revision ledger work.",{"title":390,"searchDepth":672,"depth":672,"links":673},2,[674,675,676,677,678,679],{"id":382,"depth":672,"text":150},{"id":429,"depth":672,"text":430},{"id":495,"depth":672,"text":496},{"id":541,"depth":672,"text":53},{"id":585,"depth":672,"text":586},{"id":611,"depth":672,"text":612},"The IBEX memory substrate — writes, dedup, conflict candidates, temporal reads, and pgvector retrieval.","md",false,{},true,"shipped-local",{"title":146,"description":680},"services\u002Fmemory; engineering\u002Farchitecture-v2\u002F00-status-and-evidence.md","32GHiD-LYPw4lk7sEM93GNI8n0oBmPdT9uvp7YX7i4I",[690,692],{"title":140,"path":141,"stem":142,"description":691,"children":-1},"Tenant-scoped writes, PII quarantine, deduplication, conflict handling, and semantic retrieval.",{"title":150,"path":151,"stem":152,"description":693,"children":-1},"How a memory moves from validated input through PII, dedup, conflict handling, labels, and durable storage.",1792875070769]