style(webapp): two warnings and a stale RFC section - #190
Conversation
Biome 2.5.12 began reporting noDescendingSpecificity on two rules that predate lot D. `.mobile-navigation a span` and `.player-progress span` each said `display: none` after `.mobile-header .library-picker span` and its neighbours had claimed the same element type with one class more. Nothing rendered wrong, and that is why the warning sat there rather than being a bug: every one of those selectors hides a span of its own, and no element is matched by two of them. The three rules are now one, whose selectors run from the least specific to the most. The declaration is the same for every selector, so their order cannot change what any element gets, and none of them sits behind a selector that already outranks it. The comment says so, rather than leaving the next reader to work out why a phone's hidden labels live in one place. A first attempt merged the selectors without ordering them and kept the warning: the rule compares selectors inside a single list too, which is worth knowing before grouping anything else. `biome check src e2e` is clean for the first time since 2.5.12 started reporting this. tsc, 102 unit tests and 56 Playwright tests over the desktop and mobile projects pass, so the mobile navigation is still icon-only: the one thing this rule is load-bearing for, and the thing an end-to-end test counts. Claude-Session: https://claude.ai/code/session_019coGCzcX775GmG9kYz8fft Signed-off-by: InstaZDLL <github.105mh@8shield.net>
Its "Ce qui reste ouvert" section still listed the upload values as undecided, and still asked whether an abandoned working area is swept at expiry, at boot, or both. Both were settled by implementing, and the section had not noticed. `UploadLimits` in `src/config.rs` carries all six values, each behind its own environment variable: 1 GiB per file, 50 GiB of quota per library, 4 MiB fragments, batches of 200 offers, 4 concurrent sessions per account, and a 24 hour expiry. `validate_uploads` cross-checks them at boot, so no setting can contradict another. `spawn_upload_sweeper` in `src/services/uploads.rs` sweeps at boot, then once per session lifetime, and every negotiation sweeps before it counts a quota, which is where the cleanup actually matters since the negotiation is what decides. The entries are struck through with what shipped and where, rather than deleted: they are the record of what was open. The third question, the sharing of one blob between libraries, stays open and now points at RFC-009 decision 11, which has since drawn the same line for canvases without settling what a library may learn from another. This is the failure mode `CLAUDE.md` warns about in its own words: a document about the code is not evidence about the code. This section read as work remaining while the work had been done two weeks earlier. Claude-Session: https://claude.ai/code/session_019coGCzcX775GmG9kYz8fft Signed-off-by: InstaZDLL <github.105mh@8shield.net>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (2)
Included review availability: 0 reviews are currently available. Your included PR review attempts over the past 7 days set your current allowance at 5 reviews per hour. 📝 WalkthroughWalkthroughLa PR documente les décisions de la RFC-008 sur les limites d’upload et le nettoyage. Elle regroupe aussi les règles CSS qui masquent plusieurs libellés sur les écrans mobiles. ChangesDocumentation de la réception de fichiers
Styles de l’interface mobile
Priority: ⬇️ Low Estimated code review effort: 2 (Simple) | ~10 minutes Change: Other Merge Risk: ⚪ Minimal · up to The RFC and mobile CSS updates are consistent with the described behavior and verification results. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
style(webapp): two warnings and a stale RFC section
Summary
Two small debts, one from the linter and one from a document, with nothing else left open on the repository.
The two Biome warnings
noDescendingSpecificityhas been reported since Biome 2.5.12 on.mobile-navigation a spanand.player-progress span, both declaringdisplay: noneafter.mobile-header .library-picker spanand its neighbours had claimed the same element type with one class more. Nothing rendered wrong — each selector hides a span of its own and no element is matched by two of them — which is why they were warnings and not a bug.The three rules are now one, with its selectors ordered from the least specific to the most. The declaration is identical for every selector, so the order cannot change what any element gets.
A first attempt merged the selectors without ordering them, and the warning stayed: the rule compares selectors inside a single list too. Worth knowing before grouping anything else.
RFC-008's stale open section
It still listed the upload values as undecided and asked whether abandoned working areas are swept at expiry, at boot, or both. Both had been settled by implementing:
UploadLimits(src/config.rs) carries all six values behind their environment variables — 1 GiB per file, 50 GiB quota, 4 MiB fragments, batches of 200, 4 sessions per account, 24 hour expiry — andvalidate_uploadscross-checks them at boot.spawn_upload_sweeper(src/services/uploads.rs) sweeps at boot, once per session lifetime, and every negotiation sweeps before counting a quota.Both entries are struck through with what shipped and where, rather than deleted, since they record what was open. The third question — sharing one blob between libraries — stays open, now pointing at RFC-009 decision 11, which drew the same line for canvases without settling what a library may learn from another.
Verification
biome check src e2eclean — the first time with no warnings since 2.5.12 began reporting thistsc --noEmit, 102 unit tests, 56 Playwright tests across the desktop and mobile projects, axe sweeps includedNo behaviour changes in either commit: one reorders selectors that share a declaration, the other edits a document.
Summary by CodeRabbit
Améliorations
Documentation