跳到主要内容
知仓学习社ZHICANG

convex-retention

Use when adding or changing ClawHub Convex tables, TTL fields, cleanup crons, retention policy, auth/session cleanup, metric dedupe cleanup, or depr…

不碰外部(只输出文字)无严重或高危命中openclaw/clawhub

它会碰到什么

扫了多少1 个文本文件,2 KB
它会碰到什么不碰外部(只输出文字)
命中总数0 处
命中统计严重 0 · 高 0 · 中 0 · 低 0

这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。

技能内容

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-convex and read convex/_generated/ai/guidelines.md first.
  • Add every new schema table to RETENTION_POLICIES; the Record<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 expirationTime to match Convex Auth. Keep existing expiresAt,

dayStart, and processedAt fields unless that table already needs a real migration.

  • Use RETENTION_STANDARD_BATCH_SIZE for ordinary retention jobs. Keep incident-tested special cases,

such as skillStatEvents, 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 authSessions and authRefreshTokens are pruned by

convex/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 codegen after schema/API changes.
  • Run a real Convex runtime check such as bunx convex dev --once --typecheck=disable.

想直接用这个技能?

本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。