summaryrefslogtreecommitdiffstats
path: root/CLAUDE.md
diff options
context:
space:
mode:
Diffstat (limited to 'CLAUDE.md')
-rw-r--r--CLAUDE.md17
1 files changed, 17 insertions, 0 deletions
diff --git a/CLAUDE.md b/CLAUDE.md
index 77d13d8..161aac4 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -402,6 +402,23 @@ anything that assumes one key per person.
for it would have failed these tests for no visible reason. Use
`Object.defineProperty`; the suite is now green on 18 and 24
+- **A fallback chain reaches its floor silently.** `_openDownloadTarget` tries a
+ granted folder, then a service worker, then "collect it in memory and hand the
+ browser a blob". In the desktop application the first two do not exist —
+ `showDirectoryPicker` is absent and Chromium refuses a worker on a custom
+ scheme — so **every download under 512 MB went through RAM**, and the only
+ visible symptom was a Save As dialog at the *end* instead of the start.
+ Nothing errored. When a chain degrades, check what the floor costs on every
+ platform that will reach it
+
+- **Two elements each claiming `100vh - 52px`, one inside the other's padding.**
+ `.layout` and `.page-center` both reserved the viewport below the header, and
+ `main`'s `24px` top and bottom were added on top — a permanent 48px scrollbar
+ on sign-in at every window size. Found by measuring in the running app
+ (`document.documentElement.scrollHeight` against `innerHeight`, then the
+ bottom edge of every element), not by reading the stylesheet, which is the
+ standing rule here
+
## Two lessons that cost four rounds of live testing
- **`QE/deploy/e2e.py` cannot test `app.js`.** It is a second implementation of the