-
v0.9.9
StableAll checks were successfulCI/CD / detect-changes (push) Successful in 3sCI/CD / test-runners (push) Has been skippedCI/CD / e2e-smoke (push) Has been skippedCI/CD / test-frontend (push) Successful in 5sCI/CD / test-go-pg (push) Successful in 2m49sCI/CD / test-sqlite (push) Successful in 2m59sCI/CD / build-and-deploy (push) Successful in 1m28sreleased this
2026-04-03 20:11:58 +00:00 | 1 commits to main since this releaseFeatures
- Added typed Forms SDK (
src/js/sw/sdk/forms.js) for structured form handling in workflows. - Introduced package adoption roles allowing teams to adopt external packages (
server/handlers/package_adopt.go, migration 017). - Added many-to-many team user roles with server endpoints and store updates (
server/store/sqlite/team.go, migration 016). - Implemented server-side subpath routing module in Starlark sandbox (
server/sandbox/routing_module.go). - Enabled write operations (create/update) in workflow Starlark module (
server/sandbox/workflow_module.go). - Added forms module to Starlark sandbox for dynamic form generation (
server/sandbox/forms_module.go). - Added teams module to Starlark sandbox for team/user/role management (
server/sandbox/teams_module.go). - Consolidated converters into dedicated Starlark module (
server/sandbox/convert.go).
UI/UX
- Enhanced team admin members UI to display, add, and remove extra roles via badges and dropdown (
src/js/sw/surfaces/team-admin/members.js). - Seeded initial browser history state for surface paths to enable proper back navigation (
src/js/sw/sdk/index.js).
Breaking Changes
- Collapsed stage modes: unified
form_only/form_chatintoform; removedreviewandstage_type; update workflows (server/models/workflow.go,src/js/sw/components/stage-form.js,server/pages/templates/workflow.html, tests). - Removed legacy review surface rendering and handlers from workflow templates and JS.
Improvements
- Updated workflow stage form component to support new collapsed modes without stage types.
- Enhanced OpenAPI spec for new forms and roles endpoints (
server/static/openapi.yaml). - Refactored team middleware and handlers for role-aware access (
server/middleware/team.go,server/handlers/teams.go).
Refactoring
- Major cleanup of workflow models, automated engine, and Starlark helpers (removed 300+ lines).
- Consolidated package store interfaces and validation (
server/store/interfaces.go,server/handlers/package_validate.go).
Infrastructure
- Added migrations for team roles (016), package adoption (017), and stage mode collapse (018).
- Expanded tests: pages handler, package adopt, forms, sandbox modules, team roles.
- Updated CI E2E tests and package manifests for new stage modes.
- Updated SDK version reference to 0.9.1.
Updated version to v0.9.9.
Downloads
- Added typed Forms SDK (
-
v0.9.0
StableAll checks were successfulCI/CD / detect-changes (push) Successful in 4sCI/CD / test-runners (push) Has been skippedCI/CD / e2e-smoke (push) Has been skippedCI/CD / test-frontend (push) Successful in 5sCI/CD / test-go-pg (push) Successful in 2m46sCI/CD / test-sqlite (push) Successful in 2m57sCI/CD / build-and-deploy (push) Successful in 44sreleased this
2026-04-03 13:15:00 +00:00 | 11 commits to main since this releaseFeatures
- Added multi-surface package support: packages can now declare multiple
surfaceswith independent paths, titles, layouts, and access controls (public, authenticated, admin, group). - Added client-side routing within package surfaces via
sw.navigate()and popstate handling for back/forward navigation. - Added server-side route matching for package sub-paths (e.g.,
/s/pkg/monitor/:id) with parameter extraction. - Added per-surface access control evaluation, supporting redirects for unauthenticated users and 403 for denied access.
- Updated extension navigation to use the first surface with
nav:trueor the root (/) surface for menu items.
Documentation
- Added comprehensive
MULTI-SURFACE-GUIDE.mdexplaining the new multi-surface package format and usage. - Updated
PACKAGE-FORMAT.mdto document thesurfacesarray structure and deprecate singleroute/layoutfields. - Updated
ROADMAP.mdto reflect completed v0.9.0 multi-surface work and shifted future versions.
Tests
- Added
pages_surface_match_test.gowith 175 lines of tests for surface path matching logic. - Extended
package_validate_test.gowith 151 lines of validation tests for multi-surface packages.
Infrastructure
- Modified
RenderExtensionSurfacehandler to resolve surfaces dynamically, supporting both root and sub-path requests. - Updated
RegisterPageRoutesto handle sub-paths for extension surfaces without requiring restarts. - Extended
PageDatastruct to includeSurfacePathandSurfaceParamsfor template rendering. - Updated package validation (
package_validate.go) to enforce multi-surface manifest structure.
Breaking Changes
- Packages without a
surfacesarray (legacy format) now only serve the root path (/); any non-root requests return 404. - The
routeandlayoutfields at the package root are deprecated in favor of per-surface declarations. - Extension navigation now uses the first
nav:truesurface or root surface; customroutevalues are ignored.
Version bumped to 0.9.0.
Downloads
- Added multi-surface package support: packages can now declare multiple
-
v0.8.5
StableAll checks were successfulCI/CD / detect-changes (push) Successful in 4sCI/CD / test-runners (push) Has been skippedCI/CD / e2e-smoke (push) Has been skippedCI/CD / test-frontend (push) Successful in 6sCI/CD / test-go-pg (push) Successful in 2m44sCI/CD / test-sqlite (push) Successful in 2m54sCI/CD / build-and-deploy (push) Successful in 52sreleased this
2026-04-03 11:55:15 +00:00 | 12 commits to main since this releaseFeatures
- Added
filessandbox module for storing and retrieving files via ObjectStore (PVC/S3) with extension-scoped namespacing. - Added
workspacesandbox module for workspace-level operations and state management. - Added capability negotiation: extensions can declare required/optional capabilities in manifest; installation fails if required capabilities are missing.
- Added vector column type support in database module for extension tables.
- Added extension composability: slots can now be declared for discoverability and support multi-component rendering via
renderAll().
Improvements
- Updated extension guide and Starlark reference documentation with comprehensive details for new
filesandworkspacemodules. - Added design documents for workflow redesign and vector column implementation.
- Enhanced package format specification to include
capabilitiesfield in manifest.
UI/UX
- Improved surface layout containment by replacing
height: 100%withflex: 1; min-height: 0to prevent overflow issues. - Updated base template and surface templates (team-admin, welcome) for consistent flexbox behavior.
Infrastructure
- Extended
ObjectStoreinterface withList()method for both PVC and S3 storage backends. - Added capability detection and validation during package installation.
- Added admin endpoint for slot declarations and composability testing.
Refactoring
- Refactored database module to support vector column type mapping and conditional index creation.
- Updated extension database schema creation to handle vector columns and conditional indexes.
Breaking Changes
- Package installation now strictly validates
capabilities.requiredfield; missing capabilities cause installation failure instead of marking package as dormant. - Extensions using vector columns must update their table definitions accordingly.
Version updated to v0.8.5.
Downloads
- Added
-
v0.7.12
StableAll checks were successfulCI/CD / detect-changes (push) Successful in 4sCI/CD / test-runners (push) Has been skippedCI/CD / e2e-smoke (push) Has been skippedCI/CD / test-go-pg (push) Successful in 2m46sCI/CD / test-sqlite (push) Successful in 2m58sCI/CD / build-and-deploy (push) Successful in 1m27sCI/CD / test-frontend (push) Successful in 5sreleased this
2026-04-02 23:59:32 +00:00 | 18 commits to main since this releaseFeatures
- Added API tokens with extended permissions for extensions, including storage in SQLite/Postgres and auth middleware.
- Introduced batch execution module in sandbox for concurrent Starlark operations.
- Added workflow handoff support with new stage-form UI component and E2E tests.
- Enabled workflow independence, decoupling from chat with dedicated editor/monitor surfaces.
- Improved HTTP module ergonomics in sandbox for better query handling.
Bug Fixes
- Filled admin UI gaps in users, groups, packages, and backup management.
Improvements
- Removed legacy standalone packages (git-board Kanban, tasks, editor, gitea-client), integrated into core surfaces.
- Enhanced workflow engine, assignment handlers, and team routing.
- Added workflow monitor and public handlers for better observability.
Infrastructure
- Implemented comprehensive E2E CI gates with smoke tests, workflow handoff/nochat scripts, and Docker Compose updates.
- Added permissions testing, hashing utils, and middleware for finer-grained access control.
- Created design docs for batch exec, storage primitives, and extension composability; updated ROADMAP and Starlark reference.
Refactoring
- Migrated storage.js to new primitives; improved db_module and runner.
- Code hygiene across server handlers, auth, and sandbox modules.
Version bumped to v0.7.12.
Downloads
-
v0.7.4
StableAll checks were successfulCI/CD / detect-changes (push) Successful in 4sCI/CD / test-runners (push) Has been skippedCI/CD / test-frontend (push) Successful in 5sCI/CD / test-go-pg (push) Successful in 2m51sCI/CD / test-sqlite (push) Successful in 2m51sCI/CD / build-and-deploy (push) Successful in 39sreleased this
2026-04-02 14:50:48 +00:00 | 26 commits to main since this releaseFeatures
- Added new surface runners for chat, notes, schedules, workflows, and renderer, replacing the old monolithic test runner.
- Introduced workflow editor and monitor interfaces for team admin surfaces.
- Added new shell topbar component for extensions, providing a consistent navigation and user menu.
- Added animated icons for light and dark themes, including new favicon variants.
- Added CI pipeline for surface tests with Docker support and health check scripts.
Improvements
- Migrated extension shell to a new contract, improving extension isolation and lifecycle management.
- Consolidated test runner framework into a modular, package-based architecture for better CI gating.
- Enhanced documentation with new guides for shell contract, surface runners, frontend JS, Starlark reference, permissions, and workflows.
- Updated server-side handlers to support new test runner types and workflow packages.
Refactoring
- Removed legacy ICD test runner UI and CRUD modules (channels, tasks, personas, knowledge, workspaces, projects, etc.).
- Removed legacy SDK test runner domain modules (git-board, projects, workspaces, tasks, notes, knowledge, personas, etc.).
- Consolidated test runner CSS into a single shared stylesheet (
packages/test-runners/css/main.css). - Replaced old team admin groups interface with updated admin groups surface.
Infrastructure
- Added Docker Compose configuration for CI and a dedicated test runner Dockerfile.
- Added surface test driver script and health check utility for CI.
- Updated database migrations to support new test runner types.
- Added server handlers for test runner management and validation.
Breaking Changes
- Removed old test runner system (
icd-test-runnerandsdk-test-runner). Existing tests must be migrated to the new surface runner framework. - Updated extension shell contract; extensions may require updates to work with the new shell topbar and lifecycle.
- Removed
hello-dashboardpackage and its associated assets. - Consolidated UI components and styles; extensions using old CSS may need adjustments.
Version: Updated from v0.6.18 to v0.7.0
Downloads
-
v0.6.18
StableAll checks were successfulreleased this
2026-04-01 16:58:19 +00:00 | 31 commits to main since this releaseFeatures
- SDK now automatically mounts imperative UI hosts (ToastContainer, DialogStack) for extension surfaces that lack an AppShell.
Bug Fixes
- Fixed Notes package "Add folder" button to use
sw.prompt()instead of nativeprompt(), ensuring proper dialog rendering in sandboxed iframes. - Fixed admin "Add team members" user picker to correctly handle API response envelope (
{data: [...]}). - Fixed package filter dropdown overflow by adjusting CSS to prevent horizontal scrollbars on option labels.
- Fixed admin actions cell button overflow on narrow screens by switching to flexbox layout with wrapping.
Improvements
- User menu now conditionally shows Docs, Settings, and Team Admin items only when those surfaces are actually enabled.
- Welcome surface now automatically redirects to homepage (
/) when any non-core extension surface is installed. - Updated bundled package installation logic to treat
nil(from*) as "install all" and empty map as "install nothing".
Infrastructure
- Changed default bundled packages to empty map—fresh installs now start with no packages pre-installed.
- Updated Docker Compose configuration to default
BUNDLED_PACKAGESenvironment variable to*when set but empty. - Updated test suite to reflect new empty default bundled packages behavior.
UI/UX
- Removed Welcome surface from topbar navigation and surface listings, treating it as a fallback-only page.
- Updated user menu logic to filter core surfaces more comprehensively.
Version: 0.6.17 → 0.6.18
Downloads
-
v0.6.16
StableAll checks were successfulreleased this
2026-04-01 14:57:10 +00:00 | 33 commits to main since this releaseFeatures
- Added user display audit system with new user SDK module (
users.js) and updated user store handlers. - Introduced usability survey gate with accompanying documentation and updated admin settings.
- Implemented session configuration handler with tests for improved session management.
- Added presence tracking system with handler and test coverage.
- Extended OpenAPI specification with 36 new endpoints.
Improvements
- Enhanced visual polish across all surfaces with updated CSS variables and refined component styling.
- Improved responsive spacing throughout the application with layout adjustments.
- Added viewport foundation for better responsive behavior across devices.
- Updated login form and auth middleware with improved cookie handling and session management.
- Enhanced markdown rendering capabilities in chat messages.
Infrastructure
- Added comprehensive UI development scripts: UI inventory generator, contrast checker, coverage matrix, touch target auditor, and CSS collision detector.
- Implemented CSS linting script for package-specific stylesheets.
- Added CSS isolation by prefixing all extension CSS classes with
ext-(e.g.,chat-sidebar→ext-chat-sidebar). - Deduplicated CSS across packages to reduce redundancy.
- Added new font files for improved typography (DM Sans and JetBrains Mono).
- Updated database migrations for PostgreSQL and SQLite with user table enhancements.
Documentation
- Added usability survey documentation (
USABILITY-SURVEY.md). - Updated extension CSS guidelines with detailed isolation patterns.
- Enhanced UI roadmap with 218 lines of new content.
- Updated deployment and distribution documentation.
Version
- Updated from v0.6.8 to v0.6.16 across the codebase.
Downloads
- Added user display audit system with new user SDK module (
-
v0.6.8
StableAll checks were successfulreleased this
2026-03-31 23:56:16 +00:00 | 41 commits to main since this releaseUI/UX
- Updated login, welcome, and admin surfaces with "Armature" branding, titles, and placeholders.
- Refreshed favicons, hero images, and CSS comments to reflect Armature branding.
- Improved footer text placeholder in admin settings to "Powered by Armature".
Refactoring
- Renamed SDK auth tokens, cookies, and storage keys from "sb_" to "arm_" (e.g., sb_token → arm_token).
- Updated theme storage key from switchboard_theme to armature_theme.
- Renamed all JS/TS module comments and strings from "Switchboard Core" to "Armature".
- Updated package manifests and authors from "Switchboard Core" to "Armature".
Infrastructure
- Renamed Kubernetes resources, secrets, and env vars from "switchboard" to "armature" (e.g., SWITCHBOARD_ADMIN_* → ARMATURE_ADMIN_*).
- Added k8s/armature.yaml deployment and scripts/armature-ca.sh; removed switchboard equivalents.
- Updated Helm charts with armature-specific dashboards, alerting rules, and deployment templates.
- Renamed service worker cache from switchboard- to armature-; updated Docker and CI configs.
Breaking Changes
- Metrics renamed from switchboard_* to armature_* (e.g., switchboard_http_requests_total → armature_http_requests_total).
- Debug export filenames changed from switchboard-debug- to armature-debug-.
- Deployment secrets and env vars require update for compatibility (e.g., switchboard-db-credentials → armature-db-credentials).
Downloads
-
v0.6.7
StableAll checks were successfulreleased this
2026-03-31 18:42:01 +00:00 | 42 commits to main since this releaseFeatures
- Added native mTLS support with new certificate authority scripts and TLS configuration
- Added cluster registry for managing multiple Switchboard instances
- Added admin health metrics dashboard with system monitoring
- Added backup and restore functionality for system data
- Added new documentation surface with API reference and extension guides
- Added SDK modules for markdown rendering and renderer registration
- Added workflow chat package for chat-based workflow interactions
- Added package validation system with semantic version checking
- Added upgrade testing infrastructure with rolling upgrade support
- Added end-to-end WebSocket listener for testing real-time features
Improvements
- Refactored renderer packages (Mermaid, KaTeX, CSV Table) to use new renderer SDK
- Enhanced admin package management interface with improved validation
- Updated chat package with streamlined core functionality
- Improved ICD test runner with expanded test coverage for surfaces
- Consolidated deployment to single Docker image, removing frontend/backend split
- Updated documentation with new architecture, deployment, and extension guides
- Enhanced cluster dashboard functionality with registry support
- Improved admin surfaces with better navigation and settings management
Infrastructure
- Fixed nginx configuration for BASE_PATH routing and static asset serving
- Fixed container port configuration (nginx now listens on port 80)
- Updated Kubernetes manifests with unified naming convention
- Improved CI/CD pipeline with aligned variable names and deployment scripts
- Added end-to-end tests for cluster, backup, and upgrade scenarios
- Removed legacy cluster dashboard package and associated files
- Consolidated development and production deployment configurations
- Added support for extension configuration sections and library packages
Breaking Changes
- Removed old mTLS proxy implementation in favor of native mTLS support
- Renderer extensions must now register via
sw.renderersSDK instead of old extension system - Removed development HTML file and associated frontend split architecture
- Consolidated k8s deployment files from backend.yaml to switchboard.yaml
- Dropped support for legacy chat/notes/projects/providers modules
UI/UX
- Updated login page branding and fixed post-login blank page issue
- Added redirect from root route to admin surface by default
- Improved user menu with additional navigation options
- Enhanced documentation surface layout and navigation
- Updated CSS variables for better theming support
Refactoring
- Renamed main module from chat-switchboard to switchboard-core
- Purged orphaned frontend code and consolidated codebase
- Streamlined store interfaces and models for better maintainability
- Removed legacy workflow redesign documentation
- Cleaned up debug components and unused test files
Version updated to v0.6.7
Downloads