Release 2.5.1: post-launch audit fixes - #7
Conversation
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.OpenSSF Scorecard
Scanned Files |
|
@guangmian-circle — Ponytail (complexity) review. Separate from the security pass (which found nothing to block). This PR is overwhelmingly bug fixes + tests + docs, and most prod changes are tight — the 1. 2. 3. (soft note, not counting) truncate-to-6-decimals duplicated 3× in
(Also, minor robustness aside from the security pass: a briefing filename with digits that pass the |
Imports the YAAS v2 snapshot at 2.5.1 from the upstream mirror.
The project now carries a version:
VERSIONholds it as plain text,CHANGELOG.mdrecords whatlanded, and the README states it near the top. This branch spans the 2.5 release and the 2.5.1 patch
release on top of it.
What is in here
2.5 — the first versioned release: the dashboard v2 manual-review surface, a quick start, the
security hardening, a README rewrite, and watermarks stored at Slack's 6-decimal precision.
2.5.1 — nine defects found by auditing that snapshot, plus one reported from live use. The ones
worth a reviewer's attention:
checkers/result.pyformattedadvance_towith:.6f, which is round-half-even, so a claim could land ahead of the point actually proven coveredand a message sitting exactly on the rounded microsecond was then read as already-seen forever.
slack_dmandslack_mentionwere pre-rounding at the call site too, which made the emit-side fixa no-op for the two checkers that reach it.
classify()no longer erases a numeric0watermark claim through falsiness. An erased claimis not a hold: the commit layer falls back to
now - lagand jumps the watermark to NOW.even when the payload was identical, which made the prompt box flicker and reset a long draft's
scroll in the review interface.
gained one canonical timestamp plus a checked filename contract.
$&in aURL or label is inserted literally rather than expanded as a substitution pattern.
One behaviour change to read before merging
A fractional value for a whole-number knob is now refused at startup instead of being floored to
0, which silently disabled the cap the operator meant to tighten. Knobs whose reader honours a
fraction (
YAAS_STALE_REPLY_HOURS,YAAS_MAX_SPEND_*) still accept one. An integer configuration isunaffected.
Tests
48 suites and 29 differential goldens pass; the mutation suite catches 12 of 12. New:
yaas-triage/tests/unit/dashboard-render.test.shexercises the dashboard's renderer, date helpersand write guards by behaviour, running the shipped implementations rather than asserting the file
contains certain strings. It skips where
nodeis absent (an optional dependency) and names what itdid not cover. Every fix in 2.5.1 has an assertion verified to fail when the fix is reverted.
Published from mirror SHA
1d4d861(taggedv2.5.1). All commits on this branch aresignature-verified by GitHub.
🤖 Generated with Claude Code