feat(repos): multi-machine path support via host_paths
Adds a JSONB column `host_paths` to managed_repos mapping
hostname → absolute local path. Fixes the consistency-checker
failure when the same repo lives at different paths on different
machines (e.g. /home/worsch/marki-docx on the workstation vs
/home/tegwick/marki-docx on custodiancore).
Changes:
- Migration g4b5c6d7e8f9: adds host_paths JSONB (default {})
- Model: host_paths Mapped[dict] column
- Schemas: host_paths in RepoRead; new RepoPathRegister schema
- Router: POST /repos/{slug}/paths/ — merges one host entry
- consistency_check.py: resolve_repo_path() prefers host_paths
[hostname] over local_path; --repo-path CLI override added
- MCP: update_repo_path(slug, path, host?) tool
- Makefile: register-path target; REPO_PATH passthrough on
check-consistency and fix-consistency targets
- TOOLS.md: documents update_repo_path
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -971,6 +971,27 @@ def register_repo(
|
||||
return json.dumps(repo, indent=2)
|
||||
|
||||
|
||||
@mcp.tool()
|
||||
def update_repo_path(repo_slug: str, path: str, host: str | None = None) -> str:
|
||||
"""Register or update the local filesystem path for a repo on a specific host.
|
||||
|
||||
Use this when a repo lives at a different absolute path on different machines
|
||||
(e.g. /home/worsch/marki-docx on the workstation vs /home/tegwick/marki-docx
|
||||
on custodiancore). The consistency checker will prefer the host-specific path
|
||||
over the legacy local_path field.
|
||||
|
||||
Args:
|
||||
repo_slug: Managed-repo slug (e.g. 'marki-docx')
|
||||
path: Absolute local path on the target machine (e.g. '/home/tegwick/marki-docx')
|
||||
host: Hostname to register the path for. Defaults to the current machine's hostname.
|
||||
"""
|
||||
import socket as _socket
|
||||
if not host:
|
||||
host = _socket.gethostname()
|
||||
repo = _post(f"/repos/{repo_slug}/paths", {"host": host, "path": path})
|
||||
return json.dumps(repo, indent=2)
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# ADR-001 compliance validation
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user