Changelog¶
caw is in 0.1.x alpha. The authoritative, per-release notes live on GitHub:
Install a specific version with:
Unreleased¶
- Weekly usage limits are told apart from session ones.
UsageLimitgainskind(session/weekly/unknown),timing_source(parsed/estimated) andresets_at(the provider's own reset instant, no buffer). Claude Code'sYou've hit your weekly limit · resets Sep 17, 11am (UTC)used to miss the date and fall through to the one-hour default, so auto-wait slept an hour, hit the same wall, and repeated for days. It is now timed from the date. See Auto-wait on usage limits. - Behaviour change with
max_usage_wait/CAW_MAX_USAGE_WAITset: a weekly limit that used to be silently slept through an hour at a time now raisesUsageWaitTooLong, because its wait is finally reported honestly and exceeds the cap. The exception carries theUsageLimit, so a handler can branch onkind. Without a cap, nothing raises; the wait is just longer — and correct. - New provider hook
ProviderSession.get_usage_limit(turn) -> UsageLimit | None; providers overriding only the integerdetect_usage_limitkeep working withkind="unknown". - Auto-wait progress ticks scale with the wait (every minute for hours, up to every quarter hour for days) instead of waking thousands of times through a multi-day wait.
- Trajectories written before these fields load with
kind="unknown",timing_source="estimated",resets_at=""; a clean turn's JSON is unchanged.
Recent highlights¶
- Auto-provider mode — give caw a fallback order and it selects the first installed provider, transparently moving to the next on a first-send failure or rate limit.
- Provider health checks —
check_providers()andcaw doctorreport raw availability/credential signals, with an optional live probe. - Cross-process resuming — self-contained
resume_handles that work with or without adata_dir.
Versioned documentation isn't published yet (deferred until 1.0); these docs track main.