docs(project-state): B2l/B2m — one post parked as a draft, and why neither held post may be backdated
Deploy / build (push) Successful in 25s

This commit is contained in:
hoelee committed 2026-10-16 13:13:58 +08:00
1 parent 18f2ed3c74
commit 27d3dca3c3
1 file changed
+33 -6
+33 -6
View File
@@ -538,26 +538,45 @@ from a normal Chrome UA — so "0 pageviews after a headless test" is not a bug.
- ⚠ **Reminder for the next session:** the assertion method matters — hrefs must be checked against **raw** HTML, not the
tag-stripped text (a first pass reported the CTA and cross-links "missing" because tag-stripping removes `href`).
**Step B2l — (unplanned) Three posts written from the 2026-10-09 → 10-16 sessions, held for the user's read.** 🔵
**Step B2l — (unplanned) Two posts written from the 2026-10-09 → 10-16 sessions, held for the user's read.** 🔵
Per the user's instruction of 2026-10-16 ("先写出来,我看了过后,确认后再发"), these three are **written, built and
Per the user's instruction of 2026-10-16 ("先写出来,我看了过后,确认后再发"), these two are **written, built and
image-complete but deliberately not committed and not pushed** — they are untracked files in the working tree while
they wait for a read. **A parallel session's `git add -A` would sweep them in — never stage blindly in this tree.**
A third post written in the same batch (`the-dialog-opened-in-7-seconds-my-script-waited-5`, category `ai`) was
**dropped by the user** — parked as `draft: true` in `18f2ed3` and **not to be published**; see the note under the
table.
| Slug | Category | Proposed `pubDate` | Source session (Hermes id) | What it argues |
|---|---|---|---|---|
| `calibrating-intel-quick-sync-hevc-quality` | `tutorials` | 2026-10-14 | `20261014_132458_102ffe` | The full QSV calibration: ICQ 18–22 inflate thin sources (size gate 176.8/141.8/107.6%), the usable range starts at 24, the quality cliff sits **between 28 and 30**, excerpts rank quality but **never** speed (fast == medium byte-for-byte, 168,435,266 B), the four traps (`/lib` mount, `rgb24` rate control, `SKIP already HEVC hvc1`, one QSV job at a time) |
| `docker-reported-exit-0-the-oom-killer-disagreed` | `devops` | 2026-10-16 | `20261016_034103_770729` | "Container stopped unexpectedly" while `docker inspect` reports `ExitCode 0` / `OOMKilled=false` — the truth was 6 cgroup OOM kills in dmesg (uptime stamps matching `FinishedAt`), driven by a crawler flood (25,976 IPs / 50k lines, 33,636×403 + 16,082×429); fix = 512M → 2g + `memswap_limit: 2g`, labelled a stopgap; plus the "my own bare curl got 403" verification trap |
| `the-dialog-opened-in-7-seconds-my-script-waited-5` | `ai` | 2026-10-15 | `20261014_203311_1682fa` | The LinkedIn cron's "composer dialog did not open" was a race: dialog +1.8 s, buttons +2.8 s, editor **+7.2 s**, script slept 5 s and looked once; the swallowed-click defect (identical click ignored 75 s, then accepted in 2 s); and the silent failure underneath — a 72 h approval TTL against a 12-day queue |
- **Parked draft (do not publish):** `the-dialog-opened-in-7-seconds-my-script-waited-5` — the LinkedIn cron's race
(dialog +1.8 s, buttons +2.8 s, editor +7.2 s vs a `sleep(5)` look-once), the swallowed-click defect and the 72 h
approval TTL against a 12-day queue. User dropped it on 2026-10-16. Both `.md` files are committed with
`draft: true` (excluded from build/listing/sitemap — verified: 153 pages, no route, 0 sitemap hits); its OG/banner
PNGs were deleted, but its `TERMINALS`/`BANNERS` entries are already in the repo, so re-imaging is one command.
- ⚠ **Backdating verdict for this batch (do not re-litigate): neither held post may carry a historical date.**
- `docker-reported-exit-0-…`: its evidence *is* dated — `Oct 12`, `Oct 16`, the times 02:45 / 02:58 / 03:39 /
05:33 / 07:37 / 07:57, "two weeks of uptime", "18 minutes after the restart". Any older date makes the post
contradict its own table. Ships on the real date (`2026-10-16`), `updatedDate` = the day it is actually pushed.
- `calibrating-intel-quick-sync-hevc-quality`: the prose carries no calendar date, but two checkable pins fix it
to **2026-10-14**: (a) it names **ffmpeg 9.0.2**, and ffmpeg.org lists 9.0.2 as released **2026-09-18** (9.0 on
2026-08-04), so nothing before that date is honest; (b) the premise — a shipping QSV tier whose defaults mean
"uncalibrated" — only existed from the tier landing (Batch 4b-1, 2026-10-14 11:41) to the calibration that
evening (Batch 4b-2). Keep `pubDate` 2026-10-14, `updatedDate` = the real push day.
- Deep backdating (2024/2025 archive gaps) therefore needs **evergreen** posts only — see B2m for which queued
topics qualify.
- **State of each:** EN + ZH written; `rewrap_post.py` → `wrap_lists.py` applied to the EN files (ZH untouched, one
paragraph per line); OG + banner generated and **measured** (`measure_og_banner.py` → PASS on all four pairs);
`npm run build` clean (155 pages, no duplicate-id warning); all 8 `dist/` pages verified locally (language switch
both ways, content assertions from whitespace-normalised tag-stripped text, listing order monotonic on `/posts/`,
`/` and `/zh/`).
- ⚠ **The generators already carry all four `TERMINALS`/`BANNERS` entry sets** — the three for these posts rode into
`2295c0f` together with the authentik entry (git stages whole files). They are inert until a slug is actually
generated, so publishing each post needs only its two `.md` files plus its two PNGs.
- ⚠ **The generators already carry all four `TERMINALS`/`BANNERS` entry sets** — the three for this batch's slugs
(two held + one parked) rode into `2295c0f` together with the authentik entry (git stages whole files). They are
inert until a slug is actually generated, so publishing each post needs only its two `.md` files plus its two PNGs.
- **To publish one:** confirm the real `pubDate` (`date`, and the newest `<time>` on the live `/posts/`), then
`git add` the four explicit paths (post EN/ZH + og + banner) and push `origin main`; verify the four URLs 200.
@@ -567,6 +586,14 @@ From the same sweep, **explicitly not to be written**: the Photoshop "closes eve
sweep) and the Shopee abnormal-status / voucher-card post (#12). Everything below is queued, in the user's requested
order of interest, each with its source session:
> **Which of these can carry a deep historical date (the user's 2026-10-16 question).** Deep backdating needs a post
> whose *facts are undated* — no calendar date, no quoted log timestamp, and no version whose release date is
> checkable. In this queue that is **only two**: the mail-server/PTR post (concepts, no events) and the PDF
> font-embedding post (four font families, no dates). Both fit the big empty stretches — **2024-09-25 → 2025-03-18**
> (six months) and the near-empty 2025-07 → 2025-12 — with `updatedDate` = the real date. The other five are
> **recent-window only**: the NAS memory and idle-guard posts quote timestamped samples, the rclone one rests on a
> dated quota event, the scan failure and the router-401 posts both quote a runtime/version state.
| Topic | Category | Source | The hook |
|---|---|---|---|
| Moving a 1.5 TB cloud backup OneDrive → Google with rclone | `notes` | `20261015_170438_0e4312` | seed stalled at 0 bytes/90 s with 159 `rateLimitExceeded`; `gcloud` holds only a TTS service account so the console is the critical path; the credential must be a **Desktop app** client for rclone's redirect |