Skip to content

docs(rfc): introduce automatic memory as independent artifacts - #1809

Open
frf12 wants to merge 2 commits into
oceanbase:masterfrom
frf12:codex/automatic-memory-rfc
Open

frf12 wants to merge 2 commits into
oceanbase:masterfrom
frf12:codex/automatic-memory-rfc

Conversation

@frf12

@frf12 frf12 commented Sep 30, 2026 •

Copy link
Copy Markdown
Member

Which issue or RFC does this PR close?

RFC #1809 proposal; no issue is closed by this documentation PR.

Depends on #1803, the public per-Family search wide-table contract. Review and establish that foundation first; this RFC conforms to it.

Amends RFCs 0014, 0019, 1345, 1652, and 1718. Related contracts include RFCs 1417 and 1549.

Rationale for this change

Legacy Memory versions a Scope-level collection containing a full manifest of entry-version references. It already supports entry revision and incrementally maintained projections, but each effective collection change still stores a full directory and shares a collection CAS. Extraction supplies all active entries to the model instead of retrieving a bounded set of related memories after candidate generation.

Representing each logical memory as an independent Artifact aligns identity and history with Scope and removes new full-manifest snapshots.

What changes are included in this PR?

  • Bilingual Automatic Memory RFC using the repository's nine-section template, plus the retained detailed Chinese implementation design.
  • New canonical automatic-memory family; independent identity, revisions, evidence, active/inactive/retired lifecycle, and explicit restoration/compensation.
  • Bounded candidate generation and related retrieval, create/revise/merge/noop/conflict actions, review rules, narrowly scoped preauthorization, CAS, idempotency, Scope generation checks, and atomic capacity accounting.
  • A Family-owned current search wide table conforming to docs(rfc): define per-family artifact search wide tables #1803; no public-head content expansion or separate competing retrieval contract.
  • Centralized, operation-aware API compatibility for the old memory name. Authorization and execution use the same resolved identity; exact old references and collection contracts are not blindly rewritten.
  • A versioned offline migration tool that replays all old history, preserves compact semantics and evidence, records interval aliases, and preserves tags, authorization, Source progress, and accepted work.
  • Maintenance-window migration with backups, resumable checkpoints, readiness gates, validation, and an explicit downgrade boundary after new writes. No runtime dual writes or online backfill.
  • Future commercial online upgrades may use a mandatory barrier release; this is outside the initial implementation scope.

The two RFC implementations may ship together and migrate during one maintenance window: convert authoritative Memory history before building its search projection under #1803.

Are there any user-facing changes?

Documentation only. No Runtime, API, schema, or migration implementation changes in this PR.

The proposal is a breaking identity/content/API change for future releases. Legacy history and exact citations remain readable. Old collection IDs, ETags, manifests, and pagination cursors require explicitly supported adapters or a clear upgrade-required error. Name compatibility does not imply unchanged response structures.

How was this change tested?

  • Checked all relative Markdown links in the three delivered documents.
  • Checked the nine RFC sections, balanced code fences, UTF-8 content, and trailing whitespace.
  • git diff --cached --check.
  • Standard repository commit hooks.

No application tests or database benchmarks were run for this documentation-only proposal. Migration rehearsals, concurrency behavior, and real-backend search acceptance are requirements for implementation.

AI usage statement

Prepared with OpenAI Codex (GPT-6), including document drafting and source-grounded design review, under maintainer direction.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant