Commit Graph

100 Commits

Author SHA1 Message Date
PineWin c43dc7f888 feat: 添加 0.1.2 后端安装包
Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-19 14:31:35 +08:00
Pine 3688d5d0b1 feat: 增加 screen_id 参数以支持针对特定屏幕的工具执行,优化大屏控制逻辑 2026-08-19 14:28:10 +08:00
Pine e72442dae0 feat: 实现设备注册和精准控制功能,支持双屏管理;更新相关逻辑以优化设备状态跟踪 2026-08-19 14:19:37 +08:00
PineWin 93b27cf227 chore: 更新 0.1.1 后端安装包
Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-19 13:43:57 +08:00
Pine fd6493f582 feat: 添加安装更新功能,支持下载并安装更新包;优化双屏控制逻辑,增强错误处理 2026-08-19 13:40:00 +08:00
PineWin c9460c8d6e feat: 更新后端安装包至 0.1.1
Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-19 13:34:34 +08:00
Pine a5abf7bae4 feat: 更新版本号至 0.1.1 2026-08-19 13:31:48 +08:00
Pine e36840d12b feat: 添加双屏控制功能,更新相关逻辑以支持双屏窗口全屏展示;新增全局错误边界组件以处理渲染错误 2026-08-19 13:30:03 +08:00
Pine 91e20c3a81 feat: 添加客户端更新检测功能,支持版本检查和更新提示;更新相关组件和样式 2026-08-19 13:14:00 +08:00
Pine 5ed396aea4 feat: 添加双屏控制功能,支持在第二块屏幕上全屏展示内容;更新相关 UI 和逻辑以适应新功能 2026-08-19 13:13:54 +08:00
Pine 1e63da95ec feat: 更新 .gitignore,移除 .env.local 文件忽略规则;修改 getVoiceWsUrl 函数以固定语音地址跟随 API 基址主机 2026-08-19 12:32:52 +08:00
Pine 6b7bd46c77 环境变量 2026-08-19 12:32:13 +08:00
Pine 107727ea5e feat: Refactor DpmOverlays to use ShowCard for rendering cards and add ToolStatusToast for operation status notifications
- Moved card rendering logic from DpmOverlays to a new ShowCard component for better reusability.
- Introduced ToolStatusToast to display real-time operation statuses in the top right corner.
- Updated PageHeader to conditionally render credits based on the current path.
- Modified PromptPanel to change tool names and update prompt titles.
- Enhanced ScreenLayout to include ToolStatusToast.
- Updated styles for new components and adjusted existing styles for consistency.
- Implemented statusBus utility for dispatching tool status events.
- Updated useMqttControl to integrate tool status notifications during navigation and card display actions.
2026-08-19 12:28:35 +08:00
Pine 81a888f5ca feat: 更新服务地址为 192.168.1.9,修改相关配置以支持局域网访问 2026-08-18 09:05:23 +08:00
Pine 7e6b14c44a feat: 优化音频处理逻辑,支持降级到 ScriptProcessorNode,增强兼容性 2026-08-18 08:56:17 +08:00
Pine 71aa2bc3b6 feat: 优化 AudioWorklet 加载策略,增加多种 URL 支持和详细错误日志 2026-08-18 08:41:30 +08:00
Pine 94faf14f07 feat: 更新语音助手名称为昆小创,修改欢迎语和提示词 2026-08-18 08:31:53 +08:00
Pine f75fe7b9b3 feat: 添加语音 AI 主动问候功能,优化问候文本发送逻辑和音频处理参数 2026-08-18 08:20:44 +08:00
Pine 49c0975fdc feat: 优化 AudioWorklet 加载逻辑,增加 Blob URL 兼容性和多基址回退方案 2026-08-18 08:06:12 +08:00
Pine 6f8ccf1176 feat: 添加音频工作模块,支持从后端加载音频处理器 2026-08-18 07:57:15 +08:00
Pine 55d33c091b feat: 优化音量面板关闭逻辑,增加外部点击判断 2026-08-18 07:50:00 +08:00
Pine 566656aab9 feat: 添加 s2s 实时语音 WebSocket 地址支持,并更新相关配置 2026-08-18 07:47:25 +08:00
Pine d70d9d5fbd feat: add SFX volume control and improve audio feedback
- Implemented separate sound effects volume control in settings.
- Updated backend to handle new `sfx_volume` parameter.
- Enhanced UI to include sound effects volume slider in admin panel.
- Integrated sound effects for various user interactions (clicks, navigation, alerts).
- Added a new global sound engine to manage audio synthesis without external files.
- Updated documentation for Docker deployment and Windows packaging.
- Refactored audio context management to ensure sound effects are available post user interaction.
2026-08-18 07:14:13 +08:00
Pine 18d28be943 feat: 添加后端部署和API基本检索的Docker Compose配置
- 引入新的`docker-compose.yml`文件,便于后端和MQTT代理(EMQX)的部署。
- 更新多个组件中的API基本检索,使用函数进行动态解析。
- 加强了多个组件中API调用的错误处理和日志记录。
- 优化了AI聊天面板离线场景的回退响应。
- 更新DataScreen和MediaScreen组件中的数据显示和统计,以反映准确的指标。
- 重构MQTT连接逻辑,以支持动态凭证和客户端ID。
2026-08-18 06:50:50 +08:00
Pine fbf2eccad2 feat: 语音气泡浅蓝 + 页眉图标展示全部视觉状态 + 简化自动问候
- /voice 页右下角气泡文本改浅蓝色(最新 #4cc2ff / 历史 #6fb5ea)
- GlobalVision 广播 dpm:vision-status(status/cameraOn/gesture/faces)
- 页眉图标四态:默认灰(探索) → 识别中浅蓝(摄像头开/检测/面向) → 手势绿(惊喜) → 异常红
- 自动调用语音助手问候语简化为「您好呀,需要我的帮助吗?」
2026-08-18 06:24:26 +08:00
Pine 75498027f3 feat: 右上角图标改造为手势状态指示器
- 默认灰色「探索」罗盘图标(Compass)
- 识别到手势(dpm:gesture)→ 变绿色「惊喜」表情(EmojiSurprised)+ 光晕脉冲,3s 后恢复
- title 同步切换(关于 PineSound / 识别到手势),点击仍打开关于弹窗
- 新增 explore/surprise 图标映射与手势状态样式
2026-08-18 06:21:55 +08:00
Pine 6b7fd0ec95 feat: 添加 AI 助手预设问题面板,优化园区概览信息展示 2026-08-18 06:17:57 +08:00
Pine 418d94d7b7 feat: 手势开启新对话 —— 确认弹窗卡片 + 新对话首条用默认欢迎语
- 对话中举手 → 弹出确认卡片(再次举手或点击「确认」开启新对话,10s 倒计时自动取消;取消按钮可手动关闭)
- 欢迎页(未开始对话)举手不响应
- 开启新对话后第一条消息 = 默认完整欢迎语(「问问小园」问候),不再只发「已开启新的对话」
- 1 分钟无新消息自动清空本轮,回到默认欢迎语(原 2 分钟)
- 新增 hand-stop/camera 图标与确认卡片样式
2026-08-18 06:13:47 +08:00
Pine 0af159a175 feat: 数据真实化、企业展示墙、全局手势识别与 3D 模型完善
- 数据大屏改用真实数据(xls 统计表 + 宣传册口径);TOKEN/工具调用基于真实锚点测算
- 新增企业展示墙页(/wall,39 家全量档案 + MQTT/admin/ESP32 控制文档)
- 新增全局手势识别(GlobalVision 全局挂载 + dpm:gesture 事件分发)
- 3D 模型墙面逐间修复、去除门/过道顶棚/调试标签、房间资产不穿墙、会议室多小桌
- 侧栏企业分布扩展至 39 家完整信息,分区按官方四大孵化区域
- 语音页多轮对话展示优化、去除页脚与检测横条、背景对齐
2026-08-18 05:48:56 +08:00
Pine 1581b62154 feat(Building3D): 更新房间布局,移除临时坐标轴指示,优化墙体组件 2026-08-18 05:38:13 +08:00
Pine d00e9856cd feat(Building3D): 更新房间和墙体定义,添加临时坐标轴指示 2026-08-18 05:34:02 +08:00
Pine 7d3cdded9e style(ui): 开发署名微调(间距与字号 15px) 2026-08-18 02:32:38 +08:00
Pine 66b6a7fbbd feat(admin): 管理后台加入「大屏控制(MQTT 指令)」面板,覆盖全部前端命令
- routers.py:_VALID_DISPLAY_ACTIONS 扩展为全命令白名单
  (navigate/navigate_rel/vision_set/ai_input/ai_preset/ai_company/ai_zone/
   voice_start/voice_stop/voice_refresh/play/pause/next/prev/set_mode/play_target/
   alert/show_card/minimize/settings_changed/playlist_changed)
- admin.html:新增控制面板(页面导航含/voice+左右、视觉开关、AI 提问/预设/企业/分区、
  语音启停/刷新、媒体控制、全局通知)
- admin.js:data-mqtt 按钮(完整指令 JSON)→ /api/display/command;
  AI 提问/通知输入框回车发送
2026-08-18 02:32:27 +08:00
Pine 7e6c1a09c0 fix(ui): 页眉副标题在矮屏设备(高度≤900px)不再被隐藏,改为压缩字号
根因:@media (max-height: 900px) 里 .bd-header-sub { display:none },
1366x768 等设备高度不足触发隐藏;本机大屏高度达标所以显示。
改为字号压缩(10px),所有设备均显示副标题
2026-08-18 02:30:03 +08:00
Pine f4067c1f0e refactor(s2s): 语音助手基础提示词迁移到后端统一管理
- 后端 config.py:新增 S2S_INSTRUCTIONS(.env DPM_S2S_INSTRUCTIONS 可覆盖)
- rag.py:build_instructions() 组装 配置提示词 + 园区知识库摘要
- routers.py:GET /api/s2s/instructions 下发(前端连接时拉取)
- 前端 VoiceAssistant:删除硬编码 DEFAULT_INSTRUCTIONS,改拉取后端指令;
  仅保留后端不可用时的极简兜底

改提示词只需改后端(.env 或代码),前端零硬编码。
2026-08-18 02:28:55 +08:00
Pine e653c4b2f2 fix(ui): 开发署名移到左侧标题后(分隔线 + 垂直居中) 2026-08-18 02:26:12 +08:00
Pine 10db36aa3f feat(ui): 页眉加入开发署名(云南派音人工智能科技有限公司 开发) 2026-08-18 02:25:31 +08:00
Pine 26f92837b3 fix(media): 媒体播放控制区只保留播放/暂停 + 左右切换,移除右侧资源名称
- 删除页眉媒体控制区的资源名称按钮(含 cleanName/showName 死代码)
- 保留:播放/暂停、上一段、序号、下一段、声音解锁(异常时)
2026-08-18 02:24:40 +08:00
Pine 8bcc67f99d docs: ESP32 红外遥控控制大屏开发文档(硬件/固件/键码映射/调试) 2026-08-18 02:23:18 +08:00
Pine 58f0b51fe1 docs: MQTT 标准操作手册(频道/命令全集/命令行示例) 2026-08-18 02:21:48 +08:00
Pine 4d693e895d feat(mqtt): 集中式 MQTT 调度器(页面级操作 + vision 开关 + 页面上报)
useMqttControl 扩展命令分发(opc/display/command):
- vision_set:全局人物识别开/关(dpm:vision-control → 语音页 visionEnabled)
- ai_input / ai_preset / ai_company / ai_zone:AI 助手页操作(dpm:ai-action)
- voice_start / voice_stop / voice_refresh:语音对话页操作(dpm:voice-control)
- 页面状态即时上报 opc/frontend/state(路由变化即发,心跳外补充)

页面监听:
- AiChatPanel:输入并发送 / 选择预设问题发送
- ParkSidePanel:切换分区(加速区/国际区/成长区)/ 切换展示企业(next/prev)
- VoiceAssistant:启动/关闭对话 / 刷新页面;vision 全局开关
- MediaScreen:play/pause/next/prev 已有覆盖

切页(navigate/navigate_rel)、心跳上报沿用既有通道。
2026-08-18 02:20:37 +08:00
Pine c5a06ac160 fix(voice): 修复语音页黑屏(onToolCall TDZ)
onToolCall 依赖数组引用 pushMessage,但被插在 pushMessage 声明之前
→ Cannot access 'pushMessage' before initialization → 渲染崩溃黑屏。
已移到 pushMessage 之后(198→230),与 start/sendGreeting 同类问题一并规避
2026-08-18 02:16:46 +08:00
Pine 83bf19a3e5 feat(agent): 智能体接入工具调用 + 园区知识库(RAG)
后端:
- tools.py:工具注册表(get_park_overview 园区实时数据 / query_companies 企业名录 / control_display 大屏控制 / get_time),POST /api/tools/exec 执行
- rag.py:园区知识库(park.md 分块 → dashscope text-embedding-v3 → numpy 余弦检索),/api/kb/brief 摘要注入 + /api/kb/retrieve 动态检索
- 知识索引 kb_index.json 入库,部署免首次构建

前端(VoiceAssistant):
- TOOL_DEFS 经 session.update 传给 LLM;toolcall 事件 → 后端执行 → sendToolOutput + requestResponse
- instructions 拼接园区知识摘要;工具调用气泡提示
- 测试通过:4 个工具,检索「入驻政策」正确命中政策段落
2026-08-18 02:06:07 +08:00
Pine 1e60744961 feat(ui): 增加关于弹窗(PineSound 品牌)
- AboutDialog:品牌 Logo/产品名/版本/技术栈/版权,Esc 或点击遮罩关闭
- PageHeader 右上角新增「ⓘ 关于 PineSound」入口(info 图标)
- 样式:about-* 系列(毛玻璃遮罩 + 渐变品牌块),跟随 DPM 配色
2026-08-18 01:59:34 +08:00
Pine 38e45aafa9 chore(tauri): 抑制 vendor wry 源码的 deprecated/unused_unsafe 警告(17 个归零) 2026-08-18 01:57:15 +08:00
Pine a143b94ac1 fix(tauri): patch wry 绕过 macOS 26 启动崩溃(NSBundle bundleWithIdentifier SIGTRAP)
- 根因:tauri 启动探测 webview 版本时调用 wry platform_webview_version()
  → NSBundle::bundleWithIdentifier(com.apple.WebKit) 在 macOS 26 (Tahoe) 上
  触发 CFBundle/CFRelease 断言崩溃(EXC_BREAKPOINT)
- 方案:vendor 本地 wry 0.55.1,该函数改为安全占位返回(仅被上层用作 is_ok() 探测,
  返回值无实际用途),[patch.crates-io] 指向本地副本
- 附带:移除 NSBundle import,消除 unused 警告
2026-08-18 01:53:34 +08:00
Pine d26540193e chore: 删除过时的目录结构文档 2026-08-18 01:46:58 +08:00
Pine d6d69aa603 fix(tauri): 移除 macOSPrivateApi(未签名 dev 构建调用私有 API 导致启动 SIGTRAP 崩溃)
崩溃栈: NSBundle bundleWithIdentifier → objc2 msg_send → EXC_BREAKPOINT
窗口为标准全屏,无需私有 API;摄像头/麦克风权限由 Info.plist 声明,不受影响
2026-08-18 01:46:54 +08:00
Pine 0dd63b1558 chore(tauri): 移除已弃用的 Rust 内嵌后端(消除 52 个编译警告)
- 删除 server/storage/models/events 四模块(axum :10801 后端,功能已全部由 Python 后端 :10085 承担)
- lib.rs:删除 mod 声明,Rust 侧仅保留窗口与生命周期
- Cargo.toml:移除 axum/tower-http/tower/tokio/uuid/chrono/dirs/futures/rust-embed 等 12 个依赖
- cargo check 0 警告,编译更快
2026-08-18 01:43:25 +08:00
Pine 4e8ae4024a chore(dev): 清理 vite.config 无效代理配置
- 移除 /api /file /media /upload → :10801 代理(前端已走 API_BASE 直连 Python 后端 :10085)
- defineConfig 由 async 简化为同步
2026-08-18 01:41:40 +08:00