Files
Developer 886c863260 feat: refresh shared Git config mounts live
- Use profile-scoped canonical Git clone sources with locked refreshes
- Mount shared Git configuration read-only and isolate profile content
- Add API and desktop/mobile actions for live Git mount refresh

Quality gates: frontend build and backend py_compile passed.
Skipped: backend pytest/Ruff unavailable; Docker/manual checks not approved.
2026-07-21 14:37:42 +00:00

1.3 KiB

Design: Live Git Config Mount Refresh

Canonical source

Each selected Config Profile owns canonical Git clone directories beneath:

<instance-root>/config-profiles/<profile-id>/git-mounts/<identity>/repo

identity is a stable hash of normalized remote URL, requested ref, and credential scope. Sources are deliberately profile-scoped; clones are never shared across users.

Runtime behavior

  1. Resolve Git mounts and map them to canonical sources.
  2. Acquire an exclusive lock for clone, fetch, ref resolution, and checkout.
  3. Clone into a temporary sibling, then rename on initial creation.
  4. For refresh, fetch and update the existing working tree in place.
  5. Bind directory mappings read-only. Existing containers see changed directory contents without recreation.

Boundaries

  • URL/ref/source/target/mode changes, direct-file mappings, and changed glob result sets return restart_required.
  • Refresh failure is reported without mutating a known-good checkout.
  • No non-Git profile content may be copied into a Git checkout; overlapping targets are rejected or reported.
  • Containers must not write to shared Git mount sources.

Security

Host Git operations use only an authorized server-side credential source. Credentials are not part of the mounted checkout and are not exposed to containers.