qing
|
fc351f569a
|
fix(aibox): 禁用 websockets 服务端 20s 协议层 ping 超时断连 (ping_interval=None)
|
2026-08-06 16:16:12 +08:00 |
|
qing
|
490b974ca6
|
爪手3D打印
|
2026-08-06 09:17:33 +08:00 |
|
qing
|
46a5959bb1
|
docs: 更新 README 标题为 blackbird
|
2026-08-05 16:53:37 +08:00 |
|
qing
|
7b0b49fde1
|
Merge pull request 'fix: 更新 gateway 管理员白名单并修复 fix_orphan_notes 脚本' (#21) from dev_qing into main
Reviewed-on: qing/micro_servers#21
|
2026-08-05 16:40:30 +08:00 |
|
qing
|
5a8ac61502
|
fix: 更新 gateway 管理员白名单并修复 fix_orphan_notes 脚本
- confs/configs/gateway.ini: 管理员账号从 qing@qsont.me;shufeng@qsont.me 更新为 1776177662@qq.com;277665039@qq.com
- db/fix_orphan_notes.py: 修复 _sys.path 笔误为 sys.path,补充文件末尾换行
|
2026-08-05 16:38:39 +08:00 |
|
qing
|
8b3863f3ae
|
Merge pull request 'Dev qing' (#20) from dev_qing into main
Reviewed-on: qing/micro_servers#20
|
2026-08-05 16:36:10 +08:00 |
|
qing
|
6483719551
|
docs(dnfs): 同步 README 至审计 08-03 验证后的真实状态
- 主干: Token 改为委托 gateway /whoami 验签描述
- 已知问题: 标注 P0 #1/#3、P1 #5/#10 已修复,P0 #2 基本修复,其余未修复项保留
|
2026-08-05 16:34:34 +08:00 |
|
qing
|
9c73d70582
|
docs(gateway): 标注旧哈希自动迁移已被注释禁用
README 安全特性中"旧哈希自动迁移"实际在 main.cpp L1102-1109 被注释,标注其当前未生效。
|
2026-08-05 16:29:29 +08:00 |
|
qing
|
0348b959bb
|
docs: 同步 static 与 waf README 至审计后真实状态
- static: 移除/标注已禁用的 reset_password 与 yhdet 系列路由,更新 check_user 为经 db 服务查询,补充代理路由 CORS 通配例外说明
- waf: 明确 CRS 需先 _fetch_crs.sh 才生效,未拉取时 WAF 开箱无拦截能力
|
2026-08-05 16:26:23 +08:00 |
|
qing
|
3ebf402efd
|
Merge pull request 'Dev qing' (#19) from dev_qing into main
Reviewed-on: qing/micro_servers#19
|
2026-08-05 12:31:42 +08:00 |
|
qing
|
63b5243faf
|
style(index): 首页移动端响应式优化
触屏加大可点目标,平板/手机收敛光晕与留白,超小屏进一步紧凑排版。
|
2026-08-05 10:48:09 +08:00 |
|
qing
|
1b6a767f62
|
feat(dnfs): 节点卡片仅标题可点击进入子节点
将进入子节点的点击事件从整张卡片收窄到标题 h3,内容/统计/操作区不再触发
跳转;同步 theme.css 将手型光标与 hover 高亮集中在标题上。
|
2026-08-05 10:48:09 +08:00 |
|
qing
|
7f6f077469
|
feat(dnfs): support in-node rendering for frontend code nodes
|
2026-08-05 10:30:29 +08:00 |
|
qing
|
60db2c40d8
|
特效保持全屏视觉,但 iframe 元素挂载到节点容器内
|
2026-08-05 10:15:21 +08:00 |
|
qing
|
08aff2656d
|
前端特效节点改为在节点容器内展示,不再全屏铺底
|
2026-08-05 10:12:47 +08:00 |
|
qing
|
c059589e94
|
style(dnfs): 首页进一步美化,光晕氛围与卡片细节
|
2026-08-05 10:01:17 +08:00 |
|
qing
|
d1e4b5b01a
|
style(dnfs): 打磨首页 index 视觉细节,保持朴素风格
|
2026-08-05 09:25:43 +08:00 |
|
qing
|
897e76fd8f
|
style(dnfs): 移除左侧用户面板按钮的 emoji 表情,保持文字简洁
|
2026-08-05 02:02:00 +08:00 |
|
qing
|
ac2677abc7
|
feat(dnfs): 顶部搜索框卡片化美化,整体视觉和谐统一
- dnfs.html:去掉内联样式,重构为「放大镜图标 + 输入框 + 搜索按钮」结构;按钮改 <button> 避免意外提交
- theme.css:新增 .searchbox 胶囊卡片样式,与 .card/.userpanel 统一设计语言(圆角 20px、
半透明卡片底色、浅阴影、1px 细边、橙色主按钮)
- focus-within 态:边框变橙 + 图标变橙 + 发光阴影,焦点反馈清晰
- 输入框无边框全透明,视觉焦点集中在胶囊容器
- 480px 以下移动端缩紧内边距与字号
|
2026-08-05 01:58:55 +08:00 |
|
qing
|
d680dcd058
|
fix: 修复 WebSocket 长连接空闲断线问题
三处协同修复:
1. 前端 aibox.js 添加 25s 心跳(ping),防止 gateway 30s 空闲超时
2. gateway libhttp doWsRead 对 WS 代理连接跳过空闲超时
3. aibox.py _handle_tool_calls 启动 drain 线程实时排空输出队列,
避免 SubAgent 等长时间工具执行期间前端收不到数据
|
2026-08-05 01:58:19 +08:00 |
|
qing
|
84a1a5e3be
|
feat(dnfs): 顶部搜索框实时过滤当前层节点卡片
- 抽取 renderCards() 复用卡片渲染,load_notes 保存 current_children
- 卡片绑定 __item 引用,搜索时直接切换 .style.display(不重建 DOM、不清特效)
- 按 title/owner/content 子串匹配;信封节点链接/代码/文件名纳入搜索,排除图片/文件的 base64 数据
- 支持实时 input 过滤、回车触发、ESC 清空;无匹配时显示提示
- 切换/返回节点时自动清空搜索关键词
|
2026-08-05 01:52:52 +08:00 |
|
qing
|
058eb11f5f
|
docs(aibox): 更新 README 补充 express_emotion 工具与 /search 命令(移除过时说明、命令表新增 /search、工具表新增 express_emotion、消息类型表补充 task_list/task_completed、更新日志新增 v2.8)
|
2026-08-05 01:51:10 +08:00 |
|
qing
|
85c9699758
|
feat(dnfs): 用户面板折叠时不再显示用户名,仅显示展开按钮
|
2026-08-05 01:42:51 +08:00 |
|
qing
|
9dd16e0eef
|
feat(dnfs): 进入新节点时先清除上一节点特效再加载当前节点特效
|
2026-08-05 01:29:49 +08:00 |
|
qing
|
28894e48dc
|
feat(dnfs): 用户面板下移并新增无特效模式开关;管理员增加运维机器人/进程管理器入口
|
2026-08-05 00:49:30 +08:00 |
|
qing
|
924c718005
|
fix(waf): WebSocket 劫持后清除 http.Server 读写 deadline,避免长连接被强制断开
|
2026-08-05 00:37:11 +08:00 |
|
qing
|
d71f526af4
|
feat(aibox): 子代理思考过程实时输出到主对话侧栏
- run_full_subagent 新增 output_callback 参数,转发子代理 reasoning 事件
- SubAgentTool 新增 _subagent_output 回调,将子代理思考过程以 line 流式输出到前端
|
2026-08-05 00:16:34 +08:00 |
|
qing
|
09556c9ef4
|
feat(aibox): run_command 强制流式输出;子代理升级为完整工具代理;补充情绪应对策略
- run_command 移除 stream 参数,删除非流式 subprocess.run 执行路径,统一走流式输出
- 子代理 (create_subagent) 从轻量无工具升级为拥有全部工具的完整代理,支持多轮工具调用与 max_turns 限制,结束后自动总结
- 系统提示词补充子代理使用建议与情绪应对策略
|
2026-08-05 00:09:25 +08:00 |
|
qing
|
cc671a9fce
|
feat(dnfs): 含前端内容的节点渲染到当前页面时自动执行(隔离iframe沙箱启动特效)
|
2026-08-04 23:57:39 +08:00 |
|
qing
|
f7ed1f785b
|
fix(dnfs): 前端代码节点改为隔离iframe沙箱运行,特效不再污染父页面导致运行后无法进入节点
|
2026-08-04 23:51:21 +08:00 |
|
qing
|
2ff7908bc7
|
feat(db): _view_db -n 改为取最后 N 行
按 rowid 倒序取末尾 N 行,外层再正序展示,便于查看最新日志;
-w 条件放入内层子查询,语义为"最后 N 条匹配记录"。
|
2026-08-04 23:44:59 +08:00 |
|
qing
|
745ce06f85
|
fix(dnfs): 前端代码节点运行改为局部输出缓冲+捕获窗口自动恢复console,避免应用自身日志(pid)刷进输出框干扰导航
|
2026-08-04 22:47:48 +08:00 |
|
qing
|
f17a6a8233
|
fix(dnfs): 前端代码节点注入脚本包IIFE隔离作用域,避免覆盖页面全局导致运行后无法进入节点
|
2026-08-04 22:29:10 +08:00 |
|
qing
|
30360cb106
|
feat(dnfs): 前端代码节点支持完整HTML/CSS/JS并注入当前页面
将内联 JS 节点扩展为内联前端代码节点:内容存完整 HTML 文档,
运行后解析注入当前页面——style 注入 head、script 在全局作用域执行
可操作整页加特效、body 渲染到节点下方容器,console 输出捕获到下方。
|
2026-08-04 22:24:33 +08:00 |
|
qing
|
ec3df34b43
|
feat(db): 新增修复 Notes 表 pid 悬空节点的脚本
|
2026-08-04 22:19:05 +08:00 |
|
qing
|
c7441c1c6f
|
fix(dnfs): JS代码节点改用<script>注入执行以兼容CSP
new Function/eval 被 CSP(script-src self unsafe-inline) 拦截,改用注入内联
<script> 执行,避免引入 unsafe-eval。代码在全局作用域运行可操作页面加特效,
console 输出经 hook 捕获到输出区(保留原 console 行为)。
|
2026-08-04 22:11:19 +08:00 |
|
qing
|
fed2d42472
|
refactor(dnfs): JS代码节点改为在当前页面执行以支持页面特效
移除 iframe 沙箱方案,改为 new Function 在当前页面上下文执行,
代码可直接操作 document/window 对页面施加特效;console 输出捕获到下方区域。
|
2026-08-04 22:08:15 +08:00 |
|
qing
|
2918f2c83c
|
feat(dnfs): 特殊节点类型由网页代码(html)改为JS代码(js)
将 _sp 标识从 html 改为 js,运行方式由新窗口 document.write 改为
插入页面 iframe 沙箱执行,捕获 console 输出,postMessage 自适应高度。
后端 dnfs.py 白名单、校验、审核文本同步更新。
|
2026-08-04 22:05:01 +08:00 |
|
qing
|
87538e7729
|
fix(waf): 豁免扩展到所有笔记写接口 (add/update/edit/delete_note)
修正正则匹配 query 前缀问题,统一豁免笔记接口的 CRS 误报规则。
|
2026-08-04 21:52:15 +08:00 |
|
qing
|
fd088f5959
|
fix(waf): 对 /add_note 接口豁免 CRS 误报规则
嵌入式/技术笔记含 C 代码(if()/select/sbit)被 SQLi/命令注入规则误判拦截。
仅移除误报规则(942170/942230/932xxx/934xxx),其余 CRS 规则及接口仍生效。
|
2026-08-04 21:32:14 +08:00 |
|
qing
|
15f8c9552d
|
fix(core,mgmt): list 返回 running+command 字段,命令列不显示为空
原 list 把 check()(命令字符串)放进 status 字段,前端误当状态显示,
命令列取不存在的 command 字段导致显示为空。
修复:list 返回 running(bool) + command(string),前端对应显示状态与命令。
|
2026-08-04 21:31:21 +08:00 |
|
qing
|
43c5821d3d
|
fix(gateway): 修复代理 URL 双斜杠导致下游 404
handleProxy 拼接转发 URL 时,target_path 以 '/' 开头,
url = t_url + '/' + target_path 会产生双斜杠(如 //list)。
core 等使用精确路径匹配的下游服务返回 404。
修复:仅当 target_path 不以 '/' 开头时才补斜杠。
|
2026-08-04 21:20:24 +08:00 |
|
qing
|
1d7641cc89
|
fix(core): 纯 HTTP 启动 HTTP 服务(不需要 TLS,符合项目约束)
core 的 HTTP 服务仅供 gateway 内部代理,且 WAF 已在前端终止 TLS。
原代码强制加载 server.crt/server.key,但证书不存在,导致 core 无法启动,
所有请求被 gateway 返回 500 'Internal Server Error'。
修复:使用无 TLS 的 3 参数 HttpServer 构造函数,纯 HTTP 启动。
|
2026-08-04 21:11:35 +08:00 |
|
qing
|
6a68b3393d
|
docs(waf): _fetch_crs.sh 生成的 coraza.conf 模板指向 tuning.conf
避免重跑脚本覆盖调优配置,模板不再包含重复的阈值/偏执规则
|
2026-08-04 21:11:26 +08:00 |
|
qing
|
0700491300
|
取消注释
|
2026-08-04 21:02:08 +08:00 |
|
qing
|
d036af935f
|
feat(waf): 启用 OWASP CRS 异常评分制自动拦截
- SecRuleEngine On 自动拦截异常评分达阈值的请求(规则 949110)
- 新增 rules/local/tuning.conf 调优文件(偏执等级 1 + 阈值 5/4)
- tuning.conf 独立于自动生成的 crs/coraza.conf,重跑 fetch 不覆盖
|
2026-08-04 20:40:25 +08:00 |
|
qing
|
34cd295005
|
feat(core): mgmt 接入 core 进程管理 + 管理员认证
- gateway 新增 POST /admin/verify 验签接口,供内部服务校验管理员 Token
- core 的 /list /exec /kill 接入管理员认证(调用 gateway 验签,fail-closed)
- gateway 代理 opened 白名单加入 core:5200
- mgmt 管理页显示当前用户与角色,进程页接入 core 进程管理接口
|
2026-08-04 20:00:24 +08:00 |
|
qing
|
c8812dd27c
|
static: 迁移 mgmt 前端到 static/public 并移除静态列表
将 mgmt Jinja2 模板原封不动迁移为纯静态 HTML/CSS,
删除用户列表与模块列表,改为静态提示文字。
|
2026-08-04 19:23:57 +08:00 |
|
qing
|
3460a157d0
|
docs: 新增 libth 安全审计与 aibox 开放版开发计划
|
2026-08-04 19:02:22 +08:00 |
|
qing
|
fe618be1fa
|
fix(captcha): 验证码存储容量上限防 OOM (P1-1)
新增 MAX_STORE_SIZE(默认 10000,可配置 max_store/CAPTCHA_MAX_STORE),
_handle_image 在清理过期项后检查容量,超限拒绝生成并返回错误,
防止攻击者高频生成验证码填满内存。
|
2026-08-04 18:40:36 +08:00 |
|