Changeset 0.32.0 (#206)

This commit is contained in:
2026-03-19 18:50:27 +00:00
parent 6668e546fe
commit b1266b0d7c
283 changed files with 2187 additions and 1055 deletions

View File

@@ -7,8 +7,8 @@ import (
"github.com/gin-gonic/gin"
"git.gobha.me/xcaliber/chat-switchboard/providers"
"git.gobha.me/xcaliber/chat-switchboard/store"
"chat-switchboard/providers"
"chat-switchboard/store"
)
// ── Types for template data ──────────────────

View File

@@ -25,8 +25,8 @@ import (
"github.com/gin-gonic/gin"
"git.gobha.me/xcaliber/chat-switchboard/config"
"git.gobha.me/xcaliber/chat-switchboard/store"
"chat-switchboard/config"
"chat-switchboard/store"
)
//go:embed templates/*.html templates/components/*.html templates/surfaces/*.html templates/admin/*.html
@@ -700,23 +700,10 @@ func (e *Engine) RenderWorkflowLanding() gin.HandlerFunc {
scope := c.Param("id")
slug := c.Param("slug")
// Resolve scope to team_id (v0.31.2: supports team slug)
// Resolve scope to team_id
var teamID *string
if scope != "global" {
// UUID format check: 36 chars with dashes at standard positions
if len(scope) == 36 && scope[8] == '-' && scope[13] == '-' {
teamID = &scope
} else if e.stores.Teams != nil {
// Try team slug lookup
t, err := e.stores.Teams.GetBySlug(ctx, scope)
if err == nil && t != nil {
teamID = &t.ID
} else {
teamID = &scope // fall through — will 404 downstream
}
} else {
teamID = &scope
}
teamID = &scope
}
if e.stores.Workflows == nil {

View File

@@ -374,7 +374,6 @@ window.addEventListener('unhandledrejection', function(e) {
<button class="admin-tab active" data-ttab="members" onclick="sb.call('UI.switchTeamTab','members')">Members</button>
<button class="admin-tab" data-ttab="providers" onclick="sb.call('UI.switchTeamTab','providers')">Providers</button>
<button class="admin-tab" data-ttab="personas" onclick="sb.call('UI.switchTeamTab','personas')">Personas</button>
<button class="admin-tab" data-ttab="workflows" onclick="sb.call('UI.switchTeamTab','workflows')">Workflows</button>
<button class="admin-tab" data-ttab="knowledge" onclick="sb.call('UI.switchTeamTab','knowledge')">Knowledge</button>
<button class="admin-tab" data-ttab="groups" onclick="sb.call('UI.switchTeamTab','groups')">Groups</button>
<button class="admin-tab" data-ttab="settings" onclick="sb.call('UI.switchTeamTab','settings')">Settings</button>
@@ -419,9 +418,6 @@ window.addEventListener('unhandledrejection', function(e) {
<div id="teamKBContent"></div>
</div>
{{/* Workflows (v0.31.2) */}}
<div id="teamTabWorkflows" class="team-tab-content" style="display:none;"></div>
{{/* Groups */}}
<div id="teamTabGroups" class="team-tab-content" style="display:none;">
<div id="settingsTeamGroups"></div>
@@ -528,7 +524,6 @@ window.addEventListener('unhandledrejection', function(e) {
<script type="module" nonce="{{$.CSPNonce}}" src="{{$.BasePath}}/js/admin-handlers.js?v={{$.Version}}"></script>
<script type="module" nonce="{{$.CSPNonce}}" src="{{$.BasePath}}/js/workflow-api.js?v={{$.Version}}"></script>
<script type="module" nonce="{{$.CSPNonce}}" src="{{$.BasePath}}/js/workflow-admin.js?v={{$.Version}}"></script>
<script type="module" nonce="{{$.CSPNonce}}" src="{{$.BasePath}}/js/workflow-team-admin.js?v={{$.Version}}"></script>
<script type="module" nonce="{{$.CSPNonce}}" src="{{$.BasePath}}/js/workflow-queue.js?v={{$.Version}}"></script>
<script type="module" nonce="{{$.CSPNonce}}" src="{{$.BasePath}}/js/task-sidebar.js?v={{$.Version}}"></script>
<script type="module" nonce="{{$.CSPNonce}}" src="{{$.BasePath}}/js/app.js?v={{$.Version}}"></script>