What's Changed
- refactor(port_monitor): delete the unreachable missing-docker fallback and its two ignores by @connor-grady in #148
- chore(config): delete two settings already stated where they bind by @connor-grady in #149
- ci: pin every action to a commit SHA so a retargeted tag cannot reach the release credentials by @connor-grady in #150
- refactor(app): read each inactive count through one coercion instead of four by @connor-grady in #152
- refactor(app): remove the duplicated seedbox-update persistence blocks by @connor-grady in #153
- docs(agents): enumerate routes through openapi so router-owned paths are counted by @connor-grady in #154
- refactor(mam_api): collapse three identical status failure payloads into one by @connor-grady in #155
- refactor(ip_lookup): retire three redundancies in the provider dispatch by @connor-grady in #156
- fix(api): refuse state-changing requests another site sends through the browser by @sirjmann92 in #157
- fix(proxy): validate the port and host, and report a save the backend refuses by @sirjmann92 in #158
- fix(api): stop answering failures in three incompatible shapes by @connor-grady in #151
- fix(api): answer the cross-site refusal as problem details, and show its reason by @sirjmann92 in #159
- fix(config): stop returning the vault-era browser cookie, and drop it from disk by @sirjmann92 in #160
- build(deps): pin every Python dependency, and install the pins everywhere by @sirjmann92 in #161
- fix(deps): leave out pins another pin fixes exactly, so Dependabot bumps install by @sirjmann92 in #163
Full Changelog: v2.5.0...v2.5.1