The schema hash already captures all collection changes, making the
$updatedAt field redundant (and unreliable since Utopia preserves it).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Counts alone miss delete/re-add scenarios where the count stays the same
but the schema is different. MD5 of the full attribute and index arrays
captures any schema change.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The collection $updatedAt is preserved by Utopia Database's updateDocument()
when the value is already set, so it doesn't change when attributes/indexes
are created. Include attribute and index counts in the cache key to ensure
schema changes properly invalidate the document list cache.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The testListDocumentsWithCache and testListDocumentsCacheBustedByAttributeChange
tests were failing because testCreateDocument (which runs earlier) adds 3 more
documents to the same movies collection, resulting in 6 docs instead of expected 3.
Additionally, the cache bust test was getting a cache 'hit' instead of 'miss' on
its first request due to sharing the same cache key as the previous test.
Fix by filtering all cache test queries to the 3 known setup document IDs, and
using distinct select/order queries in each test to avoid cache key collisions.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fix indentation alignment in cache hit detection condition
- Add total count assertions for cached and non-cached responses in test
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Move teams API to Modules
* lint
* Move team prefs & logs API to Modules (#11359)
* Move team prefs & logs API to Modules
* format
* missin desc
* Move team memberships API to Modules (#11362)
* Move team memberships API to Modules
* fix config dir
* Cloud parity
* params
* Cloud conflicts
* refactor
* prop
* refactor
* set teamId
* feedback
* feedback 2
* fix url-encoding
Executions that time out can remain stuck in waiting or processing status
in the database. This mirrors the frontend workaround from console#2788
across the relevant API endpoints for both functions and sites.
Changes:
- GET execution/log: override status to failed in response if elapsed time
since creation exceeds the resource timeout
- LIST executions/logs: same in-response override; when caller filters by
failed, expands DB query with OR to also fetch waiting/processing entries
created before the timeout threshold so they appear in results; skips
in-response override when caller explicitly requests a non-failed status
to avoid contradicting the filter
- DELETE execution: allows deletion of timed-out executions that are still
stored as waiting/processing by treating them as failed for the status guard
All changes are in-memory only — the database records are not modified.
Includes a note to remove once a proper DB-level fix is applied.