Skip to content

refactor(db): move reaction store ownership - #6792

Draft
TheSentinel454 wants to merge 1 commit into
codex/issue-2-thread-storefrom
codex/issue-2-reaction-store
Draft

refactor(db): move reaction store ownership#6792
TheSentinel454 wants to merge 1 commit into
codex/issue-2-thread-storefrom
codex/issue-2-reaction-store

Conversation

@TheSentinel454

@TheSentinel454 TheSentinel454 commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Current reconstructed head

Exact base: codex/issue-2-thread-store at 15bf0e76286540a4102193b70a7058735df79f60
Exact head: codex/issue-2-reaction-store at e2c71f5df1647e8a583ed3070c01fe7eb2bb85b3

This current head removes crates/buzz-db/tests/store_ownership.rs; no replacement path-sensitive ownership test is introduced. Apart from removing that complete test-file diff, the production patch is byte-for-byte identical to the previously reviewed slice. This remains part of tracker #2 and the #17/#19 acceptance work.

Independent exact-head review from a separate clean Blox workstation found no issues. Current-head evidence passed formatting, strict buzz-db clippy, 111 non-PostgreSQL library tests with 200 PostgreSQL tests ignored, the observability source test, relay consumer compilation, exact ownership/unique-span review checks, and 6 reaction PostgreSQL tests on native PostgreSQL where applicable.

Why

Continue tracker #2 by giving reaction persistence one owner while preserving the event-transaction boundary established by the parent slices. This child stacks on #6789.

What

  • Move all eight reaction-facing Db APIs and datastore spans into reaction.rs
  • Move ReactionEventInsertOutcome, the atomic target/reaction/event transaction orchestration, its five focused PostgreSQL tests, and the cross-community reaction test into reaction.rs
  • Preserve buzz_db::ReactionEventInsertOutcome and the existing buzz_db::event::{ReactionEventInsertOutcome, insert_reaction_event_with_thread_metadata} compatibility paths
  • Keep the general insert_event_with_thread_metadata_tx primitive in event.rs; the reaction owner composes it with add_reaction_tx without exposing a raw pool or broad executor API
  • Preserve mention materialization after a newly inserted reaction event, duplicate short-circuiting, rollback, reactivation, target-community isolation, SQL/binds, and exactly one datastore span per public logical operation

Stack

Non-goals

  • No SQL, schema, locking, transaction ordering, retry, timeout, pagination, or client-visible behavior changes
  • No movement of the general event insertion transaction primitive or mention materialization into a reaction-only abstraction
  • No store traits, domain-handle redesign, broad PgExecutor migration, raw pool accessor, new crate, or directory-wide reorganization
  • No changes to, retargeting of, or merge action on parent PRs or PR Add database pressure observability #6700

Risk Assessment

Moderate review surface, low semantic risk. The reaction SQL and Db bodies moved intact; the atomic kind:7 path keeps its target lookup, reaction upsert, duplicate rollback, event insert, commit, and post-commit mention behavior in the same order. Module qualifications and compatibility re-exports are the only API-path changes. Six PostgreSQL tests cover the transaction and tenant invariants, and seven retained event PostgreSQL tests guard the shared insertion primitive.

Blox Verification

Author workstation: buzz-tornquist-issue-2-store-stack (2046520), exact head f614cc212c70c91aacd5e4013c0dc77f847bce8a.

  • cargo fmt --all --check and git diff --check — passed
  • cargo clippy -p buzz-db -p buzz-relay --all-targets -- -D warnings — passed
  • Native PostgreSQL reaction::tests:: ignored suite — 6 passed
  • Native PostgreSQL retained event::tests:: ignored suite — 7 passed
  • cargo test -p buzz-relay --lib -- --test-threads=1 — final rerun 909 passed, 48 ignored. An initial run had the known unrelated mesh-demo 504 timeout (908 passed, 1 failed); the exact failed test passed immediately before the full green rerun
  • Commit-time formatting, sadscan, attribution, and sign-off hooks — passed

No findings at any severity. The clean detached review workstation was deleted after its artifacts were verified locally.

Generated with Codex

Superseded pre-comment restack verification

PR #6700 merged before publication completed. This layer was restacked onto current main through the exact parent named above; the final cumulative tip is 2ddcc8a. Cumulative author gates passed: formatting and diff checks; buzz-db and buzz-relay all-target clippy with -D warnings; DB lib 111 passed / 200 ignored; ownership 22/22; observability 1/1; the full isolated PostgreSQL domain matrix; and relay lib 910 passed / 49 ignored.

  • Workstation: buzz-tornquist-pr-6792-final-review (2057619), fresh shallow checkout
  • Base: a03619b3f5e2c981de704be13f609f117eaf6fa1
  • Head: b87cec6d690119721e2ef3ac34e6ba57b41099c7
  • Findings: none

Reviewed reaction records, SQL, transaction orchestration, Db wrappers, tests, and spans moving to reaction.rs. The general event transaction primitive remains event-owned, while compatibility re-exports preserve prior event-module and crate-root outcome paths. Duplicate short-circuit, cross-community target rejection, soft-delete reactivation, event/thread/reaction atomicity, and public signatures are unchanged; each logical public operation retains one datastore span.

Verification: format and diff checks passed; buzz-db --all-targets clippy passed with -D warnings; DB lib tests passed (111 passed, 200 PostgreSQL tests ignored); ownership (8/8) and observability (1/1) guards passed; all 6 reaction PostgreSQL tests passed on native PostgreSQL 17 with migrations 1-32 successful; relay lib test target compiled successfully. Final worktree was detached at the exact head and clean.

Complete evidence archive SHA-256: 471754cd65139b3494a9efdaf5528505fa8928b092d055e6af3560e532a32183.

Comment-addressed restack

Review follow-up on #6777 removed only the low-value replaceable ownership source test. This PR was restacked onto its rewritten parent; its production patch is unchanged.

  • Exact base: d43426ed89b89d49e44a75f4a4e1e57f4915c087
  • Exact head: 19f2b86a063cecd1521eb003225ec76acb5d8bf3
  • Final cumulative tip: 6fa2f104d42c6ba85bdf62e7ccb74ceaf4a84f67
  • Per-layer patch-ID and tree audits confirm this PR’s production diff is unchanged from its pre-comment head.
  • Cumulative Blox gate: formatting and diff checks; strict buzz-db/buzz-relay Clippy; DB lib 111 passed / 200 ignored; ownership 21/21; observability 1/1; every moved PostgreSQL test; relay lib 910 passed / 49 ignored.
  • Independent re-review at this exact head: no findings; fresh exact-parent/head Blox review passed fmt/diff, strict Clippy, DB lib 111 passed / 200 ignored, current ownership/observability guards, 6 reaction PostgreSQL tests, and relay compilation.

Signed-off-by: OpenAI Codex <codex@openai.com>
@TheSentinel454
TheSentinel454 force-pushed the codex/issue-2-reaction-store branch from 9101c1f to e2c71f5 Compare August 26, 2026 15:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants