前端修复: - calendar_page: 移除不存在的 JournalEntry.content getter - responsive_scaffold: 移除不存在的 notchThickness 参数 - splash_page: SingleTickerProvider → TickerProvider (多 AnimationController) - profile_page: UserRoleType.name → .code (修复运行时崩溃) - 导入缺失的 user.dart 后端修复: - class_service: generate_class_code 取 UUID 后6位(随机部分)避免碰撞 - diary_role_seed: 移除不存在的 id 列,使用复合主键 ON CONFLICT 基础设施: - config/default.toml: CORS 改为通配符(开发模式) - scripts/dev.sh: 统一启动脚本(自动清理端口) - docs/opendesign/: Open Design 设计规格 HTML 原型稿 验证结果: flutter analyze 0 error, cargo test 77/77 通过, 17个页面全部渲染正常
82 lines
1.6 KiB
TOML
82 lines
1.6 KiB
TOML
[server]
|
||
host = "0.0.0.0"
|
||
port = 3000
|
||
|
||
[database]
|
||
url = "__MUST_SET_VIA_ENV__"
|
||
max_connections = 20
|
||
min_connections = 5
|
||
|
||
[redis]
|
||
url = "__MUST_SET_VIA_ENV__"
|
||
|
||
[jwt]
|
||
secret = "__MUST_SET_VIA_ENV__"
|
||
access_token_ttl = "15m"
|
||
refresh_token_ttl = "7d"
|
||
|
||
[auth]
|
||
super_admin_password = "__MUST_SET_VIA_ENV__"
|
||
|
||
[log]
|
||
level = "info"
|
||
|
||
[cors]
|
||
# Comma-separated allowed origins. Use "*" for development only.
|
||
allowed_origins = "*"
|
||
|
||
[wechat]
|
||
appid = "__MUST_SET_VIA_ENV__"
|
||
secret = "__MUST_SET_VIA_ENV__"
|
||
# dev_mode = true 跳过 jscode2session,允许微信开发者工具模拟器登录
|
||
# 生产环境必须为 false(默认)
|
||
dev_mode = false
|
||
|
||
[health]
|
||
aes_key = "__MUST_SET_VIA_ENV__"
|
||
hmac_key = "__MUST_SET_VIA_ENV__"
|
||
|
||
[crypto]
|
||
kek = "__MUST_SET_VIA_ENV__"
|
||
|
||
[ai]
|
||
default_provider = "claude"
|
||
api_key = ""
|
||
base_url = "https://api.anthropic.com"
|
||
model = "claude-sonnet-4-6"
|
||
max_tokens = 2048
|
||
temperature = 0.3
|
||
cache_ttl_seconds = 604800
|
||
rate_limit_patient_daily = 10
|
||
quota_check_enabled = true
|
||
|
||
[ai.providers.claude]
|
||
provider_type = "claude"
|
||
api_key_env = "ANTHROPIC_API_KEY"
|
||
base_url = "https://api.anthropic.com"
|
||
default_model = "claude-sonnet-4-6"
|
||
max_tokens = 2048
|
||
temperature = 0.3
|
||
is_enabled = true
|
||
|
||
[ai.providers.openai]
|
||
provider_type = "openai"
|
||
api_key_env = "OPENAI_API_KEY"
|
||
base_url = "https://api.openai.com"
|
||
default_model = "gpt-4o"
|
||
max_tokens = 2048
|
||
temperature = 0.3
|
||
is_enabled = false
|
||
|
||
[ai.providers.ollama]
|
||
provider_type = "ollama"
|
||
base_url = "http://localhost:11434"
|
||
default_model = "qwen2.5:7b"
|
||
max_tokens = 2048
|
||
temperature = 0.3
|
||
is_enabled = false
|
||
|
||
[storage]
|
||
upload_dir = "./uploads"
|
||
max_file_size = "10MB"
|