Skip to content

maintenance: firewall allowlist +2 by the rule, --only selector, smoke-block identity leg - #199

Merged
Jammy2211 merged 1 commit into
mainfrom
feature/tenant-firewall-drift-aug
Aug 17, 2026
Merged

maintenance: firewall allowlist +2 by the rule, --only selector, smoke-block identity leg#199
Jammy2211 merged 1 commit into
mainfrom
feature/tenant-firewall-drift-aug

Conversation

@Jammy2211

Copy link
Copy Markdown
Collaborator

The repos_sync.py third of #198 (tenant-firewall drift: refactor-first clear + PR-time gates). Merge FIRST — the PyAutoBrain/PyAutoHeart gate PRs invoke the --only selector from a Mind checkout of main, so they go green only after this lands.

Changes

  • FIREWALL_ALLOWLIST +2 by the decision rule ("derivable or arbitrary → refactor; genuine branded fact → declare the surface"):
    • extend the agents/conductors/intake/_intake.py entry with autofit_workspace — the _upstream_noise docstring cites measured noise counts ("autofit_workspace in 26 files") as the evidence for rejecting a file-spread threshold; the names ARE the finding, and the code itself derives its repo sets from the body map;
    • add tests/test_intake_reconcile_ranking.py — its assertions pin resolution against the live body map (slug == "PyAutoLabs/PyAutoFit"; _upstream_noise filters via KNOWN_REPOS), so synthetic names would test nothing.
    • Net +1 entry / +1 token, vs +8 entries for the rejected allowlist-all-9 clear. Exactness audit run per the Aug 5 record: a wrong token inserted into each of these files still fails the check (negative probes verified locally).
  • check_heart smoke-block leg: validates the new smoke: block in Heart's config/repos.yaml (workspace directories, chain entries, import_names keys) against the manifest — closing the same identity-unchecked gap version_skew: had. Soft-skips while the block is absent, so this PR merges cleanly ahead of the PyAutoHeart extraction PR.
  • --only <label> selector (repeatable): run a single check leg, so an organ's PR CI gate fails only on the leg that PR can cause. Unknown labels fail loudly, naming the valid set.

Verification

  • python3 scripts/repos_sync.py --check against the Mind/Brain/Heart branch trio → check tenant firewall (organ code): OK, all other legs unchanged, exit 0.
  • --only "tenant firewall (organ code)" → OK, exit 0; unknown label → exit 1 naming valid labels.
  • Negative probes: bogus manifest name in a genericised file and a wrong token in an allowlisted file both flagged (exit 1); a bad repo name in the Heart smoke: block flagged by the new check_heart leg.
  • Mind pytest: 139 passed.

Merge order (from the #198 sequencing note)

  1. This PR.
  2. PyAutoBrain / PyAutoHeart gate PRs (their firewall steps need --only on Mind main).
  3. The stacked Mind gate-workflow PR (merges last, so its first run sees organ mains already clear).
  4. PyAutoHands leg — deferred behind PyAutoHands#235 (tracked on maintenance: tenant-firewall drift — refactor-first clear + PR-time gates #198).

Closes nothing on its own; #198 tracks the arc.


Generated by Claude Code

…e-block identity leg

The repos_sync.py third of PyAutoMind#198 (tenant-firewall drift):

- FIREWALL_ALLOWLIST: extend the _intake.py entry with autofit_workspace
  (measured-noise docstring — the names are the evidence) and add
  tests/test_intake_reconcile_ranking.py (assertions pin resolution
  against the live body map). Net +1 entry / +1 token, vs +8 entries for
  the rejected allowlist-all clear; both audited with negative probes
  (a wrong token in these files still fails).
- check_heart: validate the new smoke: block in Heart's config the same
  way the repos: groups are checked (soft-skip while absent, so this
  merges ahead of the PyAutoHeart extraction PR).
- --only <label>: run a single check leg, so an organ's PR CI gate fails
  only on the leg that PR can cause. Unknown labels fail loudly naming
  the valid set.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants