mirror of
https://github.com/pchuan98/codex.git
synced 2026-07-01 00:31:56 +08:00
aad59a0916
## Summary Generated memory rows and their stage-one/stage-two job state currently live in `state_5.sqlite` alongside thread metadata. That makes memory cleanup and regeneration share the main state schema even though those rows are memory-pipeline data and can be rebuilt independently from the durable thread records. This PR moves the memory-owned tables into a dedicated `memories_1.sqlite` runtime database while keeping thread metadata in `state_5.sqlite`. ## Changes - Adds a separate memories DB runtime, migrator, path helpers, telemetry kind, and Bazel compile data for `state/memory_migrations`. - Introduces `MemoryStore` behind `StateRuntime::memories()` and moves memory table/job operations onto that store. - Drops the old memory tables from the state DB and recreates their schema in `state/memory_migrations/0001_memories.sql`. - Updates memory startup, citation usage tracking, rollout pollution handling, `debug clear-memories`, and app-server `memory/reset` to operate through the memories DB. - Preserves cross-DB behavior by hydrating thread metadata from the state DB when selecting visible memory outputs and checking stage-one staleness. ## Verification - Added/updated `codex-state` tests for deleted-thread memory visibility and already-polluted phase-two enqueue behavior. - Updated `debug clear-memories`, app-server `memory/reset`, and memories startup tests to seed and assert memory rows through `memories_1.sqlite`.
46 lines
1.5 KiB
Rust
46 lines
1.5 KiB
Rust
mod agent_job;
|
|
mod backfill_state;
|
|
mod graph;
|
|
mod log;
|
|
mod memories;
|
|
mod thread_goal;
|
|
mod thread_metadata;
|
|
|
|
pub use agent_job::AgentJob;
|
|
pub use agent_job::AgentJobCreateParams;
|
|
pub use agent_job::AgentJobItem;
|
|
pub use agent_job::AgentJobItemCreateParams;
|
|
pub use agent_job::AgentJobItemStatus;
|
|
pub use agent_job::AgentJobProgress;
|
|
pub use agent_job::AgentJobStatus;
|
|
pub use backfill_state::BackfillState;
|
|
pub use backfill_state::BackfillStatus;
|
|
pub use graph::DirectionalThreadSpawnEdgeStatus;
|
|
pub use log::LogEntry;
|
|
pub use log::LogQuery;
|
|
pub use log::LogRow;
|
|
pub use memories::Phase2JobClaimOutcome;
|
|
pub use memories::Stage1JobClaim;
|
|
pub use memories::Stage1JobClaimOutcome;
|
|
pub use memories::Stage1Output;
|
|
pub use memories::Stage1StartupClaimParams;
|
|
pub use thread_goal::ThreadGoal;
|
|
pub use thread_goal::ThreadGoalStatus;
|
|
pub use thread_metadata::Anchor;
|
|
pub use thread_metadata::BackfillStats;
|
|
pub use thread_metadata::ExtractionOutcome;
|
|
pub use thread_metadata::SortDirection;
|
|
pub use thread_metadata::SortKey;
|
|
pub use thread_metadata::ThreadMetadata;
|
|
pub use thread_metadata::ThreadMetadataBuilder;
|
|
pub use thread_metadata::ThreadsPage;
|
|
|
|
pub(crate) use agent_job::AgentJobItemRow;
|
|
pub(crate) use agent_job::AgentJobRow;
|
|
pub(crate) use thread_goal::ThreadGoalRow;
|
|
pub(crate) use thread_metadata::ThreadRow;
|
|
pub(crate) use thread_metadata::anchor_from_item;
|
|
pub(crate) use thread_metadata::datetime_to_epoch_millis;
|
|
pub(crate) use thread_metadata::datetime_to_epoch_seconds;
|
|
pub(crate) use thread_metadata::epoch_millis_to_datetime;
|