post(devops): publish the authentik CSS draft — the > that became u003e (EN+ZH) + og/banner
Deploy / build (push) Successful in 22s

- draft: true -> false in both files, pubDate 2026-09-20 kept, updatedDate 2026-10-16 (lastmod honest)
- fix the CTA's displayed phone number (011-797 2969 -> +60 12-797 2969)
- generate public/og + public/banners for the slug (og rows=1 overflow=0; banner delta=2 overflow=0)
- generators carry the TERMINALS/BANNERS entries for this post; three more entries for
  posts written the same session (held for review, not committed here) are inert
This commit is contained in:
hoelee committed 2026-10-16 12:46:09 +08:00
1 parent 5216f0761b
commit 2295c0f5bf
6 files changed
+94 -4

No files matched your search

+68
View File
@@ -1220,6 +1220,74 @@ BANNERS['five-step-ai-roadmap-what-i-actually-run'] = {
],
};
BANNERS['calibrating-intel-quick-sync-hevc-quality'] = {
titlebar: "unraid - qsv calibration",
lines: [
{ t: 'prompt', text: "$" }, { t: 'cmd', text: "library_run.py --tier qsv --force-tier qsv" },
{ t: 'dim', text: "host UHD 770 idle - the Win11 VM only has the 3060" }, { t: 'dim', text: "sources read-only over SMB - sha256 unchanged" },
{ t: 'err', text: "ICQ 18/20/22 FAIL size: 176.8% / 141.8% / 107.6%" }, { t: 'prompt', text: "$" },
{ t: 'cmd', text: "ICQ 26 -preset medium" }, { t: 'ok', text: "61.0% of source video - mean SSIM 0.9960 - 5.6x realtime" },
{ t: 'hl', text: "cliff between 28 and 30 - fast == medium, byte for byte" }, { t: 'dim', text: "shipped: qsv_quality = 26, qsv_preset = medium" },
],
flow: [
{ n: '1', label: "prove the iGPU" },
{ n: '2', label: "rank on excerpts" },
{ n: '3', label: "confirm full files" },
{ n: '4', label: "ship 26 / medium" },
],
};
BANNERS['docker-reported-exit-0-the-oom-killer-disagreed'] = {
titlebar: "root@nas - the oom killer",
lines: [
{ t: 'prompt', text: "$" }, { t: 'cmd', text: "docker logs traefik-hide-v2ray" },
{ t: 'dim', text: "notification: container stopped unexpectedly" }, { t: 'err', text: "docker inspect: ExitCode 0, OOMKilled=false" },
{ t: 'prompt', text: "$" }, { t: 'cmd', text: "dmesg | grep -i oom-killer" },
{ t: 'ok', text: "Memory cgroup out of memory: Kill process 615 (traefik)" }, { t: 'hl', text: "25,976 IPs / 50k lines - 33,636x403 - 16,082x429" },
{ t: 'dim', text: "512M -> 2g + memswap_limit 2g (swap off on purpose)" }, { t: 'dim', text: "peak 18 min later: 210 MB - a stopgap, not a fix" },
],
flow: [
{ n: '1', label: "read Docker state" },
{ n: '2', label: "read dmesg" },
{ n: '3', label: "count the flood" },
{ n: '4', label: "raise the cap" },
],
};
BANNERS['the-dialog-opened-in-7-seconds-my-script-waited-5'] = {
titlebar: "root@win11 - the dialog was open",
lines: [
{ t: 'prompt', text: "$" }, { t: 'cmd', text: "cron linkedin-daily-post" },
{ t: 'dim', text: "dialog +1.8s - buttons +2.8s - editor +7.2s" }, { t: 'err', text: "script slept 5s, looked once: 'dialog did not open'" },
{ t: 'prompt', text: "$" }, { t: 'cmd', text: "poll(node=editor, timeout=40s)" },
{ t: 'ok', text: "submitted - the composer closing is the proof" }, { t: 'hl', text: "click ignored 75s, identical click accepted in 2s" },
{ t: 'dim', text: "13 tests pin the staged mount + the swallowed click" }, { t: 'dim', text: "72h approval TTL vs a 12-day queue: silent ticks" },
],
flow: [
{ n: '1', label: "click start a post" },
{ n: '2', label: "poll for the editor" },
{ n: '3', label: "submit once" },
{ n: '4', label: "confirm it closed" },
],
};
BANNERS['authentik-css-greater-than-bug'] = {
titlebar: "auth.hoelee.com - brand css",
lines: [
{ t: 'prompt', text: "$" }, { t: 'cmd', text: "authentik - System - Brands - Custom CSS" },
{ t: 'dim', text: "rule accepted, stored, injected, served, parsed" }, { t: 'err', text: "ul.pf-c-list > li:last-child - no effect" },
{ t: 'prompt', text: "$" }, { t: 'cmd', text: "document.styleSheets brand-css cssRules" },
{ t: 'ok', text: "ul.pf-c-list u003e li - the > became literal text" }, { t: 'hl', text: "invalid selector in a list = the whole rule is discarded" },
{ t: 'dim', text: "fix: a descendant selector, one character deleted" },
],
flow: [
{ n: '1', label: "rule it out: shadow DOM" },
{ n: '2', label: "grep the injected css" },
{ n: '3', label: "blame specificity" },
{ n: '4', label: "read cssRules" },
],
};
// ---------- read frontmatter ----------
const postPath = join(ROOT, 'src', 'content', 'posts', `${slug}.md`);
let category = 'devops';
+20
View File
@@ -372,6 +372,26 @@ TERMINALS['five-step-ai-roadmap-what-i-actually-run'] = `
<div class="line"><span class="prompt">&nbsp;</span><span class="err">step 5: never done — my failures were bytes, mounts and licences</span></div>
<div class="line"><span class="prompt">$</span><span class="cmd">3 of 5 running here · 57 s video → text in ~8 s</span><span class="fix">→ transcript ✓</span></div>`;
TERMINALS['calibrating-intel-quick-sync-hevc-quality'] = `
<div class="line"><span class="prompt">$</span><span class="cmd">library_run.py --tier qsv --qsv-quality 26 --keep-local</span></div>
<div class="line"><span class="prompt">&nbsp;</span><span class="err">ICQ 18/20/22 FAIL size: 176.8% / 141.8% / 107.6%</span></div>
<div class="line"><span class="prompt">$</span><span class="cmd">ICQ 26 -> 61.0% of source, mean SSIM 0.9960</span><span class="fix">-> qsv_quality = 26</span></div>`;
TERMINALS['docker-reported-exit-0-the-oom-killer-disagreed'] = `
<div class="line"><span class="prompt">$</span><span class="cmd">docker inspect traefik-hide-v2ray | jq .State</span></div>
<div class="line"><span class="prompt">&nbsp;</span><span class="err">ExitCode 0 - OOMKilled false - RestartCount 6</span></div>
<div class="line"><span class="prompt">$</span><span class="cmd">dmesg | grep -i 'killed process'</span><span class="fix">-> 6 x cgroup OOM at ~480 MB / 512 MiB</span></div>`;
TERMINALS['the-dialog-opened-in-7-seconds-my-script-waited-5'] = `
<div class="line"><span class="prompt">$</span><span class="cmd">linkedin-daily-post</span></div>
<div class="line"><span class="prompt">&nbsp;</span><span class="err">FAILED: the composer dialog did not open</span></div>
<div class="line"><span class="prompt">$</span><span class="cmd">dialog +1.8s, buttons +2.8s, editor +7.2s</span><span class="fix">-> poll, never sleep</span></div>`;
TERMINALS['authentik-css-greater-than-bug'] = `
<div class="line"><span class="prompt">$</span><span class="cmd">grep 'data-id="brand-css"' page.html -> rule is there</span></div>
<div class="line"><span class="prompt">&nbsp;</span><span class="err">selector matches, computed display: list-item</span></div>
<div class="line"><span class="prompt">$</span><span class="cmd">read the sheet back out of the CSS parser</span><span class="fix">-> u003e, not ></span></div>`;
// ---------- read frontmatter ----------
const postPath = join(ROOT, 'src', 'content', 'posts', `${slug}.md`);
if (!existsSync(postPath)) {