Releasev0.19.7
v0.19.7 — scheduler & migration hardening
Questa è la nota di release così com'è stata pubblicata, non una sua riscrittura. Le note di release sono pubblicate nella lingua in cui sono state scritte.
The 15th adversarial review swept two un-audited subsystems — the scheduler (cron store / SOP / webhook dispatch) and the migration importers — and turned up 8 real bugs, 2 of them security-relevant. All fixed with regression tests.
Fixed — scheduler
- A corrupt
jobs.jsonno longer wipes every cron. A truncated or typo'd store file used to crash the whole store on load and clear all in-memory crons. The store now keeps its jobs on an unreadable/invalid file and doesn't advance its mtime, so a later fix reloads cleanly. - Concurrent
cron addis no longer lost. A daemon holding a stale snapshot could clobber a job another process added mid-dispatch; writes now fold in unknown on-disk jobs first (best-effort, documented as not a lock substitute). - Atomic writes use a unique temp file (no more two writers colliding on a shared
jobs.json.tmp). - Webhook jobs registered after
chimera servestarts now fire (the handler reloads before dispatch).
Fixed — migration
- 🔒
migratecan no longer overwrite arbitrary files via a symlinked skill. A hostile skill dir with aSKILL.mdsymlinked to e.g.~/.bashrccould be written through during taint-stamping — the pass now skips symlinks and requires the real path to stay under the skills dir. - A dotted skill filename (
planner.v2.md) keeps its.mdand is taint-stamped (it used to be copied without the extension and skip the taint boundary). migrate <source> <bad-path>now exits non-zero instead of silently reporting success.
Gate: 1466 passed / 4 skipped, mypy + ruff green.
Upgrade: `pip install --upgrade 'chimera-agent[full]'`