qing
|
45bc019bfc
|
feat(aibox): 子代理输出转发开关 subagent_stream_output(默认开启)
将上一轮的「子代理实时输出可见化」固化为可配置开关,避免在生产环境刷屏或泄露中间过程。
- common/config.py: 默认配置新增 subagent_stream_output: true
- aibox.py run_full_subagent: 读取该开关;关闭时 _effective_output_callback 置 None,
子代理在后台静默执行(主对话侧栏不显示其思考/工具调用/回答),开启时按原逻辑
转发 line/chunk/reasoning。
- 仅影响主对话侧栏可见性,不影响子代理执行与最终返回摘要;老用户配置缺该键默认 True(兼容)。
|
2026-08-13 03:38:20 +08:00 |
|
qing
|
c9eaf988b3
|
feat(aibox): 子代理实时输出可见化(转发 line/chunk 到主对话侧栏)
此前子代理(create_subagent / run_full_subagent)的输出回调只转发 reasoning_* 三类思考消息,
导致子代理真正的回答文本(chunk)与工具执行过程(line,含命令输出/工具调用)被丢弃,用户看不到。
改动:
1. run_full_subagent 的 sub_think_callback 白名单放开,新增转发 line / chunk;
2. SubAgentTool._subagent_output 处理 line(🔹 [子代理] 前缀)与 chunk;
3. chunk 文本先累积于 _subagent_chunk_buf,遇非 chunk 消息或 execute 结束时由
_flush_subagent_answer 统一冲刷(🤖 [子代理回答]),避免侧栏逐字断行。
仅主对话侧可见,worker 执行子代理本身不受影响。
|
2026-08-13 03:36:32 +08:00 |
|
qing
|
23a10c37c7
|
feat(aibox): 对话开始阶段注入引导提示词(查阅记忆/询问用户/情绪化)
在 DeepSeekChat._init_system_prompts 末尾(连接初始化、/new、/reload_prompts 均会重跑)注入一段仅对主对话(编排者)生效的系统提示词,引导智能体在对话开始时主动:
1. 用 memory 工具查阅历史记忆、保持上下文连贯;
2. 主动关心/澄清意图,必要时用 ask_user 工具向用户提问;
3. 以情绪化方式开场,适时用 express_emotion 工具表达情绪。
worker 子代理不注入,避免执行面被人格/情绪干扰。
|
2026-08-13 03:29:37 +08:00 |
|
qing
|
518c8b2b90
|
feat(aibox): v2.9 编排者-执行者工具分层(tool_profile)
主对话仅保留记忆/情绪/调度/子代理派生等管理面工具,不再直接持有命令行;
子代理(worker)仅注册 7 个执行面工具,无记忆/人格/派生/提问能力,
修复子代理可改写主人格(update_soul)与递归派生的隐患。
附 v2.9 配套运行期提示词模板(aibox/prompts/)与实施方案文档。
|
2026-08-13 03:05:47 +08:00 |
|
qing
|
14db64f7a2
|
refactor(aibox): 工具基类 Tool/ToolRegistry 抽离至 tools 包
延续 common 包的拆分模式,形成 common <- tools <- aibox 单向依赖,
为后续工具子类逐步迁移铺路;aibox.py 瘦身约 230 行,工具子类与注册逻辑零改动。
|
2026-08-13 02:50:20 +08:00 |
|
qing
|
91b30040c7
|
refactor(actpred): 模型输入尺寸 image_size → image_width/image_height,默认 1920×1080
config/model/dataset/train/pretrain/predict/export 全链路适配非方形输入,
hailo_infer/onnx_infer 从模型元数据动态推导宽高;旧 224 checkpoint 配置键
不兼容(重训后替换)。Pi 5 CPU 冒烟验证 1080p 训练可行(~4.75s/步 batch=2)。
|
2026-08-13 02:19:30 +08:00 |
|
qing
|
a240377ba1
|
feat(pybot): Camera 默认采集分辨率 640×480 → 1920×1080
为 actpred 高分辨率模型训练积累 1080p 数据;@Camera 块显式
width/height 仍可覆盖默认值。
|
2026-08-13 02:19:19 +08:00 |
|
qing
|
36feeb4b9f
|
feat(actpred): 新增 ONNX Runtime 推理后端 OnnxPredictor
维度从 ONNX session 元数据自动推导,预处理复现训练流水线;Pi 5 实测
12ms/次含预处理(纯推理 5.9ms),与 torch 前向差异 <1e-5。新增 6 个
单测(真实导出 ONNX 对齐验证),全量 71 测试通过。
|
2026-08-13 01:54:06 +08:00 |
|
qing
|
ab60b3cafb
|
feat(actpred): 新增 Hailo HEF 推理封装 HailoPredictor,附 AI HAT 2 调研与测速报告
零 torch 依赖(hailo_platform + numpy + PIL),vstream 形状/量化参数从
HEF 动态推导,支持 uint8 量化边缘与动作归一化 stats;新增 6 个免硬件
单测(fake hailo_platform 注入)。调研报告记录 hailort 5.x 新 API 踩坑,
测速报告给出 CPU(ORT 5.9ms) vs NPU(resnet50 4.29ms) 基准与部署建议。
|
2026-08-13 01:41:42 +08:00 |
|
qing
|
8673515d31
|
feat(dnfs): 折叠态用户面板改为圆形头像按钮,点击展开
|
2026-08-12 20:51:44 +08:00 |
|
qing
|
f1d6e9ceb4
|
feat(dnfs): 用户面板增加系统节点显隐开关,localStorage 持久化
|
2026-08-12 20:48:50 +08:00 |
|
qing
|
52c6248e2b
|
feat(dnfs): __ 隐藏节点不渲染卡片但执行特效——style/theme 注入 CSS,js 全屏执行
|
2026-08-12 20:45:48 +08:00 |
|
qing
|
1e4409f8b1
|
feat(dnfs): 双下划线标题节点默认隐藏,卡片和 minimap 同步过滤
|
2026-08-12 20:42:47 +08:00 |
|
qing
|
749fcd4cf7
|
debug(dnfs): inheritThemeStyle 加入 console.log 诊断日志
|
2026-08-12 15:52:17 +08:00 |
|
qing
|
49d9a33420
|
fix: 主题/样式继承查询跳过观看计数——前后端配合 noread 标记
前端 inheritThemeStyle 的 fetch 体附加 noread:true,后端 dnfs2
_handle_get_notes 检测到该标记时跳过 _bump_views,避免静默查询
污染节点的观看次数统计。
|
2026-08-12 15:48:12 +08:00 |
|
qing
|
2d4c60f643
|
fix(dnfs): 继承查询改用静默 fetch,避免 getNode 的 alert/401 跳转副作用
|
2026-08-12 15:45:48 +08:00 |
|
qing
|
7af58420cd
|
fix(dnfs): 修复继承查询目标为父节点子集,await 后补充跨导航取消检查
|
2026-08-12 15:39:51 +08:00 |
|
qing
|
3fbf17d6cd
|
Revert "fix(dnfs): 主题/样式继承改为仅查直接父节点,修复 getNode 查询目标错误"
This reverts commit 1774d7d64b.
|
2026-08-12 15:38:03 +08:00 |
|
qing
|
1774d7d64b
|
fix(dnfs): 主题/样式继承改为仅查直接父节点,修复 getNode 查询目标错误
|
2026-08-12 15:36:53 +08:00 |
|
qing
|
d7eb46b3a1
|
feat(dnfs): 新增主题/样式祖先继承——当前节点缺失时沿树向上搜索并注入
提取 injectSpCss 复用 CSS 注入逻辑,renderSpCss 的 applyCss 去重。
inheritThemeStyle 在 load_notes 中检查当前层 theme/style,缺失时
沿 stack 向根逐级搜索最近祖先,找到后自动注入,支持跨导航取消。
|
2026-08-12 15:32:47 +08:00 |
|
qing
|
6db0cf017e
|
fix(aibox): 补全 common/logger 缺失的 logging 导入并固化 common 包抽取
- common/logger.py 漏导 logging / RotatingFileHandler,导致 main() 在
Logger.init_file_logging() 处抛 NameError;现已补回(抽取自 aibox.py 时
未携带该 import)
- 固化 aibox 模块化重构成果:common/ 包(i18n/config/constants/logger
+ __init__ 重导出)已落地,aibox.py 删除内联 I18n 改从 common 导入
- requirements.txt 新增 PySocks 依赖
|
2026-08-12 09:41:33 +08:00 |
|
qing
|
bcd63e4fde
|
refactor: 迁移 gateway.ini 至 core/configs/,删除已废弃的 confs 和 confs2 模块
- gateway.ini 从 confs/configs/ 迁入 core/configs/(真实目录替代符号链接)
- core/_set.sh 移除创建符号链接逻辑
- core/.gitignore 移除 configs 条目
- 删除 confs(Python)和 confs2(C++20 归档),配置分发已内嵌于 core
- 更新 gateway/README.md 配置文件路径
|
2026-08-11 23:48:27 +00:00 |
|
qing
|
cca0cdff5f
|
chore: 删除已废弃的 captcha 模块,由 captcha2 (C++20) 平替
|
2026-08-11 23:36:11 +00:00 |
|
qing
|
0a79a6f631
|
chore: 删除已废弃的 dnfs 模块,由 dnfs2 (C++20) 平替
|
2026-08-11 23:30:45 +00:00 |
|
qing
|
1190a15e1e
|
chore: 删除已废弃的 static 模块,由 fsys (C++20) 平替
|
2026-08-11 23:26:45 +00:00 |
|
qing
|
86236bae9d
|
update: 将 patch_002 时间戳列并入 create_sqlite3.sql
|
2026-08-11 10:42:56 +00:00 |
|
qing
|
141e2e1ef0
|
feat: 前端卡片用户名后显示编辑时间
updated_at 列(创建/更新均由 dnfs2 填入本地时间),新增节点时等于创建时间。
css/theme.css 新增 .owner-time 样式(小字号 / 三级灰)。
|
2026-08-11 10:38:39 +00:00 |
|
qing
|
01c699e7a6
|
feat: Notes 新增创建时间/更新时间列,dnfs2 添加/更新时填入本地时间
- patch_002 存量补丁:created_at / updated_at DATETIME 列
- dnfs2 add_note 同时填入两个时间戳,update_note 只更新 updated_at
- 时间格式 local_now():"YYYY-MM-DD HH:MM:S"(本地时间)
|
2026-08-11 10:34:09 +00:00 |
|
qing
|
d5047d27c7
|
fix: 修复 getNode 双重请求导致观看数计数不准确
dnfs.js 中 8 处导航调用 getNode() 两次(一次 load_notes 一次 loadMap),
每次独立发起 HTTP 请求,导致后端 _bump_views 重复计数。
改为单次 getNode + 组合回调(.then(r => { load_notes(r); loadMap(r) })),
确保每次导航仅一次请求,views 严格 1:1 对应。
|
2026-08-11 10:18:52 +00:00 |
|
qing
|
c699ff1794
|
update: 将 patch_001 并入 create_sqlite3.sql
新建库一步到位含 Notes views 观看人数列及 pid/owner 索引;
patch_001 保留用于存量库迁移。
|
2026-08-11 10:11:07 +00:00 |
|
qing
|
c9777cbff8
|
feat: 前端卡片观看数/子节点数接线后端
- dnfs2 get_notes 为每个节点附上 child_count(一次 IN 批量查询统计子节点数,best-effort)
- dnfs.js 卡片眼睛=views 观看数、转发=child_count 子节点数(原 share_count/visit_count 后端无字段恒为 0)
|
2026-08-11 10:06:33 +00:00 |
|
qing
|
986acab1c5
|
feat: Notes 新增 views 观看人数列,dnfs2 get_notes 打开节点时自增
- db2 补丁 patch_001:Notes 增加 views 列(默认 0),补齐 pid/owner 索引
- dnfs2 get_notes(pid) 打开节点时对 pid 的 views 读改写 +1(best-effort,失败不影响主流程)
|
2026-08-11 09:51:14 +00:00 |
|
qing
|
049b894416
|
Merge branch 'main' of https://git.cancerai.top/qing/blackbird
|
2026-08-11 09:20:29 +00:00 |
|
qing
|
0aa0710a9e
|
fix: 统一 .mt 首行 '-' 占位符语义——actpred 对齐 pybot/bot4cj 运行时(填 0),弃用 @Servo max 列填充
|
2026-08-11 16:30:39 +08:00 |
|
qing
|
6d79fc919f
|
update: actpred 默认图像分辨率 64→224
|
2026-08-11 02:35:22 +08:00 |
|
qing
|
fee1241e49
|
feat: pybot 新增 @Camera 摄像头块——picamera2 惰性导入,后台守护线程维护有界帧队列(满丢最旧)
|
2026-08-11 02:32:20 +08:00 |
|
qing
|
21d93fc505
|
fix(ai_review): DeepSeek API 调用添加 8s 超时,防止 worker 线程阻塞导致服务不可用
|
2026-08-10 16:18:35 +00:00 |
|
qing
|
a8ffa73a6b
|
fix: pybot 审计修复——插件异常类型、I2C 引用校验、卡尔曼除零守卫、CLI 端到端测试
|
2026-08-10 16:16:40 +00:00 |
|
qing
|
09dc36d591
|
refactor: 移除全部启动脚本中的 sleep 延时与 services.yaml 中的 sleep_before
|
2026-08-10 16:05:26 +00:00 |
|
qing
|
da8ebbf9e6
|
docs: 研究整理——同步认证迁至 ca 后的过时描述、补 liblogc 与测试清单
- ARCHITECTURE/MODULES:ca 版本 v1.1.0、共享基础库补 liblogc、tests 描述与实际 9 个文件对齐、docs 篇数 57
- core README/报告/HttpTask 注释:管理员鉴权由"gateway 唯一权威"更正为 ca(v0.9.0 认证迁址后描述滞后)
- ca/gateway README 架构图 static:9200 → fsys:9200、db:8005 → db2:8005
- 主 README 与 blackbox README 补 test_core_confs.py,test_gateway 文档更新为 ca:8443 契约
|
2026-08-10 15:55:43 +00:00 |
|
qing
|
7467e7bd42
|
docs: 整理文档——修复全部 file:// 失效链接、补齐缺失模块 README
- 将 7 个文档中的 mac 绝对路径链接(file:///Users/qingsong/...)转换为仓库相对路径,
并修正错误目标:aibox 入口 main.py → aibox.py、pymsg C++ 实现 → libmsg/inc/us/Msg.hpp、
bot4cj cpp/cnn → cuda
- 主 README 补 liblogc 基础库条目与 confs2 归档说明,安装顺序补 ca
- 新增 liblogc / libtry / confs2 / 3d / memdb README
- 同步 db2 脚本迁移(db/create_sqlite3.sql → db2/scripts/)导致的失效引用
|
2026-08-10 15:48:29 +00:00 |
|
qing
|
7072e33d6f
|
update
|
2026-08-10 23:46:02 +08:00 |
|
qing
|
30e064996c
|
docs: 整理文档——分析类归位 reports/、补 captcha2/smtp3 README、修复全部失效链接
- profile/evaluation/promo_pack 移入 docs/reports/(按文档管理约定),内部引用同步
- 补建 captcha2/README.md、smtp3/README.md(主 README 曾引用但缺失)
- 重写 README 测试章节(实际为 tests/blackbox/,纯标准库零依赖)
- 清除全部 docs/INDEX.md 残留引用;legacy README 中已删除 ini 的失效链接改文字
- 全仓库链接检查 0 broken
|
2026-08-10 12:45:26 +00:00 |
|
qing
|
2817dbbab2
|
docs: 收尾同步——waf/smtp README、项目画像、测试套件与遗留模块标注
- waf/smtp README: 链路改 ca:8443 → gateway:8445,启动描述改 services.yaml
- profile/evaluation: 拓扑/请求链路/端口表/模块表同步,口径漂移项标记已解决
- tests/blackbox: README 与 config.py 标注测试条目→生产服务映射(保留历史条目名)
- static/dnfs/db/captcha/confs README 顶部加"已废弃"标注
|
2026-08-10 12:35:45 +00:00 |
|
qing
|
ad5d91c47a
|
docs: 同步文档至当前生产架构(ca:8443 → gateway:8445、C++20 重写版为主、confs 内嵌 core)
- README: 更新架构图/链路/服务表/端口表,static/dnfs/db/captcha/confs 标注遗留
- MODULES/ARCHITECTURE: 事实来源改为 services.yaml,配置链路收敛为仅 gateway.ini
- fsys/dnfs2 README: 架构图改为 ca 验签与纯 CLI 配置
|
2026-08-10 12:31:35 +00:00 |
|
qing
|
77bc367d03
|
dnfs2: 移除样式节点 persist 全局保持机制,样式仅节点作用域生效
|
2026-08-10 11:52:15 +00:00 |
|
qing
|
75a45313c4
|
dnfs2: 特殊节点移除 link 类型,精简为 js/file/style/theme 四类
|
2026-08-10 11:17:19 +00:00 |
|
qing
|
dfa8d0406a
|
docs: 新增 dnfs 自定义主题说明(style/theme 特殊节点使用指南)
|
2026-08-10 11:09:20 +00:00 |
|
qing
|
c54e7aca83
|
dnfs2: 特殊节点移除 image 类型,发布权限放宽为节点拥有者或管理员
|
2026-08-10 10:52:30 +00:00 |
|
qing
|
75897c68eb
|
dnfs2: 特殊节点新增 style/theme 类型,支持界面样式注入与主题换肤
|
2026-08-10 10:39:03 +00:00 |
|