feat: migrate Slack management pages to React#231
Conversation
|
Final report for this implementation loop: Summary:
Validation run locally:
Review/CI:
|
👍 GitRank PR AnalysisScore: 20 points
Eligibility Checks
Impact SummaryThis PR migrates Slack management pages from Go HTML templates in the gateway to a React app, establishing a new architectural pattern where integration services expose JSON APIs and redirects while the React UI handles user-facing management. The change adds 4,606 lines across 28 files, including new React routes, gateway JSON endpoints, comprehensive tests, and documentation of the migration plan and ID ownership model. Analysis DetailsComponent Classification: This PR spans multiple systems (gateway, UI, documentation) without fitting neatly into a single categorized component. It's a cross-cutting architectural migration rather than a fix to a specific component. Severity Justification: This is a medium-severity change because it refactors user-facing management surfaces and introduces new routing/redirect logic that could break existing workflows if misconfigured, but it maintains backward compatibility through redirects and doesn't introduce security vulnerabilities or data loss risks. Eligibility Notes: Tests are required and included: the PR adds 1036 lines to gateway_test.go plus new UI tests (settings.test.tsx with 679 lines, slack-management.test.ts with 42 lines, app.test.tsx expanded). This is a feature/refactoring that changes routing behavior, API contracts, and UI surfaces. The PR is well-documented with a detailed migration plan document and clear description. No specific issue is referenced, but the PR implements a deliberate architectural decision documented in AGENTS.md. Analyzed by GitRank 🤖 |
Summary
Slack management pages should live in the Spritz React app instead of being rendered as Go HTML templates.
This change keeps the existing gateway URLs working by redirecting them into React and adds JSON endpoints for the settings UI to call.
It also adds a small settings button to chat, while leaving the chat UI itself mostly unchanged.
What Changed
The user-facing management surfaces now share one React settings shell.
The Slack gateway still owns OAuth callbacks and backend proxying, but the browser UI is handled by Spritz UI.
/api/slack/...and/api/settings/channels...for those React pages.Testing
The gateway tests, UI typecheck, UI test suite, and production build pass locally.
I also previewed the built React app and checked the workspace, channel routing, and install result pages in the browser.
cd integrations/slack-gateway && go test ./...cd ui && pnpm typecheckcd ui && pnpm test -- --runcd ui && pnpm buildRisks
The main risk is routing mismatch between the gateway mount path and the React app path.
The old gateway pages now redirect instead of rendering directly, so staging verification should check those redirects behind the real ingress.