Skip to content

Go rewrite#1

Open
ryanhellyer wants to merge 76 commits into
masterfrom
go_rewrite
Open

Go rewrite#1
ryanhellyer wants to merge 76 commits into
masterfrom
go_rewrite

Conversation

@ryanhellyer
Copy link
Copy Markdown
Owner

Go Rewrite

Replaces the shell implementation with a feature-complete Go rewrite.

Why? The shell script worked but was limited. Go gives us proper error handling, structured testing, and a single binary with no runtime dependencies (curl, jq, etc.).

What changed

  • Language: Shell → Go (single binary, no runtime deps)
  • API backend: Still supports the free hosted API and OpenRouter, but now fully configurable via GITMEH_API_BASE, GITMEH_API_KEY, GITMEH_MODEL
  • Fallback models: Configurable fallback chain with exponential backoff if the primary model fails
  • Diff truncation: Large diffs are proportionally truncated per-file to stay under the size limit (GITMEH_MAX_DIFF_BYTES, default 10KB)
  • Graceful shutdown: Cancels in-flight API requests on SIGINT/SIGTERM
  • Testing: Unit + integration tests across all packages
  • CI/CD: GitHub Actions with linting, security scanning, coverage reporting, and Dependabot
  • Installation: Single install.sh script, supports macOS/Linux/Windows

@ryanhellyer ryanhellyer self-assigned this May 4, 2026
ryanhellyer added 21 commits May 4, 2026 16:09
Remove the compile.sh script which merely invoked `make cross`.
Users should now run `make cross` directly.
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