Chore: trim roadmap head, add v0.6.3–v0.6.6 from audit, update changelog
All checks were successful
CI/CD / detect-changes (pull_request) Successful in 3s
CI/CD / test-frontend (pull_request) Successful in 5s
CI/CD / test-sqlite (pull_request) Successful in 2m45s
CI/CD / test-go-pg (pull_request) Successful in 2m50s
CI/CD / build-and-deploy (pull_request) Successful in 1m31s

- ROADMAP.md: replace Phase 0 + v0.2.x–v0.5.x detail with a one-paragraph
  summary (full history preserved in CHANGELOG.md); add v0.6.3–v0.6.6
  pre-fork hardening track from the v0.6.2 brutal audit; add three new
  Design Decisions Log entries (builtin package rationale, cluster
  dashboard retirement, block renderers decoupled from chat)
- CHANGELOG.md: add v0.6.2 entry (dark mode, routing/scrolling fixes,
  dynamic OpenAPI, Postgres test fix)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-31 11:57:25 +00:00
parent fad32bd48a
commit 761cbbb2b3
2 changed files with 137 additions and 408 deletions

View File

@@ -2,6 +2,49 @@
All notable changes to Switchboard Core are documented here.
## v0.6.2 — Docs Polish + Dynamic OpenAPI
Docs surface polish and dynamic OpenAPI spec with extension route merging.
### Added
- **Dynamic OpenAPI spec**: `GET /api/docs/openapi.json` builds a merged
spec at request time — kernel endpoints + auto-generated stubs for every
extension `api_routes` entry. Extensions may optionally declare `api_schema`
in `manifest.json` for richer path items (params, body, response examples).
- **`api_schema` manifest field**: Optional array in `manifest.json`. Malformed
entries are logged and skipped — never blocks extension loading.
- **Tests**: 7 new handler tests (zero extensions, stubs, rich schema,
multi-extension, malformed schema, disabled exclusion, required fields).
### Fixed
- **Dark mode contrast**: Replaced all hardcoded light-mode fallbacks in docs
CSS with theme-aware CSS variables. Tables, code blocks, nav items, and
headings now readable in dark mode.
- **Docs loading state**: Replaced borrowed `settings-placeholder` animation
with docs-specific pulse skeleton. Added error state with retry button.
- **Docs routing**: Default route (`/docs`) now redirects to
`/docs/GETTING-STARTED` instead of the blank `/:section` placeholder.
- **Docs scrolling**: Content area now scrolls correctly — full document
visible without text overflowing viewport.
- **Docs icon**: Changed from 🧩 to 📖 in the user menu.
- **Docs duplicate menu entry**: Docs was appearing twice (once from surfaces
API, once from hardcoded items). Added `'docs'` to `CORE_IDS` filter.
- **Swagger UI**: Updated to point at dynamic `/api/docs/openapi.json`
endpoint. Static YAML preserved for backward compatibility.
- **OpenAPI tests on Postgres**: `openapiTestStores()` was hardcoded to
`sqlite.NewStores()` — caused `pq: syntax error at or near ","` in CI.
Now uses `database.IsSQLite()` check like all other handler tests.
### API
| Endpoint | Method | Description |
|----------|--------|-------------|
| `/api/docs/openapi.json` | GET | Dynamic merged OpenAPI 3.0 spec |
---
## v0.6.1 — Backup/Restore + Documentation
Operational tooling for data safety and extension authoring.