qing
|
00421182e4
|
fix(db2): 按 JSON 类型分别绑定 SQLite 参数,修复类型丢失
- _coerce_value 改为返回 json::value,保留 int/double/bool/null 原始类型
- 新增 _bind_value,按类型调用 sqlite3_bind_int64/double/text/null
- WhereClause::params 改为 vector<json::value>,删除 is_null 向量
- INSERT/UPDATE/SELECT/DELETE 统一使用按类型绑定
修复 P1-1(所有值绑定为 TEXT)和 P3-2(_coerce_value null 处理误导)
|
2026-08-06 18:23:30 +00:00 |
|
qing
|
cb31db1078
|
docs(security): 更新 libsqlite3 审计报告修复状态
- P0-3 参数化 exec 已修复
- P1-2/P1-3/P1-4 绑定类型与异常信息已修复
- P2-2/P2-3 读取接口与文档已修复
- 修正 P2 问题数量统计(6 项而非 5 项)
|
2026-08-06 18:14:01 +00:00 |
|
qing
|
48714b88af
|
fix(libsqlite3): 增加参数化 exec 与完整绑定/读取接口
- 新增模板 exec(sql, args...) 参数化执行,支持 int / int64_t / double /
std::string / const char* / nullptr / std::vector<unsigned char>
- 扩展 Sqlite3_stmt:bind_int64、bind_double、bind_blob、bind_null、execute
- 增加 read_int64、read_double,read_text 补充生命周期注释
- 构造/打开异常携带 sqlite3_errmsg 详情
- 原 exec(sql) 增加硬编码 SQL 警告注释
|
2026-08-06 18:13:52 +00:00 |
|
qing
|
1c55443d43
|
docs(security): 新增 libsqlite3 安全审计报告
- 记录 P0/P1/P2 级别问题与修复状态
- 已修复 double free / 移动语义、close_v2、const 引用等 5 项问题
|
2026-08-06 18:07:14 +00:00 |
|
qing
|
985ff47c84
|
fix(libsqlite3): 修复 double free 与移动语义缺陷
- 为 Sqlite3 与 Sqlite3_stmt 显式 delete 拷贝、实现 noexcept 移动构造/赋值
- 析构函数判空后释放,防止重复释放与 use-after-free
- ~Sqlite3() 改用 sqlite3_close_v2,确保所有 statement 释放后再关闭
- stmt() 参数改为 const std::string&,支持字符串字面量
- 成员指针显式初始化为 nullptr,errMsg 初始化为 nullptr
|
2026-08-06 18:07:06 +00:00 |
|
qing
|
b781a8d2fe
|
fix(static): 修复特效节点全屏 iframe 被卡片 transform 困住的问题
卡片入场动画的 translateY 使卡片成为 position:fixed 后代的包含块,
全屏特效 iframe 被限制在卡片内渲染,表现为部分特效不自动启动
(in-node 特效为 relative 定位不受影响)。卡片入场改为纯 opacity 淡入;
带位移的 rise-in 仅用于无 fixed 后代的骨架元素,并排除依赖
transform 垂直居中的 .minimap。
|
2026-08-06 17:49:15 +00:00 |
|
qing
|
fad749f9aa
|
docs(db2): 添加 README
|
2026-08-06 17:42:50 +00:00 |
|
qing
|
577386bff2
|
feat(static): 同步美化注册/找回密码/树状笔记页
- 新增 auth.css:表单页共享美化(点阵背景、品牌渐变顶条卡片、eyebrow 标题、
渐变提交按钮、入场动画),register/forgot 各加一行 link 与 eyebrow
- 新增 dnfs.css:笔记页美化(顶部底纹暖光、卡片逐张入场、编辑卡聚焦光环);
顺带修复节点编辑卡裸 <button> 无主题底色的问题
- 动效均遵循 prefers-reduced-motion,颜色全部消费 theme.css 变量
|
2026-08-06 17:42:38 +00:00 |
|
qing
|
6150c60441
|
chore: .gitignore 忽略 venv/.env 虚拟环境、build 产物与 waf 证书
|
2026-08-06 17:42:17 +00:00 |
|
qing
|
1970f3f824
|
feat(db2): C++20 数据库 RPC 服务,对齐 Python db 模块 execute 路由
- 完整实现 execute 路由(select/insert/update/delete)
- 相同 where 语法(eq/ne/gt/lt/ge/le/like/in)及响应格式
- 启动时从 confs 拉取 db.ini,支持环境变量和命令行覆盖
- per-thread SQLite 连接 + WAL/mmap/busy_timeout PRAGMA
- PRAGMA table_info 驱动的列类型反射与缓存
- $now 哨兵值自动替换为 UTC 时间
- 内置 Logs 表自动建表 + 后台清理线程(retention_days + max_records)
- 表名白名单校验防 SQL 注入
- gateway DbC::call_msg() 零改动可直接切换
|
2026-08-06 17:40:07 +00:00 |
|
qing
|
49ed3f738f
|
fix(deploy): _inst.sh 补全 ai_review/aibox/redirect80; ai_review 模型走 ModelScope 镜像
- _inst.sh: 补入遗漏的 3 个模块(confs 之后、core 之前)
- ai_review/_fetch_onnx_model.sh: 新增 chromadb onnx 模型预下载脚本
(默认 ModelScope 镜像,支持 ONNX_MODEL_BASE_URL/CHROMA_CACHE_DIR 覆盖,
断点续传+幂等,绕过 chromadb 写死的 AWS S3 下载)
- ai_review/_set.sh: 安装后自动调用模型下载
- README.md: 更新部署说明
- docs/reviews/DEPLOY_DEFECT_AUDIT_20260806.md: 新增部署缺陷审查报告
- docs/INDEX.md: 登记审查报告
|
2026-08-06 17:39:42 +00:00 |
|
qing
|
ea2717c400
|
feat(static): 优化社区首页美观度与高级感
- index.html: hero 新增品牌徽章、节点树装饰 SVG、下滑提示;章节增加 eyebrow 小标题
- index.css: 主按钮渐变+扫光、卡片序号水印+图标点亮、标题渐变流光、点阵底纹、
品牌树描绘动画、关于卡装饰、胶囊快捷链接;全部基于 theme.css 变量,深浅色自适应
- index.js: 追加滚动渐显(IntersectionObserver)与特性卡片光标光斑,与登录逻辑解耦
|
2026-08-06 17:31:40 +00:00 |
|
qing
|
a4611ec737
|
docs(security): 新增 libmsg 安全审计报告,更新文档索引
新增 docs/security/libmsg_SECURITY_AUDIT_20260806.md,记录 SAST
扫描发现的 3 个漏洞(CWE-362/400/209)及对应修复方案,更新
docs/INDEX.md 加入 libmsg 审计文档入口。
|
2026-08-06 17:18:27 +00:00 |
|
qing
|
e92ef05ed0
|
fix(libmsg): 修复安全审计发现的三个漏洞
- CWE-362: _remove_client() 关闭 fd 前获取 per-connection send_lock,
防止 broadcast/reply 向 OS 复用的 fd 发送数据到错误客户端
- CWE-400: workers>0 模式下消息接收移至 worker 线程,
事件循环不再阻塞 pmsg_recv,防 Slowloris DoS
- CWE-209: 扩展 _sanitize_error 路径正则为 /\S+,
覆盖含空格/括号/@/~ 等特殊字符的内部路径,防信息泄露
|
2026-08-06 17:16:33 +00:00 |
|
qing
|
61a0e4cf7a
|
Merge remote-tracking branch 'origin/main'
|
2026-08-07 00:38:13 +08:00 |
|
qing
|
1d44e0dcb8
|
feat(libmsg): add pymsg C++ library with AsyncQueue, MsgServer, and JSON RPC layer
- Add libmsg module: pymsg protocol implementation (4-byte BE length prefix + UTF-8)
- Add AsyncQueue<T>: generic async batch queue with backpressure (aligned with Python AsyncRpcQueue)
- Add MsgServer: select-based multi-client TCP server with optional thread pool
- Add RpcClient/RpcServer: JSON RPC convention layer with automatic route injection
- Refactor gateway/LogC.hpp to use AsyncQueue for async batch log delivery
- Update gateway/DbC.hpp to add call_msg() using pymsg TCP protocol
- Remove duplicated gateway/inc/Msg.hpp (now provided by libmsg)
- Update gateway/Makefile and _inst.sh build order
Fixes included:
- pmsg_send size check uses kMaxMsgSize (64MiB) instead of 4GiB
- MsgClient._running uses std::atomic<bool> for thread safety
- Deadline-based recv timeout to prevent Slowloris (header+payload shared deadline)
|
2026-08-06 23:48:06 +08:00 |
|
qing
|
7f288f1c09
|
docs(security): 修正安全审计文档与代码不一致
- core: MQ kill/exec 实际未禁用,修正错误声明;HttpTask.cpp 行号 L53→L58
- gateway: 更新 20+ 处行号偏移(_KEYGEN/handleProxy/is_safe_target 等)
- aibox: shell=True 4处→3处,handle_connection/WebSocket 行号更新
- DEPS: WebSocketServer.cpp 已删除,fuzz 需求转移至 HttpServer_WsSession
- 加固计划: Phase 1.1 (127.0.0.1 绑定) 标记为已完成
- captcha/libhttp: 修正轻微行号偏移
|
2026-08-06 15:25:07 +00:00 |
|
qing
|
7ff73b7d07
|
fix(aibox): 缩短 WebSocket 心跳间隔并补全直连页面心跳
前置代理(Nginx/CDN)的 proxy_read_timeout 约 20s,原 25s 心跳
无法在超时前到达,导致连接被代理切断。aibox.js 心跳从 25s 缩短至
10s;frontend.html 直连页面此前完全无心跳,新增 10s 应用层心跳。
|
2026-08-06 09:16:34 +00:00 |
|
qing
|
bcb1d5d557
|
fix(dnfs): 切换特效模式时立即生效当前页面特效节点
从"无特效模式"切回"特效模式"时,renderSpJs 的自动执行判断
仅在卡片首次渲染时执行一次,不会重新触发。现在切换后
重新渲染当前层卡片,使特效节点按新状态立即生效或停止。
|
2026-08-06 09:03:44 +00:00 |
|
qing
|
786509f2e2
|
Merge branch 'main' of https://gitcode.com/qingss0/blackbord
|
2026-08-06 16:19:04 +08:00 |
|
qing
|
fc351f569a
|
fix(aibox): 禁用 websockets 服务端 20s 协议层 ping 超时断连 (ping_interval=None)
|
2026-08-06 16:16:12 +08:00 |
|
shufeng2012
|
733d9e470a
|
💄 更新代码块字体及样式
|
2026-08-06 15:15:30 +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 |
|