mirror of
https://github.com/calesthio/OpenMontage.git
synced 2026-08-09 17:08:13 +08:00
- gate = manifest OR caller (stricter wins); unknown pipeline_type now raises instead of silently disabling enforcement; corrupt manifest logs and falls back; misleading diagnostic fixed - write_checkpoint backfills pipeline_type from project.json marker so omitting the kwarg can't bypass gates - checkpoint writes are atomic (temp + os.replace); history archiving is copy-based and best-effort (Windows open-file safe) - manifest loads cached (load_pipeline_readonly); stage gate lookup moved to pipeline_loader.get_stage_human_approval_default; PROJECTS_DIR unified in lib/paths.py - events: containment + root-normalization for explicit project dirs, no ghost-project mkdir, 0.0 cost preserved, nested-call depth tag, wrapper simplified - documentary-montage edit-director gate footer (was missed); AGENT_GUIDE no longer claims edit/compose always auto-proceed
14 lines
401 B
Python
14 lines
401 B
Python
"""Canonical repository paths — single source of truth.
|
|
|
|
The projects root is the most load-bearing path in the system: checkpoints
|
|
are written under it, tool events are attributed against it, and the Backlot
|
|
board watches it. Define it once.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from pathlib import Path
|
|
|
|
REPO_ROOT = Path(__file__).resolve().parent.parent
|
|
PROJECTS_DIR = REPO_ROOT / "projects"
|