Releases: Argenis1412/PatchForge
Releases · Argenis1412/PatchForge
Release list
PatchForge v1.2.0
PatchForge v1.2.0 is released.
Highlights
- Candidate-promotion
applyprotocol with isolated validation and atomic publication ofpatchforge/<run_id>branches. - Versioned validator configuration, authorization decisions, and centralized subprocess timeout policy.
- Explicit operator credential resolution, shared provider policy, and effect-free Plan, Preview, and initial CI preflight rejection handling.
- Audit bundle export and verification with optional redaction and GPG signatures.
- Python subproject support for monorepos and aligned
doctor/scancompatibility checks. - Attested
review-evidence@3plan and diff producers with an advisory consumer.
Compatibility notes
patchforge applypromotes a validated candidate commit instead of modifying the caller's working tree.--risk-budgetacceptslowandmediumonly; historicalhighrun metadata remains readable.- Default workspaces and explicit credential files must remain outside the target repository.
review-evidence@3remains advisory. This release does not enable a decisory merge gate.
Validation
- Ruff lint and format checks passed.
- Full test suite: 1112 passed, 7 skipped.
- Package build produced
orchestrator_core-1.2.0-py3-none-any.whlandorchestrator_core-1.2.0.tar.gz.
Release commit: 8f6e98f0334487e40c1ae173a90f446891d9007a.
v1.1.0.
Highlights
- Docker containerization (
Dockerfile,docker-entrypoint.sh,.dockerignore) - CI/CD reusable GitHub Actions workflow (
patchforge cicommand) - Asymmetric risk gates (
auto_apply_eligiblefield onRunMetadata) - Executor DAG scheduler — task dependency resolution via Kahn's algorithm
- WAL atomic writes for all apply.json persistence
- Circuit breaker externalized to SQLite with thread-safe locking
- GitHub Client, Work Queue schema, Artifact Store, Worker Loop (async infra)
- Executor new-file creation support (Issue #210)
- Executor lifecycle observability:
log_event()trail across pipeline - Provider fallback chain (Gemini → OpenRouter → Claude) for architect, scout, validator
ci --force-provider,plan --force-providerfor provider forcing- Architect structural context annotations (D-005) — injects Python AST symbols into prompt
- Executor pre-diff
ast.parse()syntax validation (D-006) — rejects non-Python LLM output - Centralized
PROJECT_ROOTinorchestrator/paths.py - Targeted git staging in CI (replaces
git add -A) - Makefile for quick QA (
make qa) - Claude as third fallback in validator summarizer
- Dogfooding experiments 005–009 (E2E validation, D-001/004/005/006 fixes + validator PATH fix)
Fixed
- 🔴 Validation workspace:
git add .+git commitnow run aftergit init - 🔴 Path traversal (Windows):
_has_parent_segmentnormalizes\→/ - 🔴
normalize_git_url: lowercasing only on Windows - 🔴 SSH URL parsing: explicit regex matchers, fixes port-number URLs
- 🟠 Subprocess timeouts:
timeout=30on all git subprocess calls - 🟠 Experiment verification: shared
verify_experiment_or_warn()helper - 🟡
Verdict.generated_at: Python 3.12 compat fix - CB thread-safety (Issue #219)
- CRLF corruption fix on Windows (Issue #192/#193)
- Phantom paths in plan (D-001)
- Workspace hash inconsistency on Windows (Issue #149/#150)
- Validator timeout configurability (Issue #151)
- Staging cleanup / empty patch.diff guard (Issue #159/#160)
- Silent-failure hardening (Issue #194/#195)
- Validator PATH resolution on Windows without
.venv—run_ruff()/run_pytest()now resolve viasys.executable -minstead of bare PATH lookup (Issue #223, PR #224)
Changed
CircuitBreakerStoreexternalized to SQLite (Issue #126)write_verdict()moved toWorkspaceManagerDEFAULT_TIMEOUT120→300→450s- Targeted git staging in CI replaces
git add -A(Issue #212) - Branch naming:
patchforge/{run_id}[/issue_{issue_number}](Issue #142) - Provider chain: Groq → OpenRouter (Issue #162)
Full Changelog: CHANGELOG.md
v1.0.0.
v1.0.0 — PatchForge
First stable release of PatchForge.
All planned V1 functionality has been implemented.
Commands
| Command | Status | Description |
|---|---|---|
doctor |
✅ | Readiness check (no AI, no modifications) |
scan |
✅ | Deterministic repository analysis (no AI) |
plan |
✅ | AI-assisted (Claude) — bounded by risk gate |
preview |
✅ | Patch generation + validation |
apply |
✅ | Git-safe patch application |
QA
ruff check .→ 0 errorsruff format --check→ cleanpytest→ 207 passed, 1 skipped
Previous aliases
The CLI was renamed from orchestrator to patchforge. The old orchestrator command is retained as a legacy alias for backward compatibility and will be removed in v2.