chameleon 2.32.1
The team-convention write paths now block-and-retry on a contended lock instead
of failing the capture outright.
Fixed
- Idiom and convention writes wait out a contended lock.
/chameleon-teach,
/chameleon-teach-competing-import(and its unteach), and the structured
idiom-deprecation paths acquired their.idioms.lock/.conventions.lock
non-blocking, so a capture that raced a second teach -- or, more commonly, the
default-on background auto-refresh, which holds both locks across the whole
7-36s re-derive -- failed immediately with "another operation holds the lock;
retry shortly". They now block-and-retry for up to 10s, matching the sibling
writers that already did (the refresh re-derive and the structured-teach
helper). The.refresh.lockand.bootstrap.locksingletons stay non-blocking
by design (a second concurrent refresh or bootstrap should fail fast, not
queue). No data was ever lost -- the failure was clean -- but a capture no
longer spuriously fails under the normal concurrency of a teach landing while
auto-refresh runs.