Merge branch 'main' of https://github.com/ddcat-ai/open-ai-canvas
Publish container images / Quality checks (push) Has been cancelled
Publish container images / Resolve build version (push) Has been cancelled
Publish container images / Build open-ai-canvas-backend (amd64) (push) Has been cancelled
Publish container images / Build open-ai-canvas-backend (arm64) (push) Has been cancelled
Publish container images / Build open-ai-canvas-web (multi) (push) Has been cancelled
Publish container images / Build open-ai-canvas-yingce-agent (multi) (push) Has been cancelled
Publish container images / Publish open-ai-canvas-backend manifest (push) Has been cancelled
Publish container images / Publish open-ai-canvas-web manifest (push) Has been cancelled
Publish container images / Publish open-ai-canvas-yingce-agent manifest (push) Has been cancelled
Publish container images / Publish release assets (push) Has been cancelled

This commit is contained in:
tongtong committed 2026-10-14 16:28:42 +08:00
commit 743b65f57f
573 files changed
+129685 -3164

No files matched your search

@@ -455,6 +455,8 @@ func migrations() []tableMigration {
migrateTable[model.CreationRun]("creation_runs"),
migrateTable[model.CreationSubmission]("creation_submissions"),
migrateTable[model.Task]("tasks"),
migrateTable[model.WorkbenchTool]("workbench_tools"),
migrateTable[model.WorkbenchPreset]("workbench_presets"),
migrateTable[model.CloudAgentExecution]("cloud_agent_executions"),
migrateTable[model.CloudAgentEventRecord]("cloud_agent_event_records"),
migrateTable[model.CloudAgentMessageRecord]("cloud_agent_message_records"),
+7
View File
@@ -101,6 +101,9 @@ func run(ctx context.Context) error {
if err := svc.EnsureBuiltinTools(); err != nil {
return err
}
if err := ensureBuiltinWorkbenchCatalog(svc); err != nil {
return err
}
if summary, err := svc.MigrateLegacyStorage(); err != nil {
slog.Warn("storage migration skipped after error", "error", err)
} else if summary.Backup != "" {
@@ -173,6 +176,10 @@ func run(ctx context.Context) error {
return nil
}
func ensureBuiltinWorkbenchCatalog(svc *service.Service) error {
return svc.EnsureBuiltinWorkbenchCatalog()
}
func redactCanvasSharePath(path string) string {
const prefix = "/api/public/canvas-shares/"
if !strings.HasPrefix(path, prefix) {
+25
View File
@@ -5,9 +5,34 @@ import (
"testing"
"time"
"yingce/backend/internal/database"
"yingce/backend/internal/repository"
"yingce/backend/internal/service"
"github.com/gin-gonic/gin"
)
func TestEnsureBuiltinWorkbenchCatalogStartupWiring(t *testing.T) {
db, err := database.Open(database.Config{Driver: "sqlite", DSN: "file:workbench-startup?mode=memory&cache=shared"})
if err != nil {
t.Fatal(err)
}
if err := database.MigrateSchema(db); err != nil {
t.Fatal(err)
}
svc := service.New(repository.New(db), t.TempDir())
if err := ensureBuiltinWorkbenchCatalog(svc); err != nil {
t.Fatal(err)
}
tools, err := repository.New(db).WorkbenchTools("image", true)
if err != nil {
t.Fatal(err)
}
if len(tools) == 0 {
t.Fatal("startup initializer did not publish image workbench tools")
}
}
func TestAllowedOriginWildcard(t *testing.T) {
t.Setenv("CANVAS_CORS_ORIGINS", "*")
context, _ := gin.CreateTestContext(httptest.NewRecorder())