Repository navigation
Releases: seoes/proval
Releases · seoes/proval
Release list
0.3.0 Released
Hi guys
version 0.3.0 has released now. It's from 0.2.12 (0a61ac3) through main c52bfde, 38 commits.
I got great contributors. Cheers for @Decipher @NriotHrreion. They made most of changes of this version actually
you can see lots of enhancements for usability.
Maybe it has some issues with deployed version. than I'll comeback with 0.3.1 fix real quick
Here's some changes
xAI OAuth
- Adding a model provider now asks you to choose API Key or xAI OAuth.
- xAI OAuth shows a user code and an approval link. The provider is saved only after the xAI account approves it.
- The list shows an xAI OAuth badge plus Authorized or Reconnect required.
- The edit screen saves the name, concurrency, and timeout, and it can reconnect the account or test the connection. The base URL stays
https://api.x.ai/v1. - The access token refreshes 60 seconds before expiry. If there is no expiry time, the next call refreshes it. A 401 drops the rejected token, fetches a new one, and retries once.
- An
invalid_grantrefresh sets the status to Reconnect required. Concurrent refreshes for the same provider run once. - Credentials are sent only to
https://api.x.ai/v1. - Deleting the provider revokes the stored xAI credential.
- A repository on this provider can use Default, low, medium, high, or xhigh reasoning effort. Any other saved value falls back to Default.
- If the model list API cannot be reached, the list is empty and you can type a model ID yourself.
- While testing grok subscription, I kinda like this grok model. I'll set
grok-4.6 (xhigh)as review model for this repository
OpenAI Responses API
- API Key providers can now use OpenAI Responses. The list badge reads OpenAI Responses.
- Calls use the Responses API stream, and OpenAI side conversation storage stays off.
- Encrypted reasoning is sent again on the next request so reasoning continues across tool calls.
- The repository reasoning effort is included on the request.
- xAI OAuth calls go through this same Responses path.
Model call concurrency
- Each model provider can limit how many LLM calls run at once. An empty value means no limit.
- Calls past the limit wait in a queue. The limit covers every activity that uses that provider.
- Existing providers have an empty value, so they still run with no limit.
Repository AGENTS.md
- PR review plan, sub agents, and the writing agent read
AGENTS.mdandagents.mdas system instructions. PR comment replies, inline review replies, issue open comments, and issue replies do the same. - A PR loads the merge target head, and only the root plus parent directories of changed files. An issue loads only the root file on the checked out default branch.
- If both names exist in one directory,
AGENTS.mdis used. - Shallower guidance wins over deeper guidance. Deeper guidance can add rules that do not conflict with a parent. Proval workflow and repository settings win over file guidance.
- The prompt keeps at most 32 files, 32000 characters in total, and 8000 characters per file. Truncated or omitted files are written to that activity stage log.
- The guidance is appended at the end of the system prompt.
Review loop stops early
- Review sub agents and the writing agent stop once every required tool has been called.
- The extra request that resent the full transcript only to confirm the agent was finished is gone. That removes one request from each sub agent and one from the writing agent.
- The plan agent, PR replies, and issue agents still continue until the model stops calling tools.
Sub agent failure
- If one review sub agent fails, the review fails only after the other sub agents have finished.
- Workspace cleanup happens after that. A failed agent no longer deletes the workspace while the others are still calling the model.
etc
- A branch fetch no longer updates the currently checked out branch ref. The ref is stored under
refs/remotes/origin/and that ref is checked out. This fixes fetches that git rejected because the branch was already checked out. - A running review page no longer refetches the full log. It loads status, completion time, error, token counts, and only the new log lines.
- A webhook that skips a review because nothing changed does not open a model connection. xAI OAuth does not refresh a token in that case. GitHub, GitLab, and Forgejo webhooks all do this.
- The repository detail header shows the model name with its reasoning effort. An empty value is shown as default.
- The log viewer filter and log rows no longer show the PR number.
[PR #12] Planis shown as[Plan]. - The dashboard add model provider link goes straight to the API Key create page. The connection choice stays in the add modal on the model provider list.
- The concurrency field accepts digits only.
- If the model list request fails, the form shows the error and you can still type a model ID.
- Startup applies migrations
0046and0047.model_providergains concurrency, auth method, and OAuth credential columns, andopenai_responsesbecomes a provider value. Existing API Key providers stay as they are.