Skip to content

test: genericise repo-name fixtures + add PR-time tenant-firewall gate - #229

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

test: genericise repo-name fixtures + add PR-time tenant-firewall gate#229
Jammy2211 merged 2 commits into
mainfrom
feature/tenant-firewall-drift-aug

Conversation

@Jammy2211

Copy link
Copy Markdown
Contributor

The PyAutoBrain leg of PyAutoLabs/PyAutoMind#198 (tenant-firewall drift: refactor-first clear + PR-time gates). Merges after PyAutoLabs/PyAutoMind#199 — the new CI step invokes the --only selector from a PyAutoMind checkout of main, so the gate step here stays red until that PR lands (expected; noted in the #198 sequencing comment).

Changes

Clears the three PyAutoBrain firewall findings by the recorded decision rule (derivable/arbitrary → refactor, never allowlist):

  • tests/test_worktree_conflict_guard.pyRepoARepoG: the awk in bin/worktree.sh does plain string compares and validates against no repo list, so real names carried no test value. The docstring's schema examples genericise with it; convention comment added so real names don't creep back.
  • tests/test_intake_dashboard.pyExampleOrg in the fake issue URLs: the dashboard regex captures whole URLs and never inspects the owner.
  • tests/test_profiling_conductor.pyprofiling_workspace fixture dir: every invocation passes --workspace explicitly — the rename also proves the override is honoured.

Gate (Phase B):

  • .github/workflows/tests.yml gains one non-pytest step: repos_sync.py --check --only "tenant firewall (organ code)" --root "$GITHUB_WORKSPACE". The workflow already checks out Brain + Mind side by side — exactly the layout --root needs; organs not checked out are skipped by the check, so this gates exactly Brain. Header prose updated (was "deliberately ONLY pytest").

Verification

  • Brain pytest: 349 passed (full suite, including the three genericised files).
  • The exact gate command run locally against the branch trio → check tenant firewall (organ code): OK, exit 0.
  • Negative probe: a real manifest name inserted into a genericised file is flagged (exit 1).

Generated by Claude Code

Clears the three PyAutoBrain tenant-firewall findings by the recorded
decision rule (derivable/arbitrary -> refactor, PyAutoMind#198):

- test_worktree_conflict_guard.py: RepoA..RepoG — the awk does plain
  string compares against no repo list, so real names carried no value.
- test_intake_dashboard.py: ExampleOrg — the dashboard regex never
  inspects the URL owner.
- test_profiling_conductor.py: profiling_workspace — every invocation
  passes --workspace explicitly, which the rename also proves.

tests.yml gains the repos_sync.py firewall leg via its new --only
selector, so future instance-fact drift fails in the PR that authors it
instead of accreting reactive allowlist patches. Note: this step needs
the --only selector on PyAutoMind main — merge after the PyAutoMind PR.
@Jammy2211
Jammy2211 merged commit 90d86b0 into main Aug 17, 2026
2 checks passed
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