Skip to content

feat(calendar): 支援單次 Occurrence Exceptions CLI - #113

Merged
pocketsharkk merged 3 commits into
mainfrom
codex/calendar-recurrence-m4
Aug 14, 2026
Merged

feat(calendar): 支援單次 Occurrence Exceptions CLI#113
pocketsharkk merged 3 commits into
mainfrom
codex/calendar-recurrence-m4

Conversation

@pocketsharkk

Copy link
Copy Markdown
Collaborator

Why

Calendar M4 新增單次 occurrence 改期、取消與還原能力;CLI 需要提供一致的 human-time parsing、version CAS、JSON/table output 與 help contract,讓使用者不必直接組 REST request。

What changed

  • 新增 event occurrence set、cancel、restore commands。
  • event occurrence set 先讀取 Series Master,依 all-day、UTC 或 canonical IANA zone 解析 required start/end。
  • 新增 expected-version、parse-only tz 與 event occurrences --include-cancelled mapping。
  • 更新 generated SDK/types、x-cli codegen、固定 table columns、help metadata 與繁中 CLI 文件。

Regression tests

  • CLI:62 test files、659 tests 通過。
  • 覆蓋 required options、SDK request mapping、Series Master prefetch、all-day/UTC/local-zone parsing、fixed table output 與 include-cancelled。
  • Typecheck、build、generation drift、Prettier 與 git diff --check 通過。

Remaining acceptances

  • 等待 backend PR #1074 合併並完成 production migration/deploy。
  • 透過 npm Trusted Publishing 發布 CLI。
  • 使用 production Calendar API 驗證 set/cancel/restore 及 event occurrences --include-cancelled。

Impact

新增 additive CLI commands/options 與 generated SDK surface;既有 event ls、event occurrences 預設輸出及未明示 tz 的解析行為維持相容。

How to verify or test the change

  1. 執行 npm test。
  2. 執行 npm run typecheck 與 npm run build。
  3. 執行 npm run generate 並確認 git diff --exit-code。
  4. 檢查 wspc event occurrence --help 與 wspc event occurrences --help。

Additional information for the reviewer

WSPC Todo:tod_01KZZNH3EFPR3W5D94YHDYZ927。Backend counterpart:sadcoderlabs/wspc#1074。此 PR 應在 backend 相容 reader/writer 已部署後發布。Formal Standards 與 Spec reviews 均已通過。

@pocketsharkk
pocketsharkk merged commit 2e39c35 into main Aug 14, 2026
2 checks passed
@pocketsharkk
pocketsharkk deleted the codex/calendar-recurrence-m4 branch August 14, 2026 09:54
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