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.
Context
In Telegram Settings -> Bridge Health, the dependency output currently shows generic source IDs (for example
Source default) and generic messages likeOpenCode 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:
Goal
Make Telegram health output identify the concrete source target so users can see what each source represents.
Suggested implementation areas
shared/telegram-bridge.tsopenCodeApimessage so it is still concise but not opaque in single-source mode.shared/extended-api.ts/api/ext/telegram/healthresponse.app-prefixable/src/utils/telegram-settings.tsTelegramHealthResponsetyping for any new source detail fields.app-prefixable/src/components/telegram-settings.tsxAcceptance criteria
default(e.g., source ID + target OpenCode URL and optional directory).