mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-08 11:46:35 +00:00
The swarm drill provisions a fresh inventory each round: _provision runs the services disabler, which writes enabled: false, shared: false for every service in `disable=`. _force_shared_db then ran four seconds later and flipped shared back to true, because it only ever looked at shared and never at enabled. Its key set comes from every flagged top-level key of the svc-db-* roles, so it covers svc-db-mariadb's own consumer entries tor and container_backup, both of which sit on the disable list. The result was enabled=False, shared=True, and the deploy aborted on the consistency guard in services_disabler. Guard the flip on enabled instead of narrowing the key set: the key set would only drop today's two keys, while postgres, redis, memcached, qdrant, typesense and ldap are all equally on the live disable list. `is not False` keeps flipping entries that carry no enabled key at all. derive_includes mirrors force_shared_db by contract, so it gets the same condition; otherwise the dependency walk sees a different topology than the deploy. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>