fix: 修复19个Bug (P0-P3) — 持续性调试第7轮发现的问题

P0 (5): crypto/rand session ID, TTS fallback可达性, goroutine defer recover, adminAuth前缀修正
P1 (5): 普通用户密码验证, context传递, priority clamp, 超时重试, 自主思考速率限制
P2 (4): Briefing AI降级, 前端消息类型渲染, Docker Compose补全, PWA 192图标
P3 (5): goroutine错误处理, .gitignore完善, reminder created_at, voice Dockerfile, Go版本更新
This commit is contained in:
2026-05-20 13:30:32 +08:00
parent baaf90fc47
commit 4b35736f73
37 changed files with 556 additions and 118 deletions
@@ -15,11 +15,11 @@ import (
// IoTDeviceProvider IoT 设备查询接口
type IoTDeviceProvider interface {
GetAllDevices() ([]tools.IoTDevice, error)
GetDevice(id string) (*tools.IoTDevice, error)
GetAllDevices(ctx context.Context) ([]tools.IoTDevice, error)
GetDevice(ctx context.Context, id string) (*tools.IoTDevice, error)
ToggleDevice(id string) error
SetDeviceProperty(id string, field string, value interface{}) error
GetDevicesForContext() []tools.IoTDevice
GetDevicesForContext(ctx context.Context) []tools.IoTDevice
}
// IoTProvider IoT 控制子会话提供者
@@ -75,7 +75,7 @@ func (p *IoTProvider) CreateContext(ctx context.Context, params CreateContextPar
// 获取当前设备状态
var deviceStatusText string
if p.iotClient != nil {
devices := p.iotClient.GetDevicesForContext()
devices := p.iotClient.GetDevicesForContext(ctx)
if len(devices) > 0 {
deviceStatusText = "当前设备状态:\n"
for _, d := range devices {
@@ -208,7 +208,7 @@ func (p *IoTProvider) Execute(ctx context.Context, subCtx []model.LLMMessage) (*
msgLower := strings.ToLower(userMessage)
// 尝试获取设备列表进行匹配
devices := p.iotClient.GetDevicesForContext()
devices := p.iotClient.GetDevicesForContext(ctx)
for _, dev := range devices {
devNameLower := strings.ToLower(dev.Name)