Verified buildTypeScriptdomainserver

Notification System

src/features/notification-system

Sends alerts and messages to users via email, SMS, or in-app channels.

Brick

  • __tests__/

  • domain/

  • host/

  • server/

  • testing/

Host adapter (not part of the brick)

domain/index.ts
1/**
2 * The pure entrypoint: types and logic with no React and no I/O. Importable
3 * from both server and client code.
4 */
5
6export type { Conversation, Message, ConversationStatus, MessageStatus, NotifyOnMessageInput, ISODateTime } from './types';
7export { NotificationSystemError, NotImplemented } from './errors';
8export type { NotificationSystemErrorCode } from './errors';
9export { initialConversationStatus, canConversation, transitionConversation, availableConversationEvents, initialMessageStatus, canMessage, transitionMessage, availableMessageEvents } from './lifecycle';
10export type { ConversationEvent, MessageEvent } from './lifecycle';
11

Requirements

  • ✓

    REQ-1User is notified when they receive a new message

    ✓ [REQ-1] User is notified when they receive a new message #1

  • ✓

    GATE-PORTABLESelf-contained: relative imports only, nothing escapes the brick (R1–R6)

    brick-lint + builder harness

  • ✓

    GATE-CONTRACTVendored host contract is byte-identical (R8)

    sha-256 comparison

  • ✓

    GATE-TYPESTypechecks under the strictest-superset tsconfig

    in-process tsc

  • ✓

    GATE-TESTSShips its own tests and they pass (R12)

    19 passing

  • ✓

    GATE-LIFECYCLE-CONVERSATIONConversation.status only changes through declared transitions

    4 generated lifecycle tests

  • ✓

    GATE-LIFECYCLE-MESSAGEMessage.status only changes through declared transitions

    14 generated lifecycle tests

Built 05/10/2026, 17:26:48 by Ada Lovelace · 19 tests passing · operations by openrouter