Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .changeset/a-practice-says-why-it-has-nothing-to-say.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"hephaestus": minor
---

Your practice feedback now lists every practice your workspace reviews, not only the ones that raised something. A practice with nothing to report says which kind of nothing it is: either no review has reached it yet, or the reviews ran and your work offered no relevant occasion. Those are different answers to "how am I doing here", and until now both looked like an absent row. Practices with actual feedback still come first, worst first; the quiet ones sort to the end.

A group's standing is now read straight off its practices, including the quiet ones, so the summary at the top of a group and the practices beneath it can no longer tell different stories.
5 changes: 5 additions & 0 deletions .changeset/a-review-stands-as-written.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"hephaestus": patch
---

A review comment now stays as it was written. Where a later look at the same change used to rewrite the original comment in place — and quietly demote anything already answered on the diff — it now leaves a new comment beside the old one, the way a person would. The comment also stops repeating the notes that sit on the diff: those live on the lines they are about, and anything that could not be placed on a line falls back into the comment rather than disappearing between the two.
5 changes: 5 additions & 0 deletions .changeset/accessible-navigation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"hephaestus": patch
---

Keyboard users can skip repeated navigation and move directly to the page's main content. The documentation now explains the current accessibility assessment and how to report barriers.
11 changes: 11 additions & 0 deletions .changeset/adopt-without-leaving-practice-setup.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
"hephaestus": patch
---

Practice setup no longer sends you to another page to look at something on it. Selecting a practice — one of yours, or one the library is offering — opens it beside the tree you were reading, and selecting something inside that opens on top of it, so you can go two levels deep and step back one at a time with Escape, a press on the page, the browser's Back button, or a swipe. The page behind stays readable rather than blurred, and each panel leaves a column of the one beneath it showing.

Your own practices now have a read-only view for the first time. Opening one used to mean opening the edit form, so "what does this practice say?" and "change this practice" were the same act; now reading is reading, and editing is one clearly marked step away. A practice looks the same whether you met it in the library or in your own tree, because both show the same definition.

Writing a practice no longer takes over the page either — on Practice setup and in the instance catalog, **Create** and **Edit** open beside the tree the practice belongs to, so you can see where it is going while you write it. An editor closes the same four ways everything else does — Escape, a press on the page beside it, a swipe, or its own controls — and asks before discarding unsaved changes on any of them, so nothing is lost and nothing silently refuses to close. The old addresses still work and open the same editor.

Adding a practice returns you to the library you were working through — the practice moves into your own tree and stops being offered — instead of dropping you into an edit form. Adding five practices is now five selections rather than five round trips. Everything is addressable: the URL you are looking at is the URL you can share, and it reopens exactly the panels you had open.
7 changes: 7 additions & 0 deletions .changeset/adoption-leads-with-the-reason.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"hephaestus": minor
---

Deciding whether to adopt a practice now starts with why the habit matters, not with the rule the reviewer follows. The rule is still there, under **How it decides**, next to what the practice reads and what it measures first — but it is written for the model that applies it, runs to several thousand characters, and is not what you need in order to choose.

The library list carries each practice's reason too, so you can work through the catalog without opening every entry to find out what it is for.
5 changes: 5 additions & 0 deletions .changeset/an-answer-keeps-the-words-that-came-with-it.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"hephaestus": patch
---

A comment written alongside "not helpful" is no longer lost. Explaining why a piece of feedback missed the mark, without also saying whether you addressed or disputed it, stored the text and then never showed it again — the next answer overwrote the reading with its own empty comment. The words now stay with the answer they came with.
7 changes: 7 additions & 0 deletions .changeset/areas-get-an-icon-and-criteria-render.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"hephaestus": patch
---

Creating or editing a practice group now lets you pick its icon and colour, the same way the instance library does. Left alone, both still follow the group's name.

A practice's "What to look for" is written in markdown — the editor says so — and the read view now renders it. Headings, lists, emphasis and inline code used to reach you as literal `##` and `-` characters in one long paragraph of bold text.
5 changes: 5 additions & 0 deletions .changeset/bind-release-security-evidence.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"hephaestus": patch
---

Releases now reject high and critical image vulnerabilities unless a disposition is bound to the exact image digest and platform, owned, evidence-backed, and expires within 90 days. Clean verification and recurring rescans authenticate and re-evaluate the same signed release lock.
12 changes: 12 additions & 0 deletions .changeset/bright-feedback-inbox.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
"hephaestus": minor
---

Instance administrators can publish workspace-targeted surveys and review survey responses and product feedback
without sending data to an external analytics service. Contributors can send feedback, respond to surveys, or
permanently dismiss them; submissions remain in the instance database.

**Operators:** the PostHog integration is removed entirely. `POSTHOG_ENABLED`, `POSTHOG_API_HOST`,
`POSTHOG_PROJECT_ID`, `POSTHOG_PROJECT_API_KEY`, and `POSTHOG_PERSONAL_API_KEY` are no longer read
and can be deleted from your `.env`; no replacement variable is needed and no other action is
required.
5 changes: 5 additions & 0 deletions .changeset/bright-jobs-observe.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"hephaestus": minor
---

Operators can monitor agent-job phase latency and terminal outcomes through a documented JSON log and Prometheus contract.
5 changes: 5 additions & 0 deletions .changeset/bright-ravens-check.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"hephaestus": patch
---

Pull request responses no longer require a URL when the upstream provider does not supply one.
5 changes: 5 additions & 0 deletions .changeset/calm-mentors-welcome.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"hephaestus": patch
---

The landing and about pages now say plainly what Hephaestus is, show the kind of gap it points out, name the practice groups a workspace can turn on, and credit Applied Education Technologies at TUM.
5 changes: 5 additions & 0 deletions .changeset/calm-otters-guard.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"hephaestus": patch
---

Hardens automated reviews and mentor conversations against instructions embedded in imported work, messages, and documents.
11 changes: 11 additions & 0 deletions .changeset/calm-practices-adopt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
"hephaestus": minor
---

Workspace administrators now choose which practices their workspace reviews, instead of receiving a copy of the instance library at creation. Practice setup shows the library beside the practices you already have, so you can read a practice's full definition, the evidence it needs, and what it will look like in your workspace before you add it. Adding one gives you an independent copy you can edit; later library changes never rewrite it. A whole group can be added at once, and a group you removed earlier can be restored from the same place.

Adding never starts sending feedback on its own. A practice Hephaestus can review starts at **Review before sending**, and a practice it cannot review stays **Off** until you connect what it reads.

You can also add a whole group at once. Hephaestus shows every practice it would add, reuse, or skip first, and applies the result in one step or not at all. Adding is refused if the library or your workspace changed while you were reading the preview, so you always act on what you saw.

Workspaces you already have keep everything in them, and a workspace that has never recorded a catalog installation still receives one at the next start, so nothing goes missing.
28 changes: 28 additions & 0 deletions .changeset/calm-practices-expand.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
"hephaestus": minor
---

Practice reviews can now be rolled out to part of a workspace instead of all of it. Choose which
monitored repositories are reviewed and, for each of them, which base branches; choose whether
everybody's work is reviewed or only selected people's. Before a change widens either list, a preview
says how many repositories and people it would cover, so a pilot can be checked before it starts.
Sending feedback is now its own switch: pause it and reviews keep running, developers can still read
their own feedback in Hephaestus, and nothing reaches a pull request or the mentor. Feedback refused
while paused is never released by resuming. Proposals that nobody has decided remain available for an
administrator to approve or reject after sending resumes.

When a review needs approval, the approval page now shows the exact summary and every inline comment
as one package. One decision releases or rejects the whole review; automatically authorized observations
in the same review wait for that decision instead of appearing early. After approval, the delivery
page shows how many comments have reached the provider while safe retries finish the remainder.

Every delivery decision now keeps its reasoning. On a piece of work under Review activity, a workspace
administrator can see, for each attempt, which checks ran and in what order, which one stopped it, and
the repository, branch, author and settings it was judged against — so "why did this go quiet?" is
answerable from the screen instead of from the logs.

**Operators:** reviews now run only on work whose author is a member of the workspace, so a pull request
from an outside contributor who is not on the **Members** screen is no longer reviewed and no feedback is
prepared about them. Signing in to Hephaestus does not make somebody a member. After upgrading, read the
**People** count under Practices → Review → When and where; `MIGRATION.md` says how to cover anybody who
is missing.
5 changes: 5 additions & 0 deletions .changeset/clean-pnpm-toolchain.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"hephaestus": patch
---

No operator action is required for the repository's package-manager migration.
5 changes: 5 additions & 0 deletions .changeset/clear-ai-feedback-disclosure.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"hephaestus": patch
---

Practice-review comments now identify themselves as AI-generated and link to an explanation and delivery controls.
4 changes: 4 additions & 0 deletions .changeset/clear-nails-begin.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
---

No release note: this changes CI preview generation only.
5 changes: 5 additions & 0 deletions .changeset/complete-practice-coverage.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"hephaestus": patch
---

Review runs now identify every eligible practice they did not evaluate, so partial reviews no longer appear complete.
7 changes: 7 additions & 0 deletions .changeset/compose-feedback-for-real-reviews.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"hephaestus": minor
---

Practice reviews deliver feedback again. A review measured a pull request, recorded what it found, and then stopped: the step that turns those observations into something a developer reads was never switched on, so every review ended with its results stored and nothing said. Reviews now compose feedback for each lane the occasion can reach — the note on the work, the developer's own practice pages, and an ongoing conversation — and issue reviews compose for the two longitudinal lanes, since an issue is not the work a note belongs on.

**Operators:** feedback now appears where it previously did not, so a workspace with review switched on begins posting again. Nothing new is required of you, and the instance-wide Silent Mode brake still holds everything back while it is engaged — but if you upgraded during the window where reviews were silent, this is the change that ends it.
5 changes: 5 additions & 0 deletions .changeset/consume-release-image-lock.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"hephaestus": minor
---

**Operators:** Install, upgrade, and roll back with the signed release image lock; production and staging now refuse mutable tags or any image digest that did not pass the release evidence gate.
4 changes: 4 additions & 0 deletions .changeset/core-web-vitals-reach-analytics.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
---

Superseded before release by the first-party feedback replacement in this pull request.
7 changes: 7 additions & 0 deletions .changeset/current-web-runtime.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"hephaestus": patch
---

Updates the frameworks the web application is built from. Error reports still infer nothing about
who reported them, and now say category by category what they may carry. No action is needed to
upgrade.
4 changes: 4 additions & 0 deletions .changeset/curvy-corners-heal.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
---

No release note: regenerate the API client with the already-pinned generator; the API contract is unchanged.
5 changes: 5 additions & 0 deletions .changeset/docs-live-at-their-own-address.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"hephaestus": patch
---

The documentation now lives at <https://docs.hephaestus.build>. Links in the web app, the sample configuration files, and server messages point at the new address, and the old github.io pages redirect there — no action needed.
5 changes: 5 additions & 0 deletions .changeset/drawers-move-like-drawers.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"hephaestus": patch
---

Fixes three faults in the sliding panels used across practice setup and the instance catalog. A panel now slides in from the edge instead of appearing fully formed. Opening a panel on top of another no longer makes the one behind jump back and re-animate when you step back out of it. And a covered panel keeps a readable column of its own content on screen rather than a bare strip of its margin, which is the whole reason these stack instead of replacing each other.
5 changes: 5 additions & 0 deletions .changeset/evidence-boundary-withholds-the-claim.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"hephaestus": patch
---

A review whose evidence check fails on one observation now delivers the others. The check that refuses to show a developer a claim it cannot trace back to the code applied to the whole review at once: one practice that mis-quoted its source — by a stray character, in a file the reader never sees — withheld every other observation in that review, including correct, fully evidenced ones. The developer saw nothing at all. Only a quote that does not match its source is treated this way; a citation to evidence the review never gathered still stops the whole delivery, as before. What was withheld is logged with the reason, and a review in which no claim can be verified still fails rather than arriving empty.
4 changes: 4 additions & 0 deletions .changeset/fair-falcons-attend.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
---

No release note: updates CI and build dependencies without changing shipped behavior.
5 changes: 5 additions & 0 deletions .changeset/fair-practice-budgets.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"hephaestus": patch
---

Practice reviews now reuse shared evidence while assessing every applicable practice, recover missing coverage, and produce one coherent set of feedback.
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
"hephaestus": patch
---

In-context practice feedback now uses the default delivery preference for developers who have not saved
account settings. Explicit opt-outs remain honoured everywhere.
5 changes: 5 additions & 0 deletions .changeset/feedback-says-which-kind-of-good-or-bad-it-is.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"hephaestus": minor
---

Each piece of practice feedback now says what kind it is: a behaviour you demonstrated, a trap you avoided, something harmful that was done, or something needed that was left out. Reading a strength no longer means guessing whether you did the good thing or steered clear of the bad one — and the two kinds call for different responses.
5 changes: 5 additions & 0 deletions .changeset/feedback-survives-an-interrupted-review.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"hephaestus": patch
---

Feedback about a practice no longer disappears when a later review of the same work never got to that practice. A review that was skipped for partial evidence, refused, timed out or ran out of budget covers fewer practices than the one before it, and the untouched practices' earlier observations were being dropped as though the newer review had reconsidered them — so an interrupted review looked exactly like a fixed habit. A later review now replaces only what it actually re-examined. The same holds per person: a review that had something to say about one contributor no longer clears what an earlier one found about another. Re-reviewing the same work with the same practice still replaces the earlier verdict, as before.
6 changes: 6 additions & 0 deletions .changeset/footer-branch-links-to-a-branch.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
"hephaestus": patch
---

On preview and staging deployments the footer's branch link now opens the branch it names. Builds of
a pull request recorded the merge ref (`1538/merge`) rather than the branch, so the link led nowhere.
5 changes: 5 additions & 0 deletions .changeset/funky-yaks-wonder.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"hephaestus": patch
---

The webapp image is now built from a digest-pinned nginx base without an ad-hoc package-upgrade layer, so the image you deploy matches its published SBOM and signed provenance; base updates arrive as reviewed dependency bumps instead of changing silently at build time.
7 changes: 7 additions & 0 deletions .changeset/harden-runtime-envelope.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"hephaestus": minor
---

Hardens the reference deployment with HTTPS security headers, a TLS floor, a request-size ceiling, shared rate limits for costly operations, authenticated internal messaging, and container resource limits.

**Operators:** Set the new required `NATS_USERNAME` and `NATS_PASSWORD` variables. Optional `*_CPUS` and `*_PIDS_LIMIT` variables tune container ceilings. Remote databases require TLS unless `HEPHAESTUS_DATABASE_ALLOW_INSECURE_REMOTE=true` explicitly accepts plaintext transport. Each server role's database pool now defaults to 20 connections instead of 30; the optional `HIKARI_MAXIMUM_POOL_SIZE` variable tunes it.
6 changes: 6 additions & 0 deletions .changeset/heph-avatar-brand-export.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
---

Repository tooling only: adds a Storybook capture story and an `export:brand-assets` script that
render the Heph mentor avatar into versioned brand PNGs under `docs/static/img/brand/`. Nothing in
the shipped application changes, so operators and users see no difference.
4 changes: 4 additions & 0 deletions .changeset/hot-crews-rhyme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
---

No release note: this change only repairs the development and CI lint gate.
4 changes: 4 additions & 0 deletions .changeset/huge-seals-do.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
---

No release note: this changes CI execution only.
5 changes: 5 additions & 0 deletions .changeset/long-reviews-finish.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"hephaestus": patch
---

New agent bindings default to a three-hour run timeout, allowing comprehensive reviews to finish when model requests are queued.
5 changes: 5 additions & 0 deletions .changeset/mentor-notes-say-what-was-already-said.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"hephaestus": patch
---

Notes prepared for the mentor now say where a point has already been put to the developer and whether anything has moved without help, so a conversation does not repeat feedback they have already had twice. Notes written before this carry no such record, which reads as nothing having been said rather than as nothing to say.
5 changes: 5 additions & 0 deletions .changeset/modern-bun-package-manager.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
---

This package-management migration changes contributor and build infrastructure only; released
application behavior and operator configuration are unchanged.
7 changes: 7 additions & 0 deletions .changeset/modern-node-agent-runtime.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"hephaestus": minor
---

Run sandboxed practice reviews and mentor sessions on Node.js 24 with a 256 MB JavaScript heap ceiling and scoped runner filesystem permissions.

**Operators:** Upgrade the agent image and server together. Runtime contract v2 reports a mismatched image as unsupported; follow the coordinated upgrade steps in `MIGRATION.md`.
7 changes: 7 additions & 0 deletions .changeset/move-image-namespace.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"hephaestus": minor
---

Moves the container images to `ghcr.io/hephaestus-build/<image>` after the repository's transfer to the hephaestus-build organization, dropping the redundant `hephaestus/` path segment. Releases published before the move keep their images and signatures at `ghcr.io/ls1intum/hephaestus/<image>`; upgrades, deploys, and signature verification select the right namespace and signing identity per release automatically.

**Operators:** From this release on, images pull from `ghcr.io/hephaestus-build/<image>`. Update any registry mirrors, egress allowlists, or hand-written image references (such as a pinned `HEPHAESTUS_AGENT_IMAGE_REFERENCE`); the standard install and upgrade flow needs no changes. Older releases remain valid at their original `ghcr.io/ls1intum/hephaestus/<image>` paths.
4 changes: 4 additions & 0 deletions .changeset/new-apes-make.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
---

No release note is needed because this dependency maintenance does not change operator- or user-visible behavior.
4 changes: 4 additions & 0 deletions .changeset/node-repository-tooling.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
---

This refactor changes repository tooling, tests, and contributor setup only; it does not change shipped application or container behavior.
5 changes: 5 additions & 0 deletions .changeset/one-recovery-for-a-stale-plan.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"hephaestus": patch
---

When the library changes while you are reading a group's plan, the panel now stays open and shows you the refreshed plan, the same way a single practice already did. It used to close and leave you a message asking you to go and look at the group again.
Loading
Loading