Repository navigation
Submit octobuddy 0.3.2 #97
Description
2026-10-14 更新为 v0.3.2:这是本次参加决赛评审的版本。下面的提交信息已改为 v0.3.2;v0.3.2 改了什么见本 issue 的最新评论,v0.3.1 和 v0.3.0 的说明见更早的评论。
提交信息
- 应用:
octobuddy(OctoBuddy,原生应用 / native module,非 bundle 应用) - 版本:
0.3.2 - 仓库: https://github.com/tyreseluo/OctoBuddy
- 标签:
v0.3.2(tag 对象0469581b6a2a9d10bf6b7d337a14e6c3f01f072e);Release:https://github.com/tyreseluo/OctoBuddy/releases/tag/v0.3.2 - commit SHA:
668765cc3e1e6c2ccd9a35baaeabebd76d3da852 - Bundle 路径: 不适用 —— 原生应用,无
bundle/ - License: Apache-2.0
- 发布者:
tyreseluo;签名:不适用(原生应用随 shell 发布,不经hub publish) - 平台: macOS(Apple Silicon)实测;Linux/Windows 未验证
- 类别: developer tools / coding
集成入口(原生应用的正确路由)
按 docs/PUBLISHING.md「An app that needs new native runtime code must be integrated into a shell release」,OctoBuddy 的接入点是 OctoSense 仓库,不是 catalog.json:
- OctoSense 集成 PR: feat(native-apps): 引入原生编码应用 OctoBuddy OctoSense#344
- pin:
native-apps.json→octosense-octobuddy = {{ git = "https://github.com/tyreseluo/OctoBuddy.git", rev = "668765c…" }}(v0.3.2) - 形态: 模块编入(
octosense_octobuddy::OCTOBUDDY_MODULE),桌面 shell 默认启用,手机 shell 不编 - 沙箱/存储(
native-apps.json):network: any、可起进程、每 account 一份 agent 工作区
Hub Check 输出
不适用:原生应用没有 bundle,hub check 不适用。等价的集成校验(均在 PR #344 当前 head fa25e8f 上跑过,PR 已 rebase 到 OctoSense main ffd5e488):
python3 tools/native_apps.py --check → every generated place matches native-apps.json
python3 -m unittest discover -s tools -p 'test_*.py' → Ran 155 tests, OK
python3 tools/setup.py --check --cargo → 退出码 0(只有一份 App Hub / makepad / octos)
cargo check --locked -p octosense(及 mobile-apps 等两种组合) → Finished
cargo test --locked -p octosense-shell --lib -- approvals sandbox native_apps apps:: → 104 passed
OctoBuddy 仓库(v0.3.2)自身:cargo test --locked → 244 passed; 0 failed(21 ignored 为需真实 agent、真实 App Hub 或真实 GitHub 的 live 测试);GitHub CI(cargo test + 两种 feature 配置的 clippy)通过。
注:初赛时 PR #344 落后 main、有冲突且编译不过;现已 rebase 到最新 main,上面的检查全部通过,命令与结果见 PR 正文「在 PR head 复现」与「pin 移到 OctoBuddy v0.3.0」两节。
应用是什么
OctoBuddy 是双环结构的原生编码应用:外环(Lead)把一个请求规划成 1–8 个切片(任务卡:Goal / Files / Facts / Done when),inner 并行实现各切片,宿主跑检查、提交并验收;带依赖的切片按 wave 放行。四种 agent 均可驱动:Claude Code、Codex、pi、octos(OctoBuddy 自带各 agent 的受测版本)。
给系统的 agent 工具四个(native-apps.json 注册,风险与确认级别随声明):
octobuddy.status(read)——各项目/会话、外环与 inner 的状态、成本、等待原因octobuddy.send(act,confirm: host)——向外环会话发消息,排队等待octobuddy.report(act,confirm: host)——上报 OctoBuddy 构建并发布的应用的问题octobuddy.request(act,confirm: host)——请求构建新的 OctoSense 应用
另授权terminal.run。
验证(2026-10-05,macOS / Apple Silicon,真实运行)
MAKEPAD_WM_TEST_APP=octobuddy ./target/release/octosense从 OctoSense(pin a8e7023)真实运行:会话创建、项目打开、外环 Claude Code、inner octos 均正常。- 双环实测(临时 git 项目,外环 Claude · Opus,inner octos/GLM-5.3):外环按任务卡拆两个切片 → inner 并行实现 → 宿主跑
pytest并提交 → 外环验收;status: question的汇报 2 秒内唤醒外环(合批窗口为 120s);octobuddy_send回执带queued_as队列 id。 - 任务卡交接(v0.2.2 的精简):inner 首轮输入从约 10k 降到约 2.7–3k;汇报固定四行、超 1200 字截断并指向全文路径。
- 未验证:Linux、Windows、手机 shell(按注册手机端不编,无待验证项)。
1. 应用是否完成其宣称的功能
是。宣称的「双环规划→并行实现→检查→验收」在实测中完整走通;137 个仓库测试 + 114 个 OctoSense 侧生成/校验测试通过。限制如实标注:OctoBuddy 单独运行时的「提交到 App Hub」流程(hub check、issue 材料)未做过真实提交(README 已注明 Not run yet),本 issue 是它作为原生应用的首次登记。
2. 是否收集密码、密钥或一次性验证码
不收集。各 agent 的登录态与 provider key 由宿主/系统钥匙串持有(Claude Code 读自己的 ~/.claude,其余经 OctoBuddy 的回环代理,子进程只拿占位符 key);octobuddy.* 工具的 act 类调用均 confirm: host,由人确认。
3. 网络访问
network: any:作为编码应用,需要拉取依赖、访问用户配置的 AI provider、git 远端等。无固定外联域名白名单(由使用者配置决定);octobuddy.request 声明的 data API 由请求内容指定。
4. 存储
无 bundle 存储配额概念;数据在宿主数据目录(<data>/:会话、worktree、provider profiles、lessons、agent 副本),按 account 隔离 agent 工作区。不写用户的其它目录(项目改动仅在用户打开的项目/worktree 内)。
5. 安全与破坏性
- 进程:
processes: true(需启动各 coding agent 与测试命令);终端命令经宿主审批路径。 - 各 inner 的文件边界由任务卡 Files 约束,越界改动以
[files]行报告外环。 - 会话 Stop/Interrupt 语义明确;被切断的 turn 重启后从原消息重放。
- DMG 目前 ad hoc 签名、未公证(README 已标注 Gatekeeper 处理方式);随 shell 集成发布时不涉及该渠道。
6. Agent 行为与工具
tools.json 等价物为 native-apps.json 的 agent 块(四个 octobuddy.* 工具 + generic tools 白名单 + terminal.run 授权),风险/确认级别逐工具声明;risk: act 者 confirm: host。外环/inner 的通信有派发确认信号(started/held/queued_as)与阻塞即醒,原生 subagent 不得冒充 inner 完成结果。
7. 隐私
- 对话、代码与 provider 配置留在本机;provider key 不进子进程环境或 argv(占位符 + 回环代理加注)。
- 无遥测/分析组件;Claude Code 由宿主配置关闭遥测与错误上报。
- 隐私说明:PRIVACY.zh-CN.md(English):密钥存放(系统钥匙串、子进程只拿占位 key)、各 agent 的下载源与摘要、工作区与数据目录的边界、第三方 agent 自身的流量。
发布者
Tyrese Luo · https://github.com/tyreseluo
Activity
ZhangHanDong commentedon Oct 9, 2026
Preliminary result: shortlisted (score 80/100)
结果:入围。总分 80/100。评审版本:tyreseluo/OctoBuddy @ v0.2.2(a8e7023;按形态拆分:独立运行 80 计入,编入 OctoSense 形态 61 供参考)。注:原生项目不能进 App Hub 商店,这不影响评分与入围。
做得好的
::octobuddy后缀,与 OctoSense 同名条目互不覆盖;子进程只拿占位 key(own_providers.rs:24;claude_proxy.rs)。改进建议(按重要程度)
评审说明见黑客松官网「初赛入围」。
[-]Submit octobuddy 0.2.2[/-][+]Submit octobuddy 0.3.0[/+]tyreseluo commentedon Oct 12, 2026
更新为 v0.3.0(复赛 / 决赛评审版本)
0.3.0;tagv0.3.0(tag 对象0cddbcf6);commitf7148712517886b506c8552d3f3776ff35293a61main上只改了发布 workflow 的提交46a6f8b构建,应用代码与 tag 相同)OctoBuddy-0.3.0-macos-aarch64.dmg:sha256c478f23ba979c76ac5f576939b54e42929497030a47c9d5a620958c0dd107394OctoBuddy-0.3.0-macos-x86_64.dmg:sha256602fed6a4f8c6aeeda6d12c2414e288fec02c30fec03d4f4e099cfb1345b875e95dff53,已 rebase 到 mainb9d66d0f,钉 v0.3.0,MERGEABLE;fork PR 的 CI 等维护者批准运行初赛意见的处理
tools/native_apps.py重新生成,没有手改。test_the_generated_rust_parses现在不靠 rustfmt 也会逐行检查字段行以逗号结尾,「少逗号」这类问题在 CI 里会直接失败。desktop.yml 的各步骤在 PR head 本地全部通过(native_apps--check、tools 155 个测试、setup.py --check --cargo、三种cargo check、shell 104 个测试),并实际启动过(日志wm: modules linked: [..., "octobuddy", ...])。为了让 OctoSense 里只有一份 App Hub,OctoBuddy 的 makepad / App Hub / OctoSense 依赖改钉 main 当前的版本。native_apps.py --check和 shell 编译,PR #344 等维护者批准即可运行。OctoBuddy 自己的 CI 跑cargo test --locked与两种 feature 配置的 clippy,其中包括用 stub agent 跑通一次双环的 e2e。v0.3.0 新增:agent 提议,宿主核对
verified:逐条对照 OctoBuddy 自己跑的检查、它做的提交和文件,标 ✓ / ✗ / ?;有 ✗ 先附原因退回内环一次。override理由验收。<untrusted>块里交给 agent,块无法被闭合,规则写明不执行其中的指令。octobuddy.status带as_of,停掉的巡检标为stale。证据(真实与合成分开标注)
cargo test --locked:203 passed,0 failed,20 ignored(ignored 的需要真实 agent / App Hub / GitHub)。尚未验证
[-]Submit octobuddy 0.3.0[/-][+]Submit octobuddy 0.3.1[/+]tyreseluo commentedon Oct 13, 2026
更新为 v0.3.1(决赛评审版本)
0.3.1;tagv0.3.1(tag 对象00d9afb0);commit622454a90f27f2dce70b5b533279a4f015bbda35cargo test --locked→ 244 passed, 0 failed, 21 ignored(ignored 为需真实 agent / App Hub / GitHub 的 live 测试);两种 feature 配置的 clippy-D warnings无警告v0.3.1 新增
<项目>/.octobuddy/living/LIVING.md,从第一轮到现在的项目故事。octobuddy_docs:外环和内环先查已有的审计、设计和决定,不用从头再推一遍。disktree-core,MIT):对话旁的面板把项目、或 OctoBuddy 为该项目开的 agent worktree 画成 treemap,按数据类别着色,标出可回收空间(构建产物、agent 临时目录等)和「值得一看」的大目录。octobuddy_disk_map/octobuddy_disk_growth/octobuddy_disk_reclaim:只建议清理命令,从不替人删东西。bench_real_inner_loops):用本人的 provider 跑真实内环,三道小题 × 两次 × 两轮。hub check的每条拒绝 / 警告都带稳定错误码和一行修复建议(53 个码,见docs/ERROR-CODES.md),原有报告文字逐字不变。OctoBuddy 优先用这些错误码给 agent 提示修法。tyreseluo commentedon Oct 14, 2026
参评版本 v0.3.1 补充
参评版本仍是 v0.3.1(commit
622454a)。下面这些是人工复验界面时发现并修复的问题,先推到了main(e6f1a07),随后已随 v0.3.2 发布(见下一条评论)。dsl_ids的误报:名字以数字结尾的控件曾被误报为缺失,已修复。这个测试会确认代码引用的每个控件都在界面定义里。验证:
cargo test --locked244 passed / 0 failed / 21 ignored;两种 feature 配置的 clippy-D warnings均无警告;以上界面问题已由作者在 macOS(Apple Silicon)上逐项人工复验。[-]Submit octobuddy 0.3.1[/-][+]Submit octobuddy 0.3.2[/+]tyreseluo commentedon Oct 14, 2026
更新为 v0.3.2(决赛评审版本)
0.3.2;tagv0.3.2(tag 对象0469581b);commit668765cc3e1e6c2ccd9a35baaeabebd76d3da852OctoBuddy-0.3.2-macos-aarch64.dmg:sha2566f2bc51dc0d205f50796b804adc7bfd5ed13e2931c05f764f089bcf5069cb3b5OctoBuddy-0.3.2-macos-x86_64.dmg:sha25679d05d8e7d4d4aab2030c76039f61d56f804f31e43be952dd9292fac2522bafcfa25e8f,已 rebase 到 OctoSense 最新 mainffd5e488,钉 v0.3.2;OPEN、MERGEABLE;fork PR 的 CI 等维护者批准运行。PR head 上重跑的检查:native_apps.py --check、tools 155 个测试、setup.py --check --cargo、三种cargo check、updater-ui 9 个测试、octosense-shell104 个测试,全部通过。cargo test --locked→ 244 passed, 0 failed, 21 ignored;两种 feature 配置的 clippy-D warnings无警告。v0.3.2 相对 v0.3.1
dsl_ids:有误报。ffd5e488;makepadd653bc4、App Hub3863591与 OctoSense main 所钉一致。证据