refactor(usage): address round-2 review on PR #871
- remove accidentally-committed .claude/scheduled_tasks.lock (Claude Code runtime artifact swept in by `git add -A`) and gitignore it; the rest of .claude/ stays tracked. - store: cache UsageEventStore.shared() as a process-wide instance so the hot search path doesn't allocate a fresh wrapper per metered query (the wrapper is stateless beyond its storage handle). - hooks: pass enabled=True directly (the outer guard already confirmed the flag) instead of re-reading settings.usage_metering_enabled. - migration: document the no-TTL retention design (control-plane rollup owns the lifecycle; the data plane only appends). - tests: assert the best-effort error path logs at WARNING (observability contract). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
702f66e6b1
commit
2bbf4ed967
@@ -34,6 +34,9 @@ depends_on = None
|
||||
def upgrade() -> None:
|
||||
is_pg = op.get_bind().dialect.name == "postgresql"
|
||||
|
||||
# Retention: this table has no TTL by design — the control-plane rollup
|
||||
# owns the lifecycle (it pulls rows read-only into usage_daily, then
|
||||
# prunes once a day is reconciled). The data plane only appends.
|
||||
op.create_table(
|
||||
"usage_events",
|
||||
# Pod-generated idempotency key. UUID on Postgres; TEXT on SQLite,
|
||||
|
||||
Reference in New Issue
Block a user