/ components / frontend / F004-messenger.component.cspec
F004-messenger.component.cspec
  1  # F004-messenger.component.cspec
  2  
  3  metadata:
  4    id: F004
  5    name: messenger
  6    version: 1.0.0
  7    domain: frontend
  8    stability: stable
  9    updated: 2026-01-14
 10    cascade_priority: 40
 11    roles:
 12      primary: [Dev]
 13      review: [Security]
 14    expertise:
 15      required: [mobile, notifications]
 16      helpful: [background_services, encryption]
 17    context_tags: [messenger, notifications, governance, swaps, security]
 18  
 19  dependencies:
 20    upstream: [F001, F008, F009]
 21    downstream: []
 22  
 23  interface:
 24    types_ref: _registry/types.cspec
 25    types:
 26      notification: {type: enum, payload: encrypted, timestamp: u64}
 27      notification_type: enum[governance_alert, swap_code, payment_request, system_announcement]
 28  
 29    functions:
 30      receive_notification: {inputs: [encrypted_payload], outputs: [notification]}
 31      configure_relay: {inputs: [relay_config], outputs: [status]}
 32  
 33    events:
 34      - notification_received
 35      - governance_alert
 36      - swap_code_delivered
 37  
 38  spec:
 39    # === PURPOSE ===
 40    purpose: Security-isolated notification companion for governance alerts, swap codes, payment requests
 41  
 42    # === SECURITY MODEL ===
 43    security:
 44      isolation:
 45        - read_only_view_keys
 46        - can_decrypt_messages
 47        - cannot_sign_transactions
 48        - cannot_access_spending_keys
 49        - isolated_from_wallet_process
 50      operation:
 51        - persistent_background_process
 52  
 53    # === STRUCTURE ===
 54    structure:
 55      acdc-messenger/:
 56        platforms/:
 57          ios/: []
 58          android/: []
 59          desktop/: system_tray_app
 60        shared/: []
 61  
 62    # === NOTIFICATION TYPES ===
 63    notifications:
 64      governance_alerts:
 65        - new_proposal
 66        - vote_deadline
 67        - slashing_warning
 68        - emergency_proposal
 69      swap_codes:
 70        - incoming_swap_code
 71        - swap_expiry_warning
 72      payment_requests:
 73        - incoming_payment_request
 74      system_announcements:
 75        - network_updates
 76        - maintenance_notices
 77  
 78    # === DELIVERY CHANNELS ===
 79    channels:
 80      core:
 81        - in_app_notifications
 82        - push_notifications_mobile
 83        - system_tray_desktop
 84      optional_relay:
 85        - email
 86        - telegram
 87        - webhook
 88  
 89    # === ALARM BEHAVIOR ===
 90    alarms:
 91      governance:
 92        - immediate_for_emergency_proposals
 93        - escalating_for_approaching_deadlines
 94      swaps:
 95        - immediate_on_receipt
 96        - reminder_before_expiry
 97  
 98  changelog:
 99    - version: 1.0.0
100      date: 2026-01-14
101      type: initial
102      description: "Initial messenger spec from UI/UX Specification v1.0"
103      breaking: false