feat(recall): engram-scoring #47
Closed
will.anderson
wants to merge 0 commits from
improve/recall-engram-scoring into main
pull from: improve/recall-engram-scoring
merge into: :main
:main
:reconcile/hotfix-to-main-launch
:hotfix/elc-source-typos
:fix/safety-contact-truncation
:fix/genesis-boot-crash
:fix/immutable-on-hotfix
:feat/bounded-persona-floor
:ci/rdynamic-http-handler
:ci/harden-gate-boot
:feat/neuron-dev-setup
:feat/immutable-engram-deletes
:feat/agent-phase1-soul
:salvage/elh-state-20260704
:hotfix/trackb-threat-to-others
:feat/soul-model-self-report
:feat/openai-format-providers
:feat/plan-mode-endpoint
:fix/operator-identity-home-resolution
:fix/wrapper-backlog-endpoints
:fix/list-typed-slice-offset
:feat/connectors-call-route
:fix/chat-vision-attachments
:fix/prevent-engram-corruption
:fix/emergency-regressions
:fix/session-continuity-hook
:fix/context-dedup-shared-ids
:fix/engram-float-parser
:improve/recall-context-format
:improve/recall-context-dedup
:improve/recall-cross-session-continuity
:improve/recall-emotional-recall
:improve/recall-activation-seed
:improve/recall-recall-completeness
:improve/recall-temporal-precision
:improve/recall-engram-scoring
:improve/recall-recall-reliability
:improve/recall-session-start-recall
:improve/reliability-engram-write
:improve/reliability-state-management
:improve/soul-memory-formation
:improve/safety-crisis-detection
:improve/reliability-route-error-recovery
:improve/reliability-llm-retry
:improve/reliability-session-boundary
:improve/reliability-safety-resilience
:improve/reliability-engram-connection
:improve/soul-routes-api
:improve/reliability-cross-session-affective
:propose/agent-workspace-root-read
:improve/reliability-conv-history
:improve/soul-strip
:improve/soul-chat-pipeline
:docs/conversation-retrieval-design
:propose/no-fake-tools-in-chat-mode
:fix/ci-soul-build-single-file
:fix/canonical-self-bridge
:feat/agent-tool-workspace-scope
:fix/agentic-tools-duplicate-web-search
:green/agentic-fixes
:feat/connectors-soul
:feat/layer-safety
:feat/layer-imprint
:feat/layer-stewardship
:test/layer-composition
:test/layer-safety
:test/layer-stewardship
:test/layer-imprint
:feat/memory-delete-update
:feat/native-web-search
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "improve/recall-engram-scoring"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Memory recall improvements for engram-scoring
Fix critical float parsing bug: %g serializes 0.70 as '0.7', naive str_replace dot-strip gives str_to_int('07')=7 not 70. New parse_salience_100() uses str_index_of to detect single-decimal strings and multiplies by 10 to correct. Affects conv nodes (0.6/0.7), default memories (0.5/0.5), utterance nodes (0.6) — the majority of the graph was scoring near zero and filtered by threshold=25. Fix recency to use max(created_at, updated_at, last_activated) so nodes strengthened by engram_strengthen() after chat turns score as fresh, not by original write time. A node referenced yesterday but created 25 days ago was borderline-filtered; now correctly scores fresh. Compress recency dynamic range from 10x (10-100) to 1.54x (65-100) via formula (50 + recency/2). Old formula: sal*imp*recency/10000 let recency dominate — a canonical high-importance node at 30 days scored identical to a fresh noise node. New: high-importance nodes remain competitive when old. Add tier-aware decay with softer floor (30 not 10): Canonical nodes decay over 365 days, Episodic over 90 days, working/untiered over 35 days. Long- term identity and persona nodes are no longer permanently filtered. Lower threshold from 25 to 15 to admit moderately-relevant older nodes that pass scoring with the corrected formula. Backfills recall coverage lost when single-decimal nodes were being silently discarded. Apply scoring to activation nodes: engram_compile_ranked(activate_json, 5) replaces unconditional pass-through. Threshold 5 preserves recall while excluding genuinely zero-quality stale nodes. Extend sentinel cleanup in engram_compile_ranked from _sel_0-9 to _sel_0-19 so max_nodes can safely be increased past 10 without JSON corruption.Pull request closed