Files
felhom.eu/marketing/CHANGELOG.md
T
admin 796a9fdf40
gates / gates (push) Successful in 4m28s
marketing/facebook: covers rebuilt to the MEASURED phone view (R-919 -> VERIFY)
build.py believed a phone shows 640x360 of the cover. It shows 412x274 =
1.504:1 -- the full height and only the centre 938 px of 1640, 351 px off each
side. PHONE_HDR = (412, 274) now drives CW_PHONE, so SAFE is (391,40)-(1249,584),
858 px wide with a 40 px margin inside each crop edge.

QUIET is no longer one formula for both circles: the computer circle is
left-anchored, the phone circle is CENTRED and hides only its measured box
(637,369,393). The old shared formula, applied to a centred circle, would have
blanked everything from x 0 to x 1054 below y 345.

Every cover draws in a derived BAND (408,48)-(1249,340), and a cap check holds
each headline's capital at >= 4% of the cover height; A/B/C come out at 45, 45
and 37 px against a 25 px floor.

RED-PROOF, and it is permanent: control_old_window() runs on every build and
draws the headline where the old assumption put it (x 328); the check must
reject it. The phone's crop edge is x 351, so 23 px were cut; the measured safe
edge is x 391. Against the covers as committed at a76207945e the new check
convicted 3 of 3 -- A 23/22 px past the left/right edges, B 63/58 px plus 1017
content pixels under the phone circle, C 63/82 px plus 1778.

Covers redrawn inside the band: A one centred line; B the home motif scaled
with two tiles moved into the lower-right strip, the one area below the band a
phone still shows beside the profile circle; C the dashboard screen 470 -> 370
px so frame and base fit. preview.html shows the phone panel at the measured
938x624 with the centred circle and no longer claims 640x360.

Profile pictures untouched -- sha256 identical before and after, and not in the
diff. Built on DooPlex: the PNGs are byte-reproducible there (Pillow 11.1.0) and
not across Pillow versions; the README now says so.

R-919 is VERIFY, not closed: the geometry is measured on ONE emulated device in
the mobile website, so the operator's check in the Facebook app is the
acceptance. Nothing uploaded, no Graph API call, FACEBOOK_API never read.
2026-10-09 06:59:53 +02:00

87 lines
7.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# marketing — CHANGELOG
## facebook — the covers rebuilt to the phone view we measured (R-919) (2026-10-09)
R-919's fix, from an operator brief (no TASK file in the repo). The covers shipped on 2026-10-08 were cut
on every phone; this rebuilds them to the measured geometry. Report: `REPORT-facebook-cover-r919.md`.
- **The geometry is measured now, not assumed.** `build.py` believed a phone shows 640 x 360 of the cover.
It shows **412 x 274 = 1,504 : 1** — the full height and only the **centre 938 px of 1640**, 351 px off
each side. `PHONE_HDR = (412, 274)` drives `CW_PHONE`, so `SAFE` is now **(391, 40)–(1249, 584)**, 858 px
wide with a 40 px margin inside each crop edge.
- **`QUIET` is no longer one formula for both circles.** The computer circle is *left-anchored* (everything
to its left is under it); the phone circle is **centred** and hides only its own measured box
`(637, 369, 393)`. The old shared formula would have blanked the whole left half of the cover's bottom.
- **A derived `BAND`** — inside SAFE, right of the computer circle, above the phone circle — is where every
cover draws, so a re-measurement moves the three designs with it.
- **A `cap` check** holds each headline's capital at ≥ 4 % of the cover height (25 px). A, B, C come out at
45, 45 and 37 px.
- **The red-proof runs on every build**, beside the circle check's own control: `control_old_window` draws
the headline where the old assumption put it (x 328) and the check must reject it. Against the covers as
committed at `a76207945e` the new check convicted **3 of 3** — A 23 px / 22 px past the left and right
edges, B 63 / 58 px plus 1017 content pixels under the phone circle, C 63 / 82 px plus 1778.
- **The three covers were redrawn** inside the band: A one centred line; B the headline left with the home,
its server and now seven app tiles right — two of them in the lower-right strip, the one place below the
band a phone still shows beside the profile circle; C the headline left with the dashboard, its screen
470 → 370 px wide to fit. `out/preview.html` shows the phone panel at the measured 938 x 624 with the
centred circle, labelled MEASURED, and no longer claims 640 x 360.
- **The profile pictures are untouched** — sha256 identical before and after, and they are not in the diff.
- **Build it on DooPlex.** The PNGs are byte-reproducible there (Pillow 11.1.0); Pillow 12.3.0 on the Windows
workstation re-renders text a pixel or two differently and rewrites all six files. Noted in the README.
- Nothing was uploaded to Facebook and no key was read. **R-919 is VERIFY, not closed:** the geometry is
measured on one emulated device in the mobile website, so the operator's check in the Facebook **app** is
the acceptance step.
## facebook — the Page's settings set by hand, and Meta's size page read first-hand (2026-10-08, evening)
Ran `marketing/facebook/TASK-page-setup-windows.md` from the Windows workstation through Claude in Chrome.
Evidence: `documentation/audits/facebook-page-setup-2026-10-08/`; report: `REPORT-facebook-page-setup.md`.
- **Done, each read back from a different channel than the edit.** Intro → `COPY.md` §1 (Graph `about` now
hex-equal to §1, 99 chars); action button → „További információ" at `https://felhom.eu/`; Messenger welcome
→ `COPY.md` §3, hex-equal, automation **on**; Page username → **`felhom.eu`**, so the Page now answers at
`facebook.com/felhom.eu` (Graph `username` confirms it). The operator typed the password Facebook demanded
for the username; nothing else needed a human.
- **Not done — `COPY.md` §2 has no field to go in.** Facebook's current Pages experience has no
long-description field anywhere, and the Graph `description` reads `null` and is not writable with the
robot key's scopes. Filed **R-917** with four options; §2 stays in `COPY.md` unused. `facebook/README.md`'s
„What goes where" row says so.
- **`facebook/README.md` sizes grade: „READ, second-hand" → „READ, Meta's help page" — and the comparison
went the other way.** Meta's page (facebook.com/help/125379114252045, quoted verbatim in the audit) carries
**none** of the 820 x 312 / 640 x 360 figures the section asserted; only the 176 px profile size matched,
and Meta's mobile profile overlap is ~40 px where we assumed 24. Meta's own page contradicts itself (16:9
on a computer, 2,4:1 on a phone, one 2,70:1 file recommended for both). What we build is unchanged.
- **Measured on the live Page at a 1435 px viewport: fine.** The cover renders whole — no crop, no distortion
— the container caps at 1250 px, and the profile circle sits 16 px clear below the cover.
- **Measured on an emulated Pixel 9: the cover is CUT on phones (R-919).** The mobile Page header is
412 x 274 = **1,504:1**, so Facebook shows only the **centre 938 px of the cover's 1640 px width** — 351 px
off each side. `build.py`'s safe area leaves 306 px clear per side, **45 px too few**, so 18 px of the text
is lost: the headline reads „aját szabályaid" and the wordmark „elhom.eu" on every phone. Nothing was
re-cropped on Facebook; the fix is `build.py`'s safe area (≤ 938 px, ~900 for margin) plus the measured
172 px centred phone profile circle, then the operator re-uploads. **Meta's own page is wrong about Meta's
own rendering** — it states 2,4:1 for the mobile cover where the header measures 1,504:1, so the first-pass
arithmetic built on Meta's figure under-predicted the crop about fivefold.
- **How to see Facebook's phone layout** (it cost several wrong turns, recipe in the audit README): narrowing
the window never works — `www.facebook.com` has a minimum width and only grows a horizontal scrollbar, and
`m.facebook.com` redirects to `www` under a desktop user agent. DevTools device mode with a device chosen
**and then a reload** does it; without the reload the already-booted desktop bundle stays (content 901 px
wide in a 412 px viewport). `www` then hangs on the splash under the mobile agent — `m.facebook.com` loads.
- **Gotcha, fixed in the session, no row.** In Business Suite the automatic-reply editor refused the first
save with „A módosítás nincs mentve." **and still created the automation and switched it on — carrying
Meta's default Hungarian greeting, not ours.** A red error toast was therefore a partial write. Reopening
the now-existing automation, pasting §3 again and saving gave „Mentve."; the reopened automation reads back
hex-equal. Anyone editing this screen must reopen it and read the text back, not trust either toast.
- Nothing was posted; no ad, no boost, no Meta Verified; the Meta app stays in development mode.
## facebook — the Page's pictures and texts (2026-10-08)
- `marketing/facebook/build.py` (Pillow only) makes `out/profile-dark.png` + `out/profile-white.png` (932 x 932, the
logo PNG placed unscaled), three covers `out/cover-{a,b,c}.png` (1640 x 624) and `out/preview.html` (self-contained).
Checks in the build: profile circle (today's shape 6823 pixels outside radius 0.42 x width → new pictures 0), cover
safe area + profile-circle clearance (content layer only), sizes read back from the files. The site's tokens and font.
- `COPY.md`: intro (99 of 100 characters), long description, Messenger welcome, three first posts — each claim cites its
website page; no price.
- Fixed in the session: covers B and C first failed the safe-area check (text in the phone profile circle's corner, the
frame past the phone crop) and were moved; `logo.svg` renders with the wrong lettering here, so the PNG is the master
(R-916).