docs(playbook): three caches not one — confirm against server output; mxgw is the check-first outlier
This commit is contained in:
+22
-2
@@ -246,8 +246,13 @@ foundation branch merges — all branches build independently and compose at mer
|
|||||||
also carry app-specific *shape* declarations that predate the sweep and that the kit does not
|
also carry app-specific *shape* declarations that predate the sweep and that the kit does not
|
||||||
ship; mxgw's carried `border-radius: 5px; font-weight: 500; white-space: nowrap`, and a wholesale
|
ship; mxgw's carried `border-radius: 5px; font-weight: 500; white-space: nowrap`, and a wholesale
|
||||||
delete would have silently dropped all three. Diff your block against the kit's before removing
|
delete would have silently dropped all three. Diff your block against the kit's before removing
|
||||||
anything: three of the five apps' blocks were pure sizing and safe to delete outright, one was
|
anything: four of the five apps' blocks were pure sizing and safe to delete outright, one was
|
||||||
not, and the difference is invisible unless you look. Note also that a retained `border-radius`
|
not, and the difference is invisible unless you look. Two of the four that were safe deleted
|
||||||
|
without diffing first and said so — they were lucky, not careful, and that is the same shape of
|
||||||
|
error as the ghost-class deletion §1a-1 guards against. **When a family-wide instruction lands,
|
||||||
|
check mxgw by hand first**: it is the member whose local CSS predates the kit by the most, so it
|
||||||
|
is the most likely to be the exception to any "all the apps have X" premise — it was the outlier
|
||||||
|
here *and* the one wrongly exempted from the scadaproj#2 modal sweep. Note also that a retained `border-radius`
|
||||||
should stay a **literal** rather than becoming `--bs-btn-border-radius` — `.btn-sm` redefines
|
should stay a **literal** rather than becoming `--bs-btn-border-radius` — `.btn-sm` redefines
|
||||||
that variable, so the switch would shrink small buttons to Bootstrap's small radius.
|
that variable, so the switch would shrink small buttons to Bootstrap's small radius.
|
||||||
3. **Phantom tokens → a real class**, not a token alias. OtOpcUa's pattern:
|
3. **Phantom tokens → a real class**, not a token alias. OtOpcUa's pattern:
|
||||||
@@ -364,6 +369,21 @@ Bootstrap's 16px, exactly what an unreached override looks like — so the natur
|
|||||||
"fix" it by restoring the local rule you just deleted, entrenching the duplication the change
|
"fix" it by restoring the local rule you just deleted, entrenching the duplication the change
|
||||||
removed. Hard-reload first; only then trust a computed-style probe.
|
removed. Hard-reload first; only then trust a computed-style probe.
|
||||||
|
|
||||||
|
**A hard reload is not sufficient, and there are three caches, not one.** HistorianGateway hit a
|
||||||
|
second browser-side failure that survived the hard reload entirely: after running CSSOM experiments
|
||||||
|
on a page (deleting rules to preview a modifier), the tab's **DOM** kept the pre-experiment markup —
|
||||||
|
no `rail-btn-block` class on the element — while `curl` showed the server rendering
|
||||||
|
`class="rail-btn rail-btn-block"` correctly. It came within one report of calling a working fix
|
||||||
|
broken. A fresh tab settled it. There is also a third, non-browser cache: **NuGet's HTTP cache**,
|
||||||
|
which made `dotnet add package` resolve a just-published version as "not found, nearest is <prior>"
|
||||||
|
while the feed's registration index already listed it (`dotnet nuget locals http-cache --clear`).
|
||||||
|
|
||||||
|
So the rule is stronger than "hard-reload": **confirm against the server's own output before
|
||||||
|
believing the browser.** One `curl` of the page and one of the stylesheet distinguishes all three —
|
||||||
|
stale CSS, stale DOM, and a genuinely broken change — and **none of them are distinguishable from
|
||||||
|
each other in the viewport.** Every one of the three presents as "the change didn't work," and the
|
||||||
|
tempting response to each is to revert a change that was correct.
|
||||||
|
|
||||||
1. Computed-style probes (one `javascript` eval): a `.btn`'s `font-size` vs body; the phantom-token
|
1. Computed-style probes (one `javascript` eval): a `.btn`'s `font-size` vs body; the phantom-token
|
||||||
replacement class resolving to real colors; the scoped bundle present in `document.styleSheets`.
|
replacement class resolving to real colors; the scoped bundle present in `document.styleSheets`.
|
||||||
**Measure behaviour rather than reading a computed value when the two can disagree.** Chrome
|
**Measure behaviour rather than reading a computed value when the two can disagree.** Chrome
|
||||||
|
|||||||
Reference in New Issue
Block a user