mirror of
https://github.com/pchuan98/codex.git
synced 2026-07-01 00:31:56 +08:00
de513a83f3
## Why The memories extension now owns the read-path developer instructions it injects at thread start. Keeping that prompt builder and template in `codex-memories-read` left the extension depending on a helper crate for extension-specific prompt assembly, and kept async template/truncation dependencies in the read crate after the remaining read surface no longer needed them. ## What changed - Moved `prompts.rs`, its tests, and `templates/memories/read_path.md` from `memories/read` into `ext/memories`. - Wired `MemoryExtension` to call the local prompt builder and added the moved templates to `ext/memories/BUILD.bazel` compile data. - Removed the now-unused prompt export and prompt-related dependencies from `codex-memories-read`. ## Testing - Not run locally.
36 lines
1.1 KiB
Rust
36 lines
1.1 KiB
Rust
use super::*;
|
|
use codex_utils_absolute_path::AbsolutePathBuf;
|
|
use pretty_assertions::assert_eq;
|
|
use tempfile::tempdir;
|
|
use tokio::fs as tokio_fs;
|
|
|
|
#[tokio::test]
|
|
async fn build_memory_tool_developer_instructions_renders_embedded_template() {
|
|
let temp = tempdir().unwrap();
|
|
let codex_home = AbsolutePathBuf::from_absolute_path(temp.path()).unwrap();
|
|
let memories_dir = codex_home.join("memories");
|
|
tokio_fs::create_dir_all(&memories_dir).await.unwrap();
|
|
tokio_fs::write(
|
|
memories_dir.join("memory_summary.md"),
|
|
"Short memory summary for tests.",
|
|
)
|
|
.await
|
|
.unwrap();
|
|
|
|
let instructions = build_memory_tool_developer_instructions(&codex_home)
|
|
.await
|
|
.unwrap();
|
|
|
|
assert!(instructions.contains(&format!(
|
|
"- {}/memory_summary.md (already provided below; do NOT open again)",
|
|
memories_dir.display()
|
|
)));
|
|
assert!(instructions.contains("Short memory summary for tests."));
|
|
assert_eq!(
|
|
instructions
|
|
.matches("========= MEMORY_SUMMARY BEGINS =========")
|
|
.count(),
|
|
1
|
|
);
|
|
}
|