Fix ClickHouse query errors when querying AggregatingMergeTree tables that use state functions. Use when: (1) Query fails with type mismatch on AggregateFunction columns, (2) Using sum/count on columns created with sumState/countState/uniqState, (3) Creating views that JOIN with materialized views using AggregatingMergeTree, (4) Getting unexpected results from aggregate columns that show as AggregateFunction(sum, ...) type. The *State() functions store intermediate aggregate states, not final values - you must use *Merge() functions to finalize them.
The English summary is being prepared. Showing the original description.
divinevideo/divine-mobile☆ 265Updated Oct 22, 2026
Fix ClickHouse Cloud migration failures caused by multi-table RENAME statements. Use when: (1) Migration fails with "Database X is Shared, it does not support renaming of multiple tables in single query", (2) golang-migrate or other migration tools show dirty database version after a table-swap migration on ClickHouse Cloud, (3) Schema migration works on self-hosted ClickHouse but fails on ClickHouse Cloud. ClickHouse Cloud uses SharedMergeTree engine which has restrictions not present in regular MergeTree.
The English summary is being prepared. Showing the original description.
divinevideo/divine-mobile☆ 265Updated Oct 22, 2026
Fix HTTP 500 / ClickHouse "column not found" errors when filtering by a MATERIALIZED column through a VIEW that doesn't expose it. Use when: (1) a WHERE clause references alias.column on a view but the column is MATERIALIZED on the underlying table, (2) the query works on the raw table but fails through the view, (3) adding a new filter param to an API causes 500 even though the column exists in the base table. Fix by using a subquery against the base table instead of referencing the column directly on the view. Applies to ClickHouse views over tables with MATERIALIZED or ALIAS columns.
The English summary is being prepared. Showing the original description.
divinevideo/divine-mobile☆ 265Updated Oct 22, 2026
Fix duplicate Nostr events in ClickHouse when using ReplacingMergeTree for NIP-33 addressable events (Kind 30000+). Use when: (1) Edited videos/events appear as duplicates, (2) Same d_tag shows multiple events with different IDs, (3) FINAL keyword doesn't deduplicate properly for parameterized replaceable events. The issue is that FINAL deduplicates by ORDER BY key (typically `id`), not by (pubkey, kind, d_tag).
The English summary is being prepared. Showing the original description.
divinevideo/divine-mobile☆ 265Updated Oct 22, 2026
Fix ClickHouse query errors in Rust when using clickhouse-rs crate. Use when: (1) "string is not valid utf8" errors - typically FixedString columns need CAST to String, (2) "tag for enum is not valid" errors - typically Option<T> fields receiving non-NULL values, (3) Sum/count aggregations returning Float64 but Rust expects u64, (4) LEFT JOIN results with empty strings where Rust expects Option::None, (5) "not enough data, probably a row type mismatches a database schema" - query SELECT returns fewer columns than the Rust Row struct expects (common when multiple query functions share the same struct but one function is missing columns added later), (6) Garbled/corrupted data when INSERTing to FixedString(N) columns using String Rust type - silently corrupts data (no error!) because String adds a length prefix but FixedString expects exactly N raw bytes. Fix: use [u8; N] with #[serde(with = "BigArray")] from serde-big-array, (7) "the trait bound `[u8; 64]: serde::Serialize` is not satisfied" when using [u8; N] arrays in Row structs - need #[serde(with = "BigArray")] annotation from serde-big-array crate.
The English summary is being prepared. Showing the original description.
divinevideo/divine-mobile☆ 265Updated Oct 22, 2026
Fix Cloud Run GPU deployment failures caused by quota errors. Use when: (1) `gcloud run deploy` fails with "You do not have quota for using GPUs with zonal redundancy" AND "You do not have quota for using GPUs without zonal redundancy", (2) The service already exists and is running with a GPU, (3) You only need to update the container image, not change GPU config. Uses `gcloud run services update --image` instead of `gcloud run deploy` to bypass quota re-validation on existing GPU services.
The English summary is being prepared. Showing the original description.
divinevideo/divine-mobile☆ 265Updated Oct 22, 2026
Set up Cloud Run Jobs with CloudSQL connection. Use when: (1) Deploying long-running batch jobs that need database access, (2) Errors like "Cloud SQL Proxy not found" in container, (3) "password authentication failed" despite correct credentials, (4) Job creation fails with permission errors. Covers socket path configuration, IAM permissions, and common gotchas.
The English summary is being prepared. Showing the original description.
divinevideo/divine-mobile☆ 265Updated Oct 22, 2026
Configure static outbound IP addresses for Google Cloud Run jobs/services. Use when: (1) External service needs to whitelist your IP (archive.org, APIs, firewalls), (2) Cloud Run requests appear from random/changing IPs, (3) Need consistent source IP for crawlers, scrapers, or API clients running on Cloud Run. Requires VPC connector + Cloud NAT + static IP reservation. Works for both Cloud Run services and jobs.
The English summary is being prepared. Showing the original description.
divinevideo/divine-mobile☆ 265Updated Oct 22, 2026
Fix Google Cloud Scheduler silently failing to trigger Cloud Run jobs with status code 7 (PERMISSION_DENIED). Use when: (1) Cloud Run jobs stop running but schedulers show ENABLED, (2) gcloud scheduler jobs describe shows lastAttemptTime but status.code: 7, (3) Jobs worked before but stopped after IAM changes or project updates. The scheduler service account needs roles/run.invoker on the project.
The English summary is being prepared. Showing the original description.
divinevideo/divine-mobile☆ 265Updated Oct 22, 2026
Fix psycopg2 "could not receive data from server: Operation timed out" or "connection already closed" errors when using Cloud SQL with long-running Python scripts. Use when: (1) psycopg2.OperationalError after a period of no DB activity, (2) DB connection works initially but fails after a non-DB phase (API calls, file processing, CDX scans), (3) Cloud SQL managed PostgreSQL kills idle connections. The fix is to defer DB connection opening until needed, or add reconnection logic for long-running batch processes.
The English summary is being prepared. Showing the original description.
divinevideo/divine-mobile☆ 265Updated Oct 22, 2026
Fix misleading HTTP response header values when debugging with curl -I or curl -sI. Use when: (1) Response headers differ between curl testing and actual browser/client behavior, (2) Cache-Control or other headers show unexpected values despite correct middleware code, (3) Server-side middleware that only applies to GET requests appears to not work when testing with curl -I. The -I flag sends HEAD requests, and middleware that checks for GET method will skip processing, returning handler-level headers instead of middleware-overridden ones.
The English summary is being prepared. Showing the original description.
divinevideo/divine-mobile☆ 265Updated Oct 22, 2026
Fix Dart/Flutter services where calling start() after stop() is a silent no-op because stop() sets a _disposed (or similar) flag that start()'s guard short-circuits on. Use when: (1) A repository/service/controller has startListening/stopListening, subscribe/unsubscribe, open/close, or similar lifecycle methods, (2) Re-opening the service after closing it appears to do nothing — no subscription, no events, no error, (3) Unit tests that only exercise a single mount/open/start cycle pass while the real app breaks on the second visit to a screen, (4) A boolean flag is used both for "in the middle of tearing down this instance forever" AND for "currently stopped, can be re-started". Common in Riverpod/Bloc-driven screens that wire startListening() in initState and stopListening() in dispose — the second time the user visits the screen, nothing happens.
The English summary is being prepared. Showing the original description.
divinevideo/divine-mobile☆ 265Updated Oct 22, 2026
Recover content from "dead" CDNs where DNS no longer resolves but servers still respond. Use when: (1) A service shut down but you have URLs to their CDN, (2) DNS lookups fail but you suspect the CDN provider (Fastly, CloudFront, Akamai) still has the content, (3) Archiving content from defunct services like Vine, Tumblr, etc. The key insight: CDN providers often keep serving content long after DNS dies - hit the IP directly with the original Host header.
The English summary is being prepared. Showing the original description.
divinevideo/divine-mobile☆ 265Updated Oct 22, 2026
Fix incorrect priority ordering when using denormalized aggregate columns. Use when: (1) Records are processed in wrong order despite ORDER BY on count/sum columns, (2) Top items by some metric aren't being selected first, (3) Aggregate columns show 0 or NULL for records that should have high values, (4) Priority queue processes low-value items before high-value ones. The root cause is often that denormalized columns (vine_count, loop_count, total_orders, etc.) weren't backfilled or maintained properly. Solution: JOIN with source tables to compute actual aggregates at query time.
The English summary is being prepared. Showing the original description.
divinevideo/divine-mobile☆ 265Updated Oct 22, 2026
Use when starting work in any divine-* repo (divine-web, divine-mobile, divine-funnelcake, keycast, divine-blossom, divine-router, etc.) or when you've learned a cross-repo fact worth sharing back. The shared divine-context handbook at ~/code/divine/divine-context/ is the source of truth for cross-cutting architecture, Nostr usage, terminology, and the project catalog across the ~50 divine-* repos.
The English summary is being prepared. Showing the original description.
divinevideo/divine-mobile☆ 265Updated Oct 22, 2026
Fix "blocked: event rejected by relay policy" errors when publishing Kind 34236 (video) events to divine relays. Use when: (1) Kind 0 profile events succeed but Kind 34236 fails, (2) Generic policy rejection with no specific reason, (3) Video events work on other relays but fail on divine relays. The divine relay requires thumbnails for all video events - stricter than NIP-71 spec.
The English summary is being prepared. Showing the original description.
divinevideo/divine-mobile☆ 265Updated Oct 22, 2026
Fix LRU-bounded Flutter/bloc state classes that silently lose insertion-order updates. Use when: (1) a state class uses `Equatable` with a `LinkedHashMap<K, V>` field to preserve insertion order (LRU, MRU, recent-items caches), (2) `Cubit.emit` appears to drop emissions when an existing key is re-inserted or moved to most-recent, (3) LRU eviction evicts the "wrong" entry after a refresh, (4) a test that reports the same key twice and then overflows the cap sees the refreshed entry evicted instead of the oldest. Root cause: Equatable's default map comparison is structural (unordered), so reordering without changing keys/values produces an "equal" state that `Cubit.emit` suppresses.
The English summary is being prepared. Showing the original description.
divinevideo/divine-mobile☆ 265Updated Oct 22, 2026
Fix silent failures in Fastly Compute@Edge when using send_async for fire-and-forget requests. Use when: (1) Background tasks (migrations, webhooks, notifications) triggered from Compute never complete, (2) send_async PendingRequest is immediately dropped, (3) Fire-and-forget pattern works locally but fails in production, (4) An async trigger "logs as triggered" but the target service never receives the request (especially after renaming backend constants — the URL hostname is cosmetic, the backend name determines routing, so a global rename can silently reroute calls to the wrong service). Also covers silent backend-not-found errors when FALLBACK_BACKENDS or other backend constants reference names not configured in the Fastly dashboard.
The English summary is being prepared. Showing the original description.
divinevideo/divine-mobile☆ 265Updated Oct 22, 2026
Debug Fastly Compute deployments that appear successful but return stale/wrong responses. Use when: (1) fastly compute publish succeeds but version check shows old version, (2) new endpoints return 404 after deployment, (3) cache-busted requests work but regular requests fail, (4) fastly domain list doesn't show your custom domain. Covers edge propagation timing, cached error responses, and domain management API differences.
The English summary is being prepared. Showing the original description.
divinevideo/divine-mobile☆ 265Updated Oct 22, 2026
Fix "backend exists on a draft version but isn't reachable from the new Compute deploy" bugs after `fastly compute publish`. Use when: (1) You ran `fastly service backend create --autoclone` (or any dashboard/CLI change that creates a draft version) but did not activate that draft, (2) You then ran `fastly compute publish` which appeared successful but your backend / ACL / header / dictionary change is missing from the active version, (3) Compute code returns backend-not-found errors or misroutes requests, (4) You're surprised to see your draft version number "skipped over" in the version chain. Root cause: `fastly compute publish` clones from the currently-active version, not from the latest draft, so dashboard changes made in an un-activated draft get stranded.
The English summary is being prepared. Showing the original description.
divinevideo/divine-mobile☆ 265Updated Oct 22, 2026
Fix .well-known files (apple-app-site-association, assetlinks.json) being served as HTML by the @fastly/compute-js-static-publish SPA fallback instead of JSON. Use when: (1) iOS Universal Links or Android App Links are broken because the verification files return text/html instead of application/json, (2) PublisherServer with spaFile config intercepts /.well-known/ paths and returns index.html (200, text/html) instead of 404 for missing files, (3) apple-app-site-association (no file extension) gets wrong content type even when correctly stored in KV. Covers both apex domain and subdomain handler patterns.
The English summary is being prepared. Showing the original description.
divinevideo/divine-mobile☆ 265Updated Oct 22, 2026
Debug Fastly Compute services where code changes don't affect behavior due to multi-service routing architecture. Use when: (1) deployed changes have no effect, (2) unexpected redirects persist after code updates, (3) DNS resolves to Fastly but responses don't match deployed code, (4) `fastly service list` shows multiple related services. The root cause is often a routing/gateway service intercepting requests before they reach your content service.
The English summary is being prepared. Showing the original description.
divinevideo/divine-mobile☆ 265Updated Oct 22, 2026
Fix wildcard subdomain routing for Fastly Compute@Edge services when subdomains resolve but return 500 "Domain Not Found" or empty responses. Use when: (1) TLS subscription "issued" but edge serves default certificate (CN=j.sni-644-default), (2) Fastly domain-v1 create succeeds but subdomain returns 500, (3) Static publisher/PublisherServer returns empty content for subdomain requests, (4) DNS wildcard CNAME resolves to wrong target. Covers TLS configuration SNI endpoint selection (x.sni vs j.sni vs w.sni), DNS trailing dot issues, Fastly domain-v1 activation, and reading from KV store directly when PublisherServer fails for subdomains.
The English summary is being prepared. Showing the original description.
divinevideo/divine-mobile☆ 265Updated Oct 22, 2026
Fix Flutter macOS app crash at launch due to FFmpeg Kit library loading failure. Use when: (1) macOS app builds successfully but crashes immediately on launch, (2) Crash log shows "Library not loaded: libfontconfig.1.dylib" or similar homebrew library, (3) Error mentions "code signature not valid for use in process" with "different Team IDs", (4) Using ffmpeg_kit_flutter_new (Full GPL variant). The Full GPL variant has external dependencies on homebrew libraries that fail macOS code signing. Switch to ffmpeg_kit_flutter_new_min.
The English summary is being prepared. Showing the original description.
divinevideo/divine-mobile☆ 265Updated Oct 22, 2026