feat(web): restore Orchestrator settings tab + Telegram link UI in Profile#183
Merged
Merged
Conversation
…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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Restores two settings surfaces dropped/orphaned in the Phase-12 restructure.
A — Orchestrator tab (was orphaned, not mounted)
Moved
components/OrchestratorTab.tsx→pages/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
TelegramCardin 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 -b0,vite build0.🤖 Generated with Claude Code