Repository navigation
Releases: hephaestus-build/Hephaestus
Release list
v0.95.1
Warning
This release contains schema migrations. Before upgrading, complete the release-specific steps in the migration guide and verify your database backup.
0.95.1
Patch Changes
-
Model endpoint capacity recovers when a worker stops renewing its call permits. Expired calls keep their provider rate charges, and an expired owner cannot renew the old grant or charge a retry. Administrators can edit or delete the pool after its leases, rate window, and cooldown have ended.
Lease recovery cannot confirm closure of a suspended worker’s provider connections. Those connections can exceed the pool limit until they close.
-
Bundled PostgreSQL and its backup containers now reserve their full existing memory limits. The scheduler accounts for their maximum memory before admitting more work. CPU can still burst, and database settings and connection pools stay the same.
The PostgreSQL Pod restarts once on upgrade to apply the new request. The default database request rises from 512 MiB to 2 GiB. Dev and preview requests rise from 256 MiB to their existing 1 GiB limits. With backups enabled, the resident backup container and each backup, stanza, or restore Job request 512 MiB instead of 128 MiB.
-
Publish numbered release candidates without changing the stable image aliases or GitHub's latest release. Promote a qualified candidate to a stable release with the same signed image digests and stable chart metadata.
The images keep their candidate build metadata.
-
Practice feedback on GitHub and GitLab now identifies itself as AI-generated. Summaries and line notes include links to answer or disagree in Hephaestus and to change comment settings.
-
A reload during a session refresh no longer signs you out, and neither does a renewal that arrives after another tab or workspace address already renewed the session. A stalled renewal in another tab no longer blocks your renewal. Signing out also ends the session when another tab has just used its refreshed cookie.
After a rollback, stale browser tokens can stay live for up to the configured access-token lifetime (24 hours by default).
-
Release channels can now apply a verified signed Helm chart. The installed reconciler checks the chart digest, source, and image pins before it applies the release. It can adopt the next release's tooling after the Compose files are removed. An interrupted tooling update resumes on the next tick.
For a major upgrade, stop the writers with the source chart first. The reconciler starts the target server with workers stopped and does not roll back a failed migration. Follow the stopped upgrade and database recovery procedures.
Operators: before promoting 1.0, install the verified 0.95.1 reconciler and its units from
deploy/reconcile/. Follow Pull-based deployment for the one-time tooling update.
v0.95.0
Warning
This release contains schema migrations. Before upgrading, complete the release-specific steps in the migration guide and verify your database backup.
The complete release notes exceed GitHub's description limit. Download the full notes, or read the changelog at the released commit.
v0.94.7
0.94.7
Patch Changes
-
The practice review overview no longer reports missing comments or finished reviews when only their timing is unavailable. Comment timing covers feedback posted without approval.
-
Review evidence on a pull request or merge request now names the captured file that each quoted line of the change was checked against. Before, a citation of one changed file could name another changed file as its source, although its quote was checked against the right file.
-
When a review's time limit or a stall stops its public review before it is written, Hephaestus now composes the feedback once more in a new attempt from the same admitted results, instead of ending the review without it. Such reviews take one more sandbox run, so they can finish later and cost more. The existing retry limit still applies, and the new attempt does not guarantee that feedback is written. Each feedback request also asks for no more output than its turn has left.
-
Private feedback reviews can now read recent feedback already delivered to the same developer, and conversation feedback still waiting for them, on each private destination open for that practice. This restores the context needed to avoid repeating guidance or to replace a queued concern. Earlier words still count as said after their claim became outdated, but only feedback whose claim still holds can show that nothing has changed since. Withdrawn words are excluded, and unavailable history is distinguished from an empty history.
-
A review that continues its feedback composition in a new attempt no longer fails at once. Before, the new attempt stopped with exit 42 before any model call, so its feedback was never composed. When the agent cannot use its task, the server log now says that the task was missing, unreadable, from another version or invalid. It no longer always tells you to rebuild the agent image.
-
A practice review no longer assesses a practice whose saved settings do not fit the work, such as an older pull request practice about the author that is set to review on a submitted review. Hephaestus now withholds that practice and says why, and the other practices in the review still run. A workspace admin can correct the practice's Review on or About settings.
-
When a review's time limit or a stall stops private feedback after some of it is prepared, the next attempt now writes private feedback for the practices that are still undecided, instead of dropping them. Prepared practice-page cards and conversation notes stay as they are and are not written again, and a practice-page card that was already prepared still uses the page's room. A review whose private feedback was already complete no longer reports private feedback as not recovered.
-
When a practice review's AI model sends its result in a form that Hephaestus does not accept, the correction it gets back now contains only the result fields that Hephaestus reads. It also names the facts that the model must copy from its original answer. Before, the correction could repeat the field that was not accepted, so a corrected result could still be refused.
-
Review instructions now consistently require the quoted evidence used to support an observation.
-
Practice reviews show total time from request to completion separately from the latest attempt. Continued reviews no longer count earlier work as queue time or present incomplete timing samples as whole-review measurements.
-
Practice reviews of a pull request or merge request now see which capture rule left out the comment that a reply links to: a recorded Hephaestus delivery, or the Hephaestus marker in its words. A practice review of a conversation now names the participant it is about. Practice reviews are also asked to keep a premise that the evidence leaves open as an open question.
-
A review stopped by the sandbox time limit can now continue unfinished private feedback from its original admitted inputs. It uses the same review and the existing retry and retention limits.
-
Practice reviews give each model call only the work time that remains. Long streamed review calls no longer stop at the proxy's fixed 10-minute limit; existing connection and idle limits still apply. Calls made after the review's time ends are refused before reaching the provider. Results can still be uploaded during their existing grace period.
Streaming responses keep one request thread in charge of status, headers and bytes. A stream that ends after reporting usage keeps that usage, and traces distinguish a typed stream timeout from other failures.
-
A practice review no longer loops on a citation of a changed line that names the line's side but no source. Such a citation is checked against the change and stored when its quote is that changed line; otherwise the review gets a line of the change it can cite.
-
Feedback that a workspace admin withdrew while it was still waiting to be delivered now reads "Ready, then withdrawn" in the practice review lists and on its sheet. Before, it still read as ready for the next conversation, the practice pages or the work, although it is not delivered while the withdrawal stands. Feedback withdrawn after delivery keeps its delivery record and now also shows that it was withdrawn in the Feedback list.
v0.94.6
Warning
This release contains schema migrations. Before upgrading, complete the release-specific steps in the migration guide and verify your database backup.
0.94.6
Patch Changes
- When a review runs out of time or stalls while it writes private practice feedback, or its worker stops before that feedback is written, Hephaestus now tries again in a new attempt from the review's original inputs instead of dropping that feedback. A new attempt composes the feedback on the work only if none was accepted, and private feedback only until any of it is prepared. Feedback that was already accepted is kept and is not prepared again.
- Two reviews of the same work no longer both post their feedback to the same person when each was written before the other appeared. Feedback on the work is sent only while the feedback already there for that person is unchanged since it was written. If that feedback changes while the review is still writing, the review writes again from it. If it changes later, for example while the feedback awaits approval, the feedback is withheld with its reason, and you can request a new review of the work. While an earlier comment for that person on the same work may have appeared but was never confirmed, no new feedback for them is posted there, and feedback that awaits approval stays waiting. On the earlier feedback, a workspace admin can choose Check delivery to ask the provider again without posting anything. This also works for withdrawn feedback: a comment that the check finds is then retracted.
- A queued or running review no longer shows "Nothing to process" under Execution while its attempt is still working. The badge now appears only when the attempt has ended. Request another review on a finished review becomes available again once no review of that work is queued or running, without reloading the page.
- Restarting the application server during a scheduled sync now asks that sync to stop as shutdown begins, while open requests and live updates still drain. Before, an open live-update stream could delay the request until the request drain timed out, which left the sync less of the shutdown time to stop and record that it was cancelled.
v0.94.5
0.94.5
Patch Changes
-
Feedback that a workspace admin withdrew no longer appears in a developer's own reviews and results, where it offered a response that was then refused and linked to comments that no longer carry it. If the admin restores it, it returns with the developer's earlier response, and its links open only the comments that still carry it. Admins still see the withdrawn feedback and its history.
-
Practice reviews notice parent issue progress when tracked child issues close, reopen, or move. Observations for superseded issue and pull request evidence stay in history instead of appearing current. Incomplete child inventories remain distinct from provider-reported progress.
A later author push does not retire observations about an unchanged submitted review.
-
The admin trace, the developer's own reviews and the scan report no longer say that a partial review stopped or did not finish. A partial review can run to the end and still leave a practice without a result, so these views now state only what its results cover. The trace names the recorded reason, which still says when a review ran out of time, and marks the Results stage. The developer's reviews show Partial instead of Did not finish. A review that failed or was cancelled still says that it stopped.
-
When Hephaestus writes its review on a pull request or merge request, it now reads the whole file that each concern cites, with that file's complete section of the change, within its size limits. Before, it saw only the quoted lines of that code. A file is shown only when it matches the code captured for the review.
-
Restarting the application server during a scheduled sync now gives that sync up to the shutdown timeout (
SHUTDOWN_TIMEOUT) to stop before the database closes. A sync that reaches its next checkpoint in that time records that it was cancelled, and the scheduled run releases its lock only after its workspace syncs have stopped. A provider error during that time is recorded as a failure. A sync that does not stop in time stays marked as running until it is reaped as abandoned, and its lock expires on its own.
v0.94.4
Warning
This release contains schema migrations. Before upgrading, complete the release-specific steps in the migration guide and verify your database backup.
0.94.4
Patch Changes
- Open pull requests, merge requests and issues that Hephaestus already knew about now show up in a workspace that starts monitoring their repository. Before, opening one in the review panel or asking for a review said the work was not found until it changed again. Existing workspaces catch up on their next regular sync. Nothing is reviewed or sent automatically for older work, and work the workspace cannot access stays hidden.
- GitLab line feedback about several lines now opens one thread on that whole range in the merge request diff, instead of a thread on its last line only. When GitLab cannot place feedback on the diff, or the feedback is about a whole file, it now opens a thread on the merge request overview, so the author can reply and resolve it. Feedback that was already posted on its last line stays in place and is not posted again.
- Withdrawn feedback on a GitLab merge request line or overview thread is now replaced in that same thread with a withdrawal notice. Before, only the summary comment was corrected and the line feedback stayed visible. Replies and resolution on the thread are kept.
- A partial review no longer says it ended early when it ran to the end and only some practices produced no result. The review sheet now says that its results and feedback cover only the practices it reviewed, and its history still names why the review is partial.
- A review no longer says "Practice script did not finish" for a practice that Hephaestus never ran. This covers a practice that does not apply to the work, and a practice whose evidence was not ready. The upgrade removes this entry from an earlier review only where the review's retained capture record proves that the practice was left out. Other earlier entries stay as they are.
- Withdrawn feedback no longer shows as retracted when copies of it may still be on the pull or merge request. The feedback sheet says how many copies may still be there and shows the provider's error. When the provider did not confirm a removal, admins can retry the withdrawal without restoring the feedback first. The withdrawal, its reason and the developer's answer stay as they were.
- Admins can again estimate and create a review batch for pull or merge requests from past work. The request no longer fails with "Use the scan API to review a repository." Repository reviews still use the scan.
- When a practice review refuses a met result because it has not read enough of the work, the review is now told which file lines are still unread and given a read that covers them. Before, it was told to read the whole file again. When a single line is too long for the read tool, the review is told that the file cannot be covered by reading.
- Follow-up practice reviews can read the line and file comments that Hephaestus already delivered on the same work. This gives the review the earlier advice even when the provider's captured discussion omits it. Retracted notes and notes without permission to read their text are excluded.
- Practice reviews can use complete captured evidence from their initial context without a redundant read.
An omitted or partly read source still needs a complete read when a result depends on it. - The test profile keeps scheduled server maintenance idle, so tests own the work they start.
v0.94.3
Warning
This release contains schema migrations. Before upgrading, complete the release-specific steps in the migration guide and verify your database backup.
0.94.3
Patch Changes
-
Practice feedback now guides error-handling fixes toward safe caller errors and protected diagnostics. Suggested changes must preserve security and privacy.
-
A GitLab merge request that becomes ready before GitLab has worked out its diff now gets its review once the diff is known. Before, Hephaestus dropped that review without notice. If the merge request changes before then (a new commit, target branch, title, description or linked issue), Hephaestus does not review the old state. A later change can start a new review.
A
/hephaestus reviewcomment on a merge request asks for a review again. The same people who can request a review on the work page can use it: the author, an assignee, or a workspace admin. It checks the same settings and limits. If GitLab sends the comment more than once, Hephaestus starts at most one review. A comment asks for a review only when the merge request's diff is available. If GitLab has not worked out the diff yet, request the review again later. -
A review's Practice scripts section now shows each practice's review calls, or says Not recorded for older reviews instead of showing none. A built-in review whose result the evidence check refused now says that it had not read the evidence it needed, instead of saying that the model answered in the wrong format.
-
Public feedback on a pull request or merge request is no longer withheld as a whole when one of its practices has feedback turned off. That practice is still reviewed and its result is recorded, but it no longer becomes part of the public feedback. Feedback from practices that are on can now be prepared and sent. If a practice is turned off while feedback is being prepared, that feedback is still stopped before it is sent.
-
A practice review now gets its full number of attempts to correct a result that was refused for its evidence. Each such refusal was counted twice, so the review gave up on the practice after half the allowed attempts.
-
Upgrades give the server time to finish database migrations before failed startup probes mark it unhealthy. A ready server is accepted immediately, and the deployment timeout and normal health checks remain in force.
v0.94.2
Warning
This release contains schema migrations. Before upgrading, complete the release-specific steps in the migration guide and verify your database backup.
0.94.2
Patch Changes
- Practices limited to work that is ready for review now run for eligible pull request and merge request events. Feedback on that work is no longer withheld because the review and delivery checks use different draft states. Results and feedback no longer stay hidden solely because a contributor has never signed in. Privacy choices and account restrictions still apply, including through disconnected identity links.
- GitLab line notes now require the matching reviewed diff. If that diff is missing or unreadable, those notes are not posted and can be retried. The link fallback remains for file anchors, lines absent from the reviewed diff, and positions that GitLab rejects.
- A GitHub workspace that monitored the same repository twice starts its sync on startup again and runs practice reviews again. The upgrade merges the two monitors into the earlier one. A repository renamed while its webhook was missed, or whose name changed only in letter case, keeps its monitor, synced data and review settings, and no longer stops the workspace's startup sync. If the two monitors have different repository paths or different review settings, the upgrade stops and names both, so no path or setting is discarded.
- A practice review that failed or was cancelled without results no longer says that its results still stand. When a review has no results or feedback to show, they read "None available" instead of "None". The full reviewed version moved to the review's Technical section, where you can copy it.
- A review no longer fails for every practice when one practice reads a source that this version cannot capture for the reviewed work. That practice is withheld with a reason that says how to fix it, and the other practices are reviewed. If no assigned practice can be captured, the review stops before any AI model runs.
v0.94.1
Warning
This release contains schema migrations. Before upgrading, complete the release-specific steps in the migration guide and verify your database backup.
0.94.1
Patch Changes
- GitHub repository sync can continue from issue comments to pull requests when comment pagination crosses database transactions.
- Instance administrators can open an active workspace’s administration without joining it. Its settings and navigation stay scoped to that workspace; member pages and read-only user views keep their existing access limits.
0.94.0
Minor Changes
-
People have one account across connected identities and workspaces. Roster records can exist before sign-in. AI and external-feedback choices apply across your workspaces.
-
Operator review views withhold result text and evidence when source access can no longer be verified. The review’s outcome, practice, work and delivery history remain visible. Result summaries can be null in the operator API when this text is unavailable.
Operators: External clients of the operator review API must handle unavailable result summaries. The bundled interface handles this state. No manual database change is required.
-
Practice reviews record one result per practice: Met, Not met, Does not apply or Could not determine. Not met results list problems, each with its own severity and evidence.
Your earlier reviews stay readable after the upgrade when you still have access to their sources. They are labelled as unverified history and do not count as current proof until a new review runs.
Operators: This release changes the database, practice scripts and API together. Follow the migration guide to test a restore and prepare custom scripts before the outage.
-
Practice scripts can decide from captured records, ask a review model, or call the models assigned to the practice. Every script uses the same result contract and evidence checks. A script failure creates no claim about the work and never falls back to the built-in script. Direct model calls follow the developer's AI choice and the review's stricter model tier. Operators can inspect script execution, model use and cost for each practice.
-
Saving a practice definition creates a fixed practice version. The editor separates Review on, Applies when, About, Reviewed by and Feedback mode. Renaming a practice or moving it between groups keeps its results current. Off stops feedback at every destination while eligible reviews can still record results. Choose People or Nobody under Reviewed by to prevent automated review of a practice.
-
You can scan repositories on their monitored default branch with the same workspace practices that review changes. Start a scan through a repository schedule or the workspace scans API, then open its report in Scans. Scan reports distinguish files reviewed, reused results, withheld work and work not reviewed, and you can export a report as SARIF. An incomplete scan does not claim that problems were fixed or files disappeared.
-
Feedback responses keep resolution and usefulness separate. A disagreement does not change the result by itself. Admins can mark results incorrect or accepted, and remove those marks. An accepted mark removes the result from open-problem lists without changing its outcome or removing an incorrect mark.
-
Practice reviews require a matching runtime 7 agent image for incremental Problem drafts.
Operators: If you pin a custom agent image, update it with the application to an image that implements runtime contract 7. Verified release locks already select the matching application and agent images. Practice inputs and candidates remain on script contract 3.
Patch Changes
-
Review progress explains that practice checks finish before results are recorded, so a running review with no results does not imply that no checks are taking place.
-
Practice reviews that try to cite generated preparation now point back to captured evidence instead of reporting a missing repository file.
Public review summaries now focus on guidance that is not already covered by inline notes.
-
Practice reviews can read the pinned commit history when their permitted evidence includes pull request details and code changes. Reviews that only need pull request details continue without preparing a repository, and commit words remain subject to contributor consent.
-
Practice feedback is shorter and uses natural evidence references. Comments focus on the concern and next action without internal labels or repeated explanations.
-
Concurrent first sign-ins through a new provider instance now succeed and share one provider registration.
-
Problems and evidence quoted from the work's own title, description or conversation no longer show a captured file name as their location. The passage keeps its source and its quote, and only code passages show a file and lines.
-
A feedback sheet's Based on list now names each result once. When feedback rests on a whole result and on problems of the same result, the result shows a single time, with the whole result and each problem listed under it. Screen readers now announce each problem link by its visible text followed by the result it belongs to.
-
The practice profile now opens with your feedback directly under its header. The separate Going well section is gone. The header's standing ring still counts the practices that are going well, and each practice's results stay where they were. The practice group table again lists every group your workspace shows to developers, including a group with nothing to review yet, and never a group that your workspace hides. A group's panel shows the group's own description again.
-
Generated-path settings now load and save for the correct repository, including when repository names are unavailable. Editing or clearing one repository keeps the others unchanged.
-
Practice result details no longer reveal descriptive problem identifiers when access to their evidence is denied.
-
Historical review jobs no longer block completed reviews from finishing processing.
-
Practice reviews can build and correct individual problems before submitting their complete evidenced result. Problems become visible only after the complete result passes admission.
-
Correcting a review’s evidence fields no longer turns an unused optional question list into a request for a question. Undecided results still require the question the evidence leaves open, and Not met results still require their recorded problems.
-
Practice reviews now evaluate up to three practices at once, so slow model responses leave more time to cover the selected practices. Completed results remain available when the review deadline stops unfinished work. Operators can set
PRACTICE_REVIEW_PRACTICE_CONCURRENCYfrom 1 to 32 to balance review time and resource use. Scan reviews remain serial. -
Preview deployments can clone staging databases before or after the practice review upgrade. They pause review work and feedback delivery and remove staging credentials before startup.
-
Coolify previews bind management endpoints to loopback so generated container hostnames do not prevent startup.
-
Coolify previews start with dynamically assigned private ports for the database and review worker connection.
-
Operators can enable fresh GitLab reviews for one approved pull request preview with a separately isolated worker. Preview execution stays off by default, cloned review work is stopped, and only the clone database and raw API receive random private host bindings.
-
Review traces retain which specific problems a piece of feedback is based on, alongside the results that recorded them.
-
In Practice reviews, problems now open where you find them. A problem opens from the Problems list, from its result, from a trace and from a scan report, and its result opens from the problem. Back returns you to where you were. A feedback sheet links the results and problems it was written from. A review's result counts open the matching results, and View problems lists its problems. A trace lists each result's problems with their severity. A practice whose script already ran no longer says it runs next. Quoted evidence from a merge request or pull request is now labelled as the reviewed work.
-
Generated-path settings stay usable with many repositories. Each repository is one line that opens to its patterns. A search finds one by name or item ID, and Show more repositories loads the rest. Unsaved patterns stay put while you search or close a line. Removed repositories and items with no repository record are marked as such, and a removed one cannot be saved. Selected repositories in the review scope stay listed and counted even when removed. The scans list filters by status and by repository, and its empty state opens the repository schedule directly.
-
Practice reviews resolve evidence paths automatically and explain how to correct invalid citations. Exact quotation checks still apply.
-
Upgrades retain multiple historical results for the same review, practice and work, with their feedback and evidence.
The review explains when its historical results are ambiguous. No single result is selected as its answer.
Privacy erasure includes every retained result and its feedback when they contain a contributor's copied work.Custom practices linked to the bundled catalog keep their positive phrase during upgrade.
Swift concurrency review instructions nameDispatchQueueconsistently.Upgrades can convert more historical practice scripts while keeping customized criteria.
-
Feedback links already posted on pull requests and issues continue to open your review history after the practice model upgrade. A pull request's history also includes your results from reviews of that pull request.
-
Workspace ...
v0.93.5
0.93.5
Patch Changes
- On a phone, the custom range calendar on activity pages now fits on the screen. Its months scroll inside it, and Apply stays in view, so you can apply a range without scrolling the page to find the button.