Commit Graph

9 Commits

Author SHA1 Message Date
37a26ac674 fix: capability.py _get_vendor_commit 只返回 commit hash(对齐 health.py)
capability.py 的 _get_vendor_commit() 和 health.py 之前有同样的 bug:
f.read().strip() 返回整个 VENDOR_COMMIT 文件内容,
导致 scan_capabilities() 上报给 bridge 的 vendor 字段是多行文本。
对齐为逐行 commit: 前缀解析。
2026-07-01 15:40:31 +08:00
64e2480da6 feat: v0.2.1 — bridge 版本号日志 + VENDOR_COMMIT 打包修复 + vendor 字段解析
- mindcli_bridge.py 能力报告日志增加 cli_version/vendor/platform 字段
  服务器端可观测连接的 CLI 版本号
- pyproject.toml 增加 package-data 声明,VENDOR_COMMIT 打包进 pipx
- health.py _get_vendor_commit 只返回 commit hash 而非整个文件
- 版本号 0.2.0 → 0.2.1
2026-07-01 15:36:07 +08:00
2075fe64b9 fix: health.py _get_vendor_commit 只返回 commit hash 而非整个文件
VENDOR_COMMIT 是多行标记文件(source/commit/date),
旧逻辑 f.read().strip() 返回整个文件内容导致 health 输出污染。
对齐 cli.py 的逐行 commit: 前缀解析逻辑。
2026-07-01 15:27:16 +08:00
bcf586b7c0 fix: 修复 VENDOR_COMMIT 未打包进 pipx 安装包的问题
pyproject.toml 缺少 [tool.setuptools.package-data] 声明,
导致 _vendor/ 下的非 .py 文件(VENDOR_COMMIT)不被打包,
mind health 显示 vendor: unknown。
2026-07-01 15:24:12 +08:00
aecd81ec8b feat: 无状态原子化改造 v0.2.0 — pipelines/ 分层 + 双工录音 + pipx 自动更新修复
## 架构改造

将 recorder/tunnel/managed_mcp 三个有状态单例模块拆成
mindcli/pipelines/ 下的无状态管线 + health.py 调用方持有状态。
参照 hermes-overlay/infra/pipelines/anyfile2md.py 的分层模式。

### pipelines/ 层(无状态)
- audio_capture.py: capture() 工厂函数返回独立 CaptureHandle,
  无单例无互斥,双工模式(system+mic 并行)在代码层面可用
- tunnel_session.py: connect() 工厂函数 + on_status 回调,
  消除 health ⇄ tunnel 循环耦合(单向数据流)
- tool_proxy.py: ToolProxy 替代 ManagedMCP,非单例

### health.py 改造
- _active_captures dict 按 chatId 索引,可多实例并存
- _tunnel_handle 由调用方持有,on_status 回调更新状态
- /record/stop 支持 ?chatId= 停单路或全停
- /record/status 返回所有活跃录音列表

### cli.py 改造
- chat/ask 走 run_agent headless + Cloud Gateway JWT(铁律 A)
- 保留 --offline 走 vendor TUI(铁律 C:断开即自治)
- mind update 修复 pipx 场景:
  - 检测 pipx venv → pipx reinstall
  - 非 pipx → sys.executable -m pip(修复 venv 里 pip 找不到)
  - 防降级保护(远端版本低于本地时不升级)
  - 远端 upgradeCmd 字段下发

### 顺手修复
- health.py / capability.py 的 HERMES_COMMIT → VENDOR_COMMIT
- 版本号 0.1.0 → 0.2.0(__init__.py + pyproject.toml)
- 新增 versions.json 仓库模板(installCmd 改为 pipx,新增 upgradeCmd)

### 删除
- recorder.py → 逻辑迁入 pipelines/audio_capture.py
- tunnel.py → 逻辑迁入 pipelines/tunnel_session.py
- managed_mcp.py → 逻辑迁入 pipelines/tool_proxy.py

SPEC: docs/SPEC_mindcli_atomization.md
2026-07-01 14:56:16 +08:00
f0cc661067 feat: 添加 mind update 命令 + 远端版本检查(versions.json)
- mind update: 检查 dl.brainwork.club/mindos-next/versions.json
- 有新版本时自动 pip install --upgrade
- 修复 VENDOR_COMMIT 文件读取
2026-04-29 08:50:01 +08:00
3a1ecd7adc fix: 补全 vendor 快照(model_tools/utils/toolsets/gateway/cron/hermes_time)+ python-dotenv 依赖
- vendor_hermes.sh: 补全遗漏的单文件模块和目录
- pyproject.toml: 添加 python-dotenv 隐性依赖
- 全量 import 测试通过(216 .py, 180K 行)
- firecrawl/fal_client 为可选工具,缺失时优雅跳过
2026-04-29 02:24:04 +08:00
9fe8a43e70 chore: 添加 VENDOR_COMMIT 快照标记(hermes@f8a855a) 2026-04-29 02:16:38 +08:00
69dd868e2f init: MindOS CLI 本地执行体(从 mindOSv2/mindos-cli 独立)
- 独立 pyproject.toml(pip install -e .)
- vendor_hermes.sh 已改为显式路径模式(不再依赖相对目录)
- 包含 hermes vendor 快照
2026-04-28 13:12:54 +08:00