Explicit, auditable promotion of operator feedback into Memories
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
Research direction
Start by reviewing the public Memories documentation, the existing memory-management surface, and related issues #30299, #29430, and #26684. A complete proposal would establish whether explicit save, update, forget, scoped deduplication, provenance, receipts, and precedence fit the architecture, with acceptance tests before implementation.
Written by the indexing model from the issue text.
Description
Summary
Please expose and document an explicit, user-directed way to promote durable operator feedback into Codex Memories, with scoped upsert/deduplication, provenance, and a visible write receipt.
The public Memories documentation describes background extraction and consolidation from eligible prior chats. That is useful for passive recall, but repeated operational corrections benefit from an intentional path such as:
“Remember this globally: long-running jobs must use event-driven completion rather than foreground polling.”
This should create or update one inspectable memory entry immediately, rather than relying on eventual background extraction or encouraging users to put personal operational preferences into every repository's AGENTS.md.
Motivation
There is a useful middle layer between:
- a one-turn instruction, and
- mandatory repository policy in
AGENTS.md.
Examples include personal review style, preferred wait/monitoring behavior, recurring recovery procedures, and corrections to mistakes that occur across repositories.
In a real multi-agent workflow, explicit promotion produced two useful outcomes:
- A repeated correction about foreground polling was saved as a global operator preference. A later clarification expanded the same entry to ordinary multi-seat panels rather than creating another overlapping memory.
- A failed sandboxed-agent run was distilled into a reusable recovery entry: keep evidence inside the sandbox the agent actually runs in, distinguish human-facing display labels from machine routing identifiers, preserve failed-run provenance, and require the normal review gates before reuse.
The value was not specific to the multi-agent framework. The general pattern was:
observed repeated failure → explicit user request to remember → dedupe/upsert → receipt → later application.
This reduced repeated prompting and made the stored rule inspectable.
Proposed behavior
Provide a supported explicit memory-promotion surface for local Codex clients, usable from natural language and/or a documented command/tool:
- Save: create a durable entry only when the user explicitly asks, or when Codex proposes a write and the user confirms.
- Update/upsert: check for an overlapping entry first and update it instead of creating duplicates.
- Forget: remove an obsolete or incorrect entry intentionally.
- Scope: at minimum distinguish global/user scope from project scope.
- Type: optionally distinguish user preference/feedback, project context, and reference material.
- Provenance: record origin thread/session, timestamp, reason for promotion, and last update.
- Receipt: report whether the operation created, updated, or deduplicated an entry and show its stable name/identifier — e.g.
updated user/operational-preferences/event-driven-completion (created=false). - Inspection: make promoted entries visible through the existing memory-management surface.
- Precedence: explicit current instructions and applicable
AGENTS.mdguidance continue to override memories.
A model-callable interface could be conceptually equivalent to:
memory_save(name, scope, type, description, content)
memory_forget(name, scope)
The precise API is less important than the guarantees: intentional writes, inspectability, dedupe, provenance, and clear precedence.
Safety constraints
- Never store secrets or credentials.
- Do not silently promote transient task state.
- Do not treat memories as mandatory team policy or a replacement for
AGENTS.md. - Make global writes harder than project-local writes where appropriate.
- Honor per-chat and global memory controls.
- Preserve the existing ability to exclude chats that used external context from automatic memory generation.
- Explicitly identify conflicts with current instructions rather than resolving them invisibly.
Non-goals
- Importing the multi-agent framework that motivated the example.
- Automatically turning every correction into permanent policy.
- Replacing repository documentation, skills, hooks, or enforcement.
- Sharing personal memories across users or organizations.
Prior art in this tracker
I searched existing Memories issues before filing. The closest are #30299 (official CLI commands to inspect, prune, delete, and scope existing memories — a management surface for entries that already exist), #29430 (synchronously generating memories for a specific session — still extraction from a transcript, not user-authored content), and #26684 (dedupe/concurrency defects in background consolidation — which explicit upsert semantics would sidestep for intentional entries). None of them proposes an explicit, user-directed save/update/forget path with a write receipt; this issue is complementary to #30299 rather than overlapping it.
Why an issue rather than a PR
The Memories subsystem is active roadmap territory and external contributions are invitation-only. I am opening this proposal first, as requested by the contribution guide, to establish whether this interaction model aligns with the intended architecture.
Questions
- Is an explicit save/update/forget path already planned for local Memories?
- Should explicit promoted entries share the generated-memory store, or occupy a separately identified operator-authored layer?
- Would a small UX/API proposal with acceptance tests be useful before any implementation work?
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.5k
- Avg merge
- 1m
- Merged PRs (30d)
- 1k
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from openai/codex
-
enhancement remote
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
bug CLI windows-os
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
macOS sandbox blocks hw.optional.arm64 sysctl, causing Flutter to misdetect Apple Silicon as x64 Openbug CLI sandbox
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
bug CLI TUI
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
-
CLI config enhancement skills
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
kwakseongjae/auto-hwp#319 ·
-
area:cli bug filter-quality good first issue priority:medium
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
bevyengine/bevy#25861 ·
-
comp-datalake
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
ClickHouse/ClickHouse#121222 ·
-
A-linter
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
oxc-project/oxc#26863 ·