Loading...
Loading...
Room/SQLite, DataStore and repository traps: migrations, NOT IN with NULLs, LIKE escaping, delete order, local-time bucketing, imports, caching, paging. Use before writing a query or migration, or when data comes back wrong.
npx skill4agent add maxrave-dev/kotlin-footguns data-layer-footgunsreferences/../*/references/<name>.mdcascading-delete-orderingsql-not-in-nullable-trapx NOT IN (subquery)like-wildcard-escaping-ids_%room-rawquery-readonly-vacuumclean-satellite-at-transitionroom-kmp-setuproom-migrations-at-scaledatastore-kmp-managerlocal-listening-analyticsimport-format-contract-designbulk-json-import-progressstored-timestamp-is-a-local-wall-clockbucket-local-time-in-code-not-in-sqlunbounded-for-shares-capped-for-listsfirst-ever-not-first-in-windowinclusive-period-boundaries-and-offset-resetrepository-flow-conventionscache-then-networkttl-keyed-json-cache-lenient-decodegeneric-paged-db-accumulatorcontinuation-token-pagination-contractencoded-continuation-tokens-local-sortorder-preserving-section-mappingremote-index-cached-as-rows-with-validatorsearch-over-a-paged-list-queries-the-sourcemirror-local-state-to-a-remote-account