Repository navigation
Conversation
tyreseluo
marked this pull request as draft
October 6, 2026 06:58
tyreseluo
force-pushed
the
feat/octobuddy-app
branch
4 times, most recently
from
October 14, 2026 02:09
95dff53 to
d1956f4
Compare
以 git pin(f714871,v0.3.0)从 github.com/tyreseluo/OctoBuddy 引入原生编码应用:外环 把请求拆成切片,inner 并行实现,宿主跑检查、提交并验收;支持 Claude Code、 Codex、pi 和 octos 四种 agent。桌面 shell 默认编入,手机 shell 不编。 - native-apps.json 注册(模块形态、network any、可起进程、每 account 一份 agent 工作区),给系统的 agent 工具四个:octobuddy.status / send / report / request,并授权 terminal.run - docs/native-apps/octobuddy(.zh-CN).md:逐项说明这些授权的用途、约束和拿掉的 后果;README 的 agent 表链接过去 - tools/native_apps.py:原生 app 可声明显示名(name,可选,不超过 40 字符), NativeApp 随之生成;approvals::sheet::app_label 优先用它(确认单上是 「OctoBuddy」而不是「Octobuddy」) - 新测试:生成的 Rust 能解析(结构体字段和每个 NativeApp 条目的字段都以逗号 结尾,不靠 rustfmt 也查;有 rustfmt 时整份解析)、name 的校验与生成、 app_label 用声明的 name - OctoBuddy 与本仓共用一个 App Hub(3863591)、一个 makepad(d653bc4)和本仓 的 app-peers / llm-config,Cargo.lock 只多出 OctoBuddy 一项
tyreseluo
force-pushed
the
feat/octobuddy-app
branch
from
October 14, 2026 02:46
d1956f4 to
fa25e8f
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
从独立仓库 OctoBuddy 引入原生编码应用,钉在
9d6f0d8:注册内容(
native-apps.json)network: any、可起进程;存储:每 account 一份 agent 工作区。octobuddy.status(读)、octobuddy.send/octobuddy.report/octobuddy.request(每次经人确认),并授权terminal.run。docs/native-apps/octobuddy.zh-CN.md(English),README 的 agent 表链接过去。其中写明:OctoBuddy 在各平台都是模块,sandbox只作用于进程启动,所以目前它跑在 shell 进程里、没有 OS 沙箱约束,与 Rinx、App Hub 相同。顺带的小能力
tools/native_apps.py:原生 app 可声明显示名name(可选、非空、≤40 字符、无首尾空格),NativeApp生成name: Option<&'static str>。approvals::sheet::app_label优先用它,确认单上显示「OctoBuddy」(此前会是「Octobuddy」)。相对第一版的修正(评审)
pub name: Option<&'static str>缺逗号,crates/shell/src/native_apps.rs:57语法错误。已修并重新生成;新测试test_the_generated_rust_parses(生成的结构体字段都以逗号结尾,并用 rustfmt 整份解析),去掉逗号时它会失败。sandbox/tests.rs手写的NativeApp没补新字段,shell 的测试编译不过。已补。58c3c8a,lock 里出现两份octosense-app-policy,过不了setup.py --cargo的「一个 App Hub」检查。OctoBuddy 已改钉本仓 main 的 App Hub(2e57689)及其依赖的 makepad(32d6415)。7acfbf3),生成内容全部由native_apps.py重新生成。.sources/makepad,与提交的代码不一致。下面的验证全部在全新检出里重做(新 worktree,.sources由tools/setup.py按锁文件准备,只含审过的 runtime-patches)。Verification(全新检出,
e0550c7)python3 tools/native_apps.py --check✅python3 -m unittest discover -s tools -p 'test_*.py':124 通过 ✅python3 tools/setup.py --check --cargo✅(一个 Makepad、一个 App Hub、一个 octos)cargo check --locked -p octosense(桌面,默认 features,含app-octobuddy)✅cargo test --locked -p octosense-shell --lib -- approvals sandbox native_apps apps:::102 通过 ✅(含新增的a_native_apps_declared_name_is_what_its_sheets_say)cargo build --locked -p octosense,OCTOSENSE_HOME=<临时目录> MAKEPAD_WM_TEST_APP=octobuddy ./target/debug/octosense:OctoBuddy 在 shell 内以模块打开,菜单栏是「Ask OctoBuddy」。全新目录里未同意过 agent 时日志是did not take its assistant service(首次使用的同意流程,module_host.rs在 create 之前撤回);带developer-profile时是octobuddy (i1g1) took its assistant service9d6f0d8)✅,其中新增的e2e_tests::dual_loop_plans_two_slices_runs_inner_then_checks_commits_and_accepts用 stub octos 在 GitHub runner 上跑通「计划 → inner 改文件 → 检查 → 提交 → 审查 → 波次放行」后续
OctoBuddy 侧演进只动它自己仓库;这边升级 = 改
native-apps.json的 rev 再跑python3 tools/native_apps.py。main 已有kernel: "coding"端口(ADR 0003),OctoBuddy 的 inner 能否改用它、不再自带octos serve,另开 PR 讨论。在 PR head 复现(
84a6b23)rebase 到当前 main(
b9d66d0),仍是一个提交。全部在全新 worktree 里做,.sources由python3 tools/setup.py --no-hub按锁文件准备(只含审过的 runtime-patches);检查照.github/workflows/desktop.yml逐条跑。这一节取代上面e0550c7的 Verification。冲突怎么解的
tools/native_apps.py、tools/test_native_apps.py:以 main 现有版本为底(新增的updaterapp、wasm-functions/craft-engines默认 feature),再加回name字段的校验、生成和测试。Cargo.toml、desktop/Cargo.toml、crates/shell/Cargo.toml、crates/shell/src/native_apps.rs、crates/ai-host/src/native_agents.rs:都是生成文件,不手改——取 main 的版本,再由python3 tools/native_apps.py重新生成(表里有 main 的updater条目和 Sheets 的 agent 块,每个条目都有name)。Cargo.lock:取 main 的,cargo metadata只加 OctoBuddy 一项(+17 行),其他包不动。OctoBuddy 的 pin 改为
1e5e0fd(过渡)main 的 App Hub 已到
3863591、makepad 到d653bc4。原 pin9d6f0d8钉的是 App Hub2e57689:cargo check照样通过,但 lock 里会有两份octosense-app-policy,python3 tools/setup.py --check --cargo报More than one App Hub source(makepad 和本仓的 crate 由根[patch]统一到一份,App Hub 没法这样统一)。OctoBuddybuild/deps-octosense-main分支上的1e5e0fd改钉 App Hub3863591、makepadd653bc4、本仓b9d66d0。这是过渡 pin,2026-10-12 已换成 OctoBuddy 的v0.3.0(见下一节)。命令与结果(本机 macOS arm64,
84a6b23)python3 tools/native_apps.py --check:every generated place matches native-apps.json ✅python3 -m unittest discover -s tools -p 'test_*.py':155 通过 ✅python3 tools/setup.py --check --cargo✅(一个 Makepad、一个 App Hub、一个 octos、一个 Rinx)cargo check --locked -p octosense(默认 features,含app-octobuddy)✅cargo check --locked -p octosense --features mobile-apps✅cargo check --locked -p octosense -p octosense-reference -p octosense-appcard --features mobile-apps,app-appcard✅bash ../tools/check-shell-graph.sh -p octosense:4 组 features × target 全部 ok,one octos ✅python3 desktop/packaging/make_icons.py --check(75 个图标)✅;python3 -m unittest discover -s desktop/scripts -p 'test_package.py':25 通过、1 跳过 ✅;「One copy of every shell source」无重复 ✅cargo test --locked -p octosense-updater-ui --lib:8 通过 ✅;cargo check --locked -p octosense-updater-ui --example updates✅cargo test --locked -p octosense-shell --lib -- approvals sandbox native_apps apps:::104 通过 ✅(含a_native_apps_declared_name_is_what_its_sheets_say)crates/shell/src/wasm_service.rs、crates/wasm-host里fetch_update的弃用警告),这个 PR 没有新增cargo build --locked -p octosense,OCTOSENSE_HOME=<临时目录> MAKEPAD_WM_TEST_APP=octobuddy ./target/debug/octosense:日志有wm: modules linked: [..., "octobuddy", ...]和wm: launched octobuddy as client 1 (in-process, octobuddy);全新目录里没同意过 agent,所以是did not take its assistant service(与上面相同)「少逗号」这类错误怎么防住
test_the_generated_rust_parses现在不靠 rustfmt 也查:结构体字段(pub name: …)和每个NativeApp { … }条目里的字段(name: …)都必须以逗号结尾;机器上有 rustfmt 时再整份解析。CI 的工具链若没装 rustfmt,整份解析会跳过,逗号检查照跑。验证过:分别去掉生成器里结构体那一行和条目那一行的逗号,在 PATH 里没有 rustfmt 时这条测试都失败。Desktop workflow 本来就跑 tools 的 unittest、native_apps.py --check和上面三条cargo check,生成器测试和 shell 编译都在 CI 里。CI:这是 fork 来的 PR,新 head 上的 workflow(Desktop、Phone、Embedded browser、Platform accounts、WebAssembly on Windows)都是
action_required,要维护者批准后才跑。pin 移到 OctoBuddy v0.3.0(
95dff53)OctoBuddy 的 pin 从过渡的
1e5e0fd移到v0.3.0的提交f714871。依赖与1e5e0fd相同(App Hub3863591、makepadd653bc4、本仓b9d66d0)。改动只有native-apps.json的 rev、生成器同步的Cargo.toml,以及Cargo.lock里 OctoBuddy 一项(版本 0.2.2 → 0.3.0 和 rev),其他包不动。仍是一个提交。v0.3.0 相对
1e5e0fd加的是 OctoBuddy 内部的东西(声明核对、验收闸、操作回执与读回、资料隔离、验收单、各环的实时状态、跟进 App Hub 审核意见),给系统的四个 agent 工具和授权都没变;octobuddy.status的返回多了as_of、各环的state/waiting_on/last_heard_secs_ago和会话的acceptance。在
95dff53重跑(本机 macOS arm64):python3 tools/native_apps.py --check:every generated place matches native-apps.json ✅python3 -m unittest discover -s tools -p 'test_*.py':155 通过 ✅python3 tools/setup.py --check --cargo✅cargo check --locked -p octosense✅;--features mobile-apps✅;-p octosense -p octosense-reference -p octosense-appcard --features mobile-apps,app-appcard✅cargo test --locked -p octosense-shell --lib -- approvals sandbox native_apps apps:::104 通过 ✅octosense正常启动,日志wm: modules linked: [..., "octobuddy", ...]升级到 OctoSense main
ffd5e48,pin 移到 OctoBuddyf5cc3b1(d1956f4)rebase 到当前 main(
ffd5e488,比上一版多 136 个提交),无冲突,仍是一个提交。OctoBuddy 的 pin 从v0.3.0(f714871)移到f5cc3b1:包含 v0.3.1 的全部内容、之后界面复验的修复,以及把 OctoBuddy 依赖的本仓 crate 升到ffd5e488(App Hub3863591、makepadd653bc4与 main 所钉一致,不变)。改动只有
native-apps.json的 rev、生成器同步的Cargo.toml,以及Cargo.lock:OctoBuddy 一项(0.3.0 → 0.3.1 和 rev),加上 OctoBuddy 新带进来的三个包disktree-core(tobi/disktree,MIT,磁盘地图插件用)、sysinfo、trash;其他包不动。给系统的四个 agent 工具、授权和沙箱声明都没变。在
d1956f4重跑(本机 macOS arm64,全新 worktree,.sources由python3 tools/setup.py按锁文件准备):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(一份 makepad、一份 App Hub、一份 octos)✅cargo check --locked -p octosense✅;--features mobile-apps✅;-p octosense -p octosense-reference -p octosense-appcard --features mobile-apps,app-appcard✅cargo test --locked -p octosense-updater-ui --lib:9 通过 ✅;cargo check --locked -p octosense-updater-ui --example updates✅cargo test --locked -p octosense-shell --lib -- approvals sandbox native_apps apps:::104 通过 ✅pin 移到 OctoBuddy v0.3.2(
fa25e8f)OctoBuddy 的 pin 从
f5cc3b1移到v0.3.2的提交668765c(相对f5cc3b1只改了版本号和文档)。仍基于 mainffd5e488,仍是一个提交。改动只有native-apps.json的 rev、生成器同步的Cargo.toml,以及Cargo.lock里 OctoBuddy 一项(0.3.1 → 0.3.2 和 rev);cargo metadata --locked通过,其他包不动。在
fa25e8f重跑(本机 macOS arm64,全新 worktree):native_apps.py --check✅;tools 155 个测试 OK ✅;setup.py --check --cargo退出码 0 ✅;cargo check --locked -p octosense✅、--features mobile-apps✅、-p octosense -p octosense-reference -p octosense-appcard --features mobile-apps,app-appcard✅;updater-ui 9 个测试 ✅、--example updates✅;octosense-shell104 个测试 ✅。