Repository navigation
Releases
Releases · Smana/runlore
v0.20.0
v0.19.1
v0.19.0
0.19.0 (2026-11-04)
Features
- curate: ready-to-merge from verified evidence, rebuilt entry PRs and the Knowledge queue (#606) (263678c)
- factory: an incident's entry is drafted once its fix is verified, and the verdict earns it trust (#605) (053a374)
- kb: knowledge over HTTP, the entry's origin and resolution, lore kb resolve (#604) (0642d9d)
Bug Fixes
v0.18.0
v0.17.0
0.17.0 (2026-10-28)
Features
- eval: add a held-out case the prompt is not tuned against (#579) (d1c9158)
- factory: RunLore as a client of the agent factory: findings to POST /v1/tasks, signed webhooks into the incident thread (#596) (4ec0a2f)
- factory: RunLore verifies the factory's fix after a soak (#598) (53b6ffb)
- providers: a decision model behind the recall reranker and curation dedup (#581) (c65a7ba)
- serve: name the investigation tools the loop runs without, once at startup (#583) (540a8a8), closes #467
Bug Fixes
- curator: meter and guard the dedup decider, cap the decider client's body read, fix the backend docs (#588) (f340b4e), closes #581
- curator: show the dedup decider both resources, so it can answer the question it is asked (#586) (389b1bd), closes #581
- eval: stop the held-out case from handing the model its own answer (#585) (69f79c1), closes #579
- investigate: name the resource in a root cause, and report what a miss claimed (#578) (1912865)
- recall: overlap the shadow arm, split the confidence histogram by choice (#587) (23c1ce4), closes #581
Documentation
v0.16.2
v0.16.1
v0.16.0
0.16.0 (2026-08-27)
⚠ BREAKING CHANGES
- notify: notify.silence.windows may now list more than 5 entries when notify.slack.silence_button is off. Nothing that validated before stops validating — the bound is only relaxed, so no working deployment breaks on upgrade. What to watch for: a Matrix-only deployment that adopts a longer preset list will fail validation at startup if notify.slack.silence_button is later enabled. The error names notify.silence.windows and the flag; trim the list to between 2 and 5 entries, or leave the flag off.
Features
- gcp: add the GCP cloud provider — Cloud Audit Logs and GKE/MIG/Compute health (#561) (e0c75f2)
- investigate: let cloud_what_changed ask for the failed calls only (#551) (1f5ece9)
- notify: silence an investigation from Slack or Matrix (#556) (e3a3ec0)
Bug Fixes
- gcp: allow the GKE metadata server by address, and warn when cloud config is inert (#563) (96688ac), closes #562
- investigate: make a submitted finding account for its own verdict (#550) (741acae)
- notify: make the Slack silence control legible, public, and durable (b68a503)
- notify: stop cutting "what changed" mid-word (#552) (621fe65)
- providers: collapse a CronJob run suffix to its controller family (#549) (bb6a188)
Documentation
Code Refactoring
- httpx: one bounded drain idiom for every response body (cfedfd4)
v0.15.0
0.15.0 (2026-08-20)
⚠ BREAKING CHANGES
- gitops: a GitHub Enterprise install whose forge.github_api_url is an "api." subdomain (subdomain isolation) must now set forge.git_host to the host serving its git remotes.
serverefuses to start until it does, rather than guessing and silently withholding the credential from every GitOps repository. Every other configuration — github.com, GHE at HOSTNAME/api/v3, GitLab — is untouched and needs no new key. - eval: investigation.max_tokens_per_investigation is now a CUMULATIVE ceiling over one investigation's model tokens (loop + verify, provider-reported), not a check on the next request's estimated size. The default is unchanged at 100000, so the same number binds far earlier than it used to: a tool-heavy investigation that resends a growing history every step can now stop after a handful of turns where it previously ran to max_steps. Runs that hit it report result="budget_exceeded" and deliver an unresolved stub naming the ceiling.
- investigate: investigation.max_tokens_per_investigation is now a CUMULATIVE ceiling over one investigation's model tokens (loop + verify, provider-reported), not a check on the next request's estimated size. The default is unchanged at 100000, so the same number binds far earlier than it used to: a tool-heavy investigation that resends a growing history every step can now stop after a handful of turns where it previously ran to max_steps. Runs that hit it report result="budget_exceeded" and deliver an unresolved stub naming the ceiling.
Features
- investigate: add list_resources so the model stops guessing object names (#544) (f8f01ea)
- investigate: cap what one investigation may spend, in tokens and in dollars (#486) (8d26929)
- investigate: read an object's spec, so config faults stop being inferred (#509) (967d462)
- investigate: read the firing alert's own rule expression (#534) (a21b12c)
- observability: panel the shutdown loss counter, and alert on two silent degradations (#542) (ee7e141)
- providers: carry namespaced-ness from discovery, not a kind list (#540) (90a2ccc)
- thread: answer questions in an investigation thread, with a cheap model (#484) (b65c2d9)
- thread: route a knowledge-base announcement into the thread it came from (#502) (6496fa2)
- thread: show what landed in the KB, and announce it to every sink (#485) (6e50f57)
- thread: write knowledge back to the KB from a Matrix thread (#483) (6819083)
- thread: write knowledge back to the KB from a Slack thread (#482) (98bda12)
Bug Fixes
- chart: make the ClusterRole honest about what it grants (#521) (306d18c)
- ci: pin the screenshot guard to the rendered card, not slack.go's history (#489) (54cf87d)
- curate: group a recurrence by resource identity, not by its spelling (#539) (d50704a)
- curator: stop drafting a resource recall can never match (#533) (484e4c3)
- eval: account a failed call that was billed, and price verify at the model it calls (#525) (c5c516c)
- eval: bound lore eval, and report what the CLI's model calls spend (#487) (0ef4507)
- five correctness findings from the review programme (#517) (87682a7)
- forge: ASCII-refuse the DERIVED forge git host, on both providers (#523) (bfe860e)
- gitlab: give the note-append the guards its own doc claimed (#520) (92cb9ff)
- gitops: confine the forge credential to the forge's own git host (#515) (3fa30db)
- investigate: canonicalise the resource the MODEL names, not only the alert's (#538) (7609037)
- investigate: charge failed calls and recall embeddings to the run's ceiling (#516) (658adb7)
- investigate: close three escapes past the egress redaction chokepoint (#522) (ffa9aac)
- investigate: match a cloud resource by identity, not by spelling (#535) (4dc27ce)
- investigate: stop the GitOps tools reporting a scope limit as an absent object (#508) (eb33fb5)
- investigate: stop what_changed reporting a scope limit as an absent change (#543) (0ed7806)
- notify: bound the Matrix thread stamp, and the whole event with it (#526) (26e46e4)
- notify: bound the progress ping and the delivered Matrix card (#514) (013fd34)
- notify: don't render the alert's namespace as the resource's own (#536) (9938c50)
- notify: make an inconclusive card explain itself (#530) (4b0cc1b)
- notify: regenerate the card golden for the combination that broke main (#537) (b87ca8f)
- notify: stop the delivery payload naming a namespace the resource is not in (#541) (813f3c0)
- notify: tell the human when a knowledge write failed (#510) (9131d29)
- server: stop a typed-nil thread handler from faking a live /slack/events (#500) (0dfb612)
- telemetry: bucket the BM25 score histograms for a real corpus (#481) (d1cbc0b)
- thread: close seven gaps between what a thread reports and what happened (#528) (fffb1a7)
- thread: derive a note entry's identity from the note, not the finding (#499) ([8e74ea4](https://...
v0.14.0
0.14.0 (2026-08-14)
Features
Bug Fixes
- ci: check cross-page anchors, and fix three that were already broken (#468) (de26d0c)
- curator: log the dedup score on every decision, not only when it fires (#480) (3977055)
- eval: stop the nightly eval dying silently at its own timeout (#477) (cba3a9e)
- recall: ground the adversarial review of a recalled finding (#476) (04f36dd)
- recall: stop instant recall self-destructing after a single use (#475) (0280367)
- recurrence: anchor suppression on a standing conclusive prior (#472) (19dc724), closes #471
- website: enlarge the homepage screenshots in place instead of opening a new tab (#456) (d251ed4)
Documentation
- add a worked Grafana MCP recipe (#463) (3916650)
- ask for feedback where the demo ends (#461) (fd92e52)
- chart: make the minimal profile's gitops engine and evidence gaps explicit (#470) (d25894b)
- chart: say why instant recall is off in the standard profile (#466) (037b383)
- chart: state the commons failure mode and correct two details (#465) (50cd4f9)
- lead with the recall cost delta and the zero-setup trial (#460) (ae22452)
- publish a roadmap and name the bus factor (#462) (dae9ca2)
- security: make the security section index answer the question it exists for (#469) (3b57565)