Port forge pr snapshot to Go #156

Merged
vnprc merged 1 commit from agent/forge-snapshot-port into master 2026-08-24 22:42:44 +01:00
Member

Summary

  • implement forge pr snapshot in the Go CLI with the Bash command's versioned JSON projection
  • preserve repository/URL binding, object-ID, ref, fork, and AGit head-ref validation
  • port all 19 Bash snapshot scenarios into the Go httptest suite and add command help/argument coverage

User impact

No intentional interface change. The Go binary now supports the snapshot command used by agent archetype launchers; the Bash implementation remains available until both downstream cutovers are deployed.

Validation

  • go test ./...
  • go vet ./...
  • all tests/forge/*.sh suites (including 19 snapshot scenarios)
  • nix build 'path:.#forge'
  • nix flake check 'path:.'
  • live read-only byte-for-byte comparisons between Bash and the built Go binary for --help, pr list, issue list, and pr snapshot 136

Residual risk

R3: this adds a machine-readable shared interface ahead of the profiles and host cutovers. Validation is intentionally fail-closed and is pinned by direct ports of the Bash fixtures plus a live Forgejo snapshot comparison. Deployment remains human-gated; this change alone does not alter the installed forge.

Rollback

Revert this PR or keep downstream pins on the existing Bash wrapper. Do not remove the Bash source until both the profiles and nexus cutovers have been rebuilt and verified.

Dependencies and follow-up

This must merge before updating the allod-tools pins in allod/archetypes#40 and allod/nexus#25. Those cutovers, human rebuild verification, and eventual Bash retirement remain tracked in allod/tools#155.

Refs allod/tools#155
Refs allod/tools#98

## Summary - implement `forge pr snapshot` in the Go CLI with the Bash command's versioned JSON projection - preserve repository/URL binding, object-ID, ref, fork, and AGit head-ref validation - port all 19 Bash snapshot scenarios into the Go `httptest` suite and add command help/argument coverage ## User impact No intentional interface change. The Go binary now supports the snapshot command used by agent archetype launchers; the Bash implementation remains available until both downstream cutovers are deployed. ## Validation - `go test ./...` - `go vet ./...` - all `tests/forge/*.sh` suites (including 19 snapshot scenarios) - `nix build 'path:.#forge'` - `nix flake check 'path:.'` - live read-only byte-for-byte comparisons between Bash and the built Go binary for `--help`, `pr list`, `issue list`, and `pr snapshot 136` ## Residual risk R3: this adds a machine-readable shared interface ahead of the profiles and host cutovers. Validation is intentionally fail-closed and is pinned by direct ports of the Bash fixtures plus a live Forgejo snapshot comparison. Deployment remains human-gated; this change alone does not alter the installed `forge`. ## Rollback Revert this PR or keep downstream pins on the existing Bash wrapper. Do not remove the Bash source until both the profiles and nexus cutovers have been rebuilt and verified. ## Dependencies and follow-up This must merge before updating the `allod-tools` pins in allod/archetypes#40 and allod/nexus#25. Those cutovers, human rebuild verification, and eventual Bash retirement remain tracked in allod/tools#155. Refs allod/tools#155 Refs allod/tools#98
vnprc approved these changes 2026-08-24 22:42:37 +01:00
vnprc merged commit 5649cec426 into master 2026-08-24 22:42:44 +01:00
vnprc deleted branch agent/forge-snapshot-port 2026-08-24 22:42:45 +01:00
Sign in to join this conversation.
No description provided.