Restores the branch→edit→test→commit/revert loop deleted in
Operation Darling Purge (commit 584eeb679e).
New package: src/self_coding/
- self_modify/loop.py — SelfModifyLoop: creates a self-modify/<slug>
branch, runs an edit callable, gates commits on pytest -x -q, reverts
on failure, then opens a Gitea PR via the REST API.
- gitea_client.py — thin GiteaClient wrapper (create_pull_request,
add_issue_comment); degrades gracefully when token absent or network
unreachable.
Tests: tests/self_coding/test_loop.py (15 unit tests, all passing).
All 451 unit tests green; lint clean.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>