summaryrefslogtreecommitdiffstats
path: root/CLAUDE.md
diff options
context:
space:
mode:
Diffstat (limited to 'CLAUDE.md')
-rw-r--r--CLAUDE.md24
1 files changed, 24 insertions, 0 deletions
diff --git a/CLAUDE.md b/CLAUDE.md
index b02eda7..269598e 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -533,6 +533,30 @@ anything that assumes one key per person.
bound. Every await on a download path is now bounded and says which chunk it
gave up on — an unbounded one is a freeze nobody can report
+- **A name with no spaces in it sets a table column's minimum width, and on
+ Android that unpins the whole page.** Sticky headers were added to Files,
+ Videos, Music and Photos on 2026-09-09 and reported broken on a phone: not
+ the new bands but *everything*, the navigation bar included, which had been
+ `position: sticky` for months. That is the tell. A document wider than the
+ screen leaves everything pinned attached to a viewport the reader can no
+ longer see, so a header doing exactly what it was told looks like one that
+ was never pinned — **look for horizontal overflow before doubting the
+ sticky rules**. The overflow came from two `<td>`s that had no wrapping rule
+ because `.file-name` was only ever on a *file's* name: a folder called
+ `Rage_Against_The_Machine_Discography_1992-2000_FLAC` made a 527px table in a
+ 390px window, and Search's group column did the same at 442px with an
+ underscored group name. `word-break: break-word` is what lets such a cell
+ stop driving the column, and it has to be on every cell that carries a name
+ somebody else chose.
+ Two things cost more than the fix. The harness had measured this page in two
+ engines at three widths and found nothing, because its fixture said
+ `note-007.txt` and `un groupe` — **a fixture narrower than real data tests
+ the fixture**, and names are the one thing a file browser cannot be given
+ short. And a first diagnosis blamed the soft keyboard (the Search field is
+ `autofocus`, and Android's `interactive-widget` default splits the visual
+ viewport from the layout one), which was plausible, cost a round trip, and
+ was wrong; the screenshot showing no keyboard was already in hand.
+
- **Three headers decide whether a page may frame itself, and they must agree.**
The same streamed download navigates a hidden iframe to `/_mbdl/<id>`.
`frame-src` was reCAPTCHA's two origins with no `'self'`, `frame-ancestors`