Feat default surface routing + fix startup hang (#4)
Some checks failed
CI/CD / detect-changes (pull_request) Successful in 4s
CI/CD / test-frontend (pull_request) Successful in 4s
CI/CD / test-go-pg (pull_request) Failing after 2m18s
CI/CD / test-sqlite (pull_request) Successful in 2m40s
CI/CD / build-and-deploy (pull_request) Has been skipped
Some checks failed
CI/CD / detect-changes (pull_request) Successful in 4s
CI/CD / test-frontend (pull_request) Successful in 4s
CI/CD / test-go-pg (pull_request) Failing after 2m18s
CI/CD / test-sqlite (pull_request) Successful in 2m40s
CI/CD / build-and-deploy (pull_request) Has been skipped
Default surface routing (v0.2.1): - `/` redirects to configurable default surface with fallback chain: configured → first enabled extension surface → /admin - Auto-sets default_surface on first extension surface install - Admin settings UI: Default Surface dropdown - disabledRedirect() and extension surface disabled redirect now go to /admin instead of / to prevent redirect loops Fix Gin route param conflict causing backend startup hang: - Team package settings routes used `:pkgId` while sibling routes used `:id` — Gin's radix tree entered infinite loop on conflicting param names. Unified to `:id`. Docker entrypoint hardening: - Health check timeout 10s → 60s - Stale backend process cleanup on restart - Crash detection (exit early if backend dies) Roadmap direction updates: - v0.3.0: Notes surface (Obsidian-style) replaces Editor surface - v0.4.0: MVP (was v0.5.0) — chat moved to post-MVP - No built-in auto-install — explicit install only Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
30
CHANGELOG.md
30
CHANGELOG.md
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user