Skip to content

Backend Conversation Subscription Registrar - #330

Draft
sandersonstabo wants to merge 3 commits into
agent/backend-activated-conversation-replay-port-70179ccfrom
agent/backend-conversation-subscription-registrar-port-1bf42a5
Draft

Backend Conversation Subscription Registrar#330
sandersonstabo wants to merge 3 commits into
agent/backend-activated-conversation-replay-port-70179ccfrom
agent/backend-conversation-subscription-registrar-port-1bf42a5

Conversation

@sandersonstabo

@sandersonstabo sandersonstabo commented Aug 29, 2026

Copy link
Copy Markdown
Collaborator

Depends on #329.

Scope

  • Extracts the request handler subscription table behind a narrow cloneable ConversationSubscriptionRegistrar.
  • Allows the future connection-local delivery owner to publish post-send batches through the same registry.
  • Preserves handler-private receipt identity, lease fencing, stale-lease behavior, and current request behavior.

Exclusions

  • No writer queue, notifier loop, listener/startup composition, frontend routing, or packaging changes.
  • No cross-process data-directory custody decision.

Verification

  • //tests/backend:request_handler_test (46 Rust cases)
  • fresh production and integration-test Clippy markers
  • root //:format_test
  • locked/offline Cargo metadata
  • exact seven-path hash/status/diff guards
  • Bazel shutdown exit 0

Authoritative receipt: D:/artisan-editor-gate-logs/backend-conversation-subscription-registrar-20260829-gate4/receipt.json.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.


Summary by cubic

Extracts the request handler's subscription table into a cloneable ConversationSubscriptionRegistrar so a future connection-local delivery owner can record published batches through the same registry. Request behavior, receipt identity, and lease fencing are unchanged.

Refactors

  • RequestHandler::with_subscriptions now creates a fresh registrar; new with_subscription_registrar accepts a shared one.
  • record_published_batch applies a batch only after wire publication and enforces the same lease, thread, state, and cursor fences.
  • Receipt identity stays outside the registrar, so a clone cannot activate another handler's receipt.

Written for commit 6fd9d33. Summary will update on new commits.

Review in cubic

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.

1 participant