Skip to content

[HW] Личные сообщения (DM) на LoRa-ноду: линковка к room #35

Description

@Flexlug

Проблема

route_rx (lora_bridge/transports/meshcore/mappers/handler.py) роутит CONTACT_MSG_RECV только в RoomServerEndpoint-хэндлеры, у которых событие совпало по pubkey_prefix (см. mappers/room_server.py). Личное сообщение (DM) от контакта, для которого не настроен room_server-эндпоинт с этим ключом, ни на один хэндлер не попадает и дропается с WARNING «не совпал ни с одним эндпоинтом» (route_rx, handler.py:89-94).

Идея

Добавить новый тип эндпоинта (например direct/contact) в EndpointBase-union (config/schema/endpoints.py, рядом с PublicEndpoint/PrivateEndpoint/RoomServerEndpoint), который принимает произвольные CONTACT_MSG_RECV (не привязанные к конкретному room-server pubkey) и позволяет линковать их в rooms[] как источник — по аналогии с public/private/room_server.

Открытые вопросы (уточнить перед имплементацией)

  • Один такой эндпоинт на ноду или можно несколько (линковать разных контактов в разные rooms)?
  • Исходящие сообщения из привязанного room: слать как DM конкретному контакту (какому — последнему написавшему?) или это read-only источник (RX-only, без обратной отправки)?
  • Нужна ли идентификация автора в исходящем префиксе аналогично room-server (resolve_author через get_contact_by_key_prefix)?

Дублирует beads-issue LoRa-Bridge-5fe (основной трекер этого репо — bd/beads).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions