v2.0.8
Fixed
- Backend resource bounds hardened (from audit #1/#2): an overflowing
response fails immediately instead of draining stderr from a blocked
writer (up to 8s stall per tick), and the curl child is killed and reaped
on every path so read failures can't leak orphans/zombies. - Watchlist cap counts deduplicated symbols (#3): duplicate entries no
longer falsely reject a valid watchlist. - Symbol suggestion lookups cache negative results (#4): unresolvable
symbols stop re-querying the search endpoint every poll tick.
Fixed (QML frontend, from audit #5-#10)
- Panel chart fetch has a watchdog: a backend that fails to spawn or hangs
no longer leaves the panel on "Loading" forever. - A watch process exit always clears and reseeds quotes; the PATH fallback
no longer keeps rendering a stale price as live. - A watcher that spawns but dies instantly counts toward the fallback
threshold instead of crash-looping every 5 seconds. - Rotation pauses while the panel is open and opening prefers the persisted
selection. - formatPrice keeps the sign of negative prices; normalizeSymbol strips
commas/semicolons so entries can't break the CSV round-trip.
Artifact: omastonk-qs-2.0.8-linux-x86_64.tar.gz (statically linked musl x86_64).
Reproducible-build attestation
Produced by the verify bundle and publish GitHub release job at commit d1c50b2040a4b5359d4ce404d9e89af8f3d3e4d0, with all third-party actions pinned to immutable commit SHAs.
source_commit=d1c50b2040a4b5359d4ce404d9e89af8f3d3e4d0
version=2.0.8
committed_sha256=213479c239ec797347183ab0d860c1fdd8736616f7fdbdb6a92c45591be9dad7
rebuilt_sha256=213479c239ec797347183ab0d860c1fdd8736616f7fdbdb6a92c45591be9dad7
source_id=146b9c2216f45e794d6b95c37f75de390075b2d21d7df504f26091245f2f16d9
tarball_sha256=c79be3cbb82390ec31c11f15d464a504248c0c506a3b439b4b406af0a18a3485