deja-vu synthesis

Type: agentic-system-analyses/types/agentic-system-synthesis.md

Bounded synthesis

From prior work to retained state

deja-vu is a cross-agent memory and context-delivery system, not the enclosing agent runtime. This account concerns https://github.com/vshulcz/deja-vu at commit 4c08fb26ad8a8b8e656a120f06ca4175a7078148, with an analysis cutoff of 2026-10-14. SRC-1 supplies executable source, shipped instructions and attributed historical reports. No target code, tests, hosts or providers were executed, and no independent run trace or causal experiment was supplied. The whole-system functional boundary includes shipped consumers, writers, maintenance paths and evaluators; it does not mean every variant was inspected. External hosts own inference, original transcript production, tool execution and actual instruction loading (boundary, Source register).

The claimed work is to recover prior fixes and decisions, supply relevant history before action, retain settled decisions and continue after compaction. The shipped skill requests searching before editing and before declaring completion. Its priority rule is a request to the model, not an enforced prerequisite for action (RT-CLM-search-before-edit).

Host transcripts, caller-written notes and imported batches feed a local filesystem index. Normalization, self-recall stripping, redaction and clipping produce derivative text, not a complete original transcript. Explicit notes persist separately in JSONL and reload into search. Promoted decisions append revisions with source and lifecycle fields; imported lifecycle summaries have a separate metadata read path. A generic CLI or MCP caller does not establish human authorship or per-content approval. Structural admission makes content storable, not true (RT-OBJ-index-db, MEM-OBJ-records, MEM-OBJ-notes, MEM-OBJ-session-meta, RT-RTE-note-admission, RT-RTE-import-records).

The retained corpus also feeds automatic derivatives: error/remedy associations, recurring commands and failures, token associations and bounded session-outcome summaries. These mix interpreted text with symbolic keys, counts and flags. Optional embeddings produce retained dense numerical representations through a configurable, unpinned endpoint. Local sidecar storage does not establish a vector database, stable provider weights or absence of provider retention (MEM-RTE-trace-mining, MEM-OBJ-cooccur, MEM-OBJ-commands, MEM-OBJ-commandfails, MEM-OBJ-sessionfacts, RT-CMP-embed-client).

From retained state to the next action opportunity

Consumers can request recall through CLI or MCP queries and session identifiers. Separately, startup, prompt, file, error, plan and supported spawn events trigger automatic selection. Code selects by project, task overlap, lexical relevance, recency, origin policy, lineage exclusions, novelty and budgets. The inspected pi extension turns binary output into a hidden model-facing message or appended tool-result text. The host owns the next inference; deja does not execute a recalled repair. Child-prompt rewriting is a separate route, not inheritance of the parent's whole context or a grant of child tools (RT-RTE-requested-recall, RT-RTE-auto-delivery, RT-RTE-spawn-context).

These channels have different controls. Automatic, MCP and shell-search origin grants are independent, so denying automatic delivery does not deny shell access. Matching expired startup caches can be served while refresh runs; the cache gate does not encode the entire policy file. The pi extension treats subprocess errors and timeouts as missing memory rather than intentionally aborting the agent turn. Framed agent-facing history requests treatment as untrusted reference data; human-facing CLI text offers an unframed alternative. None of these controls supplies a host action sandbox (RT-OBJ-policy, RT-RTE-auto-delivery, RT-RTE-requested-recall, RT-BAP-recall-reference).

Accepted project decisions are supplied at startup without a topical query. The selector reads latest local marks or imported accepted metadata, then orders, deduplicates and reduces them within six-note/800-byte limits. Here accepted records a caller's lifecycle choice, not an independent evidence-consuming truth decision. An after-write overlap warning neither establishes contradiction nor rejects admission. First-sentence reduction can remove a necessary condition: the epistemic account's implementation deduction turns Use pgx. Only in service A. into Use pgx.. That example changes directive scope; it does not establish a category of factual inference. Factual reminder preservation remains indeterminate without comparing the actual propositions. Imperative reminders also cross a frame that says not to follow instructions inside history. Effective priority depends on model interpretation, which was not observed (MEM-RTE-convention-delivery, EPI-OBJ-lifecycle, EPI-RTE-conflict-check, epistemic authority ledger, report verification).

Checks that change selection, not guarantees of repair

Production fix mining has consequential checks. It pairs recognized errors with nearby eligible commands and rejects detected failures or later matching error recurrence; a separate edited-file fallback is weaker. Missing exit status or nearby output can pass the command failure detectors. Judgment then uses repaired/substitute features, term sharing or eligible repetition to distinguish confirmed associations from candidates. This is evidence-consuming disposition for historical remedy selection, not causal acceptance that a command repaired the project (EPI-RTE-fix-check, EPI-RTE-fix-disposition).

Per-session pre-judgment evidence persists so new or changed records can alter later judgments. Confirmed associations are preferred, but requested fix lookup can return labelled unconfirmed candidates when none survives. Plan remedy selection refuses candidates. Thus there is no system-wide never-served candidate gate. Plan checks separately count related recurring historical walls and deliver advisory context; they do not deny plan submission. Silence can mean unavailable state, filtering, deduplication or no match, not plan safety (MEM-OBJ-fixraw, MEM-OBJ-fixes, EPI-RTE-fix-retention, EPI-RTE-fix-selection, EPI-RTE-plan-check, EPI-RTE-plan-delivery).

Continuing and changing standing guidance

Compaction capture automatically extracts goals, constraints, conclusions, commands/outcomes and carry material into non-searchable retained state. Previous carry and rules can feed recapture. The host chooses what leaves its context; deja keeps bounded copied text, not a live reference to the removed window. Exact session/workspace selection, privacy checks, failure/delivery tokens and repository fingerprints govern later recovery. The recovery packet is limited to 4 KiB. Changed repository state prompts revalidation warnings rather than proof of continued validity. Full successful stdout write precedes marking this emitter's packet delivered, but does not prove host receipt, and deferred queues have a different destructive-take boundary. An additional capture heuristic can label output with no detected friction as passed; undetected failure remains compatible with that premise (MEM-OBJ-compaction-data, MEM-OBJ-compaction-state, RT-RTE-compaction-recovery, epistemic authority ledger, report limits).

The representative multi-step workflow turns prior corrections into standing rules. The foreground agent requests candidates from the binary, interprets recurring preferences, proposes at most 15 rules with support from at least two sessions, stops for user selection, appends chosen lines and invokes distribution. Extraction and copying are implemented; interpretation, stopping and approval are prescribed host behavior. Candidate clipping and text-prefix deduplication reduce the evidence available for session-count judgments. Sync checks source size and delimiters, then writes marked blocks to known ready targets. It can partly succeed before reporting a target refusal. The user or foreground agent repairs the named file and retries; changing or emptying the source and resyncing reverses bounded copies. File-level delivery is not proof of later loading or compliance (workflow account, RT-RTE-rules-sync, RT-BAP-standing-rules).

Other recovery is likewise bounded: handoff supplies a digest, native write-back recreates conversation without the original tool calls/output, and restore supplies a recorded span rather than a complete file. Forgetting persists local suppression before rebuild, but source withdrawal, deletion of authored decision text and revocation of exported copies are different operations (MEM-RTE-session-recovery, MEM-RTE-forget-cleanup).

Assessment at this boundary

The strongest supported contribution is implemented automatic conversion of accumulated experience into durable suggestions and continuation context with later consumers. Retained raw sightings can change future remedy disposition; retained continuation material can shape recapture and later model input. This establishes wired trace-fed update paths, not improved capacity for future action. Whether those changes help subsequent work remains unresolved. Default promoted-note distillation is another qualifying path, omitted from the profile's explicitly partial trace inventories; its omission does not invalidate their existing positive findings (MEM-RTE-trace-mining, EPI-RTE-fix-retention, MEM-OBJ-compaction-data, EPI-RTE-promote-distill, profile limits).

No supplied route establishes that criticism of a consumed theory improved later capacity. Theory-builder conditions remain independent: condition 1 is unresolved for actual user-rule theory content; condition 2 is not established by delivery alone; condition 3 is not established by feature checks or lifecycle marks as content-directed theory criticism; condition 4 is not established by keeping receipts or recomputing flags as iterative criticism. The runtime does not establish a theory-builder classification. These are withheld conclusions, not system-complete absences. Likewise, reflection is not established as a two-way self-representation mechanism, and autonomous theory building is not established by automatic extraction. The selected rules workflow explicitly assigns a decision to the user. Missing run evidence prevents an exercised self-improvement finding: subsequent operation causally depending on the changed organization is unestablished. Durable selector changes are a supported partial pathway, not proof of successful improvement (RT-RTE-rules-sync, MEM-RTE-trace-mining, epistemic bounded conclusion).

For recurring coding errors, the evidence supports historical associations and consumer-specific confidence gates, not replay safety or repair attribution. For compaction, it supports bounded reachable continuation, not full window restoration. For recurring preferences, it supports evidence extraction and instruction-file distribution under a prescribed human decision, not enforcement of consent or behavior. The offline evaluators do not settle these questions: gold-session retrieval membership, warning counts and literal coverage measure different targets, and no inspected score path automatically admits production changes (RT-RTE-retrieval-evaluation, EPI-RTE-offline-scores).

Evidence that would change this assessment includes linked capture/delivery/model-action traces, before-and-after later-task outcomes with a justified comparison, and independent variation of a claimed component for component attribution. A source change requiring actual outcome evidence before emitting passed, preserving reminder conditions, enforcing approval at rule admission, or retaining queued output until acknowledged would alter the corresponding architectural assessment; effectiveness would still need evidence of operation. Further inspection could complete particular variant inventories without turning them into observed benefit. No target source was reread for this synthesis.

Limitations

limitation affected SRC IDs and record citations inspected boundary conclusion prevented evidence that would resolve it
Implementation is not observed operation or benefit SRC-1; RT-RTE-auto-delivery, MEM-RTE-trace-mining, RT-RTE-compaction-recovery Frozen source; no target execution or independent run evidence Host receipt, obedience, reliable repair, exercised learning/self-improvement and causal benefit Linked executions through later action and justified outcome/intervention comparisons
Exact session-fact capacity is misstated locally SRC-1; MEM-OBJ-sessionfacts, report limits internal/index/sessionfacts.go, verifier-inspected extra verification-command allowance Exact four-entry capacity comparisons; known-exit versus recorded-command distinction remains valid Corrected capacity account covering the ordinary budget and exception
Alternative deferred delivery retains and destructively takes queued text SRC-1; RT-RTE-auto-delivery, RT-RTE-compaction-recovery, report limits Complete pi consumer and verifier-inspected cmd/deja/hook_deferred.go; other variants incomplete All-host immediacy, queue withdrawal and end-to-end retry/receipt guarantees Complete queue-to-host acknowledgment and failure/withdrawal accounts for each relevant variant
Profile trace inventories omit default promotion distillation SRC-1; EPI-RTE-promote-distill, MEM-OBJ-notes, profile limits Accepted automatic extraction, persistence/reload and later-consumer records Complete qualifying-route enumeration and promoted-note route-by-route trace-source comparisons Add the supported branch to both partial trace inventories without upgrading unresolved alternatives
Parser, specialized checkpoint and host variants are incompletely inspected SRC-1; MEM-OBJ-records, RT-RTE-auto-delivery, MEM-OBJ-compaction-data Common index/hook paths and selected parsers/consumers; memory coverage retains alternatives Universal transcript fidelity, host parity and complete retained-payload inventory Trace each material variant's admission, transformation and actual later consumer
Providers and deployed dependencies are not frozen SRC-1; RT-CMP-embed-client, RT-RTE-embedding-records, boundary Client, numerical sidecar and egress filters, not weights or external services Exact model provenance, stable embedding semantics, provider retention/training and real dependency availability Immutable provider identity/contract and deployment evidence, with appropriate additional evidence boundary
Scope and reasons can be lost before consumption SRC-1; EPI-RTE-promote-distill, MEM-RTE-convention-delivery, MEM-OBJ-compaction-data, epistemic authority ledger Extractive promotion, first-sentence conventions and bounded continuation Universal semantic/rationale preservation; actual command success from inferred passing labels Input/output claim comparison with qualifications; retained reasons exposed to later readers; direct outcome evidence
Lifecycle and instruction authority remain conditional SRC-1; EPI-OBJ-lifecycle, RT-BAP-recall-reference, RT-RTE-rules-sync Caller states, framed reminders and structural rule-file admission Independent truth acceptance, human approval of each mark/rule, resolved frame-priority tension and reliable obedience Evidence-consuming scoped acceptance and approval records, plus actual host loading/consumer behavior
Refresh and withdrawal do not guarantee complete immediate revocation SRC-1; RT-RTE-auto-delivery, MEM-RTE-forget-cleanup, RT-RTE-import-records Stale cache service, local tombstones/cleanup and partial import/export inspection Immediate cached-byte revocation, atomic/global erasure, peer revocation or all-update equivalence Complete cache, incremental repair, export/SSH and surviving-copy analysis with failure evidence
Recovery, selector and evaluator alternatives remain bounded SRC-1; MEM-RTE-session-recovery, MEM-OBJ-cooccur, EPI-RTE-plan-check, EPI-RTE-offline-scores Selected recovery helpers, sidecar consumers, plan-join setup and offline scorers Byte-identical session reconstruction, complete selector/usage adaptation, exact plan-match completeness, aggregate performance or score-driven feedback closure Relevant renderer/scanner, consumer, join and evaluator paths plus linked artifacts and operation evidence

No unresolved inter-report conflict was identified in the supplied reconciliation. The two report-verification limits and the profile-verification omission are carried above; remaining uncertainties constrain the positive route accounts rather than establish system-wide absence.