chameleon 2.32.2
Archetype renames now serialize against the team-convention writers, closing a
silent lost-write race.
Fixed
- Archetype renames hold the write locks.
apply_archetype_renames(the
engine behind archetype renaming) did a read-modify-write of conventions.json,
counterexamples.json, and idioms.md and committed it via the atomic dir-swap
WITHOUT acquiring the.idioms.lock/.conventions.lockthe teach and refresh
writers use. A competing-import teach or an auto-refresh that landed between the
rename's read and its swap was therefore silently clobbered -- a success-reported
write that then vanished. The rename now wraps its whole read-modify-write in the
same.idioms-then-.conventionswrite-lock pair (blocking_timeout=10.0) that
bootstrap and refresh already hold, so a concurrent teach finishes first and the
rename reads its post-teach state. The lock order is the same everywhere
(.idiomsbefore.conventions), so a rename and a refresh cannot deadlock.