Zhengshou Lai
3d8887bba1
fix(ollama): os.getuid() 仅 POSIX —— Windows import 崩溃(xiaohe.exe smoke 失败根因)
2026-08-18 00:56:29 +08:00
Zhengshou Lai
f14c39d7c0
feat(agents): 新增 mydsh 启动器 —— DeepSeek Harness CLI 包装
...
- launcher _BACKENDS 加 dsh:profile 透传、zstd 会话列表(session/title 或首条用户消息)、
--resume 透传、DSH_HOME 环境变量与 expanduser
- entrypoints/cli/completion/打包/卸载全触点 + TestDsh 用例(裸跑/版本/透传/列表/缺 bin)
2026-08-17 19:54:13 +08:00
Zhengshou Lai
f12cd5fcf1
feat(ollama): adapter 增强 — system 提升重构 + 保活终止 + 运行时 num_ctx 探测
...
- ollama_adapter: 拆出 is_adapter_endpoint/upstream_target/parse_num_ctx/
runtime_num_ctx/listen_url;system 提升保留 cache_control;转发响应始终
connection: close 终止(修 UI 卡 working);支持 https 上游与 600s 超时
- commands/ollama: 用 listen_url() 替代硬编码;mac launchd 已加载时重启而非
跳过;sysd 启动前探测 active;新增 _wait_healthy
- tests: 覆盖 endpoint 判定、num_ctx 解析、转发保活与命令健康等待
2026-08-16 08:51:37 +08:00
Zhengshou Lai
fa792674d3
myclaude -r: 清块后 \r 归位列 0,修复 Resuming 前空格式错位
...
raw 模式下 ONLCR 关闭,_draw_picker_block 每行以 \n 结尾时光标停在行末列而非列 0;\x1b[12A 上移、\x1b[12M 删除后列不变,rich console.print 的 Resuming 从 ~40 列打印,前面出现一长串空格。清块后补 \r 归位。
2026-08-16 00:06:44 +08:00
Zhengshou Lai
4a37d8d218
chore(version): bump 0.2.1 (ollama adapter rides xiaohe train)
2026-08-15 23:55:25 +08:00
Zhengshou Lai
0b0de97363
feat(ollama): Anthropic→Ollama 归一化 adapter + launchd/systemd 常驻管理
2026-08-15 23:31:39 +08:00
Zhengshou Lai
75a72a8b24
myclaude -r: 修快速连按方向键被退出 + 隐藏光标 + 退出删除行不留空行
...
- _read_key 改按需读 CSI 序列(方向键读到终止符即返回),连按 \x1b[B 不再被吞进同一序列误判为 ESC 退出
- picker 全程隐藏光标(\x1b[?25l),退出恢复(\x1b[?25h),末尾不再突兀闪现光标
- 退出改用 Delete Line(\x1b[{n}M)删除块区域,替代逐行清空,不再留下 N 个空行
- tests: 新增快速连按方向键回归测试
2026-08-15 22:38:15 +08:00
Zhengshou Lai
c342c4e94a
myclaude -r: 固定块 ANSI 重绘修复对齐与滚动冲突 + cli 测试 mock 修复
...
- picker 弃用 Live 整屏接管,改固定 12 行块增量重绘(\x1b[{n}A 回到块顶逐行覆盖),scrollback 不受影响
- 每行单行渲染,title 列定宽 43 + CJK 感知截断,布局按 80 列设计
- tests: 新增 TestPickerBlock;test_cli which mock 改 side_effect 只命中后端二进制,避免 _npm_global_bin 多跑 subprocess.run;裸 --resume 测试更新为新 picker 语义
2026-08-15 22:25:39 +08:00
Zhengshou Lai
969fc9ac27
myclaude -r: 交互式 resume picker(方向键/翻页/即时过滤)
2026-08-15 15:44:33 +08:00
Zhengshou Lai
88170bdf57
myclaude -r: unify resume picker with xiaohe client sessions
...
Bare -r/--resume now opens a numbered picker merging jsonl (source of
truth) with the xiaohe hosted-session index, deduped by cli_session_id
and sorted by real content activity (not jsonl mtime, which the xiaohe
projection re-touches). -l gains a Src column (xiaohe/cli); -r <id> and
-c stay passthrough. Adds read-only xiaohe_sessions data layer + tests.
2026-08-15 13:42:53 +08:00
Zhengshou Lai
d6a0f455b0
Forward xiaohe upgrade --beta so the wrapper matches the agent CLI.
2026-08-14 16:26:39 +08:00
Zhengshou Lai
c2d8e1c014
Refuse make install from GHA runner worktrees.
...
Keep host ~/.local/bin myagents links from pointing at ephemeral _work checkouts.
2026-08-11 22:16:56 +08:00
Zhengshou Lai
3d40e27a93
Remove MetaBot coupling from uninstall and workspace init.
...
Keep silent cleanup of legacy metabot stubs; drop METABOT_HOME symlink.
2026-08-11 17:23:23 +08:00
Zhengshou Lai
18154020a3
Prefer xiaohe ensure-agent hints and support non-interactive yes installs.
...
Install scripts and product CLI can install the default backend without a picker,
and skip messages point at xiaohe when it is on PATH.
2026-08-10 07:46:55 +08:00
Zhengshou Lai
5efc8380fb
chore: bump myagents to 0.2.0
...
Pinned 0.1.0 left stale launcher wheels after xiaohe upgrades (missing backend_available).
2026-08-09 17:18:50 +08:00
Zhengshou Lai
3f79301eb3
feat: ensure-agent + resolve npm-global CLIs without PATH
...
Add guided multi-select ensure-agent, resolve backend binaries via npm
prefix when not on PATH, and optionally persist npm bin in shell rc.
2026-08-09 16:53:06 +08:00
Zhengshou Lai
9344b376da
fix: clarify npm-global claude install progress vs skills-node
2026-08-09 16:42:28 +08:00
Zhengshou Lai
6702f67462
feat: guided auto-install for missing agent CLIs
...
Offer install with default Yes on TTY; auto-install when non-interactive
(install/CI). Resolve binaries from npm global prefix after install.
2026-08-09 15:54:23 +08:00
Zhengshou Lai
c3e119e3c9
feat: offer backend CLI install on missing binary (entrypoints) + shared backend_available/ensure_backend helpers
...
- Standalone my* wrappers pass offer_install=True so a missing backend CLI
triggers the interactive 'Install now? [y/N]' prompt (was a bare not-found).
- Add backend_available()/ensure_backend() to expose the backend registry
(binary/env_bin/install_cmd) for xiaohe init / ensure-deps to reuse.
2026-08-09 15:08:03 +08:00
Zhengshou Lai
a95c920d8a
chore(myagents): 产品包名 xiaohe-api → xiaohe
2026-08-07 09:34:14 +08:00
Zhengshou Lai
1bce85cc19
perf(sessions): cache first-prompt titles, skip local-command noise in -l
...
Cursor/Claude session listing now scans only the head of each jsonl for a
title (aiTitle/customTitle/first user prompt), caches by (path, mtime, size),
and filters local-command protocol rows. COLUMNS=120 pinned in the table test.
2026-08-02 16:09:01 +08:00
Zhengshou Lai
ffac0ba37d
feat: add mycursor backend; drop myagents xiaohe entrypoint
...
Cursor Agent CLI wrapper (mycursor) with resume/session listing.
Product xiaohe CLI stays in xiaohe-api only — no dual entry.
2026-07-29 21:54:30 +08:00
Zhengshou Lai
6ec2a3ebe6
docs(skill): point paths at packages/myagents
2026-07-29 21:36:21 +08:00
Zhengshou Lai
d99c5534cb
refactor: drop workspace sync launcher path; simplify upgrade/switch
...
Align with xiaohe wheel/pip install: remove sync_workspace and desktop
launcher coupling from upgrade/switch flows.
2026-07-25 12:43:24 +08:00
Zhengshou Lai
37961feb21
feat: add myagents backends command (list supported agent backends)
2026-07-25 00:42:56 +08:00
Zhengshou Lai
7b6da50c93
test(upgrade): make pip-flag tests hermetic, cover uv branch
...
uv run injects VIRTUAL_ENV, which silently selects the uv pip branch and
broke test_uses_break_system_packages_on_externally_managed. Both tests
now delete VIRTUAL_ENV to pin the plain-pip branch; new test pins the
uv branch via mocks.
2026-07-18 11:47:08 +08:00
Zhengshou Lai
8be2a2dcd0
chore: drop dead templates/workspace and stale doc references
...
Nothing in the codebase ever read templates/workspace/; workspace
bootstrap is handled by the xiaohe runtime sync (MANAGED_PATHS).
README/AGENTS.md structure trees and the first-run claim updated.
2026-07-18 11:47:08 +08:00
Zhengshou Lai
12d746e0f8
fix(xiaohe): completion 缺失 _xiaohe + 首次运行无认证时引导设置 provider
...
- completion_install: completions_installed() 原只检查 progs[0](myagents),
已存在则短路,导致 xiaohe 等后加 prog 的 completion 从未安装。
改为遍历全部 prog,任一缺失即触发重新安装。
- first_run.py: xiaohe_main() 启动时检测是否有任何可用认证(env var、
credentials、settings.json、已存 keys),无则弹交互式 provider 选择菜单。
- install.sh.in: 移除末尾 xiaohe init + scripts/init.sh wizard,安装脚本
只装软件不初始化配置。
2026-07-16 23:25:04 +08:00
Zhengshou Lai
3d840a1ca3
fix(provider): _ProviderGroup 自定义 invoke 支持 invoke_without_command + 选项后置解析
...
Click 8.4.2 的 resolve_command 不兼容 invoke_without_command + 非子命令
位置参数。自定义 _ProviderGroup.invoke() 在首参数非子命令时路由到
group callback,并添加 _reparse_options 处理 allow_interspersed_args=False
时选项在 provider_id 后不被解析的问题。
修复 ctx.args = ctx._protected_args 后 clear() 导致引用共享清空的 bug。
测试:更新 test_switch.py 匹配新的 switch version/agent 子命令结构。
2026-07-16 21:27:57 +08:00
Zhengshou Lai
8a36245b5c
chore: 累积
2026-07-16 21:17:31 +08:00
Zhengshou Lai
d6344fef75
chore: 累积更新
2026-07-16 21:16:27 +08:00
Zhengshou Lai
46a41eb82a
fix(provider): 测试与入口修复
2026-07-16 21:13:24 +08:00
Zhengshou Lai
dd2011ae2d
refactor(backend): backend 改名 provider,拆出 info 子命令
2026-07-16 21:07:16 +08:00
Zhengshou Lai
e021aa9dbf
fix(backend): 改回全局 ~/.claude/settings.json + 补充测试
...
- claude_settings: 目标文件改为全局 ~/.claude/settings.json,与 cc-switch 行为一致
- claude_settings: 切回 claude 时保留用户已有的 ANTHROPIC_API_KEY
- backend: 修正 save_project_settings -> save_settings,提示文本同步
- test_backends: 清理未用 import
- test_entrypoints: 新增 backend 命令注册测试
- 新增 test_claude_settings / test_secrets / test_backend_command(共 36 tests)
2026-07-16 20:52:12 +08:00
Zhengshou Lai
3ec60aa6b3
feat(backend): 内置 Claude Code 后端切换——DeepSeek / Kimi / Kimi Code
2026-07-16 20:45:20 +08:00
Zhengshou Lai
1348c4f243
fix: Ubuntu 24.04 等 PEP668 系统 Python 安装时自动加 --break-system-packages(安装/升级/卸载全链路)
v0.1.1
2026-07-16 19:43:35 +08:00
Zhengshou Lai
84ad0fa4cf
feat: 审查修复一轮——sync 解引用软链技能/防 CLAUDE.md 崩溃/init 建 agent-tasks;upgrade SHA256 校验+收尾容错;新增 xiaohe switch 回滚;uninstall --all 扩到 ~/.metabot ~/.mytoolkit;下载路径改 xiaohe-agent
2026-07-16 19:36:18 +08:00
Zhengshou Lai
f878a49c8a
feat: xiaohe version——显示 bin 跑的是研发检出还是安装快照(含 git describe);uninstall --all 三重确认
2026-07-16 19:13:51 +08:00
Zhengshou Lai
37eae6f283
feat: xiaohe uninstall——默认只卸 CLI 层,保留 ~/.xiaohe 与 workspace;--all 连配置一起删
2026-07-16 19:06:35 +08:00
Zhengshou Lai
5d34b247ef
feat: xiaohe upgrade + 启动器更名 Xiaohe Agent + CLI 输出全英文
...
- upgrade: 查版本(install.sh)→确认→rich 进度条下载→落 runtime 切 current(留两版)→重装三件套→自动 sync
- launcher: 'Xiaohe Agent.app' / 'Xiaohe Agent.desktop',自动清理旧 XiaoheAgent.{command,app,desktop}
- 修复 _current_version 对缺失 current 软链误判为 'current'
- 全部提示/log 英文化;93 tests passed
2026-07-16 18:55:43 +08:00
Zhengshou Lai
a50a22b992
test: project_root 测试隔离真实 settings.json——补 get_setting patch
2026-07-16 18:36:45 +08:00
Zhengshou Lai
3b8d458fbb
feat: 桌面启动器改 XiaoheAgent.app 形态——icns 图标、无 .command 后缀,Linux 桌面项同步带图标
2026-07-16 18:32:55 +08:00
Zhengshou Lai
f3d5414bf9
feat: xiaohe 命令组 + settings.json 拆分 + workspace 同步引擎
...
- xiaohe:默认转发 default_agent(settings.json default_agent,兼容 myclaude 拼写),
子命令 init(首用引导 workspace 路径+骨架+sync+启动器)/ sync(runtime→workspace
哈希三态同步:新增/覆盖/本地改动跳过;git 检出拒绝)
- settings.py:~/.xiaohe/agent/settings.json 优先,config.json settings 段兜底
- get_workspace_root:env > settings > project_root/workspace > ~/workspace
- build_cli 增 offer_install:缺二进制时交互提示安装(claude/codex 有 install_cmd)
- 测试 +11(settings/sync 引擎三态/幂等/git 拒绝)
2026-07-16 18:10:01 +08:00
Zhengshou Lai
5c3f90e910
feat: add --tmux/-t option to run agents in attachable tmux sessions
...
Wraps the backend in 'tmux new-session -A' with a per-backend, per-directory
session name, so agent sessions survive SSH drops and re-running the same
command reattaches. Falls back to a direct run when already inside tmux,
and errors clearly when tmux is not installed.
2026-07-15 20:03:28 +08:00
Zhengshou Lai
20e22eafd4
fix(hermes): align myhermes resume flags with myclaude UX
...
Hermes -r/--resume requires a session id and has no -c shorthand, so
bare 'myhermes -r' failed with an argparse error. Translate
myagents-style flags like the codex backend:
- bare -r/--resume -> 'hermes sessions browse' (interactive picker)
- -r/--resume <id> -> '--resume <id> --no-restore-cwd'
- -c/--continue/--last -> '--continue --no-restore-cwd'
--no-restore-cwd keeps resumed sessions in the launch cwd, matching
myclaude semantics instead of jumping to the session's original cwd.
2026-07-15 10:34:01 +08:00
Zhengshou Lai
78ca74152f
feat: add hermes backend support
...
- Add myhermes entrypoint and myagents hermes subcommand
- Hermes sessions read from global SQLite store (~/.hermes/state.db)
- Default args: --yolo
- Update README, AGENTS.md, Makefile, pyproject.toml
- Add tests for hermes subcommand, passthrough, and session listing
2026-07-15 10:21:38 +08:00
Zhengshou Lai
2169a0a303
docs(skill): enrich myagents SKILL.md with use cases and skill division table
2026-07-07 23:42:06 +08:00
Zhengshou Lai
47365e26ad
refactor(config): migrate .claude/CLAUDE.md to .agents/AGENTS.md with compatibility symlinks; add skill
2026-07-07 23:34:13 +08:00
Zhengshou Lai
384b9b818b
feat(launcher): mycodex 默认启用 --dangerously-bypass-approvals-and-sandbox
2026-07-07 10:11:53 +08:00
Zhengshou Lai
c07b132f6d
feat(mycodex): 对齐 resume options,支持 -r/--resume/--continue/--last/--all
...
- 新增 _translate_codex_extra,将 -r/--resume 映射为 codex resume
- --continue 映射为 codex continue,--last/--all 映射为 resume --last/--all
- 更新 help 文案与 README 用法示例
- 补充 5 个 codex resume option 单元测试,50 tests passed
2026-07-07 09:05:09 +08:00