From 09406d58525e7ca9b1ff310a40019a9a8a7f0397 Mon Sep 17 00:00:00 2001 From: Yvette Carlisle Date: Fri, 19 Jun 2026 15:25:02 +0800 Subject: [PATCH] {"schema":"decodex/commit/1","summary":"Publish graph/RAG citation navigation promotion report","authority":"XY-985"} --- README.md | 6 +- ...-citation-navigation-promotion-report.json | 168 ++++++++++++++++++ .../tests/real_world_job_benchmark.rs | 86 +++++++++ ...ag-citation-navigation-promotion-report.md | 108 +++++++++++ docs/evidence/benchmarking/index.md | 1 + docs/log.md | 3 + 6 files changed, 371 insertions(+), 1 deletion(-) create mode 100644 apps/elf-eval/fixtures/report_snapshots/2026-06-19-graph-rag-citation-navigation-promotion-report.json create mode 100644 docs/evidence/benchmarking/2026-06-19-graph-rag-citation-navigation-promotion-report.md diff --git a/README.md b/README.md index 8306dad4..e4ca0368 100644 --- a/README.md +++ b/README.md @@ -267,7 +267,9 @@ provider-backed ELF evidence was required. comparison blocked; graphify is `wrong_result`; llm-wiki is not_tested; gbrain is blocked; private and hosted graph/RAG profiles are non_goal. These reports preserve the smoke and typed non-pass boundaries and do not create an ELF win claim against - graph/RAG strengths. + graph/RAG strengths. Graph/RAG citation/navigation promotion after XY-985 refreshes + this state as 0 pass, 1 wrong_result, 1 incomplete, and 3 blocked, with graphify + evidence-linked output still scoring wrong_result. - mem0/OpenMemory history follow-up after XY-924 and XY-931: the local OSS mem0 adapter now passes encoded preference correction history, entity-scoped personalization, local `get_all` export-style readback, and deletion audit history. @@ -318,6 +320,7 @@ Detailed evidence and interpretation: - [Proactive Brief Scoring Report - June 16, 2026](docs/evidence/benchmarking/2026-06-16-proactive-brief-scoring-report.md) - [Scheduled Memory Task Scoring Report - June 16, 2026](docs/evidence/benchmarking/2026-06-16-scheduled-memory-task-scoring-report.md) - [Dreaming Competitor-Strength Retest Report - June 17, 2026](docs/evidence/benchmarking/2026-06-17-dreaming-competitor-strength-retest-report.md) +- [Graph/RAG Citation and Navigation Promotion Report - June 19, 2026](docs/evidence/benchmarking/2026-06-19-graph-rag-citation-navigation-promotion-report.md) - [qmd Debug-Ergonomics Dreaming Retest Report - June 19, 2026](docs/evidence/benchmarking/2026-06-19-qmd-debug-ergonomics-dreaming-retest-report.md) - [OpenViking Trajectory Materialization Report - June 19, 2026](docs/evidence/benchmarking/2026-06-19-openviking-trajectory-materialization-report.md) - [Service-Native Dreaming Readback Report - June 19, 2026](docs/evidence/benchmarking/2026-06-19-service-native-dreaming-readback-report.md) @@ -406,6 +409,7 @@ Detailed comparison, mechanism-level analysis, and source map: - [Proactive Brief Scoring Report - June 16, 2026](docs/evidence/benchmarking/2026-06-16-proactive-brief-scoring-report.md) - [Scheduled Memory Task Scoring Report - June 16, 2026](docs/evidence/benchmarking/2026-06-16-scheduled-memory-task-scoring-report.md) - [Dreaming Competitor-Strength Retest Report - June 17, 2026](docs/evidence/benchmarking/2026-06-17-dreaming-competitor-strength-retest-report.md) +- [Graph/RAG Citation and Navigation Promotion Report - June 19, 2026](docs/evidence/benchmarking/2026-06-19-graph-rag-citation-navigation-promotion-report.md) - [qmd Debug-Ergonomics Dreaming Retest Report - June 19, 2026](docs/evidence/benchmarking/2026-06-19-qmd-debug-ergonomics-dreaming-retest-report.md) - [OpenMemory UI/Export Product Readback Report - June 19, 2026](docs/evidence/benchmarking/2026-06-19-openmemory-ui-export-product-readback-report.md) - [Live Baseline Benchmark Runbook](docs/runbook/benchmarking/live_baseline_benchmark.md) diff --git a/apps/elf-eval/fixtures/report_snapshots/2026-06-19-graph-rag-citation-navigation-promotion-report.json b/apps/elf-eval/fixtures/report_snapshots/2026-06-19-graph-rag-citation-navigation-promotion-report.json new file mode 100644 index 00000000..103e335c --- /dev/null +++ b/apps/elf-eval/fixtures/report_snapshots/2026-06-19-graph-rag-citation-navigation-promotion-report.json @@ -0,0 +1,168 @@ +{ + "schema": "elf.graph_rag_citation_navigation_promotion_report/v1", + "report_id": "xy-985-graph-rag-citation-navigation-promotion-2026-06-19", + "authority": "XY-985", + "created_at": "2026-06-19T07:17:34Z", + "goal": "Promote graph/RAG citation, navigation, stale-source lint, and knowledge-surface cases only when adapters emit comparable evidence-linked outputs while preserving typed non-pass outcomes.", + "command": { + "command": "cargo make real-world-memory-graph-rag", + "status": "pass", + "report_artifact": "tmp/real-world-memory/graph-rag/report.json", + "markdown_artifact": "tmp/real-world-memory/graph-rag/report.md", + "run_id": "real-world-memory-graph-rag", + "adapter_id": "fixture_graph_rag_external_adapters" + }, + "source_baseline": { + "previous_report": "docs/evidence/benchmarking/2026-06-17-dreaming-competitor-strength-retest-report.md", + "previous_graph_rag_report": "docs/evidence/benchmarking/2026-06-11-graph-rag-scored-smoke-adapter-report.md", + "previous_status": "typed_non_pass", + "previous_counts": { + "pass": 0, + "wrong_result": 1, + "incomplete": 1, + "blocked": 3 + } + }, + "summary": { + "overall_judgment": "unchanged_typed_non_pass", + "broader_graph_rag_parity": "not_proven", + "job_count": 5, + "encoded_suite_count": 3, + "pass": 0, + "wrong_result": 1, + "incomplete": 1, + "blocked": 3, + "not_encoded": 0, + "wrong_result_count": 2, + "regressed_scenario_count": 0, + "evidence_coverage": 0.25, + "source_ref_coverage": 0.25, + "quote_coverage": 0.25, + "knowledge_citation_coverage": 0.667, + "stale_claim_detection": 0.0, + "unsupported_summary_count": 1, + "mean_score": 0.06 + }, + "scenario_outcomes": [ + { + "project": "RAGFlow", + "scenario_id": "reference_chunk_citation_mapping", + "fixture": "apps/elf-eval/fixtures/real_world_external_adapters/graph_rag/ragflow_reference_chunks_blocked.json", + "required_output": "Returned reference chunks must include generated document ids, chunk ids, content, and document metadata mapped to benchmark evidence ids.", + "current_status": "blocked", + "judgment": "unchanged", + "artifact": "tmp/real-world-memory/graph-rag/report.json", + "blocker": "resource_api_setup_and_reference_chunks_missing", + "claim_boundary": "No RAGFlow citation quality or ELF-over-RAGFlow claim is allowed." + }, + { + "project": "LightRAG", + "scenario_id": "context_source_reference_mapping", + "fixture": "apps/elf-eval/fixtures/real_world_external_adapters/graph_rag/lightrag_context_sources_incomplete.json", + "required_output": "Context/source export must expose generated file paths, snippets, or references mapped to evidence ids.", + "current_status": "incomplete", + "judgment": "unchanged", + "artifact": "tmp/real-world-memory/graph-rag/report.json", + "blocker": "default_api_export_not_available", + "claim_boundary": "No LightRAG graph/RAG quality claim is allowed until source references map to generated evidence." + }, + { + "project": "GraphRAG", + "scenario_id": "output_table_citation_mapping", + "fixture": "apps/elf-eval/fixtures/real_world_external_adapters/graph_rag/graphrag_output_tables_blocked.json", + "required_output": "Output tables must map documents, text units, communities, reports, entities, and relationships to generated evidence ids.", + "current_status": "blocked", + "judgment": "unchanged", + "artifact": "tmp/real-world-memory/graph-rag/report.json", + "blocker": "provider_backed_output_tables_missing", + "claim_boundary": "No GraphRAG citation, synthesis, or navigation claim is allowed without mapped output tables." + }, + { + "project": "Graphiti/Zep", + "scenario_id": "temporal_graph_validity_mapping", + "fixture": "apps/elf-eval/fixtures/real_world_external_adapters/graph_rag/graphiti_temporal_validity_blocked.json", + "required_output": "Current and historical graph facts must carry validity windows and evidence ids.", + "current_status": "blocked", + "judgment": "unchanged", + "artifact": "tmp/real-world-memory/graph-rag/report.json", + "blocker": "provider_backed_temporal_graph_output_missing", + "claim_boundary": "Graphiti/Zep remains the temporal-validity reference; no ELF superiority claim is allowed." + }, + { + "project": "graphify", + "scenario_id": "graph_report_navigation_lint", + "fixture": "apps/elf-eval/fixtures/real_world_external_adapters/graph_rag/graphify_graph_report_wrong_result.json", + "required_output": "graph.json, source-location sections, unsupported-claim lint, and stale-source lint must all be scored.", + "current_status": "wrong_result", + "judgment": "unchanged", + "artifact": "tmp/real-world-memory/graph-rag/report.json", + "produced_evidence": [ + "graphify-derived-report-boundary", + "graphify-graph-summary-output", + "graphify-source-location-output" + ], + "blocker": "stale_claim_detection_missing_and_unsupported_summary_present", + "claim_boundary": "graphify has evidence-linked output but remains wrong_result; do not convert this into an ELF win." + }, + { + "project": "llm-wiki", + "scenario_id": "wiki_page_citation_lint", + "fixture": null, + "required_output": "Contained page generation must emit cited sections plus stale-source and unsupported-claim lint.", + "current_status": "not_encoded", + "judgment": "unchanged", + "artifact": null, + "blocker": "no_contained_page_materializer", + "claim_boundary": "llm-wiki remains a reference workflow until a contained materializer exists." + }, + { + "project": "gbrain", + "scenario_id": "compiled_truth_timeline_export", + "fixture": null, + "required_output": "Docker-local brain repository import must emit compiled-truth or timeline pages with source evidence.", + "current_status": "blocked", + "judgment": "unchanged", + "artifact": null, + "blocker": "docker_local_brain_repo_and_database_setup_missing", + "claim_boundary": "gbrain remains blocked until setup/export readback is proven." + } + ], + "improvement_regression_readback": { + "judgment": "unchanged", + "improved": [ + "The fresh June 19 report records graphify evidence-linked output and typed blockers in a checked-in XY-985 companion." + ], + "unchanged": [ + "No graph/RAG scenario moved to pass.", + "RAGFlow, GraphRAG, and Graphiti/Zep remain blocked.", + "LightRAG remains incomplete.", + "graphify remains wrong_result.", + "llm-wiki remains not_encoded and gbrain remains blocked." + ], + "regressed": [] + }, + "claim_boundaries": { + "allowed": [ + "The representative graph/RAG command is reproducible and emits typed non-pass outcomes.", + "graphify emits evidence-linked graph/report output but remains wrong_result.", + "The comparison status is unchanged relative to XY-955." + ], + "not_allowed": [ + "Do not claim graph/RAG parity or broad graph-navigation quality.", + "Do not convert research gates, tiny smokes, blocked setup, incomplete output, or graphify wrong_result into a win.", + "Do not use private providers, hosted services, or unrecorded credentials for this lane." + ] + }, + "next_optimization_direction": { + "required_fields": [ + "ragflow_reference_chunk_ids_and_document_metadata", + "lightrag_context_source_paths_or_snippets", + "graphrag_output_table_rows_with_generated_evidence_ids", + "graphiti_zep_valid_at_invalid_at_evidence_mapping", + "graphify_stale_source_lint_pass", + "llm_wiki_contained_page_materializer", + "gbrain_docker_local_brain_repo_export" + ], + "non_goal": "Do not implement broad ELF graph/RAG product features in this benchmark/report lane." + } +} diff --git a/apps/elf-eval/tests/real_world_job_benchmark.rs b/apps/elf-eval/tests/real_world_job_benchmark.rs index b30b4cc9..42ebd39a 100644 --- a/apps/elf-eval/tests/real_world_job_benchmark.rs +++ b/apps/elf-eval/tests/real_world_job_benchmark.rs @@ -250,6 +250,10 @@ fn openmemory_ui_export_product_readback_report_json_path() -> Result { report_snapshot_path("2026-06-19-openmemory-ui-export-product-readback-report.json") } +fn graph_rag_citation_navigation_promotion_report_json_path() -> Result { + report_snapshot_path("2026-06-19-graph-rag-citation-navigation-promotion-report.json") +} + fn openviking_trajectory_materialization_report_markdown_path() -> Result { Ok(workspace_root()? .join("docs") @@ -282,6 +286,14 @@ fn openmemory_ui_export_product_readback_report_markdown_path() -> Result Result { + Ok(workspace_root()? + .join("docs") + .join("evidence") + .join("benchmarking") + .join("2026-06-19-graph-rag-citation-navigation-promotion-report.md")) +} + fn live_temporal_reconciliation_report_json_path() -> Result { report_snapshot_path("2026-06-16-live-temporal-reconciliation-report.json") } @@ -3505,6 +3517,80 @@ fn openmemory_ui_export_product_recheck_preserves_blocked_boundary() -> Result<( Ok(()) } +#[test] +fn graph_rag_citation_navigation_promotion_preserves_typed_non_passes() -> Result<()> { + let report = serde_json::from_str::(&fs::read_to_string( + graph_rag_citation_navigation_promotion_report_json_path()?, + )?)?; + let markdown = + fs::read_to_string(graph_rag_citation_navigation_promotion_report_markdown_path()?)?; + let benchmarking_index = fs::read_to_string(benchmarking_index_path()?)?; + let readme = fs::read_to_string(readme_path()?)?; + + assert_eq!( + report.pointer("/schema").and_then(Value::as_str), + Some("elf.graph_rag_citation_navigation_promotion_report/v1") + ); + assert_eq!(report.pointer("/authority").and_then(Value::as_str), Some("XY-985")); + assert_eq!( + report.pointer("/command/command").and_then(Value::as_str), + Some("cargo make real-world-memory-graph-rag") + ); + assert_eq!(report.pointer("/command/status").and_then(Value::as_str), Some("pass")); + assert_eq!( + report.pointer("/summary/overall_judgment").and_then(Value::as_str), + Some("unchanged_typed_non_pass") + ); + assert_eq!(report.pointer("/summary/pass").and_then(Value::as_u64), Some(0)); + assert_eq!(report.pointer("/summary/wrong_result").and_then(Value::as_u64), Some(1)); + assert_eq!(report.pointer("/summary/incomplete").and_then(Value::as_u64), Some(1)); + assert_eq!(report.pointer("/summary/blocked").and_then(Value::as_u64), Some(3)); + assert_eq!(report.pointer("/summary/evidence_coverage").and_then(Value::as_f64), Some(0.25)); + assert_eq!( + report.pointer("/summary/knowledge_citation_coverage").and_then(Value::as_f64), + Some(0.667) + ); + + let scenarios = array_at(&report, "/scenario_outcomes")?; + let ragflow = find_by_field(scenarios, "/project", "RAGFlow")?; + let lightrag = find_by_field(scenarios, "/project", "LightRAG")?; + let graphrag = find_by_field(scenarios, "/project", "GraphRAG")?; + let graphiti = find_by_field(scenarios, "/project", "Graphiti/Zep")?; + let graphify = find_by_field(scenarios, "/project", "graphify")?; + let llm_wiki = find_by_field(scenarios, "/project", "llm-wiki")?; + let gbrain = find_by_field(scenarios, "/project", "gbrain")?; + + assert_eq!(ragflow.pointer("/current_status").and_then(Value::as_str), Some("blocked")); + assert_eq!(lightrag.pointer("/current_status").and_then(Value::as_str), Some("incomplete")); + assert_eq!(graphrag.pointer("/current_status").and_then(Value::as_str), Some("blocked")); + assert_eq!(graphiti.pointer("/current_status").and_then(Value::as_str), Some("blocked")); + assert_eq!(graphify.pointer("/current_status").and_then(Value::as_str), Some("wrong_result")); + assert_eq!(llm_wiki.pointer("/current_status").and_then(Value::as_str), Some("not_encoded")); + assert_eq!(gbrain.pointer("/current_status").and_then(Value::as_str), Some("blocked")); + assert!(array_contains_str(graphify, "/produced_evidence", "graphify-source-location-output")?); + assert!(array_contains_str( + &report, + "/claim_boundaries/not_allowed", + "Do not claim graph/RAG parity or broad graph-navigation quality." + )?); + assert!(array_contains_str( + &report, + "/next_optimization_direction/required_fields", + "graphrag_output_table_rows_with_generated_evidence_ids" + )?); + assert!(markdown.contains("typed non-pass, no parity claim")); + assert!( + markdown.contains("graphify produces evidence-linked output but still scores wrong_result") + ); + assert!( + benchmarking_index.contains("2026-06-19-graph-rag-citation-navigation-promotion-report.md") + ); + assert!(readme.contains("Graph/RAG Citation and Navigation Promotion Report - June 19, 2026")); + assert!(readme.contains("Graph/RAG citation/navigation promotion after XY-985")); + + Ok(()) +} + fn assert_openviking_trajectory_materialization_summary(report: &Value) -> Result<()> { assert_eq!( report.pointer("/schema").and_then(Value::as_str), diff --git a/docs/evidence/benchmarking/2026-06-19-graph-rag-citation-navigation-promotion-report.md b/docs/evidence/benchmarking/2026-06-19-graph-rag-citation-navigation-promotion-report.md new file mode 100644 index 00000000..d9d3ca10 --- /dev/null +++ b/docs/evidence/benchmarking/2026-06-19-graph-rag-citation-navigation-promotion-report.md @@ -0,0 +1,108 @@ +--- +type: Evidence +title: "Graph/RAG Citation and Navigation Promotion Report - June 19, 2026" +description: "Checked-in benchmark evidence record: Graph/RAG Citation and Navigation Promotion Report - June 19, 2026." +resource: docs/evidence/benchmarking/2026-06-19-graph-rag-citation-navigation-promotion-report.md +status: active +authority: current_state +owner: evidence +last_verified: 2026-06-19 +tags: + - docs + - evidence + - benchmarking +--- +# Graph/RAG Citation and Navigation Promotion Report - June 19, 2026 + +Goal: Promote graph/RAG citation, navigation, stale-source lint, and knowledge +surface cases only when adapters emit benchmark-comparable evidence-linked outputs. +Read this when: You need to know whether XY-985 changed the graph/RAG comparison +status after XY-955, which adapter paths are evidence-linked, and which outcomes must +remain blocked, incomplete, wrong_result, not_encoded, or non_goal. +Inputs: +`apps/elf-eval/fixtures/report_snapshots/2026-06-19-graph-rag-citation-navigation-promotion-report.json`, +`tmp/real-world-memory/graph-rag/report.json`, +`tmp/real-world-memory/graph-rag/report.md`, +`apps/elf-eval/fixtures/real_world_external_adapters/graph_rag/`, +and `docs/evidence/benchmarking/2026-06-17-dreaming-competitor-strength-retest-report.md`. +Outputs: A fresh graph/RAG command run, a JSON companion, typed scenario outcomes, +artifact paths, and an unchanged/improved/regressed judgment. + +## Executive Judgment + +The graph/RAG comparison status is unchanged: typed non-pass, no parity claim. + +`cargo make real-world-memory-graph-rag` is reproducible and publishes a fresh +representative graph/RAG report: + +- 5 jobs. +- 0 pass. +- 1 wrong_result. +- 1 incomplete. +- 3 blocked. +- Evidence/source-ref/quote coverage: 3/12, or 0.250. +- Knowledge citation coverage: 0.667. +- Stale claim detection: 0.000. + +The useful promotion is auditability: the June 19 report keeps the graphify +graph/report path as evidence-linked output while preserving the non-pass result. +The competitive result did not improve. RAGFlow, GraphRAG, and Graphiti/Zep remain +blocked; LightRAG remains incomplete; graphify remains wrong_result; llm-wiki remains +not encoded; gbrain remains blocked. + +## Command Evidence + +| Command | Result | Artifact | +| --- | --- | --- | +| `cargo make real-world-memory-graph-rag` | command pass; representative suite typed non-pass | `tmp/real-world-memory/graph-rag/report.json`, `tmp/real-world-memory/graph-rag/report.md` | + +## Scenario Outcomes + +| Project | Scenario | Status | Artifact | Boundary | +| --- | --- | --- | --- | --- | +| RAGFlow | Reference-chunk citation mapping | `blocked` | `apps/elf-eval/fixtures/real_world_external_adapters/graph_rag/ragflow_reference_chunks_blocked.json` | Returned chunks must map generated document ids, chunk ids, content, and metadata before scoring. | +| LightRAG | Context/source reference mapping | `incomplete` | `apps/elf-eval/fixtures/real_world_external_adapters/graph_rag/lightrag_context_sources_incomplete.json` | Source paths, snippets, or references are required before comparison. | +| GraphRAG | Output-table citation mapping | `blocked` | `apps/elf-eval/fixtures/real_world_external_adapters/graph_rag/graphrag_output_tables_blocked.json` | Documents, text units, communities, reports, entities, and relationships must map to generated evidence ids. | +| Graphiti/Zep | Temporal graph validity mapping | `blocked` | `apps/elf-eval/fixtures/real_world_external_adapters/graph_rag/graphiti_temporal_validity_blocked.json` | Current and historical graph facts must carry validity windows and evidence ids. | +| graphify | Graph report navigation and lint | `wrong_result` | `apps/elf-eval/fixtures/real_world_external_adapters/graph_rag/graphify_graph_report_wrong_result.json` | Evidence-linked graph/report output exists, but stale-source detection is missing and unsupported summary remains present. | +| llm-wiki | Wiki page citation lint | `not_encoded` | none | No contained page materializer exists. | +| gbrain | Compiled-truth/timeline export | `blocked` | none | Docker-local brain repository and database setup remain unproven. | + +## Improvement/Regression Readback + +- Improved: a fresh June 19 checked-in companion records the command run and scenario + boundaries after XY-955. +- Unchanged: no graph/RAG scenario moved to pass. +- Unchanged: graphify produces evidence-linked output but still scores wrong_result. +- Unchanged: setup/provider/output contracts still block RAGFlow, GraphRAG, + Graphiti/Zep, LightRAG, llm-wiki, and gbrain. +- No regression: no previously passing graph/RAG comparison became non-pass. + +## Claim Boundaries + +Allowed: + +- The representative graph/RAG command is reproducible. +- graphify emits evidence-linked graph/report output but remains wrong_result. +- The graph/RAG comparison status is unchanged relative to XY-955. + +Not allowed: + +- Do not claim graph/RAG parity or broad graph-navigation quality. +- Do not convert research gates, tiny smokes, blocked setup, incomplete output, or + graphify wrong_result into an ELF win. +- Do not use private providers, hosted services, or unrecorded credentials for this + lane. + +## Next Optimization Direction + +The next benchmark step is not an ELF graph/RAG product rewrite. It is adapter output +materialization: + +- RAGFlow reference chunk ids and document metadata, +- LightRAG context source paths or snippets, +- GraphRAG output table rows with generated evidence ids, +- Graphiti/Zep `valid_at`/`invalid_at` evidence mapping, +- graphify stale-source lint pass, +- llm-wiki contained page materializer, +- gbrain Docker-local brain repo export. diff --git a/docs/evidence/benchmarking/index.md b/docs/evidence/benchmarking/index.md index bf4cb800..dee67261 100644 --- a/docs/evidence/benchmarking/index.md +++ b/docs/evidence/benchmarking/index.md @@ -36,6 +36,7 @@ Routes to: Benchmarking evidence concepts under `docs/evidence/benchmarking/`. - `2026-06-16-proactive-brief-scoring-report.md`: Proactive Brief Scoring Report - June 16, 2026. - `2026-06-16-scheduled-memory-task-scoring-report.md`: Real-World Job Benchmark Report. - `2026-06-17-dreaming-competitor-strength-retest-report.md`: Dreaming Competitor-Strength Retest Report - June 17, 2026. +- `2026-06-19-graph-rag-citation-navigation-promotion-report.md`: Graph/RAG Citation and Navigation Promotion Report - June 19, 2026; refreshes the representative graph/RAG command and preserves the comparison as typed non-pass with graphify wrong_result, LightRAG incomplete, and RAGFlow/GraphRAG/Graphiti-Zep blockers. - `2026-06-19-letta-core-archive-export-readback-report.md`: Letta Core/Archive Export-Readback Report - June 19, 2026; adds a Docker-contained Letta materialization/report command while preserving all six core/archive comparison scenarios as typed blockers until exported core block JSON, archival readback/search JSON, and source ids exist. - `2026-06-19-openmemory-ui-export-product-readback-report.md`: OpenMemory UI/Export Product Readback Report - June 19, 2026; refreshes the product UI/export recheck and preserves the scenario as blocked because the export helper still needs Docker access to a running OpenMemory product container. - `2026-06-19-openviking-trajectory-materialization-report.md`: OpenViking Trajectory Materialization Report - June 19, 2026; materializes the context-trajectory fixture slice through a dedicated repo task while preserving staged retrieval, hierarchy selection, and recursive/context expansion as typed blockers. diff --git a/docs/log.md b/docs/log.md index 444d40e5..43d22370 100644 --- a/docs/log.md +++ b/docs/log.md @@ -52,3 +52,6 @@ logs. - Added the OpenMemory UI/export product readback recheck report and snapshot for XY-987, preserving the product UI/export scenario as blocked while keeping mem0 SDK `get_all` evidence separate from OpenMemory product evidence. +- Added the graph/RAG citation/navigation promotion report and snapshot for XY-985, + preserving representative graph/RAG outcomes as typed non-pass while recording + graphify evidence-linked output and the remaining adapter-specific blockers.