Skip to content

Choose a tag to compare

@danielchalmers danielchalmers released this 13 Oct 17:34
· 1 commit to main since this release
e98a0e2

AutoTriage 5 works with Claude, OpenAI, Gemini and any OpenAI-compatible service, replaces the fast and review model tiers with a single model, and fails on invalid inputs instead of quietly running with something else.

Highlights

  • Any model provider. Map ANTHROPIC_API_KEY or OPENAI_API_KEY instead of GEMINI_API_KEY, or set OPENAI_BASE_URL for any OpenAI-compatible service. Every provider now goes through one Chat Completions client, which replaces @google/genai. (#178, #181, #182, #183)

  • Runs you can trust.

    • Every run writes a job summary showing what was acted on, what failed and what wasn't reached.
    • The job goes red only for configuration errors, fatal model errors (bad key, unknown model, no credit) and bugs. Provider overloads and GitHub outages only warn.
    • Each model call is bounded by a 15-minute deadline, and a used-up daily quota fails the item at once instead of being retried for minutes.
    • An item that changes during analysis is re-analyzed once. If it keeps changing, the summary names the skipped plan and says to re-run the job.

    (#191, #192, #194, #225, #234)

  • Simpler setup. The policy and README are read through the API, so workflows no longer need actions/checkout. One event workflow now covers new issues, pull requests and comments, and the quick start grants the right permissions and queues runs instead of cancelling them. (#230, #221, #186)

  • Better triage decisions.

    • Commits and reviews are dated correctly in the timeline, so they no longer crowd out recent comments.
    • Archived labels are no longer offered to the model, and model replies are validated before any operation is applied.
    • Items that try to steer the bot are treated as spam, and comments that do are ignored.
    • The built-in policy adds every label an item strongly supports.

    (#189, #209, #180, #233, #224, #232, #216)

Upgrading

v5 collapses the two model tiers into one and rejects invalid configuration instead of ignoring it. The steps below are the changes most workflows hit, and the rest are in the list below.

  1. Replace the two model tiers with one model. Every item now gets a single analysis, so model-fast and model-pro become model, and max-fast-runs and max-pro-runs become max-runs (default 50). Items that fail count toward max-runs, and a re-analysis spends one more. A blank model uses the default for the API key you map. (#217, #226)

  2. Remove extended and strict-mode. Both inputs are gone, and a workflow that still passes them gets GitHub's unexpected-input warning. Backlog sweeps now always do what extended: true did, and runs with failed items stay green. Fatal model errors and bugs still fail the job. (#218, #191)

  3. Map one API key, or set model. With one key mapped, every model name goes to that provider. With several keys mapped, gemini-* and claude-* names go to their own provider and any other name goes to OpenAI or OPENAI_BASE_URL. A blank model with several keys mapped now fails at startup and names the keys, where before the first key in the order Gemini, Anthropic, OpenAI won silently. (#183, #210)

  4. Fix input values that used to be ignored. These now fail the run before anything is triaged, and the error names the value:

    • dry-run must be true or false, so yes no longer runs live.
    • issues must be positive numbers, optionally prefixed with #, separated by spaces or commas. A typo no longer turns an explicit list into a backlog sweep.
    • max-runs must be a whole number above 0, and budget-scale a number of 0 or more.
    • A custom prompt-path that is in neither the workspace nor the repository fails the run instead of falling back to the built-in policy.

    (#188, #226, #213, #230)

  5. Drop Gemini-only settings. GOOGLE_GEMINI_BASE_URL is no longer read, and backlog context caching and the flex tier are gone. Gemini's reasoning text no longer appears in the log or the hidden comment block, which now show the plan's summary and the policy clause behind each operation. (#183)

  6. Update anything that reads run-summary.json. The file is now written under that name instead of 0-run-summary.json, with schemaVersion 5 and a single model, prompt hash and usage block. Deferred items have their own outcome, and fields such as skipReason and github.retries are removed. (#190, #183, #217)

These release notes were initially generated by Nuntia. Learn more

What's Changed

Full Changelog: v4...v5