## kodustech/kodus-ai — web-1.2.0…web-1.2.1

_31 commits._

### Fixes
- **Merge pull request #1855 from kodustech/fix/openrouter-provider-pin** (0cb9d29)
- **fix(byok): let the OpenRouter provider pin be typed, and survive its own edit** (3220a65)
- **Merge pull request #1851 from kodustech/fix/prod-error-triage** (66fabac)
- **fix(llm): cascade a 429 that outlived its own retries, whatever it says** (f8d842d)
- **fix(code-review): read every JSON value before lifting a wrapped array** (77c9f43)
- **fix(code-review): never let a nested decoy array pass as the review** (d072645)
- **fix(code-review): say what an unreadable formatter response looked like** (b067c78)
- **fix(code-review): recover the array when the model puts something before it** (025b5c4)
- **fix(code-review): strip the numbered list when a model flattens it onto one line** (605e72f)
- **fix(code-review): parse the formatter response with the recovery we already had** (f947f19)
- **perf(code-review): stop the suggestion formatter from reasoning about prose** (f3078e0)
- **fix(code-review): fill formatter gaps by coverage, not by batch size** (2e8ee0e)
- **fix(code-review): stop the scaffolding stripper from rewriting ordinary prose** (884a410)
- **fix(code-review): never ship the reviewer's WHAT/WHY/HOW scaffolding** (c288db5)
- **fix(code-review): key the exhausted-slot notice on the notice, not the failure** (b46eb64)
- **fix(workflow): keep array positions when a sanitised array is sparse** (96561ac)
- **fix(notifications): scope the unread count and the read writes too** (be51133)
- **fix(code-review): notify a slot-exhausted review once, not per redelivery** (e4157a3)
- **fix(workflow): clean the object reached through a second reference** (33ea40f)
- **fix(backfill): read the pull request number every provider actually sends** (5ece289)
- **fix(gitlab): guard the comment path against a repository with no automation** (074199a)
- **perf(bitbucket): resolve a pull request's head commit once, not per file** (ab26383)
- **fix(notifications): scope the feed to the organization being viewed** (079c8a5)
- **fix(code-review): fail a review that never gets a BYOK slot** (297a9a2)
- **fix(code-review): stamp a delivery status on every discarded suggestion** (16f9380)
- **fix(byok): reference the fallback model the v1 migration left orphaned** (47c5abd)
- **fix(llm): stop retrying an account that can only be fixed by paying** (db409ce)
- **fix(dashboard): resume paging where the previous page stopped reading** (357f8c4)
- **fix(audit): restore the BYOK settings trail on the v2 config shape** (2ab35b5)
- **fix(observability): make a production error attributable to a customer** (edfbf4a)
- **fix(workflow): keep one NUL byte from dropping a whole review** (d6ad1cf)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/kodustech/kodus-ai?utm_source=github-action)._