M-INTEROCEPTION P5: dream-recall builtin engram_dreams_json (honesty rail)
Adds a read-only builtin that returns the curiosity_scan InternalStateEvents created after a `since` cutoff that are STILL RESIDENT — "what I was chewing on while you were gone." curiosity_scan is identified by the marker the soul writes into each ISE's JSON content; heartbeat and other ISEs are excluded. HARD honesty rail: it reports only ISEs still in the buffer. Anything rotated out by the 48h engram_prune_telemetry is simply ABSENT — rotated-out = "I don't remember", never a synthesized/plausible dream. Purely additive, no flag. The HTTP route (GET /api/dreams?since=) is DEFERRED to cutover per the elc-drift blocker (regenerating engram/dist diverges with no source change); the builtin is exercised directly by the pure-C gate. MEASURED on a copy: seeded 3 curiosity_scan (ancient/1h/now) + 1 heartbeat; before prune dreams returned exactly the 3 curiosity_scan (heartbeat excluded); after the 48h prune the ancient one was ABSENT (not confabulated), leaving 2; the since-filter returned only the post-cutoff event; no returned id was ever fabricated. ASan+UBSan clean.
This commit is contained in:
@@ -622,6 +622,7 @@ el_val_t engram_search_json(el_val_t query, el_val_t limit);
|
||||
el_val_t engram_scan_nodes_json(el_val_t limit, el_val_t offset);
|
||||
el_val_t engram_scan_nodes_by_type_json(el_val_t node_type, el_val_t limit, el_val_t offset);
|
||||
el_val_t engram_scan_nodes_emb_json(el_val_t limit, el_val_t offset);
|
||||
el_val_t engram_dreams_json(el_val_t since_ms);
|
||||
el_val_t engram_consolidate_permanence(el_val_t node_id);
|
||||
el_val_t engram_age_field(el_val_t delta_ms);
|
||||
el_val_t engram_age_field_catchup(void);
|
||||
|
||||
Reference in New Issue
Block a user