
Convex Retention
Use when adding or changing ClawHub Convex tables, TTL fields, cleanup crons, retention...
Install
npx skills add openclaw/clawhub --skill convex-retention -g -a claude-code -y- Repository
- openclaw/clawhub9.5k
- Category
- Engineering
- Updated
- 3d ago
- License
- MIT
- Context cost
- Lightabout 394 tokens
- Runs scripts
- No, instructions only
What it does
Use when adding or changing ClawHub Convex tables, TTL fields, cleanup crons, retention policy, auth/session cleanup, metric dedupe cleanup, or deprecated table removal
Convex Retention
Overview
ClawHub retention is code-owned. Every current Convex table must be classified in
convex/lib/retentionPolicy.ts, and ephemeral tables need an indexed, bounded cleanup path unless
their lifecycle is handled by usage-time validation or a documented component.
Checklist
- Use
clawhub-convexand readconvex/_generated/ai/guidelines.mdfirst. - Add every new schema table to
RETENTION_POLICIES; theRecord<TableNames, RetentionPolicy>type is the enforcement gate. - For ephemeral tables, prefer an explicit expiration field plus index, then prune with
.withIndex()and.take(...). - For new generic TTL tables, prefer
expirationTimeto match Convex Auth. Keep existingexpiresAt,dayStart, andprocessedAtfields unless that table already needs a real migration. - Use
RETENTION_STANDARD_BATCH_SIZEfor ordinary retention jobs. Keep incident-tested special cases, such asskillStatEvents, on their documented caps. - Cron jobs should schedule bounded cleanup entrypoints only. Large one-off production migrations or
destructive backfills still start with
convex-migration-helper. - Do not bulk-clear active auth state. Expired
authSessionsandauthRefreshTokensare pruned byconvex/retention.ts.
Verification
- Add or update focused tests for policy classification and cleanup behavior.
- Run the focused Vitest slice for touched cleanup modules.
- Run
bunx convex codegenafter schema/API changes. - Run a real Convex runtime check such as
bunx convex dev --once --typecheck=disable.
