Skip to content

chore: add git history scrubbing tool#95

Closed
abrichr wants to merge 1 commit into
mainfrom
chore/repo-maintenance-v2
Closed

chore: add git history scrubbing tool#95
abrichr wants to merge 1 commit into
mainfrom
chore/repo-maintenance-v2

Conversation

@abrichr

@abrichr abrichr commented Mar 3, 2026

Copy link
Copy Markdown
Member

Summary

  • Add maintenance/ package with reusable CLI for scrubbing sensitive data from git history
  • Five subcommands: scan (find patterns), plan (dry-run), clean (execute rewrite), verify (confirm success), ticket (generate GitHub Support text)
  • Uses git-filter-repo with message-callback and blob-callback for commit messages and file contents
  • Handles branch protection toggle, force push, and fork enumeration
  • Patterns file is gitignored to prevent accidental commit of sensitive strings

Test plan

  • python3 -c "import maintenance.tidy; print('OK')" passes
  • CLI --help shows all 5 subcommands
  • CI tests pass

🤖 Generated with Claude Code

Reusable CLI for scanning, planning, executing, verifying, and
ticketing sensitive data removal from git commit messages and file
contents. Uses git-filter-repo under the hood.

Five subcommands: scan, plan, clean, verify, ticket.
Patterns file is gitignored to prevent accidental commit.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@abrichr

abrichr commented Mar 3, 2026

Copy link
Copy Markdown
Member Author

Moved to OpenAdaptAI/openadapt-ops#1

@abrichr abrichr closed this Mar 3, 2026
@abrichr
abrichr deleted the chore/repo-maintenance-v2 branch March 3, 2026 22:10
abrichr added a commit that referenced this pull request Jul 14, 2026
…low harness

Adds a LOCAL Parallels environment so the demonstrate-then-replay eval mode runs
at $0 against the Parallels Win11 VM (native Apple-Silicon virt) with the SAME
runner + metrics as WAA -- for de-risking before spending Azure $.

- openadapt_evals/flow/parallels_env.py: ParallelsSession (snapshot -> run ->
  revert, never stops/deletes the VM), reuses openadapt-flow's ParallelsVM
  (prlctl wrapper) + win_agent server (PR #95) via launch_agent; once up it
  exposes the SAME /screenshot + /execute_windows contract WAA does, so the
  identical WindowsBackend replay path works unchanged. Parallels supplies the
  ENVIRONMENT but not WAA's tasks/verifiers -- built-in trivial Notepad/
  Calculator tasks + ground-truth in-guest verifiers are supplied here.
  Opt-in gated (OPENADAPT_PARALLELS=1), skipped by default.
- scripts/eval_flow_on_waa.py: --env {waa,parallels}. Parallels dry-run shows
  $0 (local), the opt-in gate status, and the snapshot-safe note; --live is
  gated on the opt-in var and refuses otherwise.

Local-$0 (Parallels) vs cloud-$ (WAA/Azure) is labelled everywhere. Heavy
imports (openadapt_flow) stay lazy and the VM + replay are injectable, so the
whole path is mock/dry-run testable (10 new tests) with no prlctl, no VM, no
mutation. Note: launch_agent/win_agent ship in openadapt-flow PR #95 (still
open) -- a live local run depends on that; the dry-run + tests do not.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CKrVJJy5jWVCkXAqgUqtqZ
abrichr added a commit that referenced this pull request Jul 14, 2026
…d-as-agent) with cost-guarded dry-run (#265)

* feat: evaluate openadapt-flow on WAA (demonstrate-then-replay + hybrid-as-agent) with cost-guarded dry-run

Wire openadapt-flow (the demonstration compiler) into the WAA benchmark
harness with two eval modes, both scored by WAA's own task verifier:

- demonstrate-then-replay (openadapt_evals/flow/replay_runner.py): compile
  ONE demo into a bundle and replay it via openadapt-flow's WindowsBackend
  against the WAA in-guest /screenshot + /execute_windows server (~0 model
  calls). Emits per-task WAA-verified success, structural rung fire rate,
  model calls, wall-clock, and halt/heal events.
- hybrid-as-agent (openadapt_evals/flow/hybrid_agent.py): HybridFlowAgent
  implements BenchmarkAgent so the existing runner can drive it -- compiled
  replay first, computer-use agent fallback only on a detected halt, gated by
  a SpendLedger. Directly comparable to a pure agent baseline on the same
  tasks.

Cost model + hard guardrails (openadapt_evals/flow/cost.py, stdlib-only):
per-run $ cap, total $ ceiling, per-task token cap, abort-on-repeated-billing
-error (mirrors openadapt-flow's SpendLedger; the prior $40-70 uncapped-run
incident is why these are mandatory). scripts/eval_flow_on_waa.py is dry-run
by default -- prints the plan + cost for N tasks and never provisions Azure,
starts a VM, or spends money. waa_cost_estimate.py gains a flow-aware
--tasks/--mode/--dry-run path.

openadapt-flow is an optional [flow] extra; all replay/hybrid code lazy-imports
it, so the cost model and dry-run work with zero flow dependency and the whole
integration is mock/dry-run testable locally (30 new tests, no Azure, no VM).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CKrVJJy5jWVCkXAqgUqtqZ

* fix: prime a fresh post-replay observation with a no-op WAIT before the hybrid agent's paid fallback

The observation handed to the first fallback act() predates the compiled
replay's VM mutations (replay drove the WAA server directly, bypassing the
adapter). A no-op WAIT forces the runner to fetch current state before the
paid computer-use agent takes its first real step.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CKrVJJy5jWVCkXAqgUqtqZ

* feat: add Parallels local-VM environment ($0) alongside WAA for the flow harness

Adds a LOCAL Parallels environment so the demonstrate-then-replay eval mode runs
at $0 against the Parallels Win11 VM (native Apple-Silicon virt) with the SAME
runner + metrics as WAA -- for de-risking before spending Azure $.

- openadapt_evals/flow/parallels_env.py: ParallelsSession (snapshot -> run ->
  revert, never stops/deletes the VM), reuses openadapt-flow's ParallelsVM
  (prlctl wrapper) + win_agent server (PR #95) via launch_agent; once up it
  exposes the SAME /screenshot + /execute_windows contract WAA does, so the
  identical WindowsBackend replay path works unchanged. Parallels supplies the
  ENVIRONMENT but not WAA's tasks/verifiers -- built-in trivial Notepad/
  Calculator tasks + ground-truth in-guest verifiers are supplied here.
  Opt-in gated (OPENADAPT_PARALLELS=1), skipped by default.
- scripts/eval_flow_on_waa.py: --env {waa,parallels}. Parallels dry-run shows
  $0 (local), the opt-in gate status, and the snapshot-safe note; --live is
  gated on the opt-in var and refuses otherwise.

Local-$0 (Parallels) vs cloud-$ (WAA/Azure) is labelled everywhere. Heavy
imports (openadapt_flow) stay lazy and the VM + replay are injectable, so the
whole path is mock/dry-run testable (10 new tests) with no prlctl, no VM, no
mutation. Note: launch_agent/win_agent ship in openadapt-flow PR #95 (still
open) -- a live local run depends on that; the dry-run + tests do not.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CKrVJJy5jWVCkXAqgUqtqZ

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
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.

1 participant