Skip to content

Releases: Benboerba620/ai-workspace-hub

v0.6.0 — 研究状态、证据闭环与安全升级

Choose a tag to compare

@Benboerba620 Benboerba620 released this 12 Jul 10:23

这次升级解决什么

AI Workspace Hub 从“能完成一次研究”推进到“能持续管理研究状态”:研究、假设、证据和待确认动作拥有稳定 ID,日报新增事实先进入独立证据账本,再由用户决定是否调整判断。

主要新增

  • 股票研究主流程:首次研究引导、研究偏好、研究收口和假设复盘
  • 统一对象契约:研究 R*、假设 H*、证据 E-*、待确认动作 Q-*
  • 独立 evidence/ 证据账本,区分新增事实与投资判断
  • workspace/review-queue.md 持久保存需要用户确认的动作
  • workspace_status.py 汇总进行中研究、开放假设、待复盘证据和下一步
  • upgrade_workspace.py 支持预览、受管文件更新、用户文件保护和自动备份
  • daily-watch 接入证据闭环,并收口唯一执行股票池

升级安全

发布前已用全新 v0.4.0 工作区真实升级到 v0.6.0:用户 wiki、假设、API 配置和自定义规则均保留,旧系统文件自动备份。测试中发现并修复了旧工作区缺失 workspace/research-profile.md 却仍显示 READY 的问题。

升级默认只预览差异;明确确认后才更新 Hub 管理文件。混合文件继续要求人工合并,用户研究资料不会被覆盖。

验证

  • 全新公开仓库安装:Core Mode READY
  • 62 项测试通过
  • Ruff 与 Python 编译检查通过
  • GitHub CI:Ubuntu Python 3.10 / 3.12、Windows Python 3.12 全部通过

完整变化见 CHANGELOG.md

v0.4.0 — 全量体检:40+ 项修复 + 冷启动上手改进

Choose a tag to compare

@Benboerba620 Benboerba620 released this 05 Jul 07:07

修复(2026-07-05 全量体检批次)

三路并行代码审查(podcast / daily-watch / 安装链路)后的批量修复,共 40+ 项:

daily-watch

  • 零 key 承诺兜底:generate_daily_report.py 缺 env 文件时警告后继续(原直接 FileNotFoundError 崩溃)。
  • hypothesis_tracking.enabled / auto_writeback 配置真正生效:关闭后不再回写 hypothesis/H*.md(原开关形同虚设)。
  • 关联标的识别支持 601857.SH / 0700.HK / BRK.B / 单字母美股(原正则对 A 股、港股、类别股全部静默失效)。
  • Nasdaq/EOD 降级源只剥已知市场后缀,BF.B 不再被剥成 BF 查错公司;yfinance 增加 .SH.SS 映射(原对上交所永远失败)。
  • run_json_script 失败时透出子进程 stderr(原真实错误被吞);generate_daily_report.py 补 argparse,--help 不再误跑真报告。
  • check_setup.py --init 补创建 hypothesis/portfolio/journal/,FAIL 项附修复提示;根目录探测失败时回退 cwd 并警告。
  • sync_hypothesis.py 容错手改的 frontmatter(certainty: 80%、坏 YAML 单文件跳过不崩全表)。
  • focus_areas.exclude 真正实现;示例 yaml 标注仅 skill 层使用的字段;假设文件读取兼容 BOM;tushare 窗口 10 → 14 天覆盖长假;证据时间线插入段尾 --- 之前。

podcast

  • LLM provider/model 优先级改为「显式入参 > 环境变量 > 默认值」,并防止通用 LLM_* 变量串到显式指定的其他 provider(反转 0.3.1 的「环境变量优先」:config/CLI 显式指定不该被 .env 默认块静默压过)。
  • Whisper 转录语言默认自动检测(原硬编码英文,中文播客产出错误转录并污染 wiki);config 支持 whisper.language
  • history 去重前移到下载/转录之前,且逐条落盘——中途崩溃不再重付 LLM/Whisper 成本;显式 --youtube-url 绕过去重。
  • 代理改为显式配置:PODCAST_PROXY 未设置即直连,auto 才扫描本地端口(原盲扫 12345-12350 误伤开发服务);requirements 补 requests[socks](原配了 SOCKS 代理必挂 Missing dependencies)。
  • 单条坏 pubDate 不再毁掉整个 feed(逐条容错);新增 Atom feed 支持(原静默 0 条)。
  • .m4a 剪辑沿用源容器(原静默退化为整集转录);LLM 返回非对象 JSON 走跳过路径不再崩整轮;转录 frontmatter 转义特殊字符;podcast_rss_transcribe.py / podcast_feed_registry.py 补 UTF-8 输出兜底(0.3.1 已覆盖其余入口)。

安装 / 测试

  • 安装器不再把 .ruff_cache / __pycache__ / .DS_Store / 本地 .env(含 API key)复制进新工作区;--target 指向文件时给友好报错。
  • check_workspace.py 兼容带 BOM 的 env 文件;inbox/first-note.md 降级为可选项,post-install-cleanup 归档后不再误报 NOT READY。
  • 文档修正:删除与 .gitattributes 冲突的 autocrlf 建议;post-install-cleanup 步骤编号与 installer 路径说明;daily-watch 数据源表列对齐。
  • CI 统一 pytest 收集(unittest 会漏掉 pytest 风格用例)、钉 ruff 版本、补 generate_daily_report.py --help 冒烟;新增 41 个针对上述修复的单测(全套 55 个通过)。

以下修复来自一次完整的冷启动安装模拟测试(陌生环境、只凭 README 分享句从 GitHub 安装):

修复

  • 安装分享句改用 raw 链接 + git clone 双通路:原 blob 页面链接是约 340KB 的 HTML,网页抓取只能拿到摘要,agent 可能凭残缺协议安装;raw 链接是 12KB 纯 markdown,与源文件逐字一致。协议开头同时提醒 agent 自检"拿到的是全文还是摘要"。
  • install_workspace.py 完成提示指错下一步:原来指向 check_setup.py(Enhanced Mode 配置),会把新用户引向 API key;更正为协议 Step 5 的 check_workspace.py --root(Core Mode 检查)。
  • INSTALL-FOR-AI.md 补两处 agent 只能靠猜的空白:用户没有现成 wiki 时 --wiki-root 直接省略(默认 ./wiki);临时克隆目录按平台取 %TEMP% / /tmp
  • first-ingest.md 步骤对齐 wiki/_schema.md 的「MVP 最低合格标准」(补 raw 归档、至少一个分类页、output 试跑报告),不同 agent 的产出不再因两份文档标准不一致而波动。

文档

  • README「30 秒上手」新增「还没有 AI agent?先花 2 分钟装一个」:Claude Code / Codex CLI / Cursor 三条最短安装路径,收礼的朋友从零也能起步。
  • README 开头与仓库 homepage 挂上设计思路长文《从0构建 AI 协作系统(一):从最小可运行的 MVP 开始》(作者公众号)。
  • README 顶部新增 33 秒演示动图docs/demo.gif):一句话安装 → 3 个问题 → Core Mode READY → 第一次摄入 → 配 API key(Enhanced Mode)→ 断点续传收尾。按安装协议真实流程脚本化生成(生成脚本 docs/gen_demo_gif.py 一并入库,流程变更时改台词重跑即可),并在图下注明"非实录"。

改进

  • 仓库开启 GitHub template:点 "Use this template" 即可创建自己的(可私有)工作区副本,个人研究数据不必公开 fork。

v0.3.1 — 工作区去污染 + Windows 兼容修复

Choose a tag to compare

@Benboerba620 Benboerba620 released this 02 Jul 03:14

修复

  • 手动 clone 不再继承维护者的工作状态workspace/meta/active-context.mdfriction-log.md 重置为干净模板,仓库契约测试新增这两对模板一致性检查,防止个人工作日志再次混进发布内容。
  • smoke-test 演示产物移入 examples/smoke-test/:原先散在 wiki/output/ 里的试跑产物统一收进 examples/,配 README 说明"这是示例、可整目录删除"。用户的 wiki/output/ 现在从空白开始。
  • Windows 西文 locale 下中文输出崩溃:8 个入口脚本在 cp1252 控制台打印中文会触发 UnicodeEncodeError;现在启动时统一把 stdout/stderr 重配为 UTF-8。新加的 Windows CI job 第一跑就抓到了这个问题。
  • TROUBLESHOOTING.md 播客排障段指错配置文件:config/llm.env 更正为实际存在的 config/pod2wiki.env
  • 新增标准库安装器,安装协议明确先取得源码;非空目标默认停止,--merge 只补缺失文件、不覆盖用户资料。
  • 修复 all-in-one 工作区在配置文件创建前无法识别根目录的问题,check_setup.py --init 可安全初始化缺失配置。
  • 更正 Longbridge 定位:它是独立 Agent Skill/CLI/MCP,不再宣称为 daily-watch Python 脚本的内置环境变量数据源。
  • faster-whisper 拆到可选的 requirements-transcribe.txt,避免基础播客安装拉取重型转录依赖。
  • LLM 环境变量优先于示例 YAML;摘要全部失败时返回非零状态,不再静默报告成功。

改进

  • CI 新增 Windows job(windows-latest × Python 3.12),编码、路径、python/python3 别名类问题现在能在 CI 被抓住。
  • CI 的 pytest 步骤去掉 || true,测试失败不再被吞掉。
  • 新增安装、路径、文档链接和仓库契约测试,以及 Python 3.10/3.12 CI。

文档

  • 数据源表(README / AGENTS / CLAUDE)补上代码里实际支持的 daily-watch 降级源:Finnhub / EOD / yfinance。
  • README「30 秒上手」和 SMOKE-TEST 的第一条命令内联标注 Windows 写法(python 代替 python3)。
  • AGENTS.md 补上与 CLAUDE.md 的双向同步声明;日报监控路由行补充 system/integrations/daily-watchlist.md 入口。

移除

  • 删除冗余的 tools/daily-watch/.env.example(与 config-examples/daily-watchlist.env.example 重复)。

v0.3.0 — All-in-One:六大能力开箱即用

Choose a tag to compare

@Benboerba620 Benboerba620 released this 22 Jun 15:39

All-in-One 升级

一次 clone,六大能力开箱即用——对应研究员的六步工作流:

  1. 收集材料 → podcast(播客/博客摄入)
  2. 沉淀知识 → wiki(个人知识库)
  3. 做研究 → research(研究闭环)
  4. 筛选标的 → screen(快速筛选,新增)
  5. 日常盯盘 → daily-watch(日报监控)
  6. 追踪假设 → hypothesis(假设追踪)

新增

  • All-in-One 集成:pod2wiki 和 daily-watchlist 代码合并进 tools/podcast/tools/daily-watch/
  • screen 快速筛选:给主题 → 找候选 → 拉数据 → Top 5 分析。内置价值股 / AI 产业链两套预设
  • Longbridge 免费数据源:港美股免费行情,与 tushare(A 股免费)并列为零成本起步选项
  • 统一 config/ 目录:所有工具的用户配置文件统一管理

改进

  • README 用研究员六步工作流重写
  • INSTALL 简化:移除"选模块"步骤,全量安装是唯一路径
  • 路由表扩展:新增 podcast、daily-watch、screen 三条路由
  • check_setup 优化:FMP 降为可选 WARN,路径适配 all-in-one 结构

移除

  • system/skills/deploy-modules.md(不再需要 clone 外部模块)

数据源

数据源 市场 费用
Longbridge HK + US 免费
tushare A 股 免费额度
FMP 全球 免费 250 次/天

没配 → 自动降级到 websearch,不报错不编造。

系列文章:从零构建 AI 协作系统(一)

v0.2.3 — active-context 上限自动清理

Choose a tag to compare

@Benboerba620 Benboerba620 released this 07 Jun 15:09

改进

  • active-context 上限与自动清理:给断点续传协议补上「内联自动剪」。agent 写断点时把超过 14 天或超过 20 条的旧条目自动移到 active-context-archive-YYYY-MM.md(保留续接锚点)——零脚本、自动执行、不等手动体检。structure-health 的 active-context 检查改为周度兜底。

完整变更见 CHANGELOG.md

v0.2.2 — active-context 断点续传

Choose a tag to compare

@Benboerba620 Benboerba620 released this 07 Jun 14:57

改进

  • active-context 断点续传协议落地:把「今天停、明天接」做成 agent 自动行为。AGENTS / CLAUDE(含模板)写明两条自动触发规则——开场说「继续」自动读 active-context 顺着续接锚点接上;用户说「今天到此 / 明天继续 / 暂停」或工作落盘 / 做决策 / 长对话收尾自动追一行(含状态标签 + 续接锚点)。

完整变更见 CHANGELOG.md

v0.2.1 — 假设追踪改为基座自带

Choose a tag to compare

@Benboerba620 Benboerba620 released this 07 Jun 14:46

改进

  • 假设追踪改为基座自带能力:不再当作要另装的外部模块。hypothesis/ 记假设与证据(一假设一 H*.md),复盘结论回写 wiki/explorations/,开箱即用、零依赖、无需安装。

修复

  • 移除文档中指向已转为私有的 hypothesis-tracker repo 的失效链接,以及「帮我安装假设追踪」的部署引导。

完整变更见 CHANGELOG.md

v0.2.0 — research 研究闭环 + 结构精简

Choose a tag to compare

@Benboerba620 Benboerba620 released this 07 Jun 12:12

新增

  • research 研究闭环(基座自带能力,零依赖起步):输入源 = wiki/ + websearch + 可选数据源(tushare / gangtise / 自有 API,key 走环境变量);按研究要点模板输出到 output/research/,每条事实标来源([本地] / [网页] / [推测] / [待验证]);讨论升级后主动提示"是否沉淀进 wiki",确认后回写 wiki/explorations/,形成闭环。见 system/skills/research.md
  • ARCHITECTURE.md:架构图(基座 + 槽位 + 维护)+ 文件夹结构图 + 完整闭环图。

改进

  • 结构精简:把机械零件(skills/ integrations/ scripts/ interfaces/ templates/)统一收进 system/,顶层目录 13 → 8,新人一眼能分清"自己读的"和"agent 用的"。
  • 防臃肿加固structure-health 不再把 status: planned 模块的未来输出目录误报为"缺失";post-install-cleanup 增加"瘦身后清扫归档样例残留引用"的步骤,避免死链。

文档

  • README / INSTALL-FOR-AI 全量同步到 system/ 路径;README 增加「研究闭环」示例段与「最近更新」段;补 LICENSE / CHANGELOG / .gitattributes。