Skip to content

Refine CLI UX and retire legacy pending claim fallback#433

Merged
liujuanjuan1984 merged 13 commits intomainfrom
feat/cli-help-logo-eval
Apr 28, 2026
Merged

Refine CLI UX and retire legacy pending claim fallback#433
liujuanjuan1984 merged 13 commits intomainfrom
feat/cli-help-logo-eval

Conversation

@liujuanjuan1984
Copy link
Copy Markdown
Collaborator

@liujuanjuan1984 liujuanjuan1984 commented Apr 28, 2026

变更概览

  • 本 PR 主要覆盖两类收口:CLI / 文档体验改进,以及 state store legacy pending claim fallback 清理。
  • CLI / 帮助文案 / logo 调整按当前任务要求处理,未新建 issue。

CLI / Help

  • 支持 -v 作为 --version 简写。
  • 根命令空参默认显示 help,不再直接启动服务。
  • 保留显式 serve 子命令,作为与“空参显示 help”相配套的明确启动入口。
  • 根 help、serve --helpcall --help 补齐可执行级别的启动与调用说明。
  • call 示例统一优先使用 Agent Card URL,并明确 service base URL 仍然兼容。
  • 根 help 与 README 引入并对齐 ASCII logo。

State Store

  • 清理 pending claim 的 legacy TTL fallback。
  • 将 schema version 提升到 5
  • 迁移阶段直接清理缺少 expires_at 的 legacy pending claim 行,不再根据历史 TTL 进行推断式回填。
  • 移除运行时 updated_at + ttl fallback,仅保留显式 expires_at 语义。
  • 补充对应回归测试。

文档 / 脚本

  • 同步 README、guide 与 built-wheel smoke test,保持 CLI 行为、示例命令、文档说明一致。
  • 修正文档中关于 legacy updated_at pending claim 行“仍保持 backward-compatible”的过时描述,使其与当前迁移实现一致。

验证

  • uv run opencode-a2a --help
  • uv run opencode-a2a serve --help
  • uv run opencode-a2a call --help
  • uv run opencode-a2a serve
  • uv run opencode-a2a call
  • uv run pytest --no-cov tests/server/test_cli.py
  • uv run pytest --no-cov tests/server/test_state_store.py
  • ./scripts/doctor.sh

Issue 关系

@liujuanjuan1984
Copy link
Copy Markdown
Collaborator Author

补充收口两点:

  1. 继续调整根 help / README 的 ASCII banner,改成更窄的双段式 OpenCode + A2A,并加独立的 A2A Runtime 文字行,降低终端字宽差异导致的变形。
  2. 在 CLI 根 help 顶部明确强调协议边界:仅支持 A2A 1.0,不兼容 legacy 0.3 clients / methods / payloads。

已验证:uv run opencode-a2a --helpuv run pytest --no-cov tests/server/test_cli.py./scripts/doctor.sh

说明:构建阶段的 vcs_versioning GlobalOverrides warning 仍存在,对应已保留未处理的 #421

@liujuanjuan1984
Copy link
Copy Markdown
Collaborator Author

继续按最新要求收口:

  1. 顶部文本 logo 改为单行稳定写法 OpenCode-A2A,不再使用多段 ASCII 图形,也移除了 A2A Runtime 尾注。
  2. CLI 根 help 的协议提示简化为 A2A Protocol 1.0 only.
  3. README 顶部展示与 CLI help 保持一致。

已验证:uv run opencode-a2a --helpuv run pytest --no-cov tests/server/test_cli.py./scripts/doctor.sh

说明:构建阶段的 vcs_versioning GlobalOverrides warning 仍存在,对应已保留未处理的 #421

@liujuanjuan1984
Copy link
Copy Markdown
Collaborator Author

补充修正:CLI 顶部仍保留单行 OpenCode-A2A 的展示结果,但已把代码定义恢复为显式字符串拼接形式,避免偏离前面要求的 str 风格拼接约束。

已验证:uv run opencode-a2a --helpuv run pytest --no-cov tests/server/test_cli.py

@liujuanjuan1984
Copy link
Copy Markdown
Collaborator Author

继续按反馈修正:

  1. 恢复为可见的 ASCII 文本 logo,而不是纯文本 OpenCode-A2A
  2. logo 改为单块 OpenCode-A2A banner,不再拆成两段,也不追加 A2A Runtime
  3. A2A Protocol 1.0 only. 保持不变。

已验证:uv run opencode-a2a --helpuv run pytest --no-cov tests/server/test_cli.py./scripts/doctor.sh

说明:构建阶段的 vcs_versioning GlobalOverrides warning 仍存在,对应已保留未处理的 #421

@liujuanjuan1984
Copy link
Copy Markdown
Collaborator Author

继续微调 ASCII logo:

  1. OpenCode-A2A banner 从 small 风格切到更清晰的 standard 风格。
  2. 重点改善 e / n 的辨识度和整体对齐感,保持单块 logo、不追加额外尾注。
  3. A2A Protocol 1.0 only. 保持不变。

已验证:uv run opencode-a2a --helpuv run pytest --no-cov tests/server/test_cli.py./scripts/doctor.sh

说明:构建阶段的 vcs_versioning GlobalOverrides warning 仍存在,对应已保留未处理的 #421

@liujuanjuan1984
Copy link
Copy Markdown
Collaborator Author

继续收口 CLI 体验:

  1. 根 help 不再单列 A2A Protocol 1.0 only.,而是合并到主说明句后面。
  2. 根 help / serve --help / call --help 补齐了可执行级别的用法说明:
    • opencode serve 前置启动步骤
    • opencode-a2a serve 的必要环境变量与常用可选环境变量
    • 最小启动示例与 SQLite 持久化示例
    • call 的 Bearer / Basic 用法示例
  3. opencode-a2a 空参、call 缺位置参数、以及 serve 缺必要环境变量时,都会回落到对应 help,而不是直接报 argparse 缺参错误或抛 runtime traceback。
  4. 审查后保留 serve 子命令:在“空参默认 help”的前提下,仍需要一个显式启动动作,否则根命令无法同时承担帮助入口与服务启动入口。

已验证:

  • uv run opencode-a2a --help
  • uv run opencode-a2a serve --help
  • uv run opencode-a2a call --help
  • uv run opencode-a2a serve
  • uv run opencode-a2a call
  • uv run pytest --no-cov tests/server/test_cli.py
  • ./scripts/doctor.sh

说明:构建阶段的 vcs_versioning GlobalOverrides warning 仍存在,对应已保留未处理的 #421

@liujuanjuan1984
Copy link
Copy Markdown
Collaborator Author

继续收口 call 的消费示例:

  1. CLI help 与 README 中的 opencode-a2a call 示例改为优先使用 Agent Card URL,例如 /.well-known/agent-card.json
  2. agent_url 参数说明改为明确接受两种输入:Agent Card URL 或 service base URL。
  3. 文案上补充说明:service base URL 仍然支持,但示例优先给 card URL,因为这更显式地表达了 A2A discovery target。

已验证:uv run opencode-a2a call --helpuv run pytest --no-cov tests/server/test_cli.py./scripts/doctor.sh

说明:构建阶段的 vcs_versioning GlobalOverrides warning 仍存在,对应已保留未处理的 #421

@liujuanjuan1984
Copy link
Copy Markdown
Collaborator Author

补充文档对齐:

  1. README.md 顶部已保持与 CLI 一致的 ASCII logo,本次未再改字形。
  2. docs/guide.md 新增了 CLI outbound 示例,并统一采用 Agent Card URL:
    http://other-agent:8000/.well-known/agent-card.json
  3. README 与 guide 都明确说明:service base URL 仍然支持,但示例优先给 card URL,因为它更显式表达 A2A discovery target。

本次为文档补充,只做了命令与路径自检,未额外重跑整套 doctor

@liujuanjuan1984
Copy link
Copy Markdown
Collaborator Author

README 再收敛两处重复文案:

  1. 移除了顶部单独引用的 A2A Protocol 1.0 only.,避免与下方协议支持章节重复。
  2. 移除了 README 中关于 “service base URLs also work” 的解释句,保留更直接的 card URL 示例即可。

本次仅改 README 文案,已做段落自检,未额外重跑 doctor

@liujuanjuan1984 liujuanjuan1984 changed the title Improve CLI help and startup ergonomics Refine CLI UX and retire legacy pending claim fallback Apr 28, 2026
@liujuanjuan1984 liujuanjuan1984 marked this pull request as ready for review April 28, 2026 09:44
@liujuanjuan1984 liujuanjuan1984 merged commit 4281d9e into main Apr 28, 2026
3 checks passed
@liujuanjuan1984 liujuanjuan1984 deleted the feat/cli-help-logo-eval branch April 28, 2026 09:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant