Skip to content

chameleon 2.32.2

Choose a tag to compare

@github-actions github-actions released this 25 Jun 10:04

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.lock the 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-.conventions write-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
    (.idioms before .conventions), so a rename and a refresh cannot deadlock.