Skip to content

v0.10.1 — 可靠提交与结果重查

Choose a tag to compare

@github-actions github-actions released this 09 Aug 06:32
· 4 commits to main since this release

leetcode-local-cli 0.10.1 将提交过程改为有明确总预算和结构化结果的可靠流程,并新增已有提交的单次重查命令。CLI 同时完成应用层分离,为后续功能保持清晰依赖方向。

提交可靠性

  • lc submit 取得 Submission ID 后默认等待 30 秒,可通过 --wait-timeout 设置大于 0 的有限总秒数。
  • 判题查询使用单调时钟总预算,请求超时和休眠都不会越过预算。
  • 初始提交 POST 永不自动重试,避免网络状态不明时产生重复提交。
  • 判题 GET 只对网络超时、网络错误、429 和 5xx 做有限重试,并遵守合法的 Retry-After
  • Accepted 返回退出码 0;其他判题、等待超时和查询失败返回 1,同时保留 Submission ID。

结果重查

  • 新增 lc check <Submission ID>,只查询一次已有提交,不重新发送代码,也不持续占用终端。
  • 已完成判题时展示状态、运行时间、内存和用例数量;仍在判题时提示稍后重试。
  • Accepted 返回 0;Pending、非 Accepted 和查询失败返回 1;非法 ID 返回 2。
  • 兼容 LeetCode 中文站当前同时返回原始 memory 与展示字段 status_memory 的响应结构。

架构与维护

  • CLI 形成 cli.py → commands/ → use_cases/ → core modules 的单向依赖。
  • cli.py 只负责应用创建和命令注册,命令层负责终端适配,用例层负责业务编排。
  • 提交检查、终态、超时、Pending 和查询失败使用不可变结构化结果,不再传播裸字典或 None
  • 维护文档按用户说明、项目状态、架构、产品边界、安全和技术决策拆分职责并完成轻量化。
  • CLI 错误输出测试先移除 ANSI 样式再验证公开文本,保证本地与三平台 CI 行为一致。

验证

  • Windows 通过 Ruff、Pyright、333 passed/13 skipped 的完整测试、wheel/sdist 构建及两种产物的隔离安装 smoke test。
  • 在维护者明确授权下,随机选择 10 道免费 Easy 题完成真实提交,10 次均为 Accepted;随后对全部 Submission ID 执行 lc check,退出码均为 0。
  • 真实验收没有输出 Cookie,测试结束后恢复了原有空 solution.py

兼容性说明

  • 当前仍只正式支持 LeetCode 中文站、Python3、单默认工作区和单个 solution.py
  • Session 继续以明文 JSON 保存在默认工作区,不得提交、同步或上传。