Feat default surface routing (#4)
Some checks failed
CI/CD / detect-changes (push) Successful in 3s
CI/CD / test-frontend (push) Successful in 5s
CI/CD / test-go-pg (push) Failing after 2m17s
CI/CD / test-sqlite (push) Successful in 2m44s
CI/CD / build-and-deploy (push) Has been skipped

Co-authored-by: Jeffrey Smith <jasafpro@gmail.com>
Co-committed-by: Jeffrey Smith <jasafpro@gmail.com>
This commit was merged in pull request #4.
This commit is contained in:
2026-03-26 19:56:14 +00:00
committed by xcaliber
parent a36be83aaf
commit f4512071db
9 changed files with 169 additions and 40 deletions

View File

@@ -2,7 +2,35 @@
All notable changes to Switchboard Core are documented here.
## [Unreleased] — v0.2.0
## [Unreleased] — v0.2.1
### Added
- **Default surface routing**: `/` redirects to configurable default surface.
Fallback chain: configured default → first enabled extension surface → `/admin`.
First installed extension surface auto-becomes default. Admin can change via
Settings > Default Surface dropdown.
- `default_surface` global config key (JSON `{"id": "slug"}`)
- Admin settings UI: Default Surface dropdown (extension surfaces only)
### Changed
- `disabledRedirect()` now redirects to `/admin` instead of `/` to prevent
redirect loops when the default surface is disabled
- Disabled extension surfaces (`/s/:slug`) redirect to `/admin` instead of `/`
### Fixed
- **Gin route param conflict** causing backend startup hang: team-scoped
package settings routes used `:pkgId` while sibling routes used `:id`.
Gin's radix tree entered an infinite loop on the conflicting param names.
Unified to `:id` across all `/teams/:teamId/packages/` routes.
- Docker entrypoint: increased health check timeout (10s → 60s), added stale
process cleanup and crash detection to prevent zombie backends on restart
---
## [v0.2.0] — 2026-03-26
### Added