Skip to content

feat(daemon): per-repo allowed write paths (default stays docs-only)#8

Merged
Svaag merged 1 commit into
mainfrom
feat/daemon-allowed-paths
Jun 15, 2026
Merged

feat(daemon): per-repo allowed write paths (default stays docs-only)#8
Svaag merged 1 commit into
mainfrom
feat/daemon-allowed-paths

Conversation

@Svaag

@Svaag Svaag commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

Context

Prep for Phase D (tracker network-operations#225): to dogfood the loop on the VPS launch-proof code (hyrule-cloud/hyrule-web), it must be able to write non-docs paths. Today the operations-lane daemon hardcodes allowed_paths=("docs",) with no override on the daemon subcommand, so the live loop is docs-only and would be path-blocked from any code change.

Change

  • DaemonConfig.allowed_paths_by_repo: per-repo override keyed by sibling checkout name (e.g. hyrule-cloud). Any repo not listed falls back to allowed_paths (docs-only).
  • daemon --allow REPO=PATH_PREFIX (repeatable), parsed via the existing _parse_repo_paths helper.
  • daemon_once resolves the effective allowed paths for the picked issue's repo before invoking the feature runner.

Safety

  • Backward compatible: no --allow → docs-only everywhere, exactly as before. The conservative default is unchanged; widening is explicit and per-repo.
  • All other rails intact: draft-PR only, human merge, gate commands + path/secret policy, eval corpus.

Validation

  • uvx ruff check src tests — clean
  • uv run --group dev mypy --strict src — clean
  • uv run --group dev pytest -q175 passed (+3: default docs-only, per-repo override, unlisted-repo fallback)
  • evals run --strict — 15/15

Next

After merge + pin/deploy on loop (network-operations, scoping e.g. hyrule-cloud=hyrule_cloud,hyrule-cloud=tests,hyrule-cloud=scripts,hyrule-cloud=docs), queue the step 8–9 loop:approved issues for the loop to attempt.

The operations-lane daemon hardcoded allowed_paths=("docs",), so the live
loop could only ever modify docs/. To let the loop attempt scoped code work
(e.g. the VPS launch-proof wedge) it needs a way to widen write paths for
specific repos without abandoning the conservative default.

- DaemonConfig.allowed_paths_by_repo: per-repo override keyed by sibling
  checkout name; any repo not listed falls back to allowed_paths (docs-only).
- daemon --allow REPO=PATH_PREFIX (repeatable) wires it via the existing
  _parse_repo_paths helper.
- daemon_once resolves the effective allowed paths for the picked issue's repo.

Backward compatible: no --allow → docs-only everywhere, exactly as before.
All safety rails unchanged (draft PR only, human merge, gates, eval corpus).

Validation: ruff clean, mypy --strict clean, 175 passed, evals 15/15.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@Svaag Svaag added the agentic-isp AS215932/Hyrule agentic ISP operating-loop work label Jun 15, 2026
@Svaag Svaag marked this pull request as ready for review June 15, 2026 19:14
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@Svaag Svaag merged commit d45f892 into main Jun 15, 2026
4 checks passed
@Svaag Svaag deleted the feat/daemon-allowed-paths branch June 15, 2026 19:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agentic-isp AS215932/Hyrule agentic ISP operating-loop work

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant