Skip to content

Show source target details in Telegram bridge health #376

Description

@geier

Context

In Telegram Settings -> Bridge Health, the dependency output currently shows generic source IDs (for example Source default) and generic messages like OpenCode API is reachable.

A user cannot tell what the source actually points to from the health panel, especially when default/multi-source routing is involved.

Current example:

  • Healthy
  • Process: running
  • Config: loaded
  • Telegram API: ok - Telegram API is reachable
  • OpenCode API: ok - OpenCode API is reachable for 1 source(s)
  • Source default: ok - OpenCode API is reachable

Goal

Make Telegram health output identify the concrete source target so users can see what each source represents.

Suggested implementation areas

  • shared/telegram-bridge.ts
    • Include source target context in health results per source (at least source ID plus resolved OpenCode endpoint; include directory when present).
    • Improve the aggregate openCodeApi message so it is still concise but not opaque in single-source mode.
  • shared/extended-api.ts
    • Pass through and sanitize any new per-source fields in /api/ext/telegram/health response.
  • app-prefixable/src/utils/telegram-settings.ts
    • Extend TelegramHealthResponse typing for any new source detail fields.
  • app-prefixable/src/components/telegram-settings.tsx
    • Render source detail in Bridge Health UI so users can identify the source target directly from the page.

Acceptance criteria

  • In Bridge Health, each source row shows what source it is beyond just default (e.g., source ID + target OpenCode URL and optional directory).
  • For single-source setups, the OpenCode API summary is clear and not only a count.
  • No secrets are exposed in health payloads/UI.
  • Existing Telegram health tests are updated or expanded to cover the new source detail fields and rendering behavior.

Metadata

Metadata

Assignees

No one assigned

    Labels

    priority:mediumNormal priority (default)readyWell-scoped and ready for implementation

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions