Benjamin commit on credits ran out

This commit is contained in:
bterkuile committed 2026-07-06 19:06:59 -05:00
1 parent 37288db487
commit 185ca0ca17
3 files changed
+203 -9

No files matched your search

+33
View File
@@ -1,6 +1,39 @@
Changelog
=============
0.1.1 (unreleased, branch code-review-fixes)
-----
Independent code review against live Couchbase 8.0.1 CE (see
SIMPLY_BASED_REVIEW.md). Fixes:
- Embedded documents: fixed SystemStackError (infinite mutual recursion) when
accessing embedded collections loaded from the database; rebuilt
EmbeddedClass.all/.count (they referenced silently-dropped raw JS views —
.all returned [] and .count raised NoMethodError); the spec exclusion for
embedding was broken (filtered a tag no example carried) — basic embedded
flows now run green, only reverse lookups stay excluded, honestly tagged.
- Store#view raises SimplyBased::UnsupportedView for view declarations the
N1QL translation cannot honour (:conditions / :emit_value / list functions)
instead of silently returning unfiltered results.
- N1QL identifier quoting hardened (quote_ident rejects backtick smuggling);
index predicates quote class names as proper string literals.
- ensure_index warns when index creation is swallowed (was fully silent while
every subsequent query fell back to a primary scan); bookkeeping is
mutex-guarded.
- bulk_load / bulk_destroy now use batched KV multi-operations (get_multi /
remove_multi) — previously one KV round trip per document despite the
"batched KV" claim.
- Counter#increment follows Redis INCR/INCRBY semantics (first increment of a
missing key returns the delta; it used to return 0 and undercount by one).
Decrement's unsigned clamp-at-zero divergence is documented and tested.
- Lock#release requires the CAS handle (nil used to delete any lock
unconditionally); force_release! added; acquire validates a positive ttl.
- Deterministic tree ordering: tree queries tie-break equal positions by
created_at and document id (was the main source of the "flaky ancestry"
failures).
- The adapter-contract shared examples are now actually included by a spec;
added multi-threaded concurrency specs (counters, locks, CAS conflicts).
0.1.0
-----
- Initial release: a Couchbase-native ActiveModel ORM, API-compatible with