Skip to content

Latest commit

 

History

History
327 lines (285 loc) · 48.4 KB

File metadata and controls

327 lines (285 loc) · 48.4 KB

Changelog

All notable changes to this project will be documented in this file.

本项目按日期记录更新;正式发版信息也记录在本文件,不再维护待发布分组。

2026-08-12

  • 准备 7.1.4 patch 版本:为 ChatTool parent 顶层 CLI 增加真实 Click/LazyGroup 注册面生成的 chattool --tree,并补齐顶层 chattool --version
  • 文档与测试同步锁定当前 parent command surface:browserccclientcrsdockerexploremcpnginxserveskilltplogin;已迁出的 dnsghimage 等不重新进入 parent CLI。
  • 发布与文档 workflow gate 同步:发布 workflow 只允许 tag 触发、使用 GitHub OIDC/Trusted Publishing、无 legacy PyPI/Twine password secret,并用 git fetch --no-tags origin master:refs/remotes/origin/master 校验 tag commit 在默认分支;Preview Docs 从 mkdocs.yml site_url 读 URL,并先同步 gh-pages
  • MkDocs Material 启用 pymdownx.emoji 的 Material twemoji/to_svg renderer,避免 source/generated/live docs 漏出未渲染 Material icon shorthand。
  • 发布前置已回读:刷新 PyPI recent-auth 后,chatpypi publisher detail chattool -e RexWzh 显示 active Trusted Publisher cubenlp/ChatTool + publish.yml + (Any)pending_count=0;可按正常 tag-driven OIDC 发布 gate 继续。

2026-07-30

  • 准备 7.1.3 patch 版本:发布 ChatZulip parent 分离结果,使 PyPI 用户获得移除后的 chattool surface 与新的 chattool[zulip] / chattool[arch] / chattool[tools] 依赖边界。
  • PyPI 发布工作流从长期 PyPI username/password secrets 迁移到 cubenlp/ChatTool active Trusted Publisher 与 GitHub Actions OIDC;tag workflow 会先跑稳定测试、build 和 twine check,再执行 tokenless publish。
  • ChatZulip parent 分离:chattool zulipsrc/chattool/tools/zulip/、ChatTool 内 ZulipConfig re-export、Zulip MCP catalog 与 Zulip 专属测试/文档已移除;Zulip 能力由独立 ChatZulip>=0.1.0,<0.2.0 / chatzulip 负责。
  • 新增 chattool[zulip] optional extra,并把 ChatZulip>=0.1.0,<0.2.0 纳入 chattool[arch] / chattool[tools] 聚合安装;ChatTool base install 不再重复维护 Zulip runtime。

2026-07-07

  • 准备 7.1.2 patch 版本:随 ChatImg parent 分离 PR 发布,ChatTool 不再维护 chattool image 内嵌 provider surface,并通过 chattool[images] / chattool[arch] 安装 ChatImg[images]>=0.1.3,<0.2.0
  • AI image providers 已完成 parent 分离:移除 chattool imagesrc/chattool/tools/image/、ChatTool 内 image provider config schemas 与 image 专属测试/文档;image 生成能力由独立 ChatImg>=0.1.3,<0.2.0 / chatimg 负责。
  • chattool[images]chattool[arch] 现在安装独立 ChatImg[images];ChatTool 不再重复维护 Codex/HuggingFace/Liblib/Pollinations/SiliconFlow/Tongyi image provider 实现。
  • ChatTool 的 chatenv 下界同步提升到 chatenv>=0.2.2,<0.3.0,并依赖 ChatImg 0.1.3 的 Codex/OpenAI 配置边界:OpenAI-compatible image 使用 ChatEnv OpenAIConfig,Codex image 使用 ChatImg CodexConfig 且不占用 openai-codex typed-env alias。
  • 准备 7.1.1 patch 版本:随 ChatLark parent 分离 PR 发布,移除 ChatTool 内 Lark/Feishu bot helper runtime 与 Feishu env re-export。
  • Lark bot helper 已完成 parent 分离:移除 chattool larkchattool serve larksrc/chattool/tools/lark/src/chattool/serve/lark_serve.py、ChatTool 内 Lark 示例与 Lark 专属测试;常规 Lark 功能由独立 ChatLark>=0.1.1,<0.2.0 / chatlark 负责。
  • chattool[lark]chattool[arch] 现在安装独立 ChatLark;ChatTool 不再重复维护 LarkBot / MessageContext / ChatSession 实现,也不再 re-export Feishu typed env schema;Feishu 配置事实源为独立 chatenv.configs.FeishuConfig
  • 模型调用相关 Lark 入口不在本次 parent update 中接回;如后续需要 AI chat bot,应在 ChatLark 侧单独设计模型 backend 边界。

2026-06-28

  • 移除仓库根 skills/ 旧随包资产;ChatTool 不再把 repo-local skills 当作当前 agent workflow 或默认安装源。
  • chattool skill / chatskill 继续保留安装/列出能力,但源目录必须来自显式 --sourceCHATTOOL_SKILLS_DIR 或 ChatEnv 配置;不再自动定位仓库 skills/
  • 清理依赖旧 skills/ 内容的测试与文档,改为验证外部 source/env 边界,为后续独立 ChatSkill / chatskill 拆包做准备。

2026-06-25

  • chattool networksrc/chattool/tools/network 已移除;网络扫描、链接检查、service URL 和相关 MCP 能力由独立 ChatNet>=0.2.0,<0.3.0 / chatnet 负责。ChatTool 不保留 parent 兼容 wrapper;需要 ChatArch 全家桶时通过 chattool[arch] 安装 ChatNet。
  • chattool[arch] / chattool[pypi] 的 ChatPyPI 下界更新到 ChatPyPI>=0.2.3,<0.3.0,以包含直接可用的 Publisher detail/add-github/pending-* 接口。
  • ChatTool 移除内置 chattool pypi / chatpypi wrapper 与 src/chattool/tools/pypi 实现;Python 包创建、构建、校验、上传与探测能力改由独立 ChatPyPI / chatpypi 负责。
  • chattool[pypi] 现在安装 ChatPyPI>=0.2.3,<0.3.0chattool[arch] 聚合四个已发版且与 ChatTool 平行解耦的 ChatArch 工具:ChatGH>=0.2.6,<0.3.0ChatUp>=0.2.0,<0.3.0ChatPyPI>=0.2.3,<0.3.0ChatNet>=0.2.0,<0.3.0
  • chatgh 从 ChatTool base dependencies 移入 chattool[arch],避免默认安装路径继续绑定已平行拆出的工具。
  • DNS record management, DDNS, IP detection, provider clients, and DNS-01 certificate automation have been extracted to standalone ChatDNS; ChatTool's dns optional extra now depends on ChatDNS>=0.1.1,<0.2.0, the serve extra includes ChatDNS for chattool serve cert, and the nested chattool dns command plus parent-owned DNS/cert implementation/tests/skill have been removed.
  • DNS MCP remains out of scope for this parent update; dns_cert_apply is removed from ChatTool MCP until a separate ChatDNS/ChatTool MCP boundary is reviewed. Local certificate automation is now available through chatdns cert.

2026-06-24

  • 准备 7.1.0 minor 版本:适配 ChatEnv 0.3.x shared OpenAI/Feishu schema,并按 ChatArch 内部依赖规范为 chatghchatstylechatenv 增加上界窗口。
  • chattool.config.OpenAIConfig / FeishuConfig 改为继承 ChatEnv shared configs,字段事实源上移到 ChatEnv;ChatTool 保留兼容 import 和自身连接测试逻辑。
  • chattool pypi init -t chatarch 模板生成的 ChatArch 内部依赖现在同时包含下界和上界,例如 chatstyle>=0.1.0,<0.2.0chatenv>=0.2.0,<0.3.0
  • ChatTool 内置 chattool setup 已迁移到独立 chatup 包并从 ChatTool 移除;需要 setup/workspace/bootstrap 能力时安装 chattool[setup]chatup>=0.2.0,<0.3.0,使用 chatup workspacechatup hermeschatup cc-connect 等一级命令。
  • chattool cc setup 旧别名已移除;cc-connect 安装入口统一为 chatup cc-connect,避免 ChatTool 继续维护重复 setup 逻辑。

2026-06-15

  • 准备 7.0.6 版本:先确认 PyPI 最新 chattool7.0.5、远端 v7.0.6 tag 不存在,本次按连续 patch 规则将包版本更新为 7.0.6,用于发布 ChatArch PyPI scaffold 的显式 ChatEnv provider 模板能力。
  • chattool pypi init -t chatarch 新增显式 --with-chatenv-provider / --chatenv-provider-name 选项;需要 typed env schema 的包可生成 src/<module>/config.py[project.entry-points."chatenv.configs"],默认仍不注册 provider,避免无 schema 包污染 ChatEnv discovery。
  • chattool setup hermes 默认安装源切换为 ChatArch Hermes 当前版本:--update-installer 拉取 ChatArch/hermes-agent installer,随包 assets/hermes/install.sh 也同步替换为 ChatArch clone 源,避免默认安装官方 NousResearch 版本。
  • chatskill 补齐为正式 console script;chattool setup alias 不再生成 chatskill / chatpypi / chatnet 这类独立或已迁出入口的 shell alias,只保留仍需快捷映射的 ChatTool 子命令,避免迁出入口被 alias 覆盖。
  • 准备 7.0.5 版本:先确认 PyPI 最新 chattool7.0.4、本地/远端 v7.0.5 tag 不存在,本次按连续 patch 规则将包版本更新为 7.0.5,用于随 workspace ChatBlog/ChatMemory extras 与四目录 skills 模型进入本次发布。
  • chattool setup workspace --with-memory 的共享 skill group 模型调整为 chatarchcommonagents 三个 ChatMemory link,并创建本地非共享目录 skills/locallocal 用于当前机器/当前 workspace 的特定内容,不从 ChatMemory link。
  • chattool setup workspace 清理旧 RexBlog extra module,改为 ChatBlog -> core/ChatBlog + public/chatblog;链接目标已存在真实目录时拒绝覆盖,避免误删用户内容。
  • 准备 7.0.4 版本但暂不发版:先查询 PyPI 最新 chattool7.0.3,本次按连续 patch 规则将包版本从未发布的 7.2.0 修正为 7.0.4;不创建 tag,不触发发布。
  • chattool setup workspace 生成的归档文件职责调整:根 ARCHIVE.md 改为归档操作指南,archive/README.md 不再生成,改为 archive/index.md 记录已归档内容索引;中英文 workspace 模板、setup 文档和测试同步更新。
  • chattool pypi init -t chatarch 生成的 PyPI publish workflow 增加 environment: pypi,并补充测试防止重新引入仓库级 PyPI token secret。
  • GitHub/gh 能力整体迁出 ChatTool,移除顶层 chattool gh 入口、默认 chatgh='chattool gh' alias、内部 tools/github helper、GitHubClient 导出、GitHub typed env schema、github optional extra、旧 gh mock 测试目录和 GitHub explore 草案;ChatTool 通过 package dependency 引用 chatgh>=0.2.4,后续 PR/CI/workflow 操作统一使用独立 chatgh。ChatTool 侧文档同步收敛为迁移入口和 token 解析规则,不再维护旧 deprecated 命令细节。
  • chattool serve oauth 新增本地 OAuth token service:提供 GET /healthGET /oauth/statusPOST /oauth/configPOST /oauth/refreshGET /oauth/access-token,用 service token 保护敏感接口,当前以后端 OpenAI typed env 打通配置/刷新/使用闭环,为后续加密存储和自建验证 API service 铺底。
  • chattool crs oauth 新增 OpenAI/Codex OAuth token infra CLI:支持 status 脱敏查看 token 元数据、refresh 使用 OPENAI_REFRESH_TOKEN 刷新 access token,并可通过 --save 写回 OpenAI typed env;同时导出 safe status / refresh result / save helper,作为后续自建验证 API service 和加密存储机制的基础。
  • chattool image 新增 codex provider:通过 OpenAI/OAI 配置中的 OAuth access token 调用 gpt-image-2,支持 list-models、默认输出到 ./generated/,并补充文档与测试;Codex 生图配置已收敛到现有 OpenAI typed env,不再拆分独立 Codex 配置类型;OpenAI/OAI 配置同步补充可覆盖的 OAuth auth server base URL 与唯一需要持久化的 access token 过期时间字段,并封装 refresh token 换取 access token + 过期时间的 CRS/OAuth helper;为避免 OAuth bearer token 泄露到 API-key/CRS proxy profile,Codex backend base URL 与 host model 只使用安全默认或命令级显式覆盖;OpenAI typed env 默认模型更新为 gpt-5.5
  • chattool image huggingface generatechattool image codex generate 的默认落盘策略现统一为 ./generated/image_<provider>_<model>_<timestamp>.pnghuggingface 不再强制要求 --output
  • 准备 7.0.3 版本:chattool pypi probe --project-dir . 确认 PyPI 最新 chattool7.0.2 后,将包版本 bump 到 7.0.3,用于随 chattool serve local 修正一起进入本次发布。
  • 新增 chattool serve local,可通过本地端口打开 HTML 文件或目录,支持 --html--host--port--open/--no-open--dry-run,并接入统一 -i/-I 交互规范。
  • 准备 7.0.2 版本:chatpypi probe --project-dir . 确认 PyPI 最新 chattool7.0.1 后,将包版本 bump 到 7.0.2v7.0.1 对应的版本提交位于 origin/rex/dev,未合入当前 master,因此本 PR 从 master7.0.0 直接提升到 7.0.2
  • chattool pypi init -t chatarch 生成的仓库元数据默认指向 ChatArch/<package>,包括 README badge、pyproject.toml URLs 与 mkdocs.yml 仓库链接。
  • chatarch 模板生成的 publish.yml 改为只由 v* tag 或手动触发,并校验 tag 与包版本一致;不再由普通分支 push 触发发布,也不再自动创建 release tag。

2026-05-07

  • chattool setup hermes 重新收敛为 Hermes 官方 install.sh 封装:默认使用用户指定、本地缓存或随包 installer,只有 --update-installer 才联网更新;默认不 clone Hermes/WebUI、不导入 Feishu、不启动 WebUI,WebUI env/start 均改为显式选项。
  • chattool pypi init -t chatarch 生成的 GitHub workflow 现在会按 requires-python 同步 Python 版本,并补全 PyPI 发布链路:合并到 main / master 后读取包内 __version__、创建对应 vX.Y.Z tag,并通过 PyPI Trusted Publishing 发布尚未存在的版本。
  • chattool setup hermessetup codexsetup opencode 的配置写入改为目标 key 更新:重复执行或安装后配置不再用整份模板重写配置文件,Codex TOML、Codex auth JSON、OpenCode provider JSON 和 Hermes .env/config.yaml 会保留 unrelated 字段。
  • 新增 chatarch-post-init-dev skill,补充 chatpypi init -t chatarch 生成项目后的 ChatStyle 交互、ChatEnv schema、文档测试和 changelog 持续开发规范。
  • 更新 ChatTool skills 以对齐当前 ChatArch 拆包:补充 chatarch-package-dev,校正 chattool pypi / chatpypichatstylechatenv、DNS/cert、GitHub 与 Zulip 相关说明,并移除旧命令示例。
  • ChatTool 7.0.0 接入独立 chatenv 底层:BaseEnvConfig / EnvFieldchatenv 提供,具体 OpenAI/DNS/Feishu/GitHub/Browser schema 仍在 ChatTool 注册;typed env/profile 默认路径直接切到 ~/.chatarch/envs,只认 CHATARCH_HOME,不再读取旧 ~/.config/chattool/envs 或旧 ChatTool 路径变量 fallback;新增 scripts/migrate_chattool_envs_to_chatarch.py 供需要时手动复制旧 profile。
  • 新增 chattool crs 只读 CRS 查询工具:支持 stats / models API key 自统计、auth login --save 获取并保存 admin session token,以及 admin dashboard / admin api-keys / admin accounts 获取管理端只读信息;同步新增 crs typed env。
  • chattool dns 新增并收口 list / records / set / delete / ip 接口:list 查看域名列表,records 查看解析记录,set 使用幂等写入,delete 显示匹配记录并要求确认或 --yesip 只探测当前 IP;旧 get 命令已删除。
  • chattool pypi init 模板从 cli-style 收口为 chatarch,默认生成 chatstyle>=0.1.0chatenv>=0.1.0 依赖;chatarch 模板支持 --with/--without-mkdocs--with/--without-workflows,交互式向导会询问是否创建 mkdocs 和 GitHub workflow 文件。
  • 修复 chatenv cat -t <type> <profile> 读取 profile env 文件时缺少 dotenv 导入导致的崩溃。
  • CHANGELOG.md 取消待发布分组,改为按日期追加更新记录。

2026-05-06

  • [2026-05-06] 新增 chatenv paste / chattool env paste,可粘贴或从 stdin 导入 chatenv cat -t <type> --no-mask 输出和 .env 风格文本,自动识别已注册配置 key,并在交互中询问可选 profile name 后按类型写入 active .env 或同名 profile,覆盖前会展示概要并要求确认。
  • [2026-05-06] 准备 6.7.0 版本:ChatTool 依赖外部 ChatStyle,清理本地 CLI style facade,并同步 chattool pypi init <name> -t cli-style 模板与 probe <name> 入口。
  • [2026-05-06] 新增 chattool setup zsh,可配置 zsh / git / oh-my-zsh / powerlevel10k,-i 时先以默认值候选框选择 zsh 基础配置项,再以默认全选候选框选择 oh-my-zsh 插件,并把 QuickSetup 当前 zsh_aliases 风格完整常用 alias 与 ChatTool alias 写入 ~/.zsh_aliases;系统依赖只做存在性检查,缺少 zsh / git 时直接退出并提示对应 sudo apt install ... -y
  • [2026-05-06] ChatTool 本地迁移到外部 chatstyle runtime:删除 chattool.chatstyle 本地风格层,并移除 chattool.interaction 下 prompt、choice、render、constants 等纯转发子模块;chattool.interaction 只保留命令侧 adapter 入口、policy、command schema 和 warnings,prompt、choice、output、mask、flow 和 command schema 的通用实现由独立 ChatStyle 项目承载。
  • [2026-05-05] 抽取 ChatArch CLI 风格层:集中定义 prompt、choice、output、mask、render 展示与 -i/-I 共享文案;chattool.interaction prompt / choice / render / constants 入口保留为 ChatTool adapter,CommandSchema 通过 chattool.interaction.command_schema 负责参数编排。
  • [2026-05-05] chattool pypi init <name> -t cli-style 模板新增默认中文 README/docs、.en.md 英文副本、mkdocs 配置、docs deploy/preview workflow、README 顶部 PyPI/Actions/docs 徽章,并为 --license 内置 MIT、Apache-2.0、BSD-3-Clause、GPL-3.0-only 和 Proprietary 模板。

Changed

  • [2026-05-06] chattool dns cert-update 已替换为 chattool dns cert apply / chattool dns cert check 子命令组;cert apply 的邮箱默认读取 git config user.email,支持 --force,MCP 工具同步改名为 dns_cert_apply,旧入口不再保留。
  • [2026-05-06] ChatTool 依赖外部 chatstyle>=0.1.0 后,公开 Python 下限同步为 >=3.10,避免与 ChatStyle 包元数据冲突。
  • [2026-05-06] chattool pypi probe 支持把包名作为首个位置参数传入,例如 chattool pypi probe chatstyle,不再要求使用 --name 前缀。
  • [2026-04-20] chattool gh 已重构为分层实现:CLI 入口收口到 gh pr ... / gh run ... 嵌套命令树,主要命令业务从 src/chattool/tools/github/cli.py 迁出到独立命令实现层,请求访问收口为显式 get_* / post_* / patch_* 函数,GitHubClient 同步瘦身为围绕这些提取后能力的薄包装;保留了 repo-scoped token 优先级、set-tokenrepo-perms、缺参自动补问、pr checks --waitpr merge --check 等 ChatTool 定制行为

Fixed

  • [2026-05-06] chatenv test -t oai 现在优先使用 OpenAI Responses API 做最小生成测试,读取 streaming 事件确认输出或完成,兼容 CRS/Codex 风格端点与 gpt-5.x 模型,并在不可用时回退到 Chat Completions。
  • [2026-04-20] chatloop bootstrap 首轮现在不允许直接输出 STATUS: COMPLETE<complete>DONE</complete>;completion gate 仅从后续 continuation 开始生效,避免模型在首轮因习惯性“promise done”过早结束 loop
  • [2026-04-20] chatloop 插件现在在首次执行 /chatloop ... 时不再额外弹出启动完成提示,也不再把 bootstrap PRD 提示作为工具返回文本直接回显;改为异步把首轮 PRD contract 注入当前 session,避免模型把首轮启动误判为“一轮已经结束”
  • [2026-04-20] chattool setup workspace --with-opencode-loop / setup opencode --plugin chatloop 附带的 chatloop 插件现在会在启动首轮就强制注入 PRD.md 路径、project path 和结构化进度规则,不再把 /chatloop <message> 原样转发给模型;同时引入更强的 completion gate,要求每轮输出 ## Completed## Next StepsSTATUS: IN_PROGRESS / STATUS: COMPLETE,只有在 Next Steps 清空、STATUS: COMPLETE<complete>DONE</complete> 同时满足时才停止 continuation
  • chattool cc start 现在会捕获启动异常和非零退出码,并把失败原因直接输出给用户;默认连续失败 5 次后才停止重试,避免 cc-connect 因偶发异常直接变成不可用状态
  • chattool setup nodejssetup codexsetup opencodesetup claudesetup lark-clisetup cc-connectsetup frpsetup dockerchattool dns cert apply 现在统一支持 -l/--log-level;复杂等待型命令的阶段日志可按 DEBUG/INFO/WARNING/ERROR 控制,而 setup alias 这类本地即时配置命令继续保持简洁输出
  • chattool setup alias 现在在未显式传 --shell 且终端可交互时,会先进入 shell 多选页,再进入 alias 多选页;chattool setup nodejs 也改为像 alias 一样默认同步更新所有已探测到的 ~/.zshrc / ~/.bashrc,并在 -i 时允许交互选择目标 shell
  • src/chattool/interaction/ 新增声明式 CLI 输入规范层:统一提供 CommandField / CommandSchema / CommandConstraint / resolve_command_inputs() / add_interactive_option(),把缺参补问、-i/-I 语义、TTY 检查和多字段约束从各命令的重复样板中收口到共享模块;chattool dnschattool client certchattool client svg2gifchattool ghchattool zulipchattool imagechatenv 高频 profile/key 命令、chattool explore arxiv getchattool network pingchattool dns cert apply 已切到这套机制,并补充了相应 mock CLI 测试与开发文档规范
  • chattool dns 现在在交互终端里默认进入命令选择;chattool dns get / set / ddns 缺少必要参数时会自动补问,-I 才显式禁用交互并报错;同时 ddns 的监控间隔短参数收口为仅保留 --interval,避免与统一的 -i 交互开关冲突
  • chattool pypi probe 现在默认检查正式 pypi,收口为更直接的精确项目名可用性检查:名称已占用时直接给出阻塞结论,并补充作者、摘要、链接、最新版本等少量有用信息;不再默认查 testpypi,也不再输出一组对决策无帮助的固定状态项
  • chattool nginx static-root 的默认站点根目录现从 NAS 风格示例调整为更通用的 /var/www/example-site,交互默认值、文档和测试同步更新
  • chattool setup 中通过 npm 执行安装或检查时,现会先打印真实的 npm ... 命令,方便用户确认当前实际在执行什么
  • chattool pypi init 在交互终端里省略包名时,现会自动进入交互式补参;显式 -I 关闭交互时才保持缺参报错
  • chattool setup workspace 在交互式启用 ChatTool / RexBlog 模块时,现会分别提示是否配置 GitHub token;默认值优先读取当前仓库 git credential,并以 mask 形式展示,便于直接复用到目标仓库
  • chatenv init / chatenv new 更新 active typed env 后,chatenv cat 与运行时配置加载现在会优先读取 envs/<Config>/.env,不再被已有 shell 环境变量意外覆盖,避免交互里刚保存的新值看起来“没有生效”
  • chatenv new 现在收紧为纯 profile 创建语义:无论直接传 profile 名还是交互式补参,都只写入 envs/<Config>/<profile>.env,不再顺手覆盖当前 active .env
  • chatskill install / chattool skill install 现在在交互终端里缺少 skill 名时会进入选择页,而不是直接因缺参数中断;非交互环境仍保持显式报错
  • chattool skill install 现在支持 opencode 平台,默认安装到 ~/.config/opencode/skills/claude 平台名同步收口为 claude,不再继续暴露 claude-code
  • chattool skill install 覆盖已存在 skill 时,交互提示现在支持输入 a 一次允许本轮后续全部覆盖,避免 --all 时逐个确认
  • chattool skill install 在交互终端里省略 -p/--platform 时,现会先进入平台选择页,并把 codex 作为默认候选放在首位;非交互环境仍默认回退到 codex
  • chattool skill install 交互式缺少 skill 名时,现改为共享的多选控制页;顶部提供一个可联动的“全选”项,支持在同一页切换全选/清空,不再只支持单个 skill 或单独的 “Install all skills” 入口
  • chattool setup alias 的交互式 alias 选择现改为与 skill install 一致的共享多选控制页;去掉单独 preset 页,改为在同一页通过顶部“全选”项切换全选/清空
  • chattool setup codex / chattool setup opencode / chattool setup lark-cli 现在统一修正为 显式参数 > -e/--env > 工具默认配置位置 > 系统环境变量 > typed .env > 默认值,避免已有工具配置被当前 shell 中的 OpenAI / Feishu 默认值意外覆盖
  • Publish Package workflow 现在会用内联 Python 读取 src/chattool/__init__.py 中的 __version__,避免 release tag 校验被单引号/双引号差异误判
  • chattool setup codex / chattool setup opencode 现在默认优先读取保存的 typed env 配置,再回退到 shell 环境变量;显式 -e/--env 仍然拥有更高优先级,避免交互默认值被临时环境变量意外抢占

Added

  • chattool setup hermes 新增 Hermes Agent/WebUI 安装入口,可复用 ChatTool OpenAI typed env 与显式 Feishu env,写入 ~/.hermes/.env / ~/.hermes/config.yaml,并支持 --install-only--start-webui
  • [2026-04-20] chatloop 新增 /chatloop-project,用于直接查看当前解析到的 project 根目录、PRD.md 路径、状态文件与事件日志路径;/chatloop-status 同步补充最近一次 lifecycle event / reason,减少仅靠日志排查的需要
  • [2026-04-20] chattool setup workspace 生成的协作脚手架现在默认包含 workspace 级 reference/docs/themes/skills/workspace-maintenance/,用于长期参考沉淀、按主题维护约定和定期整理 projects/
  • [2026-04-20] 新增 docs/env/chatloop-quickstart.md,用 arxiv-explore 示例串起从创建 PRD.md、初始化 workspace、显式触发 /chatloop ... 到使用 .opencode/chatloop.events.log 调试的完整入门流程;docs/env/index.mdworkspace.mdopencode.md 同步增加入口链接
  • chattool setup opencode 新增 --plugin auto-loop,可在写入 OpenCode 基础 provider/model 配置时同步把 opencode-auto-loop 追加到 plugin 数组,方便直接启用现成 auto-loop 插件
  • chattool setup workspace 默认结构现切换到 projects/ 模型:workspace 根目录保留 README.md / AGENTS.md / MEMORY.md 作为 general-use 协议与上下文入口,实际工作统一进入 projects/ 下的单任务或多任务 project 执行
  • chattool setup workspace 现在会把“review 由 loop 在模型准备停下时触发,默认完整做完后再统一汇报结果”写入新生成的 workspace 协议;开发任务还会明确要求每个阶段先测试通过、更新文档,再按 review.md 规则完成校验与收尾
  • chattool setup workspace 新增 --with-opencode-loop 模板版本:启用后会安装本地 OpenCode chatloop plugin / commands 资产,并切换到 loop-aware workspace 模板
  • src/chattool/setup/assets/opencode_chatloop/ 现收纳 ChatTool 管理的 OpenCode chatloop 安装源,包括 plugin、slash commands 与最小说明文档
  • chattool pypi init 新增 --template default|cli-style;其中 cli-style 会额外生成 DEVELOP.mdCHANGELOG.mdAGENTS.mdREADME.en.mdmkdocs.yml.github/workflows/ 以及 docs/tests/cli-tests/tests/mock-cli-tests/tests/code-tests/ 的基础说明文件,作为更贴近 ChatTool 当前 CLI/文档/测试/自动化规范的初始仓库模板
  • chattool setup opencode 现支持 -e/--env,可显式复用 ChatTool 的 OpenAI 配置来源;支持 .env 文件路径或 OpenAI profile 名称,并按 显式参数 > -e 指定的 OpenAI 配置 > 当前 OpenAI 配置 > 现有 opencode 配置 > 默认值 回退
  • 新增 chattool setup workspace [PROFILE] [WORKSPACE_DIR],用于在核心项目外围初始化人类-AI 协作工作区骨架;支持 base profile、默认中文模板、显式 --language en--dry-run 与已完成 setup.md 的保护覆盖语义
  • chattool docker nas 新增 NAS 静态文件服务模板,生成 compose 与 env 示例占位模板;镜像、路径、端口与 URL 前缀需由用户显式填写或通过 --set 覆盖
  • 新增 chattool setup docker,用于检查 Docker / Docker Compose / docker 组状态;涉及 sudo 的建议命令默认只打印,显式传入 --sudo 后才允许在确认后执行
  • 新增 chattool nginx,用于按模板生成常见的 Nginx 配置片段;当前收口为配置导向的最小模板集:基础 proxy_pass、HTTPS 入口反代、WebSocket 转发、静态目录站点和重定向,并支持 -i 交互式补齐必要参数

Changed

  • [2026-04-20] chatloop 的项目内事件记录现从 .opencode/logs/<session-id>.log 收口为 .opencode/chatloop.events.log,并补充对 session.status=idlesession.idlesession.errorsession.deletedpermission.asked 与关键消息事件的详细捕获,便于排查 continuation 没有触发的问题;/chatloop-status、help 文案、workspace 模板和 setup 文档同步更新为新的调试路径
  • chattool setup workspace 不再默认生成 reports/ / playgrounds/ / setup.md,也不再依赖 AGENTS.generated.md / MEMORY.generated.md 这类 helper files 做主要迁移路径;当前更强调通过根目录 README.mdprojects/README.md 提供 general-use 入口与结构约定

[6.5.0] - 2026-03-31

Changed

  • CLI 测试规范现拆成双轨:tests/cli-tests/ 只维护真实 CLI 链路,所有基于 mock / patch / monkeypatch / fake client 的 CLI 测试统一迁入 tests/mock-cli-tests/
  • GitHub CI 的 stable smoke tests 现同步切到 tests/mock-cli-tests/,避免继续引用真实 CLI 用例目录
  • skills/chattool-dev-review/ 现在收窄为纯开发验收 skill,不再混入正式发版边界;涉及版本 tag、Publish Package 与 PyPI 校验的动作改由新 skill skills/chattool-release/ 负责
  • skills/practice-make-perfact/ 现在明确把“任务后整理到 PR/MR 阶段”和“合并后的正式发版”拆成两个阶段:前者继续串联 $chattool-dev-review,后者显式切换到 $chattool-release
  • Publish Package workflow 现改为只响应合并后推送的 vX.Y.Z tag,并在工作流中去掉 v 前缀后与包版本做严格比对,避免继续沿用旧的裸版本 tag 习惯
  • chattool setup 相关的 nvm / lark-cli 子进程调用现统一避免使用 login shell,减少用户 shell 初始化把提示符和控制序列污染到当前交互页面的风险
  • Publish Package workflow 现在会在发布前显式检查 PyPI 是否已存在同版本;若 src/chattool/__init__.py 未提前 bump、或同版本已发布,工作流会直接失败,而不是靠 twine upload --skip-existing 静默跳过
  • GitHub PR smoke tests 现从多版本矩阵收敛为最小双平台覆盖:ubuntu-latest + Python 3.10macos-latest + Python 3.10,减少日常 CI 资源消耗;跨版本兼容继续以本地验证和必要时的专项检查为主

Fixed

  • skills/feishu/ 现在把 Agent 协作登录明确收口到 lark-cli auth login --recommend --no-wait--device-code 的非阻塞 device flow,避免 skill 入口直接把会话带进阻塞式浏览器登录
  • tests/cli-tests/lark/guide/test_chattool_lark_skill_index.py 现在会同时校对 SKILL.mdSKILL.zh.md 的命令分流和 Agent 登录指引,避免中文入口回归时被漏检

Added

  • 新增 tests/mock-cli-tests/ 测试线,并补充 chattool 统一入口 lazy dispatch 的 mock CLI 测试
  • chattool cc init 现支持 --quiet/--no-quiet,可直接写入项目级 quiet = true/false;交互模式下也会提示并沿用已有 quiet 默认值
  • 新增 skills/chattool-release/,用于处理 ChatTool 的发版准备、tag 时机、发布工作流检查与 PyPI 校验
  • 新增 tests/cli-tests/skill/test_chattool_skill_release_boundary.mdtests/cli-tests/skill/test_chattool_skill_release_boundary.py,校对 chattool-dev-reviewchattool-releasepractice-make-perfact 的边界与串联关系
  • 新增 tests/cli-tests/skill/test_chattool_release_tag_format.mdtests/cli-tests/skill/test_chattool_release_tag_format.py,校对正式发版流程已统一使用 vX.Y.Z tag,并由 Publish Package workflow 正确剥离 v 前缀做版本校验
  • 新增 tests/cli-tests/skill/test_chattool_release_version_bump.mdtests/cli-tests/skill/test_chattool_release_version_bump.py,校对 release/practice/dev-review skill、开发文档与 workflow 都明确要求“版本号必须在 PR 阶段先 bump,PyPI 已有同版本时必须失败”

Fixed

  • chattool setup codex / chatup codex 的交互式补参现在不再因为旧的 login shell 副作用和隐藏输入提示显示异常而表现成“像是已经回到 shell、但实际还在等待输入”
  • 共享 utils/tui.py 现改为更安全的 click + Rich 提示实现,并对敏感输入统一走 stderr 渲染与读取,降低 setup 交互过程中终端状态错乱的概率
  • chatenv initchattool setup alias 的交互菜单现在恢复了更直接的终端操作体验:Ctrl-C 会直接退出,alias 自定义选择支持键盘 checkbox 式勾选
  • utils/tui.py 现在会正确处理纯字符串选项,避免 chattool setup alias 等页面把 str.title 方法错误渲染成 <built-in method title ...>
  • questionary 不可用时,统一 TUI 现在会安全降级到编号选择和逗号分隔多选,避免交互命令直接因可选依赖缺失而中断

[6.4.1] - 2026-03-30

Changed

  • ChatTool 现统一以 Python >=3.9 作为公开支持下限:chattool pypi init 默认生成 requires-python = ">=3.9",包元数据不再用最高到 3.12 的 classifier 形成隐性上限;GitHub CI 只保留最小 smoke-test 覆盖
  • 默认 pip install chattool 现在只保留核心聊天能力与基础 CLI 依赖;questionaryaiohttpfastapiuvicornpydanticfastmcpPyGithubgitpythonpillowbatch_executorfilelock 等已拆分到新的 optional extras(如 interactivednsservemcpgithubclientbatch
  • import chattoolchattool servechattool mcpchattool.tools 现在进一步收紧为惰性导入,避免默认安装路径被 DNS / Lark / MCP / Serve 等可选功能反向拉重
  • env 配置机制开始切换为按类型拆分的目录模型:活动配置与 profile 现在按 envs/<Config>/.envenvs/<Config>/<profile>.env 管理,不再把单个全局 .env 作为唯一真相
  • 配置优先级现调整为 显式参数 > os.environ > env 文件 > 默认值
  • 对支持 -e/--env 的命令,配置优先级进一步固定为 显式参数 > -e/显式 env > os.environ > 类型内置 .env > 默认值,并写入配置文档与开发规范,便于后续统一复用
  • OpenAI 配置移除了 OPENAI_API_BASE_URL,统一只保留 OPENAI_API_BASE
  • chattool lark 现已从仓库内“平行飞书 CLI”收缩为最小遗留入口,只保留 infosendchat 三个调试命令;原有文档、设计说明和大部分真实 CLI 测试已同步收口到这一边界
  • 仓库开发规范现在把“绝对禁止 mock”明确写入 AGENTS.mdDEVELOP.mddocs/development-guide/tests/cli-tests/README.md:宁可做更窄的真实测试,也不接受用 mock 伪造行为
  • 开发规范现补充说明:GitHub 自动测试当前只覆盖 .github/workflows/ci.yml 里的 stable smoke tests,不包含 lark / dns 这类第三方链路与大多数真实 CLI 测试;相关能力需要本地单独验证
  • chattool gh pr-check 现在支持 --wait 轮询等待 CI 结束;默认不设超时,只有显式传 --timeout 时才会超时报错
  • skills/feishu/ 现在改为紧凑双语入口:SKILL.md / SKILL.zh.md 统一强调官方 lark-cli 为默认入口,并把消息调试路由到 im、正文路由到 docs、评论与权限路由到 drive、wiki 路由到 wiki
  • chattool pypi 现已收口为最小命令集:只保留 init/build/check/upload/probe;移除 doctor/publish/release,并取消原有交互式补参与上传封装逻辑,upload 直接复用默认 twine upload 行为
  • chattool lark send 现在把默认目标拆成“默认用户”和“默认群聊”两条路径:FEISHU_DEFAULT_RECEIVER_ID 继续用于用户消息,新增 FEISHU_DEFAULT_CHAT_ID 专门服务 -t chat_id
  • Feishu 真实测试与文档说明现在回到生产口径,不再引入独立的 FEISHU_TEST_USER_ID / FEISHU_TEST_USER_ID_TYPE

Fixed

  • 若干使用 X | Y 类型注解的核心模块现统一补上 from __future__ import annotations,避免 Python 3.9 在导入阶段因注解求值失败
  • chattool setup codex 现在不再把实际 API key 错写进 preferred_auth_methodconfig.toml 中该字段固定为 "apikey",真实密钥只写入 auth.jsonOPENAI_API_KEY
  • chatenv new -t <type> 在交互终端里不再退化成单纯的 save 语义:省略 profile 名时现在会先询问名称,再进入该类型字段填写,然后写入并激活新 profile
  • skills/feishu/ 补回 SKILL.zh.md,避免技能资产检查在 CI 中因缺少中文入口文件失败
  • chattool gh pr-merge 新增可选的 --check 开关,用于在合并前显式检查 check runs 与 workflow runs,避免再次误把带红 CI 的 PR 当成可安全合并
  • chattool skill install 不再强制要求 skill frontmatter 包含 version,只校验 namedescription
  • chattool setup alias 的自定义多选现在统一走 utils/tui.py 的 checkbox 封装,交互里显式显示 ☑/☐ 勾选态,不再只靠高亮区分选中项

Added

  • 新增根目录 Dockerfile.playground,用于直接构建一个最小的 ChatTool workspace 启动镜像;镜像在 /opt/venv 中安装 ChatTool,容器启动后会线性执行 chattool setup workspace -> chattool env set CHATTOOL_SKILLS_DIR -> chattool setup alias
  • chatenv new <profile> -t <type>,用于从当前激活的类型配置直接创建并激活一个新 profile,补齐 save/use/delete 之间的便捷新建入口
  • chattool gh run-viewchattool gh job-logs,用于直接查看 GitHub Actions workflow run / job 详情与失败日志,避免排查 CI 时再临时写脚本
  • chattool setup codex -e ... 现可显式复用 OpenAI 配置来源:支持 .env 文件路径或 OpenAI profile 名称,并按 显式参数 > -e 指定的 oai 配置 > 当前 oai 配置 > 现有 codex 配置 > 默认值 回退
  • chattool setup lark-cli,用于安装官方 lark-cli,并按 显式参数 > -e 指定的 feishu 配置 > 当前 feishu 配置 > 现有 lark-cli 配置 > 默认值 复用 ChatTool 的 Feishu 配置;文档补充了 ~/.lark-cli/config.json 与 ChatTool envs/Feishu/.env 的默认位置说明
  • chattool lark doc perm-public-get|perm-public-setperm-member-list|perm-member-add,补齐飞书文档权限读取、公开分享更新和显式协作者管理 CLI,避免再为“发出可编辑文档”临时写 SDK 脚本
  • skills/practice-make-perfact/references/cli-reference.md,新增后处理阶段的 CLI 参考索引,方便在“手写脚本还是该补 CLI”之间快速做归位判断
  • 博客新增 docs/blog/agent-cli/lark-cli-guide.md,整理官方 larksuite/cli 的安装、认证、三层命令体系与 Agent 场景下的安全使用路线
  • 博客新增 docs/blog/lark-message-session-debug.md,先从消息 ID、会话 ID、最小送达链路与 capture/replay 边界澄清飞书消息/会话调试专题的探索范围
  • FEISHU_DEFAULT_CHAT_ID 配置项,并补充默认群聊发送与 docx openchat 群权限的 quickstart 示例

[6.4.0]

Changed

  • chattool cc init -i 现在会在一开始先确认是否覆盖已有配置文件;已有平台配置和飞书凭证候选值会直接作为默认值展示,回车即可复用,不再追加“是否沿用默认”确认
  • chattool gh pr-viewchattool gh pr-check 现在会直接显示 PR 的 mergeable / mergeable_state,避免只看到 head checks 却漏掉相对最新 base 的冲突态
  • 飞书主 skill 现在重组为索引式技能包:根目录只保留 skills/feishu/SKILL.md 作为入口,专题说明、API 参考与 docx 边界统一收口到主题子目录
  • skills/feishu/guide/api-reference.md 现在集中维护 Feishu 官方 API 文档 URL 与 chattool lark 到 API 的映射,便于扩展时继续学习与沉淀
  • chattool lark 相关文档现在统一使用“双轨文档模型”描述云文档能力:稳定正文轨用于可靠写入,结构化 docx 轨用于 block 级增强
  • chattool lark scopes 现在会在列出权限后补充关键能力分类摘要,并在匹配到未授权 scope 时直接标记为权限问题
  • chattool lark doc append-json 现在会在写入前归一化 code block 的 style.language 字段,避免 parse-md -> append-json 因非法语言值整批失败
  • chattool lark troubleshoot check-scopes 现在支持导出权限诊断卡片 JSON,并可直接把诊断卡片发给默认接收者或显式指定的目标
  • CLI 入口现在统一过滤 lark-oapi 带来的 pkg_resources / event loop 噪音警告,且 chattool lark 改为按命令懒加载飞书实现,减少无关 import

Added

  • FEISHU_TEST_USER_IDFEISHU_TEST_USER_ID_TYPE 配置项,用于 chatenv cat -t feishu@pytest.mark.lark 真实测试共享测试用户配置
  • tests/cli-tests/lark/guide/test_chattool_lark_basic.pytests/cli-tests/lark/documents/test_chattool_lark_doc_basic.pytests/cli-tests/lark/documents/test_chattool_lark_doc_markdown.py,补齐 Feishu 基础链路与文档链路的真实 CLI 执行覆盖

Removed

  • 旧的文档读写型 Feishu skill feishu-create-docfeishu-fetch-docfeishu-update-doc 已并回主 feishu skill,不再单独维护

[6.3.0]

Changed

  • chattool setup cc-connect 现已提供 cc-connect 安装入口;chattool cc setup 改为该命令的别名,两者共用同一套安装逻辑
  • chattool setup codex 默认模型现改为 gpt-5.4chattool setup claude 默认小模型现改为 claude-opus-4-6
  • chattool setup codex / claude / opencode 现在会在收集配置前先检查 Node.js >= 20npm;若当前终端可交互且依赖不满足,会先提示是否执行 chattool setup nodejs 进行安装或升级
  • skills/practice-make-perfact 现在改为任务完成后的后处理工作流:回顾已有改动、提取可复用内容、串联 chattool-dev-review,再统一完成文档/测试/变更记录与 PR/MR 收尾
  • 开发流程现在明确要求把 scratch、临时试验产物与一次性导出结果放到仓库外独立目录,而不是放在仓库内
  • skills/chattool-gh 现在覆盖 pr-check、PR 后续维护与 CI 排查流程,并同步更新为当前 GitHub CLI 用法
  • chattool setup nodejs 现在改为写入仓库内置的 nvm.sh 与 shell 初始化块,不再通过 curl 从 GitHub 拉取 nvm 安装脚本
  • chattool cc init -i 在选择飞书平台时,现会把当前 chatenv 中的 FEISHU_APP_ID / FEISHU_APP_SECRET 作为默认候选值
  • chattool skill / chatskill 现在在未显式传 --source 时,会正确读取 chatenv 中的 CHATTOOL_SKILLS_DIR
  • skill CLI 代码目录现统一为 src/chattool/skill/,避免与仓库根目录 skills/ 资产目录混淆
  • chatenv init -t skillCHATTOOL_SKILLS_DIR 的交互提示已缩短,避免占用过多输入空间

Fixed

  • tests/cli-tests/env/test_chattool_env_basic.py 现已补齐 env init -t ... 交互输入,避免因新增默认字段 prompt 导致测试中断
  • 全量 pytest 现在可稳定完成:历史 tests/code-tests/tools/lark/test_cli_integration.py 已改为唯一模块名,避免与 DNS 测试模块同名导致收集冲突
  • tests/code-tests/dns/test_cert_server_real.pytests/code-tests/dns/test_cert_update_real.py 现改为显式 CHATTOOL_RUN_DNS_CERT_REAL=1 才启用,避免日常全量回归卡在真实证书生命周期测试
  • tests/code-tests/core/test_batch.py 现已修正未 await 的协程调用,且 pytest 过滤规则补齐了常见第三方告警,降低全量回归噪音
  • chattool setup nodejs 首次通过内置 nvm 安装 Node.js 后,后续同一轮 setup codex/claude/opencode/cc-connect 现在会正确复用 ~/.nvm 中的运行时,不再误报 “Node.js requirement still not satisfied after setup”
  • chattool setup alias 现在会把 chatskill 正确映射到 chattool skill

[6.2.0]

Added

  • chattool setup claude — 安装 Claude Code CLI 并写入配置
  • chattool skill / chatskill — Skills 管理,支持安装到 Codex / Claude Code
  • 新增 skill:chattool-dev-review
  • ChatTool skills 约定维护 version frontmatter,新建 skill 以 0.1.0 为初始版本
  • 所有仓库内 skills 现在都提供对应的 SKILL.zh.md
  • chattool cc — cc-connect 最小可用配置、启动与诊断命令
  • chattool skill install --prefix — 安装时添加 chattool- 前缀
  • CHATTOOL_SKILLS_DIR — 指定 skills 源目录
  • 新增 skill:feishu
  • chattool cc init --full-options — 提示填写代理等高级选项
  • chattool lark -e/--env — 支持从指定 .env 文件或保存的 profile 读取飞书鉴权
  • chattool lark doc — 支持飞书云文档创建、查询、纯文本读取、块查看与追加文本
  • chattool lark doc parse-md — 支持将 Markdown 解析为飞书 docx block JSON,便于检查结构映射
  • chattool lark doc append-json — 支持将结构化 block JSON 直接写入飞书云文档
  • chattool lark doc append-file — 支持将本地 txt/md 文件整理后追加到飞书云文档
  • FEISHU_DEFAULT_RECEIVER_IDchattool lark send 可省略接收者并默认发给配置用户
  • chattool lark notify-doc — 创建云文档、追加正文并把文档链接发送给默认用户
  • chattool lark notify-doc --append-file/--open — 支持从文件追加正文并在成功后打开文档
  • chattool pypi — 新增 Python 包 doctor/build/check/publish/release CLI
  • chattool pypi init — 快速生成最小可发布的 src/ 布局 Python 包骨架
  • chattool pypi probe — 检查包名和版本在 PyPI/TestPyPI 上是否已被占用
  • 文档:新增“Python 库仓库构成设计”,明确 PyPI 包、源码、测试、CLI 测试与 skills 的目录边界
  • 设计:新增 chattool pypi CLI 文档,定义 build/check/publish/release 的命令边界与安全策略
  • chattool explore arxiv — arXiv 论文搜索、daily 抓取与 preset 检索
  • chattool explore arxiv 新增 math-formalization-weekly preset,并补充数学形式化近一周追踪 workflow
  • skills/arxiv-explore 新增数学形式化近一周子模块,包含分类索引、真实样例和多查询收集脚本
  • chattool lark notify-doc --batch-size — 批量写入失败时回退到单段追加,提升飞书文档写入稳定性
  • 开发文档 development-guide/architecture-overview.md,系统说明 ChatTool 架构分层、设计特点与任务沉淀路径

Fixed

  • chattool skill install 现在会在安装前校验 SKILL.md 的 YAML frontmatter,并在缺少 name/description 时直接报错,避免把无效 skills 复制到 Codex / Claude Code
  • chattool skill install 现在同时校验 version frontmatter,并要求使用 0.1.0 这类语义化版本格式
  • chattool setup nodejs 现在会输出版本信息并在当前 shell 不可用时给出提示
  • chattool pypi init 现在按统一 CLI 规范补全向导参数,并生成可直接运行 python -m pytest -q 的测试骨架
  • chattool pypi doctor/build/check/publish/release -i 现在按统一 TUI 规范提示当前命令相关参数
  • chattool pypi init --version 现在支持设置初始版本,并在 dynamic version 场景下解析真实版本值
  • chattool pypi publish/release 现在优先复用 .pypirc,只有缺少配置时才回退到交互输入

[5.3.0]

Added

  • 飞书机器人完整工具链:LarkBotChatSessionMessageContext
  • CLI:chattool lark(发消息、上传、监听)、chattool serve lark(echo/ai/webhook)
  • 支持 WebSocket 长连接和 Flask Webhook 两种接收模式
  • 卡片消息、按钮回调、动态更新卡片

[5.0.0]

Added

  • DNS 管理:统一接口支持阿里云和腾讯云
  • DDNS 动态域名更新(公网 / 局域网)
  • SSL 证书自动申请与续期(ACME v2 / DNS-01)
  • 环境变量集中管理:chatenv,支持多 profile、敏感值打码

[4.1.0]

Changed

  • 统一 Chat API(同步 / 异步 / 流式)
  • 默认从环境变量读取 API 配置

更早版本

请参考仓库提交记录。