Skip to content

Signal group news items show opaque group_id as feed source (follow-up to #114) #124

Description

@retog

Problem

Follow-up to #114 (three-axis triage gate + deterministic news rail). Non-blocking; noted by review on that PR.

When a message from a news-flagged group is forwarded onto the news rail, the feed item's user-facing source field is set by the calling gateway. Two of the three gateways pass a readable name; Signal does not:

  • scripts/telegram-gateway.py:888_forward_news(question, sender_name or handle, group_id, lang)
  • scripts/whatsapp-gateway.py:1030_forward_news(question, sender_name or (group_id if is_group else sender), group_id, lang)
  • scripts/signal-gateway.py:1146_forward_news(question, group_id if is_group else sender, group_id, lang)

The Signal path has no readable name to pass because _forward_to_inbox(question, lang, sender, group_id=None, files=None) (scripts/signal-gateway.py:1118) carries no group-name parameter — unlike Telegram/WhatsApp, whose _forward_to_inbox take a sender_name. So a Signal group news item shows the raw group_id (opaque base64 on Signal) as its source on the news page, while the same class of item from Telegram/WhatsApp shows a human-readable name.

Impact

Cosmetic only — the item is filed, scored and ranked correctly; just its source label is unreadable for Signal groups. No data loss, no crash.

Fix sketch

Thread a resolved group name into the Signal call site and pass it to _forward_news, mirroring the other two gateways:

  • Add an optional group-name parameter to Signal's _forward_to_inbox (or resolve it inside), sourced from the gateway's existing groups roster (GET /groups already exposes group names).
  • Fall back to group_id when no name resolves, so behaviour degrades to today's output rather than erroring.

Keep it consistent with the sender_name or <fallback> pattern the Telegram/WhatsApp call sites already use.

Out of scope

Individual-sender Signal news items already pass sender (a number); giving those a contact name is a separate, larger contact-resolution concern and not part of this issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions