v0.325.0: share + escrow limiters reserve first; family sessions as fingerprints; samba renames apply; path guard widened; gates in a worktree
gates / gates (push) Successful in 45s

R-1111 reserveAttempt is the one limiter body (share password, escrow re-auth, dashboard sign-in). R-1112
family.json holds fingerprints; old files are converted at load. R-1113 the household's pass reuses its
family session. R-1109 the samba compose carries the smb.conf hash. R-1110 TestNoBareDrivePathToPathHelpers.
R-1114 shared_scripts.py resolves the felhom.eu sibling from a worktree. Each red-proved.

Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
2026-10-17 09:36:34 +02:00
parent 7d41c2973c
commit 94f44931dd
28 changed files with 945 additions and 190 deletions
+11 -6
View File
@@ -46,12 +46,17 @@ import sys
SCRIPTS = os.path.dirname(os.path.abspath(__file__))
CTRL = os.path.dirname(SCRIPTS) # <repo>/controller — every gate's cwd
REPO = os.path.dirname(CTRL) # <repo> — the root REUSE.md lives here
SHARED_REUSE = os.path.join(os.path.dirname(REPO), "felhom.eu", "scripts", "reuse_refs_check.py")
SHARED_INSTRUCTIONS = os.path.join(
os.path.dirname(REPO), "felhom.eu", "scripts", "instructions_gate.py")
# The felhom.eu sibling's scripts/: env override, else the main clone's sibling (a worktree outside git/), else
# ../felhom.eu — one resolver for every gate that reads it (shared_scripts.py, R-1114).
sys.path.insert(0, SCRIPTS)
from shared_scripts import shared_scripts_dir, workspace_dir # noqa: E402
SHARED_DIR = shared_scripts_dir(REPO)
# reuse_refs_check searches the sibling repos for cross-repo citations; from a worktree they sit beside the MAIN clone.
GATE_ENV = dict(os.environ, FELHOM_WORKSPACE=workspace_dir(REPO))
SHARED_REUSE = os.path.join(SHARED_DIR, "reuse_refs_check.py")
SHARED_INSTRUCTIONS = os.path.join(SHARED_DIR, "instructions_gate.py")
# R-389 — shared, like the two above: it lives in felhom.eu/scripts/ and is never copied.
SHARED_OBSERVATIONS = os.path.join(
os.path.dirname(REPO), "felhom.eu", "scripts", "observations_gate.py")
SHARED_OBSERVATIONS = os.path.join(SHARED_DIR, "observations_gate.py")
# R-404 — the golden NOTICE. Lives here, beside the runner, because it is about THIS repo's
# releases; it imports the felhom.eu gate rather than copying its comparison.
@@ -135,7 +140,7 @@ def run_gate(label, path, args):
(" " + " ".join(args)) if args else ""))
print("=" * 78, flush=True)
# stream the gate's own output rather than capturing it — its diagnostics are the point.
return subprocess.call([sys.executable, path] + args, cwd=CTRL)
return subprocess.call([sys.executable, path] + args, cwd=CTRL, env=GATE_ENV)
def main(argv):