Releases: vul-os/openrate
Releases · vul-os/openrate
Release list
v0.2.0
Added
THIRD-PARTY-NOTICES.txt— generated, full-text third-party licence notices
(Go stdlib/modules, npm packages including the OFL-1.1 webfonts, vendored
site bundles), produced byscripts/gen-notices.shand never hand-edited.
Served by the binary at/licenses.txtand by the marketing site, both
linked from their footers.- Playwright end-to-end tests for the web UI (
web/e2e/boot.e2e.js,
web/e2e/converter.e2e.js) that boot the production-built bundle in real
Chromium and fail on any uncaught exception, blank root, or SPA-fallback
bug — wired intonpm testand a newweb-e2eCI job. - Regression test coverage across
internal/ratelimit,internal/store,
internal/ratestore, andinternal/sources(XFF spoofing, bucket sweep
eviction, concurrent store access under-race, fixture-driven source
Fetchparsing, and secret-leak redaction for paid sources). - README "Deployment modes" section documenting the two current shapes
(self-hosted binary, embedded Go library) versus the planned, not-yet-built
Vulos Cloud CP seam.
Changed
- Rate-limiter
ClientIPnow walksX-Forwarded-Forfrom the right and skips
configured trusted-proxy hops instead of trusting the left-most (client
forgeable) entry. - Vendored the Inter and JetBrains Mono webfonts locally instead of loading
them from Google Fonts at runtime, so a self-hosted instance never phones
home for UI assets. - Bumped
vite^5→^8 and@vitejs/plugin-react^4→^6 (clears dev-tooling
npm auditadvisories);vite.config.jsnow preserves upstream@license
banners in the shipped bundle (output.comments.legal = true). - Bumped the Go toolchain to go1.25.12 to clear reachable stdlib
vulnerabilities. - README rewritten to be self-contained (dropped the "Part of VulOS" suite
banner/product-map section, added a footer logo instead) and CLOUD.md/README
updated to mark hosted, multi-tenant openrate as exploratory/deferred rather
than a current billed Vulos product; stale "Vulos Mail"/"Workspace"
references and "Office" renamed to "Ofisi" in the site footer.
Fixed
- Fixed a goroutine and
time.Tickerleak in the rate limiter:Limiternow
has adonechannel andStop(),gc()selects on it, andLocal.Close()
drains the background sweep goroutine on shutdown. New(0, _)no longer divides by zero —rpm/burstare clamped to at
least 1 soRetry-Afteris always finite.GET /api/v1/convertnow rejects non-finite (Inf/NaN)amountvalues
with a clean400instead of letting them poison the arithmetic and produce
a truncated200response body.
Full Changelog: v0.1.0...v0.2.0
v0.1.0
Initial release.
Full Changelog: https://github.com/vul-os/openrate/commits/v0.1.0