Skip to content

feat(web): restore Orchestrator settings tab + Telegram link UI in Profile#183

Merged
finedesignz merged 1 commit into
mainfrom
feat/settings-restore-orchestrator-telegram
May 29, 2026
Merged

feat(web): restore Orchestrator settings tab + Telegram link UI in Profile#183
finedesignz merged 1 commit into
mainfrom
feat/settings-restore-orchestrator-telegram

Conversation

@finedesignz
Copy link
Copy Markdown
Owner

Restores two settings surfaces dropped/orphaned in the Phase-12 restructure.

A — Orchestrator tab (was orphaned, not mounted)

Moved components/OrchestratorTab.tsxpages/settings/OrchestratorTab.tsx, wired into the #/settings nav dropdown (union + readSettingsTab + handleTabChange + subTabs + render branch w/ ErrorBoundary). Refactored off hand-rolled markup onto primitives: Card, Button (primary/danger, text-[var(--text-on-accent)], no more text-white on indigo), StatusPill (status badge), Modal (enable-confirm, focus-trap/Esc, red ring kept), Field. Data logic (GET/PUT /api/orchestrator, start/stop) preserved verbatim.

B — Telegram link UI in Profile (was absent)

New TelegramCard in ProfileTab wired to existing hub endpoints: GET /status, POST /link-code (→ window.open deepLink + code/expiry fallback), PUT /default-session (session picker incl. None), DELETE /link (two-step confirm). States: not-configured (EmptyState) / unlinked (Link button) / linked (StatusPill + default-session select + Unlink). Sessions via useSessions, Array.isArray-guarded.

QC

Self-reviewed: 0 token violations, all nav wiring touchpoints present, all endpoints + array guard verified. tsc -b 0, vite build 0.

🤖 Generated with Claude Code

…ofile

Restores two surfaces orphaned in the Phase-12 nav restructure.

Orchestrator: moved web/src/components/OrchestratorTab.tsx ->
web/src/pages/settings/OrchestratorTab.tsx, refactored hand-rolled
markup onto shared ui primitives (Card, Button, Field, StatusPill,
Modal). Data logic (GET/PUT /api/orchestrator, POST start/stop)
preserved verbatim. Wired into SettingsPage as a new "orchestrator"
sub-tab.

Telegram: new TelegramCard in ProfileTab covering all three states
(bot not configured / unlinked / linked) over GET /api/telegram/status,
POST /link-code, DELETE /link, PUT /default-session. Sessions read via
useSessions for the default-session select, array-guarded.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@finedesignz finedesignz merged commit 1cc8e76 into main May 29, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant