Commit Graph
100 Commits
Author SHA1 Message Date
kevinandClaude b9c2b8f0bd fix(llm): 工具路由配置修改后立即生效,不再硬编码 system prompt
toolrouter 每轮调用都从 DB 读取最新配置,/admin/llm/api 保存后下一条消息即生效,
无需重启。ai.NewService 启动时从 DB 加载初始配置,移除硬编码 prompt 覆盖用户配置的问题。

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-20 00:41:28 +08:00
kevin f5dacdce19 up 2026-06-19 23:39:30 +08:00
kevin 0ef477b15f 不明bug 2026-06-19 23:30:33 +08:00
kevin fd66162d57 feat(mqtt): client_id 冲突时自动加 4 位随机后缀
同一 Meshtastic 节点被多台 Android 同时连时,broker 按 [MQTT-3.1.4-3]
强制顶号会让两边互相踢,日志被刷屏且无法稳定收发。

OnConnect 里检测 server.Clients 中是否已有未关闭的同 ID 客户端,命中
就把当前连接的 cl.ID 改成 "原ID-xxxx"(4 位 hex),避开顶号路径。
打 mqtt_client_id_renamed 日志记录原/新 ID 与双方 remote。
2026-06-19 22:51:34 +08:00
kevin 6cec82235a fix(map): 节点右键菜单不再触发地图空白菜单
leaflet 与自定义的 handleMapContextMenu 都挂在 mapEl 容器上,普通
stopPropagation 不能阻止同节点上的后续监听器。改用
stopImmediatePropagation 并显式重置 menuMap,确保右键 marker 只显示
节点菜单。
2026-06-19 21:00:11 +08:00
kevin 2afd890de4 批量删除节点,一键屏蔽ip 2026-06-19 20:37:19 +08:00
kevin b56cfb7b1e 新增删除节点功能 2026-06-19 20:03:25 +08:00
kevin 3fbc52c6c1 up 2026-06-19 19:08:44 +08:00
kevin 01b0ad1999 up 2026-06-19 18:51:28 +08:00
kevin 5aae81c831 up 2026-06-19 18:17:27 +08:00
kevinandClaude 8e7d11a162 feat(llm): 处理完成的消息自动软删除并隐藏删除按钮
- MarkAsProcessed 在写入 reply/processed_at 的同时设置 deleted_at,
  避免 /admin/llm 队列页堆积已处理消息(仍可勾选"包含已删除"查看)
- 前端列表中已删除的消息行隐藏删除按钮,改为显示灰色"已删除"标签

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-19 17:50:56 +08:00
kevinandClaude 8bbe40c230 feat(llm): console_log.llm 控制可读单行流程日志,并追踪路由 AI 决策
autoreply.Service 增加 consoleLog 字段和 logf 辅助;processMessage 中
原本的 printJSON map dump 全部替换为 [llm] 前缀的单行 key=value 输出。
关闭开关时整条链路静默。

把原本传 nil 给 toolrouter.RunAgentToolLoop 的 emit 接进来,将
stream.Frame trace 帧渲染为可读行,区分三类来源:

- 主 AI:main_model / completion / 最终 reply
- 路由 AI:router=<model> prepare/decide iter=N → call_tools=[...] / no_tool
- 工具调用:tool=<name> args=... / result(Nms)=... / ERROR ...

ai.Config 增加 ConsoleLog 字段,由 main.go 传入 cfg.ConsoleLog.LLM,
再透传给 autoreply.NewService。

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-19 17:45:21 +08:00
kevinandClaude 49a287e6e7 feat: console_log.meshtastic 控制 packet 控制台输出;新增每客户端报文统计
- ConsoleLogConfig 增加 Meshtastic 字段(默认 true);旧配置自动补齐
- meshtasticFilterHook 增加 packetConsoleLog;OnPublish 中根据开关调用
  新的 printMeshtasticRecord 输出可读单行(key=value、按 type 着色),
  替代原来的 JSON dump;事件型 printJSON 调用保持不变
- 新增 internal/mqttforward/ClientStats,按 client_id 累计 in/out 报文计数
- meshtasticFilterHook 多挂 OnPacketRead / OnPacketSent / OnDisconnect
  事件,用于增减计数;Provides() 同步声明
- AdminMQTTClient JSON 视图删除 RemoteHost/RemotePort,新增
  packets_in / packets_out;前端 types.ts、AdminDashboard.vue 同步更新

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-19 17:09:00 +08:00
kevinandClaude 937580e24f feat(mqtt): console_log.mqtt 控制连接/断开/订阅/取消订阅日志
为 meshtasticFilterHook 增加 consoleLog 字段;当 console_log.mqtt=true 时
向 stderr 输出 4 类事件(带 client_id、username、remote IP:port):

- OnSessionEstablished → [mqtt] connect ...     (认证后才打,避开被 IP 屏蔽拒掉的客户端)
- OnDisconnect        → [mqtt] disconnect ...   (含 expire 和 mochi 上报的断开原因)
- OnSubscribed        → [mqtt] subscribe ...    (每个 filter 一行)
- OnUnsubscribed      → [mqtt] unsubscribe ...  (每个 filter 一行)

Provides() 同步多声明这 4 个事件类型;关闭开关时各 handler 立即返回。

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-19 16:21:55 +08:00
kevinandClaude 52da224a19 refactor(config): console_log 提到顶层并细分 web/mqtt/llm/sql;data_dir 归入 ai
- 新增顶层 ConsoleLogConfig{Web, MQTT, LLM, SQL},默认全 true,方便后续按模块扩展
- WebConfig.ConsoleLog 移除;NewRouter/NewHTTPServer 改为显式接 consoleLog 参数
- AIConfig 增加 DataDir,原 Config.DataDir(仅 ai 模块使用)下沉到 ai.data_dir
- OpenStore(cfg, consoleLog) 通过 console_log.sql 控制 gorm logger 级别(Warn/Silent)
- gorm logger 始终设 IgnoreRecordNotFoundError=true,修掉 GetBoolRuntimeSetting
  正常缺省路径仍刷屏 'record not found' 的噪声
- 同步更新 install.sh 模板、win/etc 默认 yaml 与所有测试调用点

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-19 16:13:18 +08:00
kevinandClaude 98d5e9e117 feat(web): 新增 web.console_log 开关;data_dir 默认改为 srv/mesh_mqtt_go
- WebConfig 增加 console_log 字段,关闭后 gin 不再向控制台打印 HTTP 访问日志(保留 Recovery)
- 默认值 true;旧配置加载时自动补齐并写回
- defaultDataDirForGOOS 默认目录由 var/lib/mesh_mqtt_go 调整为 srv/mesh_mqtt_go,与 install.sh 中 DATA_DIR=/srv/${SERVICE_NAME} 保持一致
- install.sh 模板同步加入 console_log: true

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-19 15:43:38 +08:00
kevin 4e7aacbc68 up 2026-06-18 08:52:25 +08:00
kevin fcd230cb5b 写成屎山了 2026-06-18 08:35:09 +08:00
kevin 45822fd333 工具路由还没实现 2026-06-18 08:14:09 +08:00
kevin dfb3fdd3e5 根本原因:PKI 私聊需要接收方的公钥,但 !72d17be4 这个节点从未广播过节点信息,nodeinfo 表中没有它的公钥。这傻x豆包ai突然发什么神经,蠢死了 2026-06-18 00:49:42 +08:00
kevin ce07792c4b up 2026-06-17 23:54:38 +08:00
kevin 9f088c265d up 2026-06-17 23:10:20 +08:00
kevin fd0a3bc1fe up 2026-06-17 22:14:18 +08:00
kevin 02bb31584a 修复编译bug 2026-06-14 21:21:34 +08:00
kevin 0024841ffb 修复机器人聊天记录与修改机器人信息 2026-06-14 21:17:49 +08:00
kevin 491876284e 优化机器人私聊 2026-06-14 20:14:52 +08:00
kevin 67330d4656 优化机器人ack 2026-06-14 19:56:20 +08:00
kevin 757eb852fd 更新机器人接收功能 2026-06-14 19:41:52 +08:00
kevin 5d4aced3e0 完善私聊 2026-06-14 19:26:43 +08:00
kevin a2d838d556 up 2026-06-12 20:26:48 +08:00
kevin 6c0285c015 私聊功能未完成 2026-06-12 20:24:18 +08:00
kevin e16442f348 机器人基本ok 2026-06-12 19:57:34 +08:00
kevin 609462252c 机器人功能还差发送nodeinfo 2026-06-12 19:24:40 +08:00
kevin 0db2b181cc 合并 2026-06-12 18:16:16 +08:00
kevin 2e96faf5a2 Merge branch 'main' of https://git.lmve.net/kevin/meshtastic_mqtt_server
# Conflicts:
#	meshmap_frontend/src/App.vue
#	web.go
2026-06-12 18:15:30 +08:00
kevin b645907c52 新增机器人功能 2026-06-12 18:07:53 +08:00
kevin 91fb3612f2 up 2026-06-08 01:28:20 +08:00
kevin 1624cb0f9b up markdown 2026-06-08 01:24:01 +08:00
kevin 32bc572284 去掉了“查询轨迹”按钮 2026-06-07 00:30:00 +08:00
kevin 1e0aa8f637 增加最近按钮 2026-06-07 00:27:22 +08:00
kevin c0ceba93b7 限制轨迹数据查询 2026-06-07 00:22:18 +08:00
kevin e1f1ac902a 更新readme 2026-06-06 15:56:37 +08:00
kevin 1841509622 修复文本错误 2026-06-06 15:23:01 +08:00
kevin ddf434ef82 隐藏地图的 “Leaflet” 但保留瓦片来源 attribution 2026-06-06 13:21:00 +08:00
kevin 1b5cf41576 修复聊天信息聚合问题 2026-06-06 13:09:19 +08:00
kevin 2faac32d87 代理与否可控 2026-06-06 12:20:16 +08:00
kevin 563d609121 服务器代理地图数据 2026-06-06 12:01:46 +08:00
kevin 9d3f007cb8 优化地图节点遮挡选中策略 2026-06-06 03:16:38 +08:00
kevin 63465f13e6 优化重合节点显示机制 2026-06-06 03:00:21 +08:00
kevin 35823507a0 美化前端 2026-06-06 02:10:56 +08:00
kevin 71282f4e4f 支持图源切换 2026-06-06 01:49:05 +08:00
kevin 0f9cb3eae5 新增图源修改功能 2026-06-06 01:16:03 +08:00
kevin 91267eb99c 可以快速删除折叠消息 2026-06-05 21:56:47 +08:00
kevin ae2773df71 修复一个错误 2026-06-05 20:07:19 +08:00
kevin fb1971da72 增加转发开关 2026-06-05 20:03:52 +08:00
kevin bfdf57cd72 修复地图窗口闪烁问题 2026-06-05 19:12:39 +08:00
kevin 0415a1c161 修正地图遮挡关系遮挡 2026-06-05 19:09:27 +08:00
kevin dd10d99b99 编辑帮助功能 2026-06-05 19:05:04 +08:00
kevin d962ccf9af 新增mqtt转发功能 2026-06-05 18:49:30 +08:00
kevin 88d1facc2d up 2026-06-05 14:43:47 +08:00
kevin 4377a0db0a 合并重复消息 2026-06-05 14:08:10 +08:00
kevin 30ec678c84 Merge branch 'main' of https://git.lmve.net/kevin/meshtastic_mqtt_server 2026-06-05 13:34:56 +08:00
kevin 081600eff0 异步保存sql消息 2026-06-05 13:34:54 +08:00
kevin 2b5f3685df 调整按钮位置 2026-06-04 22:25:45 +08:00
kevin ad2692c6d7 去除地图遮挡 2026-06-04 22:18:51 +08:00
kevin 91eb43d00c 更新节点详情 2026-06-04 19:20:43 +08:00
kevin 76c692c50d 地图源改日本镜像 2026-06-04 18:07:22 +08:00
kevin 60b19ab8ca 修复地图闪烁问题 2026-06-04 17:56:43 +08:00
kevin 6fb6fc4f10 修复跨端问题 2026-06-04 17:49:31 +08:00
kevin f84a9a3cdd 修复部署脚本路径问题 2026-06-04 16:48:30 +08:00
kevin 25decaba71 部署脚本 2026-06-04 16:29:52 +08:00
kevin 447cacc4f6 修改帮助页面 2026-06-04 16:07:10 +08:00
kevin 69e06a19e1 功能基本完成 2026-06-04 15:54:45 +08:00
kevin 2e6eab3e01 屏蔽词功能ok 2026-06-04 15:20:40 +08:00
kevin c3cdcfd379 限制地图缩放 2026-06-04 14:28:02 +08:00
kevin 5b6a1a60a1 地图缩放融合 2026-06-04 14:23:17 +08:00
kevin 7d268f6425 up 2026-06-04 13:45:48 +08:00
kevin acd03a614a 屏蔽表已创建 2026-06-04 12:08:25 +08:00
kevin e6fa998854 up 2026-06-04 09:57:43 +08:00
kevin f73d79b7d4 基本功能差不多完成 2026-06-04 09:52:57 +08:00
kevin c441fed1b3 节点详情页完成 2026-06-04 09:20:26 +08:00
kevin e945222519 右键删除节点列表,好像实现了,还需要实现右键删除地图节点 2026-06-04 01:16:33 +08:00
kevin 7c1b30b3a0 统计相关更新 2026-06-04 00:09:16 +08:00
kevin 63676f7f34 更新用户管理相关 2026-06-03 23:58:17 +08:00
kevin 9221a53617 新增后台管理 2026-06-03 23:29:21 +08:00
kevin b1548baccf 基本功能完成 2026-06-03 22:49:38 +08:00
kevin 3ae2ffa098 分表 2026-06-03 22:34:25 +08:00
kevin f471905b33 修复一个编译错误 2026-06-03 21:51:38 +08:00
kevin 26126771f4 up 2026-06-03 20:26:15 +08:00
kevin 8ee50a4aa2 更新聊天窗口 2026-06-03 20:11:37 +08:00
kevin 191651fce9 更新地图 2026-06-03 19:59:49 +08:00
kevin 9748a1e681 添加前端 2026-06-03 18:31:15 +08:00
kevin a3ad72c140 up 2026-06-03 17:55:08 +08:00
kevin 6ccced6cd3 新增几个数据表 2026-06-03 17:14:49 +08:00
kevin f0d6c5a96a 数据库改GORM 操作 2026-06-03 15:33:56 +08:00
kevin 8c1e1ef414 text_message 表设计与实现 2026-06-03 15:08:32 +08:00
kevin d887845909 增加数据库支持 2026-06-03 14:09:48 +08:00
kevin 44dfb14cf4 增加配置文件 2026-06-03 13:41:54 +08:00
kevin 107c674abc up 2026-06-03 12:21:01 +08:00
kevin 6562e8a957 up 2026-06-03 12:19:59 +08:00