CoderHelm Docs

Changelog

What changed in CoderHelm, month by month, from the merged pull requests of both repos.

Generated at build time from the merged pull requests of coderhelm-platform (the agents and API, at 637aaa459db2) and coderhelm (the dashboard and these docs), covering the last 6 months. CoderHelm ships from main continuously, so there are no version numbers after the tags listed at the end.

October 2026

Agents and API

  • Custom roles: team-made roles, enforced on every request (#273)
  • Support tickets: name people when the ticket is opened (#274)
  • Token limits: separate monthly limits for new tokens, cache reads and cache writes (#272)
  • Meter every model call: streamed worker calls, broken replies, Titan, durable writes (#271)
  • Log findings: create a fix PR from a finding, by hand or automatically (#266)
  • Cache the skill check's inventory across a sync's items (#270)
  • Health counts only a team's own failed messages; unreadable DLQ messages are archived (#267)
  • Log analyzer test: Sonnet 5.5 cache reads at $0.20 (#269)
  • Sonnet 5.5 cache reads are $0.20 per million tokens, not $0.10 (#268)
  • Support tickets: add people, follow, email everyone on the ticket (#264)
  • Code graph for every repo and every agent that reads code (#263)
  • Close runs on purpose: a new closed status, one or many at once, and reopen (#265)
  • Weekly summary goes to every active team; each person can still turn it off (#262)
  • Retired model ids run as their replacement; they can no longer be saved (#261)
  • History tool: a blame range over 500 lines is cut to the first 500, not refused (#260)
  • Every failed run says why and where; CI red told honestly (#259)
  • Notifications: post to Slack as well as Teams, with sealed, masked webhooks (#258)
  • Plan new work as new work, read the ticket's earlier PRs, prove environments, follow near matches (#256)
  • Real ticket keys in commits, sandbox results read from what ran, unconfirmed checks routed through CI (#257)
  • Support tickets: attach items, and consented read-only support view (#255)
  • Support queue: read every queued ticket without begins_with on an empty prefix (#254)
  • PRs cover the whole job: copied blocks, steps outside the PR, every environment, Open items (#253)
  • Proof check: read CI gates for any stack, check Terraform in the sandbox (#252)
  • Reviewer: keep the PR's title and the findings on each review record (#250)
  • Distrust the compromised eMudhra intermediates: webpki-roots 1.0.10, rustls-webpki 0.103.16 (#251)
  • Admin: teams grouped by organisation, beta sign-ups, and invitees join the team that invited them (#248)
  • Auto-merge: stop and re-arm from a PR comment or the dashboard (#249)
  • Support tickets: team-scoped tickets, an admin queue and email both ways (#247)
  • Analytics: compare with the period before, counted from records (#246)
  • Reviews approve or request changes; unconfirmed facts are triaged, not a blanket hold (#244)
  • Jira app: read:space:confluence, which the Confluence probe and space reads need (#245)
  • Search across runs, reviewed PRs, releases and plans for ⌘K; runs list filters by repo (#239)
  • Team agents run as review steps: plan, code and prose (#243)
  • feat: read Confluence through the installed Jira app (#242)
  • SQL name check: a date part (dateadd(day, ...)) is a keyword, not a column (#241)
  • Admins can resend and revoke every pending invite; invites expire after 30 days (#240)
  • Proof and review hold to the evidence the run recorded; pushes after an approval are reviewed incrementally (#237)
  • Proof warning says only what is still unverified, and CI's green result clears it (#238)
  • Repo pick follows the ticket's PR; continuations keep their plan; no duplicate run while a PR is open (#236)
  • Large files read in full; empty writes over real files refused; no-op fix cycles stall (#235)
  • Reviewer evals: review a case's diff with the real prompt, tools and critic (#232)
  • Teams set their own branch, commit and PR title templates (#233)
  • Data first, regex last: read real records before deciding a rule (#234)
  • Reviewer learns from people's pushback on its findings (#231)
  • Team instructions reach every agent that writes, proves, describes or reviews a change (#230)
  • Reviewer: extending an existing pattern or carrying out a stated decision is not a finding (#229)
  • Reviewer: show which PRs are queued, being reviewed, or waiting on CI or people (#228)
  • REST lookups: record how much came back, and flag an empty list to the agent (#227)
  • Prove what a change rests on before its PR opens (#226)
  • REST APIs and OpenSearch are data sources; every source has a guide for agents (#222)
  • Platform admin: teams overview, and only CoderHelm-verified identities count (#225)
  • Record when members use the app, not only when they sign in (#223)
  • Read unique indexes, not only constraints, before deciding a table's keys (#221)
  • Named OpenSearch clusters, a guide per connection, PR descriptions kept true, field-meaning rules (#220)
  • Who asks for work: one row per person, CoderHelm's own work labelled (#219)
  • Runs list: search by ticket key or number, title, repo, PR number and status over all of a team's runs (#218)
  • Many REST APIs per team; no second E2E fix while one is open; one-size merge status (#217)
  • Releases: release now, automatic retries, blocked releases shown (#216)
  • Coder diligence: no duplicate PRs, full-diff descriptions, migration registration, schema-change rules (#215)
  • A multi-repo run waits on each pull request's own CI, and the CI wait loop stops after about a day of checks instead of looping forever (#214)
  • A database lookup whose result has a type the Data API can't send (regclass, oid) runs again returning rows as JSON text, instead of failing as unreachable (#213)
  • Any answer to CoderHelm's question on a waiting run carries the person's direction, whatever words it uses (#212)
  • A plan says what it rests on (code, data or new work) and is checked for that; a person's direction on the ticket informs the checks instead of being blocked by them (#211)
  • A traced code decision supersedes an earlier outside-the-code conclusion; a cause spanning repositories is planned in full, in merge order (#210)
  • REST API connection: agents GET records from a system a team uses, under the paths it allows, with its key in the header it names (#209)
  • Code that writes a wrong value makes it our bug, never a change outside the code; data problems need the source's own value; unreproducible values and display fallbacks get rules (#208)
  • Data decisions must cite the code that writes the value (opened in the run) and the scope (#207)
  • The planner reads the code that writes a wrong value, the keys that force records together, how widespread it is and who reads it, before deciding (#206)
  • OpenSearch connection: agents list indexes, read mappings, search and count documents read only, limited to the indexes a team shares (#205)
  • A run that ended as needing a change outside the code can be retried (#204)
  • The planner reads the team's own instructions and traces a value step by step in production; test fixtures use neutral names (#203)
  • Agents can see what a page rendered, the planner traces a shown value from the page back to its source, and a plan whose files exist here stays here (#202)
  • A plan that describes data the planner never looked up goes back once to check it; still unchecked, it writes no code (#201)
  • The planner reads each ticket comment whole, with line breaks; only a ticket past 60,000 characters of comments has its oldest shortened (#200)
  • Jira comments reach the planner as plain text, dated and in full, so a person's diagnosis is read instead of 600 characters of document markup (#199)
  • The planner debugs data before deciding where a fix belongs: follows the exact value by id, gets room to trace it, never blames a system it couldn't read (#198)
  • CI failing on CoderHelm's own PR after its run finished goes back to the fix loop, and a flaky-test fix starts its proof when its run finishes (#197)
  • The auto-merge status comment is one bold line and a short checklist, not a heading with commit hashes (#196)
  • Skill stats range reads again, a PR a person closed is never reopened, the reviewer knows its page-check budget, quieter shared-install log (#195)
  • A ticket CoderHelm already handled never gets the same PR again: plans keyed on history, read it and fail closed, comments read for intent, one review verdict (#194)
  • One merge gate per PR with one status comment, woken by reviews and finished CI; replies to people on CoderHelm's PRs; a person's draft stays a draft; nightly evals call the model through a narrow AWS role (#193)
  • One verdict function decides every formal review; model errors are typed and requeued by one policy in every pass; asks are read by a model; replayed reviewer evals guard the class (#192)
  • A review that fails for a service error is retried and never posts a blocking verdict; replies keep the formal verdict in step; a sweep re-runs stuck reviews (#191)
  • Plans decide where the fix belongs: a change outside the code is reported on the ticket with no PR, the reviewer flags hardcoded record overrides, and closed PRs teach the repo a lesson (#190)
  • chore(gateway): stop scanning the MCP configs table on every cold start now that all credentials are sealed (#189)
  • fix(live): check table, column, type and field names against the source's description before a lookup is sent, and hide columns per table with suggested hidden fields (#188)
  • fix(reviewer): check the team's own public pages with check_url, and only verified defects request changes (#187)
  • fix(security): seal MCP server credentials with KMS bound to team and server (#186)
  • Team agents read with their own declared tools; the check holds each item to its runtime; plan chat uses skills, agents and data sources (#185)
  • feat(integrations): AWS account abilities (logs, metrics, Airflow) found by a role check, one integrations endpoint, old metrics and Airflow connections folded in (#184)
  • fix(worker): stop a Jira run whose named repo isn't turned on instead of silently re-picking another (#183)
  • fix(skills): a re-check of the same item gives the same result: inventory-settled requirements, held steps, temperature 0 where taken (#182)
  • feat(connectors): New Relic, Confluence, CloudWatch metrics, Airflow and AWS identity for agents (#181)
  • fix(skills): a placeholder answer is unusable and asked again, and the check no longer asks the API to hold answers to the schema (#180)
  • feat(skills): always apply a team skill or command in full to matching work, scoped by repository, pass and path (#179)
  • feat(agents): github_history tool reads commits, blame, pull requests, releases, tags, deployments and Actions runs through the GitHub App (#177)
  • fix(skills): one malformed step never fails a check, read commands map to GitHub backed tools, and nobody is sent to connect what is already connected (#178)
  • fix(skills): the second try of a check isn't held to the schema by the API, since every stub came from a constrained answer (#176)
  • fix(skills): retry a stub check at high effort, log how each answer ended, and never leave an outdated check showing after a failure (#175)
  • chore: mentedb 0.41.0, an edited memory is recalled again (#174)
  • fix(skills): a stub answer from the check is asked again once and never kept, and the item text is fenced off as data (#173)
  • feat(skills): check each repository skill against the team's real Coderhelm tools and keep a translated version (#171)
  • Treat quarantined-only CI failures as passing and make the ticket delay a team setting (#172)
  • feat(alerts): a recovery records the ticket of the alert it resolves, so the dashboard can pair them (#170)
  • chore: memory engine to mentedb 0.40.0 from crates.io, proven to open snapshots the old engine wrote (#169)
  • fix(weekly-summary): every figure counts what its label says, over the week it names (#168)
  • fix: count every model call once, with all four token parts and per-model prices (#166)
  • feat(weekly-summary): turn on the Monday send, only for teams with a rollout list (#167)
  • feat: make the weekly summary email and unsubscribe pages dark only, and add a per-team rollout list for the scheduled send (#165)
  • feat: redesign the weekly summary email with no money, tokens split four ways, and an unsubscribe page that asks before it acts (#164)
  • feat: admins set the token limit; weekly summary email with signed one-click unsubscribe, shipped switched off (#163)
  • fix(gateway): platform admin only for the signup allowlist, member checks on plan writes, plans paging, health checks read the status index, no start over for runs in flight (#161)
  • fix(gateway): store and return the token usage email preference the worker reads (#160)
  • feat(activity): access log of every skill read and agent ask with run, work and reason; filtered lookup log; activity summary (#158)
  • feat(team): permissions table from enforced role checks, link GitHub sign-ins, non-clobbering GitHub upsert (#162)
  • fix(data-sources): agents look schemas up and get real names on a wrong one; no stray colons reach the Data API; broken tools can't be saved; failures keep their cause (#159)
  • fix: team per installation, server-side write shas, sandbox runway, memlock/code-graph errors, review anchors and cost, plan cap, run outcomes (#157)
  • fix: update open PRs on ticket edits, drop stale CI events, skip bot comments, resolve SHA refs, paginate PR run lookup (#156)
  • feat(skills): flag tools a repo item asks for that Coderhelm's agents don't have (#155)
  • feat(alerts): one recovery card per open alert, linking the alert it resolves (#154)
  • feat(skills): usage stats for a team's skills and agents (#153)
  • feat(skills): say which team agents were consulted on what Coderhelm writes (#152)
  • feat(skills): tie each agent ask to its run and file version, count asks, record who switched an agent (#151)
  • feat(skills): keep each question put to a team agent, and let admins try one (#150)
  • feat(skills): agents can ask a team agent a question, with no tools (#149)
  • feat(skills): read a team's skills from a connected repo and give them to the agents (#148)
  • fix(data-sources): array slices run, and database errors say what went wrong (#147)
  • fix(analytics): fill in merge times for PRs merged before they were recorded (#146)
  • fix(tools): a path input can't carry a slash, backslash or escape (#145)
  • fix(data-sources): close five read-path escapes found in a security review (#144)
  • feat(e2e): the fix PRs setting starts fixes on its own, at most two per repo a week (#143)
  • fix(triggers): editing a ticket whose PR merged no longer starts a second PR (#142)
  • feat(tools): a team's own tools — named, typed, reviewed reads the agents can call (#140)
  • feat(memory): provenance, usage, pins, edits, recall preview and agent profiles (#138)
  • feat(analytics): token totals per run, per merged PR, per day and per repo (#141)
  • fix(runs): answer from what was read when steps run out, record the chosen repo, name the repo a ticket's files live in (#139)
  • feat(e2e): read Playwright HTML reports, so repos that only upload them need no change (#137)
  • feat(e2e): E2E test intelligence — read every run, tell flaky from broken, act on it (#133)
  • feat(analytics): answer whether Coderhelm is worth it, from records it already keeps (#132)
  • fix(reviewer): steadier verdicts, shorter reviews, one review per commit (#136)
  • feat(data-sources): exact hidden names with a leading = (#135)
  • fix(data-sources): warehouse lookups run in a rolled-back read-only transaction (#134)
  • feat(data-sources): read-only Redshift warehouses, every shared database in one source (#131)
  • fix(data-sources): say 1 row and 1 line, not 1 rows (#130)
  • feat(data-sources): full lookup text and paging for the activity feed (#129)
  • feat(agents): read-only logs and database sources in a team's AWS account (#128)
  • fix(reviewer): a before-merge heads-up is fine, a demand is not (#127)
  • fix(reviewer): leave copy to its owners, answer with the repo, and keep a calm tone (#126)
  • feat(agents): investigate bug reports with the team's data sources (#125)
  • feat(agents): planner and coding agents use a team's data sources (#124)
  • feat(reviewer): read-only lookups against a team's own API (#123)
  • fix(reviewer): team label rules outrank the repo's docs (#122)
  • fix(reviewer): read replies and resolved threads before re-raising a concern (#121)
  • chore: use generic names in comments, prompts and test fixtures (#120)
  • feat(alerts): alert budget in tokens; offer seen non-alarm alerts for text rules (#119)
  • feat(alerts): daily alert spend budget, 5 runs per rule, no catch-all rules (#118)
  • feat(alerts): per-alarm rules on alert routes and a topic's alarm list (#117)
  • feat(alerts): recoveries post to Teams only when the route turns them on (#116)
  • fix(alerts): message alerts keep their fields; link fields become buttons (#115)
  • feat(alerts): compact Teams alert cards with details behind a toggle (#114)
  • feat(alerts): notify-only routes post alerts to Teams without a run (#113)
  • fix(log-analyzer): restore analysis, stop false resolutions, add Teams notifications (#112)
  • feat(alerts): Teams notifications with a team channel and per-route override (#111)
  • feat(api): cursor pagination for runs, reviews, releases and recommendations (#110)
  • feat(alerts): record every alert so each has its own link (#109)
  • feat(alerts): turn monitoring alerts into pull requests (#108)
  • fix(reviewer): a person's push always gets a visible review (#107)
  • fix(reviewer): let a burst of pushes settle before reviewing (#106)
  • fix(reviewer): don't post a verdict once the PR has moved past the reviewed commit (#105)
  • fix(reviewer): offer a suggestion only when it is a safe in-place edit (#104)
  • feat(release-notes): send the email webhook's secret as X-Automation-Webhook-Token (#103)
  • fix(reviewer): approve only when nothing is left to change (#102)
  • fix(reviewer): with Require tests on, every missing-tests finding blocks the merge (#101)
  • feat(release-notes): also write notes for release tags pushed outside CoderHelm (#100)
  • fix(github): pin installation-token format via X-GitHub-Stateless-S2S-Token; scrub stateless tokens fully (#99)
  • fix(reviewer): add family labels (E2E:<area>) even before they exist; never defer a label to the author (#98)
  • feat(coder): write tests per the repo's conventions when Require tests is on (#97)
  • fix(reviewer): log every CI-label decision with the reviewer's reason (#96)

Dashboard and docs

  • Learning page: what CoderHelm learned from outcomes, with pin and revert (#189)
  • Dashboard: long saved text reads like text (#184)
  • Docs site: send the CORS header through CloudFront's CORS settings (#188)
  • Integrations: add remote MCP servers by address, connect with OAuth, pick their tools (#186)
  • Developer docs at docs.coderhelm.com (#187)
  • Custom roles on the team page (#181)
  • Support: add people on the new-ticket form (#182)
  • Token limit page: set new token, cache read and cache write limits separately (#180)
  • Code graph explorer: calm motion and readable labels (#179)
  • Show estimated and late model calls on Analytics, and the usage check on Admin (#178)
  • Dashboard: no page scrolls sideways on a phone (#177)
  • Logs in the main menu: findings, fix PRs and automatic fix PRs (#171)
  • Dashboard: agent, memory, test runs, alert, new tool and health pages on the shared components (#174)
  • Name the shared queue page in the top bar; main's UI lint is green again (#176)
  • Deploys never delete the files open pages still need (#175)
  • Health shows only the team's failed messages; admins get the shared queue (#172)
  • Dashboard: one top bar on every page, and a permissions matrix on Settings > Team (#169)
  • Support ticket page: a readable thread, a side panel, and people on a ticket (#170)
  • Settings pages on the shared settings pieces: one save bar, plain words (#173)
  • Code graph page: every repo with its graph's status, Turn off and Rebuild (#167)
  • Close runs on purpose: from the run page, several from the runs list, and reopen (#168)
  • Dashboard: one code block with syntax highlighting everywhere (#166)
  • One markdown editor for tickets, replies, instructions, notes and the plan chat (#165)
  • Dashboard UI foundations: shared settings pieces, UI lint in CI, a menu that shows it scrolls (#164)
  • Analytics: CI outcomes in Where it struggles (#163)
  • Dashboard: choose Teams, Slack or both wherever CoderHelm posts (#162)
  • Redesign Settings > AI models as settings rows with a sticky save bar (#161)
  • New plan: one question first, and a chat that reads like a conversation (#160)
  • Plan page: a document with one summary line and one action (#159)
  • Support: attach items to tickets, support access setting, support view banner (#158)
  • Lists: a long chip never squeezes the title; skills show always-apply in a few words (#157)
  • Admin: one row per organisation, a Beta sign-ups tab, and the count in the menu (#152)
  • Run page: team agents asked, as a timeline (#156)
  • Review page: the PR's title and link, findings as cards, a quiet used section (#154)
  • Reviewer: stop and re-arm auto-merge on a PR (#153)
  • Support: Report an issue and Contact us open a ticket in the app, not GitHub or email (#155)
  • Support tickets: Get help in the menu and ⌘K, the team's tickets, and an admin queue (#151)
  • Analytics: compare with the period before, and this month so far (#150)
  • Reviewer settings: a summary, section nav and one row per setting (#149)
  • Analytics: ratings read as the share rated helpful, not emoji counts (#148)
  • Skills: review steps for team agents, and needs that assume a local machine (#146)
  • feat: show Confluence connected through the Jira app (#145)
  • One list system on every listing page, and a ⌘K command palette (#147)
  • Team page: admins can resend and revoke every pending invite, and expired invites say so (#144)
  • Releases: a dense list grouped by repo, with each destination's real state (#143)
  • Reviewer: a skipped review reads 'No review needed' with the reason (#142)
  • Workflow settings: git conventions for branch names, commits and PR titles (#141)
  • Reviewer page: in-review, waiting and done PRs with live status (#140)
  • Data sources: grouped by kind, one row per source, one Add button (#139)
  • Data sources: REST APIs and OpenSearch clusters, and a guide for agents on every source (#136)
  • Admin: teams overview, and the server decides who sees the page (#138)
  • Team page: show when each member was last active, not only signed in (#137)
  • Connections: saved key shown as saved, a guide for agents, any kind named when adding another (#135)
  • Who asks for work: people first, CoderHelm's own work and unrecorded runs after (#134)
  • Runs page: search by ticket, title, repo or PR number, and filter by status (#133)
  • Many REST APIs; release buttons say what they do (#132)
  • Releases: Release now, retry blocked releases, show failed runs (#131)
  • REST API in Settings → Integrations: address, key header, key, allowed paths and hidden fields (#130)
  • OpenSearch in Settings → Integrations: cluster address, read-only user, shared indexes and hidden fields; neutral examples in comments (#129)
  • The run page offers Retry on a run that ended as needing a change outside the code (#128)
  • Runs whose fix is a change outside the code say so in the list and show what to change on the run page (#126)
  • feat(integrations): one aligned list per section instead of cards; no AWS item or count in the menu (#127)
  • feat(integrations): cards open from anywhere and say what you can do inside; Connections in the menu with an attention count; your websites list (#125)
  • feat(data-sources): show lookups stopped for an unknown name, hide a column in one table, and accept or dismiss suggested hidden fields (#124)
  • feat(skills): plan chat shows the skills, agents and data sources each answer used; runs, reviews and plans say what they used; agent pages show the read-only tools each agent's own file gives it (#123)
  • feat(integrations): one Settings → Integrations page with status, abilities and credentials for every integration; old pages redirect (#122)
  • fix(skills): put the read and ask switches in their own settings row (#121)
  • fix(skills): label steps that talk to a person instead of showing the raw kind (#120)
  • feat(data-sources): connect New Relic, Confluence, CloudWatch metrics and Airflow, show the AWS role update link, and send skill-check gaps to the right connection (#119)
  • feat(skills): always apply toggle with repository, pass and path scope, list badge, suggestions, and applied standards on runs and reviews (#118)
  • fix(skills): no connect link for an integration that's already connected, a partly checked state instead of a failure, and the check's notes on the page (#117)
  • feat(site): restore Ship code, not tickets and tell the product as one story grouped by job (#116)
  • fix(site): markdown rewrite regex broke the viewer request function and took the site down (#115)
  • feat(dashboard): every page outside skills, data sources and the AWS, alerts and Jira settings sits in the shared centered column with the shared header (#114)
  • feat(site): story driven home, one page per job, Markdown twins and llms.txt (#113)
  • feat(skills): show how Coderhelm runs each skill, step by step, with what to connect and the translated version (#111)
  • feat(dashboard): redesigned AWS, Alert routes, Jira and Data sources pages with status cards, guided setup, a live rule preview and paired recoveries (#112)
  • Tests page: ticket delay setting and the CI step that skips quarantined tests (#110)
  • feat(dashboard): shared Page, PageHeader and Section layout at the analytics width; analytics and releases use it (#109)
  • feat(dashboard): every token meter shows the total of all four parts, with the parts, cache hit rate and split by feature (#108)
  • feat(dashboard): admins and the owner change the token limit; weekly summary switch says what it sends and when (#107)
  • fix(dashboard): audit every page outside settings: error states with retry, plain status words, phone layouts, keyboard and screen reader fixes, page titles, 404 page (#106)
  • feat(dashboard): settings hub redesign; token limit, GitHub and nav items open for the roles that see them (#105)
  • feat(dashboard): activity views for skill reads, agent asks and data lookups with who, why, run and result (#104)
  • feat(dashboard): redesigned team page with live permissions, one row per person, GitHub linking and invites (#103)
  • fix(dashboard): explain a blocked GitHub sign-in when the org already uses Coderhelm (#102)
  • chore: new Google tags for coderhelm.com and app.coderhelm.com (#101)
  • feat(dashboard): warn on the Skills page when an item asks for tools Coderhelm doesn't have (#100)
  • feat(dashboard): label recovery outcomes and explain one-recovery-per-alert (#99)
  • feat(dashboard): usage stats on the Skills page (#98)
  • feat(dashboard): a page for each team agent, and team agent asks on run pages (#97)
  • feat(dashboard): Skills page for a team's skills read from a repo (#96)
  • fix(dashboard): draw select arrows with room from the edge (#95)
  • fix(dashboard): distinct icons for Tests, Code Graph and Plans; landing covers memory profiles and your own tools (#94)
  • feat(dashboard): your own tools — write, check, approve, try and follow team tools (#93)
  • feat(dashboard): Memory redesign: agent profiles, provenance, pins, edits, recall preview, new icon (#92)
  • feat(analytics): measure in tokens, not dollars (#91)
  • feat(landing): E2E test intelligence, Redshift warehouses, analytics (#90)
  • feat(dashboard): Tests area for E2E runs, flaky and broken tests, quarantine, fixes and coverage (#87)
  • feat(dashboard): analytics that show whether Coderhelm is worth it and where it struggles (#88)
  • feat(data-sources): explain exact hidden names in the editor (#89)
  • feat(dashboard): connect and try a Redshift warehouse (#86)
  • feat(landing): maintenance, not a handoff (#85)
  • feat: live activity feed for data sources, and the landing page section (#84)
  • feat(dashboard): connect logs and databases from your AWS account (#83)
  • feat(dashboard): label planner and coding-agent lookups (#82)
  • feat(dashboard): data sources setup for the reviewer (#81)
  • chore(dashboard): generic placeholder text (#80)
  • fix(dashboard): show a rule's full match and repo on the route card (#79)
  • feat(dashboard): alert budget in tokens; pick seen alerts for text rules (#78)
  • feat(dashboard): alert budget card and match-by switch on rules (#77)
  • feat(dashboard): per-alarm rules and alarm list on alert routes (#76)
  • feat(dashboard): Post recoveries toggle on alert routes (#75)
  • feat(dashboard): notify-only option on alert routes (#74)
  • fix(dashboard): AWS page shows analysis errors, stable External ID, Teams for findings (#73)
  • feat(dashboard): Teams channel for alerts with per-route override (#72)
  • feat(dashboard): paginate runs, reviews and releases (#71)
  • feat(dashboard): alert history with a shareable page per alert (#70)
  • feat(dashboard): Alerts page for alert → pull request routes (#69)
  • feat(dashboard): write-only webhook secret for release-notes email (#68)
  • docs(dashboard): release notes run for any release tag, not only CoderHelm's (#67)
  • docs(dashboard): Require tests also makes CoderHelm write the tests (#66)

September 2026

Agents and API

  • feat: release notes for every release tag — GitHub Release, Confluence changelog, IT email (#95)
  • feat(reviewer): every review says which tests will run and where, or why none (#94)
  • fix(reviewer): CI labels only for behavior changes, strictest for deploy labels (#93)
  • fix(infra): pin the aws-cdk CLI so deploys never resolve "latest" from npm (#92)
  • feat(reviewer): per-repo CI labels picked from the PR's changes; require tests option (#91)
  • fix(reviewer): re-reviews resolve fixed threads and always report progress; @CoderHelm in any case, thread replies (#90)
  • feat: dashboard re-review endpoint + Claude Opus 5.5 / Sonnet 5.5 / Fable 5.1 (#89)
  • fix(reviewer): removing a Terraform lifecycle guard forces HIGH risk (#87)
  • fix(reviewer): auto-release tags are ANNOTATED, never lightweight (#86)

Dashboard and docs

  • feat(dashboard): release notes settings + Releases page (#65)
  • feat(landing): Reviewer section — reviews, auto merge, CI labels, tests, code graph (#64)
  • fix(infra): pin the aws-cdk CLI so deploys never resolve "latest" from npm (#63)
  • feat(reviewer): PR labels + require tests settings (#62)
  • feat(reviewer): Review-now + Re-review buttons, Claude 5.5 / Fable 5.1 models (#61)

August 2026

Agents and API

  • fix(reviewer): one dashboard record per review — armed APPROVE updated, not re-inserted (#85)
  • fix(reviewer): sensitive classifier — path-precise hard override, score-only content (#84)
  • fix(worker): never reset a PR's branch + 15-min health watch + approval semantics (#83)
  • fix(reviewer): never assert external facts from memory — verify registry, cite CI (#82)
  • feat(graph): code graph as its own API surface + precomputed browse summary (#81)
  • feat(worker): code-graph lookups for the PR-maker agent (shared with reviewer) (#80)
  • feat(reviewer): persistent per-repo code graph — structure the agent can query (#79)
  • fix(reviewer): dedup duplicate review jobs (consume-once) — no more double reviews (#78)
  • feat(reviewer): batch release tags per repo (tag_batch_minutes, default 15) (#77)
  • feat(reviewer): handle native "Re-request review" button + explicit re-reviews always post (#76)
  • fix(reviewer): bound the self-review->fix loop (convergence cap + approve hysteresis) (#75)
  • fix(reviewer): auto-merge "declined" now waits + explains, not "merge manually" (#74)
  • fix(reviewer): stop comment spam — comment only on verdict change + dedup gate notices (#73)
  • feat(worker): PR maker adds deploy label(s) at PR creation, not the merge gate (#72)
  • fix(worker): auto-merge CI verdict — cancelled ≠ failure, wait for CI to settle, post abort once (#71)
  • fix(worker): read codegen result from the uploaded artifact, not the log marker (#70)
  • fix(worker): a cancelled run must never be resurrected to awaiting_ci (#69)
  • fix(worker): resolve PR base branch from the live PR, not the stale run record (#68)
  • fix(reviewer): never review draft PRs + dedup same-head events (#67)
  • fix(reviewer/implement): honest zero-change message + coalesce rapid re-reviews (#66)
  • feat(reviewer): flag out-of-scope / scope-creep changes (#65)
  • fix(worker): restore_file defaults to the PR base branch, not main (#64)
  • feat(reviewer): support multiple deploy labels (comma-separated) (#63)
  • feat(reviewer): org-aware review — org-wide instructions + cross-repo blast radius (#62)
  • feat(reviewer): CoderHelm self-labels the PRs it opens (#61)
  • fix(reviewer): require the trigger label for bot-authored PRs too (#60)
  • fix(worker): give the implement pass the original ticket as data source-of-truth (#59)
  • feat(reviewer): configurable deploy label added before merge (#58)
  • fix(reviewer): enforce the bot-APPROVE key in the auto-merge gate (#57)
  • feat(reviewer): armed auto-merge — waits for human approval + all-green CI (#56) (#56)
  • fix(worker): stop Teams reminder spam — head-change floor, sweep card cap, visible dedup-save failures (#55)
  • ci(deploy): batch prod deploys on a 10-min window instead of per-push (#54)
  • feat(reviewer): agentic repo-context review + risk engine + verification + health-v2 (#53)
  • fix(infra): move review-reminder schedule to API stack (dependency cycle) (#52)
  • feat(reviewer): merge own PRs w/ human approval, self-review feedback, Teams reminders (#51)
  • feat(reviewer): real semver release tags + auto-review CoderHelm's own PRs (#50)
  • feat(reviewer): label-triggered PR reviewer agent (backend) (#49)
  • fix(worker): give the feedback/review pass a surgical edit_file (shared with implement) (#48)
  • feat(worker): teach the agent not to querySelector by Tailwind arbitrary-value classes (#47)
  • fix(worker): run affected unit tests in the sandbox gate before opening a PR (#46)
  • fix(worker): a passing workflow no longer masks a failing one (shipped red PRs) (#45)

Dashboard and docs

  • feat(dashboard): Code Graph section — stats, symbol search, visual explorer (#60)
  • feat(dashboard): code-graph toggle in reviewer config (#59)
  • feat(dashboard): batch-window (minutes) control for release tags (#58)
  • feat(dashboard): deploy-label help text reflects add-at-PR-creation (#57)
  • feat(dashboard): deploy label field supports multiple labels (#56)
  • feat(dashboard): org-wide review standards editor (#55)
  • feat(dashboard): persist selected repo in reviewer config URL (#54)
  • feat(dashboard): reviewer deploy-label config field (#53)
  • feat(dashboard): reviewer list as runs-style table, grouped by PR (#52)
  • feat(dashboard): search box for the health-check log-group picker (#51)
  • feat(dashboard): reviewer overhaul UI (risk breakdown, verify, health-v2, log picker) (#50)
  • feat(dashboard): reviewer Teams reminders config (#49)
  • feat(dashboard): reviewer tag mode (semver release vs date marker) (#48)
  • feat(dashboard): reviewer agent UI (config + reviews list + detail) (#47)

July 2026

Agents and API

  • fix(worker): halt + squash CI-fix churn on stall (stop the timeout death) (#44)
  • feat(repos): human-assigned repo roles to disambiguate Jira routing (#43)
  • fix(worker): make Jira repo selection smart via code evidence (#42)
  • fix(worker): defer on writer-slot contention instead of failing the run (#41)
  • fix(auth): land invited teammates on their real team, not their personal team (#40)
  • fix(worker): stop repair runs reverting user pushes (#39)

Dashboard and docs

  • feat(dashboard): repo role dropdown in repo settings (#46)

Tagged releases

The platform was tagged during its first weeks:

  • jira-app-production (2026-10-24): ci: publish the Jira app automatically on every change (#278)
  • v0.6.0 (2026-07-23): execution sandbox: agent verifies against real build/lint/test output (+ Node-version faithfulness)
  • v0.5.1 (2026-07-22): squash run commits at PR creation
  • v0.5.0 (2026-07-22): race-safe branch writes
  • v0.4.0 (2026-07-22): stuck-run recovery + toolchain pin
  • v0.3.3 (2026-07-03): reset & re-run endpoint
  • v0.3.2 (2026-07-03): durable run cancellation
  • v0.3.1 (2026-07-03): human-closed PRs stop the run; never reopen/process
  • v0.3.0 (2026-07-03): restore_file tool: byte-exact file recovery without LLM round-trip
  • v0.2.4 (2026-07-03): awaiting_ci cap measures time-in-state
  • v0.2.3 (2026-07-03): stale in-flight runs no longer block ticket triggers
  • v0.2.2 (2026-07-03): feedback CI handoff: conflict pushes go awaiting_ci; skip path marks green draft PRs ready
  • v0.2.1 (2026-07-03): stale run-error clearing; re-review reopens closed PRs and strips the Partial title marker
  • v0.2.0 (2026-07-03): pipeline-quality overhaul: fail-closed gates, syntax gate, atomic edits, salvage, security fixes, Opus 4.8
  • v0.1.1 (2026-07-03): repo routing: bare-name matches demoted to LLM hint
  • v0.1.0 (2026-07-02): repo-snapshot search, trigger gate, run-lifecycle overhaul
Edit on GitHub

On this page