qing
0493383ee8
遗漏的部分
2026-08-02 21:21:03 +08:00
qing
84fb370da8
docs(lci): 添加 LCI 帧缓冲图形界面能力介绍到 README
2026-08-02 21:18:19 +08:00
qing
8499631091
add old lci module
2026-08-02 20:15:07 +08:00
qing
38a6e815f0
fix(static): __view.html 改为绝对路径,修复子目录下 CSS/JS 404
2026-08-02 16:41:08 +08:00
qing
c58ef2b873
fix(static): 修复令牌刷新死循环 + 补全 index/aibox 令牌管理
...
- expired estimate 改用 created_at 替代 iat,与网关校验逻辑一致
- index.html 和 aibox.html 补全 token_manager.js 引用
2026-08-02 16:11:23 +08:00
qing
52052e51a8
feat(aibox): 在pre_prompt中新增情绪感知提醒
...
每轮首轮对话的用户输入前,新增【情绪感知提醒】段落,引导AI:
- 识别用户情绪状态并共情回应
- 按情绪状态调整回应策略(安抚/分享/道歉)
- 用户要求特定情绪模式时搜索对应技能
2026-08-02 14:30:20 +08:00
qing
ffbe076a32
feat: add execute method to ExpressEmotionTool
2026-08-02 14:17:33 +08:00
qing
92820799fa
补全情绪化工具
2026-08-02 14:02:51 +08:00
qing
054f65f858
增加智能体生气的模板
2026-08-02 13:54:58 +08:00
qing
918f3ea32a
fix(aibox): reasoning展示严格遵循配置文件reasoning_enabled开关
...
之前即使reasoning_enabled=false,模型自发返回的reasoning_content
仍会被动态展示——配置只管了API请求参数,不管展示逻辑。
现在添加constants.REASONING_ENABLED门控,关着时静默忽略。
2026-08-02 13:26:34 +08:00
qing
b216535757
comment
2026-08-02 13:21:45 +08:00
qing
45db2f780b
refix core initialize list
2026-08-02 12:56:14 +08:00
qing
c1724ccea9
fix(redirect80): extract .content from confs RPC response dict
...
RpcClient.call() returns the data dict, not a raw string.
configparser.read_string() expects str, hence TypeError.
Now uses .get("content") to unwrap the ini text.
2026-08-02 12:52:51 +08:00
qing
f9c02cd6ad
feat(redirect80): new HTTP→HTTPS redirect service on port 80
...
Pure Python stdlib http.server + ThreadingMixIn, zero web framework deps.
- GET/HEAD → 301, POST/PUT/DELETE/PATCH → 308
- Reads Host header, strips port, redirects to https://{host}{path}
- Config via confs (retry_on_refused, hard dependency) + env var override
- Logs via log_client → db Logs table (fail-safe async batch)
- Port 80 privilege via setcap cap_net_bind_service in _run.sh
2026-08-02 12:50:23 +08:00
qing
c7364286b7
fix(static): getNode仅401跳登录,其他异常提示原因并上抛
2026-08-02 12:19:02 +08:00
qing
c3c07ab06d
Merge pull request 'Main' ( #17 ) from main into dev_qing
...
Reviewed-on: #17
2026-08-02 11:51:31 +08:00
shufeng2012
7e4fd7e54a
Add search input border.
2026-08-02 09:04:53 +08:00
qing
8200cbfba7
refix
2026-08-02 01:19:56 +08:00
qing
192610615e
feat(captcha): 接入 confs 配置中心并迁移字体路径
...
- confs/configs/captcha.ini: 新增 captcha 配置 (server + captcha 段, 含 font_path)
- captcha/log_client.py: 新增日志客户端副本 (service_name=captcha)
- captcha/captcha_service.py: 接入统一的 confs 配置加载模式
(confs 强依赖 retry_on_refused -> 环境变量覆盖 -> 完整性校验)
- CAPTCHA_LEN/CAPTCHA_TTL 改为可配置
- 字体路径迁移到 confs, 新增 CAPTCHA_FONT_PATH 环境变量覆盖与 PIL 回退兜底
- 关键路径 (启动/生成/校验失败) 接入 log_client 日志上报
2026-08-02 01:09:44 +08:00
qing
2bb1d69d8a
feat(static/aibox.js): 同步BotOps修复到Web前端
...
同步以下修复:
1. endReasoning()/abortReasoning() 结束后清除引用(DOM保留显示),
多轮工具调用时每轮创建独立思考区域,按时间顺序分布
2. 新增 breakAi() 分段函数,处理 ai_break 信号:工具调用前分段
AI文本,后续chunk创建新气泡,避免思考区域被夹在AI文本中间
3. line消息过滤前缀扩展:增加分析工具结果/需要调用工具等
4. 未知消息类型fallback从appendAi改为addTaskLine,防止非AI内容污染聊天区
2026-08-01 22:19:54 +08:00
qing
392a734707
fix(ai_review): 添加内容大小限制和频率限制
...
/review: 10KB内容上限(413)、30次/分钟/IP(429);/rag/feedback: 5次/分钟/IP。使用滑动窗口限流器,优先取X-Forwarded-For作为客户端IP。
2026-08-01 22:12:58 +08:00
qing
89b374c21d
fix(pymsg): 捕获 UnicodeDecodeError 防止同步模式服务崩溃
...
recv() payload.decode("utf-8") 抛出 UnicodeDecodeError(ValueError子类)不在 _handle_client 异常捕获列表中,同步模式(workers=0)下收到无效UTF-8字节会导致整个服务进程崩溃。修复:recv()中将UnicodeDecodeError包装为ConnectionError;_handle_client()异常列表增加防御性兜底。
2026-08-01 22:11:38 +08:00
qing
af5cd02663
fix(aibox/botops): 思考区域按时间顺序分布,不再全部堆在顶部
...
问题根因:
1. ChatView.end_reasoning() 不清空 _reasoning_widget 引用,导致
多轮工具调用时 start_reasoning() 直接 return,所有轮次的思考
内容都被追加到第一个思考区域(在聊天区最顶部)。
2. AI widget 在工具调用期间不重置,导致后续轮次的思考区域被
挂载在AI widget中间,顺序混乱。
修复:
1. end_reasoning()/abort_reasoning() 更新标签后清除引用(widget
保留在DOM显示),下一轮 reasoning_start 创建新的思考区域。
2. 新增 ai_break 协议信号:服务端在工具调用执行前发送,前端
break_ai() 清除AI widget引用(保留已显示内容),后续chunk
创建新的AI widget,确保思考区域按时间顺序插入在两段AI文本之间。
3. ai_break 前flush chunk_buffer,防止工具调用前的最后文本片段丢失。
2026-08-01 21:10:42 +08:00
qing
763faf9c83
Merge branch 'dev_qing' of https://git.cancerai.top/qing/micro_servers into dev_qing
2026-08-01 21:02:49 +08:00
qing
f3d06252bb
fix(aibox/botops): 修复两处重复输出根因
...
1. 侧栏重复:_handle_tool_calls 中 msg_type in ("line", "complete")
将流式工具末尾的 complete 信号也当作 line 转发,导致所有支持
流式输出的工具(get_current_time、run_command、read_file等20+个)
结果在侧栏显示两次。改为仅转发 "line" 类型。
2. 聊天区Markdown列表重复:Textual 的 Markdown.append() 在 chunk
边界切断 Markdown 语法(如列表项 "- "被拆成两个chunk)时,增量
解析可能导致内容重复渲染。改为累积完整文本后调用 update() 整体
重新解析,避免增量解析的边界问题。
2026-08-01 21:01:31 +08:00
qing
b60ac06d55
Merge branch 'dev_qing' of https://git.cancerai.top/qing/micro_servers into dev_qing
2026-08-01 20:57:02 +08:00
qing
66963092a3
feat(static): 优化社区首页 — Hero首屏+特性卡片+悬浮毛玻璃导航,CTA随登录态切换
2026-08-01 20:56:39 +08:00
qing
27ab50ae68
fix(aibox/botops): 修复重复输出问题
...
1. 服务端:is_continuation(工具调用后递归继续)时不再重复发送
"思考中"提示和reasoning_start信号,避免多轮工具调用时侧栏
出现多条冗余"思考中"消息
2. BotOps:line消息过滤前缀从5个扩展到9个,过滤掉"分析工具结果"
"需要调用工具"等被后续具体信息覆盖的过渡提示
3. BotOps:移除危险的fallback分支(未知消息类型直接append到AI
聊天区),改为写入侧栏日志,防止非AI内容污染回复
2026-08-01 20:53:40 +08:00
shufeng2012
627950394d
✨ 添加代码块语法高亮功能
2026-08-01 20:08:51 +08:00