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 |
- Fix malformed brief handling and unify menu state - Allow free-form briefing filenames - Make the approval review buttons prompt-driven - Add slack-profile surface to client.py - Collapse the mode nav on width, and scope the Initialising group Source-SHA: ea48bf5f12fdf14a688383bf2ddcefab909c58b9
8bcfab8 to
b3469f4
Compare
|
Thanks for the pass. Both trims are in, plus the aside. It all arrived as one squashed snapshot commit ( 1. On the breakpoint, I did not want to guess a number, so I disabled the menu rule and measured where the nav actually clips: clean at 820px, clipped at 812px. 840px leaves about 25px of margin, which is the job Removing the observer did cost one behaviour, which a cross-check caught and I reproduced before fixing. 2. Duplicated toggle pair: collapsed. Both pairs go through one 3. truncate-to-6-decimals: leaving it, taking your read. The three copies genuinely differ, and the standalone CLI scripts avoid depth-sensitive imports on purpose, so a shared helper would buy less than it costs. The On the other changes in this snapshot. Every publish replaces the whole tracked tree from the mirror, so a snapshot carries everything that has landed there since the last one, not only the review fixes. Four other things came along:
Full suite is green, 48 suites plus the 29 differential goldens. The UI changes were checked in a browser at 1440px, 780px and 600px rather than by assertion alone. |
- Add YAAS_SLACK_CHECKERS_ENABLED switch to disable local Slack adapter - Revert default Claude model to Opus 4.8; drop stale contract test Source-SHA: 16b9654aec77d2e10d77a71843f62f89cafe61c2
Source-SHA: b54e04936f1a06438c51645d98a7e8efbadb339c
Source-SHA: e09a6494d03ce2cc8280345599901a75a87ea748
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