1.5 KiB
1.5 KiB
JOURNAL — sub-phase conc (Builder, append-only)
2026-06-10 — bootstrap
Read concurrency-restructure-full-plan.md (SSOT) + plan.md §6.1/§7/§9. Oriented on the code:
runner/harness/lifecycle.py— recipe flock (l.46), registry (l.65–97), deploy_app registration (l.283), teardown unregister (l.723), three-way janitor (l.726).runner/run_recipe_ci.py—acquire_recipe_lockcall site (l.843),fetch_recipe(l.140, rm-rf + reclone of the shared tree), janitor call sites (l.600 quick, l.932 cold)..drone.yml— recipe-ci step runscc-ci-run runner/run_recipe_ci.pybare (P1 wraps it),concurrency.limit: 2(P4 removes).- Greps for P3 fallout:
~/.abra/recipesreferenced in abra.py (recipe_checkout, has_lightweight_version_tags, recipe_head_commit, recipe_versions), generic.py:28, lifecycle.prepull_images, run_recipe_ci (fetch_recipe, snapshot_recipe_tests, comment), warm_reconcile.py:202 (runs OUTSIDE per-run context — keeps default), and tests/ghost+discourse install_steps.sh (${HOME}/.abra/recipes/...— these run INSIDE a run and copy compose.ccci.yml into the deploy tree, so they must resolve the per-run dir). ~/.abra/servers/...paths are unaffected by design (servers/ is symlinked to the canonical /root/.abra/servers, so both resolutions land on the same file).
Working setup: state files on main in this clone; code on branch restructure/concurrency
via a git worktree at ../cc-ci-conc; test runs on the cc-ci host via /root/builder-clone
(cc-ci-run -m pytest ..., nix develop .#lint).