Skip to content

docs(adr): ADR-0030 notification platform convergence (supersedes 0012)#1432

Merged
xuyushun441-sys merged 1 commit into
mainfrom
docs/adr-0030-notification-convergence
Jun 1, 2026
Merged

docs(adr): ADR-0030 notification platform convergence (supersedes 0012)#1432
xuyushun441-sys merged 1 commit into
mainfrom
docs/adr-0030-notification-convergence

Conversation

@xuyushun441-sys

Copy link
Copy Markdown
Contributor

What

Handoff artifact for the agent implementing the notification work. No code changes.

Documents the decision to fix the two drifted, overlapping in-app inbox objects — sys_notification (UI-read, written directly by collaboration) and sys_inbox_message (written by the notify node, zero readers) — by un-conflating them back into ADR-0012's layered pipeline under a single emit() ingress, rather than merging into one table.

  • docs/adr/0030-notification-platform-convergence.md — the decision: drift finding + evidence, the single-ingress rule, the target object model (L2 event / L3 resolve+preference / L4 delivery outbox / L5 materialize+receipt), resolved design decisions, phased plan P0–P3.
  • docs/design/notification-platform-convergence.md — the executable build spec: table schemas, emit() contract, per-phase tasks with file/package targets + acceptance criteria, migration sequencing, open decisions, risks.
  • docs/adr/0012-notification-platform.md — status line marked Superseded by ADR-0030 (body left intact as the historical draft).

Why a new ADR (not editing 0012)

0012 is a Draft that drifted in implementation; 0030 is a genuinely new decision (un-conflate + single ingress + phased realization) and supersedes it, preserving the audit trail and the references from ADR-0019/0022. Numbered 0030 because 0028/0029 were taken by #1431.

Context

Findings from this session's end-to-end automation testing (PRs #1426/#1429/#1430): the notify flow node delivers to sys_inbox_message, but the Console bell only reads sys_notification, so notify-based notifications never surface in the UI. The root cause is a violated principle — producers writing per-user inbox rows directly with no pipeline.

🤖 Generated with Claude Code

…2) + build spec

Records the decision to converge the two drifted, overlapping inbox objects
(sys_notification, sys_inbox_message) by un-conflating them back into ADR-0012's
layered pipeline under a single `emit()` ingress — rather than merging into one
table.

- docs/adr/0030-notification-platform-convergence.md — the decision: drift
  finding + evidence, single-ingress rule, target object model (L2 event / L3
  resolve+preference / L4 delivery outbox / L5 materialize+receipt), resolved
  design decisions, phased plan P0–P3.
- docs/design/notification-platform-convergence.md — the executable build spec:
  table schemas, `emit()` contract, per-phase tasks with file/package targets +
  acceptance criteria, migration sequencing, open decisions, risks.
- ADR-0012 status line marked "Superseded by ADR-0030" (body left intact as the
  historical draft).

Handoff artifact for the agent implementing the notification work; no code
changes.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 1, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
spec Ready Ready Preview, Comment Jun 1, 2026 3:12am

Request Review

@github-actions github-actions Bot added documentation Improvements or additions to documentation size/m labels Jun 1, 2026
@xuyushun441-sys xuyushun441-sys merged commit eec81be into main Jun 1, 2026
12 checks passed
@xuyushun441-sys xuyushun441-sys deleted the docs/adr-0030-notification-convergence branch June 1, 2026 03:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/m

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants