PhillNet_Recall / docs /ARCHITECTURE_1.2.md
ayjays132's picture
Upload 121 files
3b3b2bd verified
|
Raw History Blame Contribute Delete
5.08 kB
# Grounded Memory: 1.2 architecture and invariants
## Representation before record count
Both inherited banks remain byte-identical to 1.1: 24 policies and 12,128 packed
bytes total. The advance is executable memory infrastructure, not additional
parameters. Database, indexes, proof structures, graphs and code are separate.
There is no learned semantic encoder or hidden language model. A glossary write is
new supplied information, not evidence of previously unknown meaning being inferred.
## Scoped terminology bridges
`remember_bridge(phrase, target, source=...)` stores a single-valued assertion
under `__retrieval_bridge__`. It is a directed permission to rewrite a query phrase
inside that tenant/namespace. It is not an alias of the underlying factual entity
and is never used to merge claim values. An API writer can supply wrong mappings;
source provenance is visible, but the engine cannot establish semantic truth.
The search normalizes Unicode and case, matches phrase boundaries, and explores
at most 16 query variants / three steps by default (hard limits: 32 / four). Cycles
are deduplicated. A reachable conflicting or multivalued mapping causes conflict.
Exhausting expansion/depth bounds returns `budget_exceeded`, not a partial winner.
No quoted or hypothesized mapping is activated. Instruction-like records are not
used, but this limited heuristic is NOT a comprehensive prompt-injection defense.
Literal and topic features for all variants are measured against one eligible
SQLite snapshot. Existing neural or conventional policies rank candidates.
Selected records carry the exact rewrite dependencies. The top-k certificate is
recomputed against storage before packing; caller-edited text is never trusted.
Correction, TTL, deletion and cross-connection writes use the original validity
rules. Deleted corrections cannot revive old mappings.
`recall_grounded` is explicit: existing `recall` retains its old narrow grammar and
topic fallback. A bridge is application data, not hardcoded global vocabulary.
Evidence packets remain related notes, with no inferred answer value.
## Positive conjunctive queries
`query({'where': [...], 'select': [...]})` joins up to six supplied fact predicates.
Variables bind case-sensitive NFKC-normalized entity/value strings; predicate
aliases use the declared relation map. Literal `?`-prefixed terms use
`{'literal':'?literal'}`. No variable predicates, implicit transitivity, arbitrary
code, negation-as-failure, arithmetic, or external SQL are allowed.
The join orders atoms using supplied cardinalities. A work counter counts actual
candidate examinations. Default bounds are 50,000 examinations and 512 states;
exceeding them returns no partial rows. At most 128 full proof alternatives are
returned. Contradictory touched claims stop inference. `no_matches` describes only
the eligible snapshot, not absence in the world. The scope digest binds all eligible
records so an added new answer invalidates an old result even when its positive
support records did not change. This deliberately favors sound invalidation over
minimal invalidation; unrelated eligible writes can invalidate the certificate.
## Complete-proof context optimization
The previous packer minimized each answer's proof independently. That can repeat
large evidence records unnecessarily. The new optimizer evaluates combinations of
one complete proof per answer and minimizes the actual serialized packet. Shared
record IDs are paid for once. By default at most 4,096 combinations are examined;
the configurable hard maximum is 65,536. This is exponential finite search, not an
unbounded efficient solver.
No additive token lower bound is assumed: tokenization can merge across boundaries.
Every evaluated full packet is counted with the provided tokenizer (otherwise
UTF-8 bytes). `optimal=true` requires exhaustion of the candidate combination set.
A feasible incumbent may be returned with `optimal=false` after hitting the bound.
If no feasible incumbent is found before the search cap, the status is
`search_exhausted`, not a proof of infeasibility. `budget_exceeded` is reserved for
a fully searched choice set. In all cases, an incomplete proof is never emitted.
## Certificates are not signatures
Recomputing a checksum is not sufficient to forge a supported result: revalidation
reruns the plan and compares selected evidence. This detects tampering with the
certificate content, but it does not protect against an authorized database writer
inserting false claims. There are no external fact-verification or cryptographic
identity guarantees. In-flight reads can legitimately reflect their initial
snapshot; consequential actions must reauthorize independently.
## Deployment separation
The authenticated production API serves one configured scope. The optional public
Space serves only fixed synthetic cases; no live memory write endpoints are mounted.
The client refuses cleartext remote bearer traffic and credential-bearing redirects.
The Hub downloader fetches checkpoint data, not executable remote code.