chore: commit workspace updates

This commit is contained in:
ddCat
2026-09-14 01:11:56 +08:00
parent 01a2d171f5
commit 9727656b2b
491 changed files with 12826 additions and 72249 deletions

View File

@@ -38,10 +38,9 @@ type FeatureAvailability struct {
type PublicFeatureAvailability struct {
FeatureAvailability
DesktopLocalChannelsEnabled bool `json:"desktopLocalChannelsEnabled"`
Configured bool `json:"configured"`
UpdatedBy string `json:"updatedBy,omitempty"`
UpdatedAt time.Time `json:"updatedAt,omitempty"`
Configured bool `json:"configured"`
UpdatedBy string `json:"updatedBy,omitempty"`
UpdatedAt time.Time `json:"updatedAt,omitempty"`
}
func DefaultFeatureAvailability() FeatureAvailability {
@@ -63,7 +62,7 @@ func (s *Service) FeatureAvailability() (*PublicFeatureAvailability, error) {
if err != nil {
return nil, err
}
return s.withRuntimeCapabilities(publicFeatureAvailability(setting, value)), nil
return publicFeatureAvailability(setting, value), nil
}
func (s *Service) AdminFeatureAvailability(actor *model.User) (*PublicFeatureAvailability, error) {
@@ -95,7 +94,7 @@ func (s *Service) UpdateFeatureAvailability(actor *model.User, value FeatureAvai
if err := s.appendAdminAudit(actor, "feature_availability.update", "system_setting", featureAvailabilitySettingKey, "更新功能开放配置", map[string]any{"before": before, "after": value}); err != nil {
return nil, err
}
return s.withRuntimeCapabilities(publicFeatureAvailability(&setting, value)), nil
return publicFeatureAvailability(&setting, value), nil
}
func (s *Service) FeatureEnabled(feature string) (bool, error) {
@@ -171,13 +170,6 @@ func (s *Service) readFeatureAvailability() (*model.SystemSetting, FeatureAvaila
return setting, value, nil
}
func (s *Service) withRuntimeCapabilities(result *PublicFeatureAvailability) *PublicFeatureAvailability {
if result != nil {
result.DesktopLocalChannelsEnabled = s.desktopLocalChannelsEnabled()
}
return result
}
func publicFeatureAvailability(setting *model.SystemSetting, value FeatureAvailability) *PublicFeatureAvailability {
result := &PublicFeatureAvailability{FeatureAvailability: value, Configured: setting != nil}
if setting != nil {

View File

@@ -14,7 +14,6 @@ const TaskWorkerConcurrency = 3
type Host interface {
RequireAdmin(user *model.User) error
AppendAudit(actor *model.User, action, targetType, targetID, summary string, metadata any) error
DesktopLocalChannelsEnabled() bool
ChannelConcurrencyLimit(channelID string) (int, error)
}
@@ -24,7 +23,6 @@ func (nopHost) RequireAdmin(*model.User) error { return nil }
func (nopHost) AppendAudit(*model.User, string, string, string, string, any) error {
return nil
}
func (nopHost) DesktopLocalChannelsEnabled() bool { return false }
func (nopHost) ChannelConcurrencyLimit(string) (int, error) {
return 0, nil
}
@@ -61,10 +59,3 @@ func (s *Service) appendAdminAudit(actor *model.User, action, targetType, target
}
return s.host.AppendAudit(actor, action, targetType, targetID, summary, metadata)
}
func (s *Service) desktopLocalChannelsEnabled() bool {
if s == nil || s.host == nil {
return false
}
return s.host.DesktopLocalChannelsEnabled()
}

View File

@@ -28,7 +28,6 @@ const (
type RuntimeResourcePolicy struct {
ResourceUploadMB int64 `json:"resourceUploadMB"`
SessionUploadMB int64 `json:"sessionUploadMB"`
GeneratedFileMB int64 `json:"generatedFileMB"`
DailyUploadMB int64 `json:"dailyUploadMB"`
StoredFileGB int64 `json:"storedFileGB"`
@@ -36,7 +35,6 @@ type RuntimeResourcePolicy struct {
TaskDataGB int64 `json:"taskDataGB"`
AssetCount int64 `json:"assetCount"`
CanvasCount int64 `json:"canvasCount"`
SessionCount int64 `json:"sessionCount"`
TaskCount int64 `json:"taskCount"`
APICallLogCount int64 `json:"apiCallLogCount"`
RecycleBinRetentionDays int `json:"recycleBinRetentionDays"`
@@ -56,10 +54,8 @@ type RuntimeTaskPolicy struct {
type RuntimeRequestPolicy struct {
TaskCreatePerMinute int `json:"taskCreatePerMinute"`
SessionCreatePerMinute int `json:"sessionCreatePerMinute"`
ResourceUploadPerMinute int `json:"resourceUploadPerMinute"`
ResourceImportPerMinute int `json:"resourceImportPerMinute"`
SessionFilePerMinute int `json:"sessionFilePerMinute"`
AssetWritePerMinute int `json:"assetWritePerMinute"`
CanvasWritePerMinute int `json:"canvasWritePerMinute"`
RegisterPerHour int `json:"registerPerHour"`
@@ -95,7 +91,6 @@ type PublicRuntimePolicySetting struct {
type PublicRuntimeLimits struct {
ActiveTaskLimit int `json:"activeTaskLimit"`
ResourceUploadMB int64 `json:"resourceUploadMB"`
SessionUploadMB int64 `json:"sessionUploadMB"`
RecycleBinRetentionDays int `json:"recycleBinRetentionDays"`
}
@@ -107,7 +102,6 @@ func DefaultRuntimePolicy() RuntimePolicySetting {
return RuntimePolicySetting{
Resource: RuntimeResourcePolicy{
ResourceUploadMB: 50,
SessionUploadMB: 32,
GeneratedFileMB: 64,
DailyUploadMB: 2048,
StoredFileGB: 20,
@@ -115,7 +109,6 @@ func DefaultRuntimePolicy() RuntimePolicySetting {
TaskDataGB: 1,
AssetCount: 2_000,
CanvasCount: 1_000,
SessionCount: 1_000,
TaskCount: 20_000,
APICallLogCount: 100_000,
RecycleBinRetentionDays: 30,
@@ -133,10 +126,8 @@ func DefaultRuntimePolicy() RuntimePolicySetting {
},
Request: RuntimeRequestPolicy{
TaskCreatePerMinute: 30,
SessionCreatePerMinute: 20,
ResourceUploadPerMinute: 30,
ResourceImportPerMinute: 30,
SessionFilePerMinute: 30,
AssetWritePerMinute: 120,
CanvasWritePerMinute: 120,
RegisterPerHour: 30,
@@ -160,10 +151,10 @@ func DefaultRuntimePolicy() RuntimePolicySetting {
func selfUseRuntimePolicy() RuntimePolicySetting {
value := DefaultRuntimePolicy()
value.Resource = RuntimeResourcePolicy{
ResourceUploadMB: maxRuntimeUploadMB, SessionUploadMB: maxRuntimeUploadMB, GeneratedFileMB: maxRuntimeUploadMB,
ResourceUploadMB: maxRuntimeUploadMB, GeneratedFileMB: maxRuntimeUploadMB,
DailyUploadMB: maxRuntimeDataMB, StoredFileGB: maxRuntimeStorageGB, StructuredDataMB: maxRuntimeDataMB,
TaskDataGB: maxRuntimeStorageGB, AssetCount: maxRuntimeCount, CanvasCount: maxRuntimeCount,
SessionCount: maxRuntimeCount, TaskCount: maxRuntimeCount, APICallLogCount: maxRuntimeCount,
TaskCount: maxRuntimeCount, APICallLogCount: maxRuntimeCount,
RecycleBinRetentionDays: 0,
}
value.Task = RuntimeTaskPolicy{
@@ -173,9 +164,9 @@ func selfUseRuntimePolicy() RuntimePolicySetting {
StoryboardTimeoutMinutes: maxRuntimeTimeoutMinutes, DefaultTimeoutMinutes: maxRuntimeTimeoutMinutes,
}
value.Request = RuntimeRequestPolicy{
TaskCreatePerMinute: maxRuntimeRate, SessionCreatePerMinute: maxRuntimeRate,
TaskCreatePerMinute: maxRuntimeRate,
ResourceUploadPerMinute: maxRuntimeRate, ResourceImportPerMinute: maxRuntimeRate,
SessionFilePerMinute: maxRuntimeRate, AssetWritePerMinute: maxRuntimeRate, CanvasWritePerMinute: maxRuntimeRate,
AssetWritePerMinute: maxRuntimeRate, CanvasWritePerMinute: maxRuntimeRate,
RegisterPerHour: maxRuntimeRate, EmailCodePerHour: maxRuntimeRate,
LoginIPPerTenMinutes: maxRuntimeRate, LoginAccountPerTenMinutes: maxRuntimeRate,
SystemRelayPerMinute: maxRuntimeRate, CustomRelayPerMinute: maxRuntimeRate,
@@ -212,7 +203,6 @@ func (s *Service) PublicRuntimeLimits() (*PublicRuntimeLimits, error) {
}
return &PublicRuntimeLimits{
ActiveTaskLimit: policy.Task.ActiveTaskLimit, ResourceUploadMB: policy.Resource.ResourceUploadMB,
SessionUploadMB: policy.Resource.SessionUploadMB,
RecycleBinRetentionDays: policy.Resource.RecycleBinRetentionDays,
}, nil
}
@@ -307,8 +297,8 @@ func (s *Service) readRuntimePolicy() (*model.SystemSetting, RuntimePolicySettin
func validateRuntimePolicy(value RuntimePolicySetting) error {
resource := value.Resource
for label, item := range map[string]int64{
"普通资源单文件": resource.ResourceUploadMB, "Agent 会话附件": resource.SessionUploadMB,
"单个生成资源": resource.GeneratedFileMB,
"普通资源单文件": resource.ResourceUploadMB,
"单个生成资源": resource.GeneratedFileMB,
} {
if item < 1 || item > maxRuntimeUploadMB {
return kernel.BadAuthRequest(fmt.Sprintf("%s必须是 1-%d MB 的整数", label, maxRuntimeUploadMB))
@@ -324,11 +314,11 @@ func validateRuntimePolicy(value RuntimePolicySetting) error {
return kernel.BadAuthRequest(fmt.Sprintf("结构化数据容量必须是 1-%d MB 的整数", maxRuntimeDataMB))
}
storedMB := resource.StoredFileGB * 1024
if resource.ResourceUploadMB > storedMB || resource.SessionUploadMB > storedMB || resource.GeneratedFileMB > storedMB {
if resource.ResourceUploadMB > storedMB || resource.GeneratedFileMB > storedMB {
return kernel.BadAuthRequest("单文件上限不能大于账号文件总容量")
}
for label, item := range map[string]int64{
"素材数量": resource.AssetCount, "画布数量": resource.CanvasCount, "Agent 会话数量": resource.SessionCount,
"素材数量": resource.AssetCount, "画布数量": resource.CanvasCount,
"任务历史数量": resource.TaskCount, "请求日志数量": resource.APICallLogCount,
} {
if item < 1 || item > maxRuntimeCount {
@@ -357,9 +347,9 @@ func validateRuntimePolicy(value RuntimePolicySetting) error {
}
request := value.Request
for label, item := range map[string]int{
"任务创建频控": request.TaskCreatePerMinute, "会话创建频控": request.SessionCreatePerMinute,
"任务创建频控": request.TaskCreatePerMinute,
"资源上传频控": request.ResourceUploadPerMinute, "资源导入频控": request.ResourceImportPerMinute,
"会话附件频控": request.SessionFilePerMinute, "素材写入频控": request.AssetWritePerMinute,
"素材写入频控": request.AssetWritePerMinute,
"画布写入频控": request.CanvasWritePerMinute, "注册频控": request.RegisterPerHour,
"验证码频控": request.EmailCodePerHour, "登录 IP 频控": request.LoginIPPerTenMinutes,
"登录账号频控": request.LoginAccountPerTenMinutes, "系统渠道频控": request.SystemRelayPerMinute,