
# Build Log

## [2026-05-10T23:59:59+02:00] compile | daily/2026-05-10.md (final — missing file created)
- Source: daily/2026-05-10.md
- Articles created: [[wiki/concepts/overflow-hidden-clips-positioned-children]]
- Articles updated: none
- Index updates: none (already indexed at row 213 of concepts/_index)
- Note: File was listed in _index.md but missing on disk. Created marquee-buttons-outside-overflow variant of the overflow-hidden clipping rule, with See Also link to overflow-hidden-clips-absolute-children (glass header variant).

## [2026-05-10T23:59:00+02:00] compile | daily/2026-05-10.md (addendum — Shumiland workflow concepts)
- Source: daily/2026-05-10.md
- Articles created:
  - [[wiki/concepts/eslint-flatcompat-next16-circular-reference]] — FlatCompat wraps eslint-config-next v16 → circular reference crash; drop FlatCompat, import nextConfig directly
  - [[wiki/concepts/active-component-import-verification]] — grep import chain before editing; HeaderClient.tsx vs Header.tsx lesson
  - [[wiki/concepts/figma-code-connect-plan-requirements]] — MCP `send_code_connect_mappings` requires Org/Enterprise; CLI works on all plans
- Articles updated: none
- Index updates: [[wiki/concepts/_index]] (226→229, +3 entries); [[wiki/_master-index]] (concepts 174→177)
- Note: Three concepts from the Shumiland Code Connect + ESLint + header editing sessions that were missed in prior compilation passes. ESLint FlatCompat is the most actionable — pre-commit hook blocker. Active component import verification is a workflow lesson (editing Header.tsx while app renders HeaderClient.tsx). Code Connect plan requirements clarify when MCP vs CLI is usable.


## [2026-05-10T12:00:00+02:00] compile | daily/2026-05-09.md
- Source: daily/2026-05-09.md
- Articles created (8):
  - [[wiki/concepts/payload-cms-overrideaccess-bypass]] — `overrideAccess: true` bypasses all Payload access control; critical anti-pattern in webhook handlers
  - [[wiki/concepts/nextjs-unstable-cache-force-dynamic]] — `unstable_cache` + tag revalidation vs `force-dynamic`; ISR for shared rarely-changing data
  - [[wiki/concepts/map-ratelimiter-memory-leak]] — in-memory Map rate limiters grow unbounded; `setInterval` eviction with `.unref()`
  - [[wiki/concepts/vitest-module-level-env-testing]] — `vi.stubEnv` + `vi.resetModules()` + dynamic `await import()` for env-at-load-time modules
  - [[wiki/concepts/webhook-replay-attack-prevention]] — timestamp ±5min validation + callId deduplication to prevent replay attacks
  - [[wiki/concepts/secrets-git-history-purge]] — `git-filter-repo --invert-paths --path .env` permanent secret removal; force push + re-clone required
  - [[wiki/concepts/payload-cms-push-dev-prod]] — conditional `push: NODE_ENV === 'development'`; `push: false` default silently breaks fresh DB
  - [[wiki/concepts/cloudflare-proxied-domain-npm-subpath]] — Cloudflare-only domains have no NPM vhost; Custom Locations fail; separate subdomain required
- Articles updated: none
- Index updates: [[wiki/concepts/_index]] (166→174, +8 entries); [[wiki/_master-index]] (concepts 166→174)
- Session coverage: Nextcloud signaling server config path mismatch, NPM Custom Location limitation for Cloudflare-proxied domains, Payload CMS security audit (overrideAccess, secrets in git, HMAC logging, replay attacks), Payload CMS performance (force-dynamic, N+1 queries, O(N×M) map lookup, rate limiter leak), Vitest env-at-load-time testing patterns, docker-compose credential mismatch, payload push:false gotcha

## [2026-05-10T23:00:00+02:00] compile | daily/2026-05-03.md (addendum — Glance widgets + dual AdGuard)
- Source: daily/2026-05-03.md
- Articles created: [[wiki/concepts/adguard-parallel-instances-diagnostic]]
- Articles updated: [[wiki/concepts/glance-dashboard-config]] (added hot-reload, Jellyfin sessions widget fix, Prometheus path mismatch, Habr RSS URL format `hubs/` vs `hub/`)
- Index updates: [[wiki/concepts/_index]] (+1 new row, adguard-parallel-instances-diagnostic)
- Note: Two prior passes (2026-05-08T22:00 and 2026-05-08T23:30) had captured the main debugging patterns but noted dual AdGuard and Glance widget fixes as "handled as notes" without actually writing them. This pass captures them properly: (1) CT101 empty AdGuard placeholder vs CT102 Docker production instance — router DNS pointed to wrong one; (2) Glance hot-reload confirmed, Jellyfin sessions widget `.Exists "NowPlayingItem"` fix, Prometheus `/mnt/media` vs `/mnt/data` path mismatch, Habr `hubs/` plural URL format.

## [2026-05-11T00:45:00+01:00] compile | daily/2026-05-10.md (addendum — Vite BASE_URL slash concatenation)
- Source: daily/2026-05-10.md
- Articles created: [[wiki/concepts/vite-base-url-slash-concatenation]]
- Articles updated: none
- Index updates: [[wiki/concepts/_index]] (165→166, +1 entry)
- Note: One concept missed in prior passes — session 16:19 barclays-banner-builder: `${BASE_URL}filename` silently works in dev (BASE_URL="/") but fails in prod when base is a sub-path or empty. Fix: always use explicit slash or `new URL(file, BASE_URL).href`. Now captured.

## [2026-05-11T00:30:00+01:00] compile | daily/2026-05-10.md (addendum — Figma .fig binary format)
- Source: daily/2026-05-10.md
- Articles created: [[wiki/concepts/figma-fig-binary-format]]
- Articles updated: none
- Index updates: [[wiki/concepts/_index]] (164→165, +1 entry); [[wiki/_master-index]] (concepts 164→165)
- Note: One concept missed in prior pass — session 16:41 research on Figma `.fig` file internals: ZIP archive with proprietary `canvas.fig` binary (magic bytes `fig-kiwij`); image assets accessible via `unzip`, but layer/component/text data requires Figma REST API or Desktop. Now captured.

## [2026-05-10T23:59:00+01:00] compile | daily/2026-05-06.md (addendum — BAIC client knowledge)
- Source: daily/2026-05-06.md
- Articles created: (none — all major concepts already existed from prior compilation pass)
- Articles updated: [[wiki/client-knowledge/baic]] (added Deploy Process section, Deploy Gotchas table, Per-User Report feature; systemd service underscore naming; rsync-only deploy pattern confirmed)
- Index updates: none (article count unchanged)
- Note: Prior compilation pass had already created fastapi-root-path-route-stripping, sse-jwt-query-param, spa-index-html-cache-control, pinia-storeftorefs-array-reactivity, memory-compiler-lesson-signal, workflow-approve-dispatch-completeness, security-middleware-json-key-regex. Only BAIC-specific deployment facts from session 13:29 were missing — added to client-knowledge article.

## [2026-05-10T23:00:00+01:00] compile | daily/2026-05-10.md (Shumiland + Payload CMS + banner-tool session)
- Source: daily/2026-05-10.md
- Articles created: [[wiki/concepts/pydantic-exclude-none-null-clearing-conflict]], [[wiki/concepts/payload-cms-root-layout-requirement]], [[wiki/concepts/payload-cms-node26-esm-workaround]], [[wiki/concepts/css-marquee-animation-gpu-pattern]], [[wiki/concepts/css-animation-js-scroll-conflict]], [[wiki/concepts/overflow-hidden-clips-absolute-children]], [[wiki/concepts/react-state-playwright-css-hover]], [[wiki/concepts/figma-mcp-oauth-reconnect-restart]], [[wiki/concepts/nextjs16-lint-command-removed]]
- Articles updated: none
- Index updates: [[wiki/concepts/_index]] (192→201, +9 entries); [[wiki/_master-index]] (concepts 192→201)
- Note: Long multi-project session — Shumiland (GallerySlider marquee animation debugging: JS scroll vs CSS animation conflict, overflow:hidden button clipping, animationDelay phase-shift for navigation), kvytky/Payload CMS setup (RootLayout crash, Node 26 ESM seed workaround, Turbopack incompatibility), banner-tool (DELETE variant endpoint + confirm dialog), Barclays logo URL fix, Figma MCP OAuth reconnect quirk

## [2026-05-10T22:00:00+01:00] compile | daily/2026-05-08.md (resumed — additional articles)
- Source: daily/2026-05-08.md
- Articles created (this pass): [[wiki/concepts/google-cloud-tts-ai-studio-separation]], [[wiki/concepts/pydantic-mongodb-patch-missing-fields]], [[wiki/concepts/celery-inflight-tasks-lost-on-restart]], [[wiki/concepts/caption-aligner-cursor-drift]], [[wiki/concepts/cmux-ghostty-wrapper-config]]
- Articles updated: [[wiki/concepts/poetry-docker-version-mismatch]] (added server-side poetry.lock conflict resolution: `git checkout backend/poetry.lock && git pull`)
- Index updates: [[wiki/concepts/_index]] (184→190, +6 entries); [[wiki/_master-index]] (184→190)
- Note: Resumed after context break. Previous session pass (below) created 8 files but ran out of context before creating comprehensive merged articles; this pass added google-cloud-tts comprehensive article (covers TTS service separation + model_name version gate + IAM role), merged pydantic/mongo and celery/restart articles, caption aligner cursor drift, and cmux/Ghostty config split. Some conceptual overlap exists with previous pass files — both sets are indexed.

## [2026-05-10T21:00:00+01:00] compile | daily/2026-05-08.md (video-accessibility session)
- Source: daily/2026-05-08.md
- Articles created: [[wiki/concepts/async-def-without-await-silent-coroutine]], [[wiki/concepts/google-cloud-tts-vs-ai-studio-tts]], [[wiki/concepts/google-cloud-texttospeech-version-gate]], [[wiki/concepts/caption-aligner-cursor-stall-cascade]], [[wiki/concepts/celery-worker-restart-inflight-task-loss]], [[wiki/concepts/poetry-lock-server-conflict-resolution]], [[wiki/concepts/silent-exception-swallow-falsy-guard]], [[wiki/concepts/pydantic-required-fields-manual-mongodb-patch]]
- Articles updated: [[wiki/tech-patterns/redis-celery-worker-queue]] (added worker restart orphans in-flight tasks gotcha)
- Index updates: [[wiki/concepts/_index]] (171→178, added 7 new rows + 1 auto-added by hook); [[wiki/_master-index]] (concepts 171→178)
- Note: Heavy video-accessibility debugging session — migrated from AI Studio TTS to Google Cloud TTS (separate endpoint, IAM role, library version bump, MP3 direct); fixed `await` omission in Redis `get_redis()` call; fixed NL VTT silent skip (exception swallow + falsy guard); fixed caption aligner cursor stall (bisect time fallback); deploy-triggered in-flight task loss pattern documented

## [2026-05-10T00:00:00+01:00] compile | daily/2026-05-07.md (addendum 2)
- Source: daily/2026-05-07.md
- Articles created: [[wiki/concepts/fastapi-orm-property-json-column]]
- Articles updated: [[wiki/concepts/fastapi-response-model-silent-field-strip]] (added Vue list-field null crash section and dual-layer fix requirement)
- Index updates: [[wiki/concepts/_index]] (added 1 new row, updated fastapi-response-model-silent-field-strip date); [[wiki/_master-index]] (count already at 169 from prior sync)
- Note: Session 12:09 — Vue 3 + FastAPI + Planka + Azure DevOps integration; `tags` surfaced via ORM `@property` from `fields_json` without DB migration; Vue template crashed with TypeError on null list field requiring both schema fix and `?.` optional chaining

## [2026-05-10T21:00:00+01:00] compile | daily/2026-05-06.md
- Source: daily/2026-05-06.md
- Articles created: (none — all concepts already compiled in prior runs)
- Articles updated: [[wiki/client-knowledge/baic]] (deployment operational details: service underscore naming, deploy.sh setup-only caveat, rsync path, benign "failed to set times" warning, stale Vite hash accumulation)
- Index updates: none (wiki indexes already accurate per compiler instruction)
- Note: Sessions covered BAIC Dashboard bugs — Pinia storeToRefs array reactivity, Vue auth race condition, FastAPI root_path route stripping, Apache mod_alias vs mod_proxy conflict, SSE JWT query param, SPA index.html cache-control, security middleware word boundary regex, MS SSO non-UUID IDs, workflow approve dispatch completeness, TypeScript literal union compile-time removal

## [2026-05-08T23:59:00+01:00] compile | daily/2026-05-08.md
- Source: daily/2026-05-08.md
- Articles created: [[wiki/concepts/macos-windows-usb-wimlib]], [[wiki/concepts/rspamd-mailcow-whitelist]], [[wiki/concepts/apple-mail-trust-junk-headers]], [[wiki/concepts/dovecot-expunge-irreversible]], [[wiki/concepts/apple-silicon-usb-passthrough]]
- Articles updated: (none)
- Index updates: [[wiki/concepts/_index]] (134→139, added 5 new rows); [[wiki/_master-index]] (concepts 134→139)
- Note: Sessions covered Windows 11 USB creation on macOS (install.wim FAT32 limit → wimlib split), Mailcow email delivery incident (rspamd SBL+BAYES → Apple Mail auto-delete → bookkeeper-agent expunge → permanent loss of axilaccountants.co.uk emails), Kingston USB read-only lock after dd on Apple Silicon, UTM vs OrbStack USB passthrough

## [2026-05-08T00:00:00+01:00] compile | daily/2026-05-07.md
- Source: daily/2026-05-07.md
- Articles created: [[wiki/concepts/macos-cron-sleep-missed-jobs]], [[wiki/concepts/macos-launchd-catchup-cron-replacement]]
- Articles updated: (none)
- Index updates: [[wiki/concepts/_index]] (132→134, added 2 new rows); [[wiki/_master-index]] (concepts 132→134)
- Note: Sessions covered diagnosing Forgejo sync script missed cron runs (Mac asleep at 10:00 Mon/Thu) and migrating to launchd with RunCatchUpIfMissed; also removed sync_devops_to_clickup.py cron job

## [2026-05-08T00:01:00+01:00] compile | daily/2026-05-07.md (addendum)
- Source: daily/2026-05-07.md
- Articles created: [[wiki/concepts/macos-full-disk-access-external-volume]]
- Articles updated: (none)
- Index updates: [[wiki/concepts/_index]] (146→147, added 1 new row); [[wiki/_master-index]] (concepts 139→147, also corrected prior drift)
- Note: FDA concept missed in initial compile — macOS Full Disk Access must be granted to Terminal/Claude Code AND app restarted to read /Volumes/SSD/ paths

## [2026-05-08T22:00:00+01:00] compile | daily/2026-05-03.md
- Source: daily/2026-05-03.md
- Articles created: [[wiki/concepts/docker-lxc-gpu-device-node-mismatch]], [[wiki/concepts/qbittorrent-slow-speed-checklist]], [[wiki/concepts/docker-bridge-subnet-whitelist]], [[wiki/concepts/jellyfin-client-bitrate-limit]], [[wiki/concepts/proxmox-lxc-disk-fstrim]]
- Articles updated: (none)

## [2026-05-08T23:45:00+01:00] compile | 2026-05-05.md
- Source: daily/2026-05-05.md
- Articles created: (none)
- Articles updated: (none)
- Note: Daily log was empty (FLUSH_OK only — no session content captured)

## [2026-05-08T23:30:00+01:00] compile | 2026-05-03.md
- Source: daily/2026-05-03.md
- Articles created: [[wiki/concepts/gpu-device-node-lxc-docker]], [[wiki/concepts/qbittorrent-proxy-profile-blocking]], [[wiki/concepts/docker-bridge-network-whitelist]], [[wiki/concepts/proxmox-lxc-disk-trim]], [[wiki/concepts/jellyfin-client-bitrate-limit]], [[wiki/concepts/jellyfin-library-path-mismatch]]
- Articles updated: [[wiki/concepts/authentik-homelab-tradeoffs]] (added OIDC cleanup section — apps using Authentik OIDC need manual cleanup after removal)
- Index updates: [[wiki/concepts/_index]] (122→128, added 6 new rows); [[wiki/_master-index]] (concepts 122→128)
- Note: Items 3 (dual AdGuard), 9 (OIDC cleanup), 10 (Glance Habr URLs) handled as updates/notes; 6 standalone concept articles created for the primary debugging patterns

## [2026-05-08T22:30:00+01:00] compile | 2026-05-01.md (re-verify)
- Source: daily/2026-05-01.md
- Articles already existed from prior compile: [[wiki/concepts/documenso-vs-libresign-esignature]], [[wiki/concepts/paperless-ngx-docker-exec-permission-bug]], [[wiki/concepts/paperless-ngx-mail-rule-attachment-only]]
- No new articles or updates needed — all content fully captured
- Index fix: sonarr-custom-formats-quality-profile (broken slug) corrected to sonarr-custom-format-quality-profile in concepts/_index.md
- Index updated: concepts count corrected 117→122 in _master-index.md

## [2026-05-08T22:00:00+01:00] compile | 2026-04-30.md (sessions 10:22–11:48)
- Source: daily/2026-04-30.md
- Articles already existed from prior compile: [[wiki/concepts/jellyseerr-setup-wizard-sqlite]], [[wiki/concepts/ssh-agent-passphrase-key]], [[wiki/concepts/linux-cpu-frequency-fan-noise]]
- Duplicates removed: jellyseerr-setup-configuration.md, ssh-agent-passphrase-keys.md, cpu-frequency-throttling-fan-noise.md (created by stale sub-agent in previous context window)
- Index updated: concepts count corrected 120→117

## [2026-05-08T21:56:26+01:00] compile | 2026-05-01.md
- Source: daily/2026-05-01.md
- Articles created: [[wiki/concepts/paperless-ngx-docker-exec-permission-bug]], [[wiki/concepts/paperless-ngx-mail-rule-attachment-only]], [[wiki/concepts/documenso-vs-libresign-esignature]]
- Articles updated: (none)

## [2026-05-08T21:00:00+01:00] compile | 2026-04-30.md (sessions 10:48, 11:45, 17:17)
- Source: daily/2026-04-30.md
- Articles created: [[wiki/concepts/jellyseerr-setup-configuration]], [[wiki/concepts/ssh-agent-passphrase-keys]], [[wiki/concepts/cpu-frequency-throttling-fan-noise]]
- Articles updated: (none)

## [2026-05-08T21:00:00+01:00] compile | daily/2026-04-30.md
- Source: daily/2026-04-30.md
- Articles created: [[wiki/concepts/vaultwarden-master-password-encryption]], [[wiki/concepts/jellyseerr-setup-wizard-sqlite]], [[wiki/concepts/ssh-agent-passphrase-key]], [[wiki/concepts/linux-cpu-frequency-fan-noise]]
- Articles updated: (none)

## [2026-05-08T22:00:00+01:00] compile | 2026-04-29.md (supplement)
- Source: daily/2026-04-29.md
- Articles created: [[wiki/concepts/prowlarr-flaresolverr-get-only]], [[wiki/concepts/npm-sqlite-admin-reset]], [[wiki/concepts/glance-dashboard]], [[wiki/concepts/sonarr-custom-format-quality-profile]]
- Articles updated: [[wiki/concepts/prowlarr-flaresolverr-limitation]] (added link to new prowlarr-flaresolverr-get-only article)
- Index updates: [[wiki/concepts/_index]] (111→113, added prowlarr-flaresolverr-get-only and npm-sqlite-admin-reset rows); [[wiki/_master-index]] (concepts 111→113)

## [2026-05-08T21:00:00+01:00] compile | 2026-04-29.md
- Source: daily/2026-04-29.md
- Articles created: [[wiki/concepts/glance-dashboard-config]], [[wiki/concepts/sonarr-custom-formats-quality-profile]]
- Articles updated: [[wiki/concepts/prowlarr-flaresolverr-limitation]] (added DoLogin bypass + SQLite cookie injection for RuTracker)

## [2026-05-06T22:00:00+01:00] compile | 2026-05-06.md (supplement)
- Articles updated: [[wiki/client-knowledge/baic]] (BAIC deploy pattern: rsync only, baic_dashboard.service, deploy.sh is setup-only)
- Note: concepts/connections from earlier compile already captured fastapi-root-path-route-stripping, sse-jwt-query-param, spa-index-html-cache-control, microsoft-sso-non-uuid-ids, memory-compiler-lesson-signal, pinia-storeftorefs-array-reactivity

## [2026-05-06T23:00:00+01:00] compile | Daily Log 2026-05-06
- Source: daily/2026-05-06.md
- Articles created: [[wiki/concepts/pinia-storeftorefs-array-reactivity]]
- Articles updated: [[wiki/client-knowledge/baic]] (deploy pattern, service name, Per-User Report)

## [2026-05-06T21:30:00] compile | 2026-05-06.md (pass 2)
- Articles created: [[wiki/concepts/memory-compiler-lesson-signal]], [[wiki/tech-patterns/public-share-link-review]]
- Articles updated: [[wiki/client-knowledge/baic]] (added Deploy Gotchas section: no .env, rsync warning benign, deploy.sh initial-setup-only, assets accumulation)

## [2026-05-06T21:00:00+01:00] compile | 2026-05-06.md
- Source: daily/2026-05-06.md
- Articles created: [[wiki/concepts/fastapi-root-path-route-stripping]], [[wiki/concepts/sse-jwt-query-param]], [[wiki/concepts/spa-index-html-cache-control]], [[wiki/concepts/microsoft-sso-non-uuid-ids]], [[wiki/client-knowledge/baic]]
- Articles updated: [[wiki/concepts/security-middleware-json-key-regex]] (added command injection `\b` word boundary section with false-positive table for `sh`, `rm`, `nc`); [[wiki/concepts/apache-mod-alias-proxy-priority]] (added Fix 3: ProxyPassMatch stripping pattern for FastAPI-behind-prefix)
- Index updates: [[wiki/concepts/_index]] (123→127); [[wiki/client-knowledge/_index]] (6→7, BAIC added to table); [[wiki/_master-index]] (concepts 103→127, client-knowledge 6→7)

## [2026-05-05T21:00:00+01:00] compile | 2026-05-05.md (pass 2)
- Source: daily/2026-05-05.md
- Articles created: [[wiki/concepts/icloud-space-2-duplicate-files]], [[wiki/concepts/one2edit-username-format]], [[wiki/concepts/sqlite-not-null-as-boolean]]
- Articles updated: [[wiki/tech-patterns/one2edit-api]] (added Users API section + username=email gotcha); [[wiki/client-knowledge/3m]] (added One2Edit user identity note)

## [2026-05-05T23:59:00+01:00] compile | 2026-05-05.md
- Source: daily/2026-05-05.md
- Articles created: [[wiki/concepts/vite-prebuilt-subpath-workaround]], [[wiki/concepts/llamaextract-data-none-gotcha]]
- Articles updated: [[wiki/client-knowledge/loreal]] (added loreal-timelog-viewer project row; added `<base href>` subpath workaround quirk)

## [2026-05-05T12:00:00+01:00] compile | 2026-05-01.md
- Articles created: [[wiki/concepts/docker-compose-restart-no-code-reload]], [[wiki/concepts/mongodb-unwind-preservenullandemptyarrays]], [[wiki/concepts/fastapi-response-model-silent-field-strip]], [[wiki/concepts/react-useref-event-handler-state]]
- Articles updated: [[wiki/concepts/native-track-blob-url]]

## [2026-04-30T23:59:00+01:00] compile | 2026-04-30.md (pass 3)
- Source: daily/2026-04-30.md
- Articles created: [[wiki/concepts/react-query-enabled-falsy-value]], [[wiki/concepts/mongodb-cross-collection-id-confusion]], [[wiki/concepts/browser-sequential-download-blocking]], [[wiki/concepts/mongodb-schema-validator-migration-verification]]
- Articles updated: [[wiki/concepts/celery-prefork-pool-startup-memory]] (added Real Incident section: CONCURRENCY=20, ~120 MB/process, 2.4 GB total, OOM before first task, 15-minute stall)
- Index updates: [[wiki/concepts/_index]] (89→93); [[wiki/_master-index]] (concepts 89→93)

## [2026-04-30T23:30:00+01:00] compile | 2026-04-30.md (pass 2)
- Source: daily/2026-04-30.md
- Articles created: [[wiki/concepts/celery-prefork-pool-startup-memory]], [[wiki/concepts/sudo-git-clone-root-ownership]], [[wiki/concepts/python-fastapi-module-level-singletons]], [[wiki/connections/celery-prefork-faster-whisper-memory-stacking]]
- Articles updated: (none)
- Index updates: [[wiki/concepts/_index]] (86→89); [[wiki/connections/_index]] (9→10); [[wiki/_master-index]] (concepts 86→89, connections 9→10)

## [2026-04-30T21:00:00+01:00] compile | 2026-04-30.md
- Source: daily/2026-04-30.md
- Articles created: [[wiki/concepts/pydub-ffmpeg-silent-dependency]], [[wiki/concepts/lameenc-bytearray-gcs-upload]], [[wiki/concepts/apache-mod-alias-proxy-priority]], [[wiki/concepts/faster-whisper-startup-memory]], [[wiki/concepts/celery-redis-queue-flush-on-deterministic-error]], [[wiki/concepts/cline-lm-studio-openai-compatible]], [[wiki/concepts/celery-queue-worker-specialization]], [[wiki/concepts/gcs-resumable-upload-pattern]]
- Articles updated: [[wiki/concepts/apache-proxypass-include-files-ignored]] (added missing Include silently stops processing section), [[wiki/concepts/docker-compose-cpu-limits-env]] (added memory reservation > limit error across override files), [[wiki/architecture/troubleshooting-playbooks]] (added sudo git clone root-owned files playbook)
- Index updates: [[wiki/concepts/_index]] (75→83); [[wiki/_master-index]] (concepts 75→83)

<!-- Append-only chronological record of compile, query, and lint operations -->

## [2026-04-29T22:00:00+01:00] compile | 2026-04-29.md (pass 2)
- Source: daily/2026-04-29.md
- Articles created: [[wiki/architecture/cloud-run-jobs-celery]], [[wiki/concepts/docker-compose-cpu-limits-env]], [[wiki/concepts/etag-optimistic-locking]], [[wiki/concepts/double-submit-cookie-csrf]], [[wiki/concepts/time-sleep-blocks-asyncio]]
- Articles updated: [[wiki/client-knowledge/ford]] (added SSH alias callout, QC server directory confusion table, GPAS zip naming change)
- Index updates: [[wiki/concepts/_index]] (69→73); [[wiki/architecture/_index]] (10→11); [[wiki/_master-index]] (concepts 69→73, architecture 10→11)

## [2026-04-29T21:00:00+01:00] compile | 2026-04-29.md
- Source: daily/2026-04-29.md
- Articles created: [[wiki/concepts/poetry-docker-version-mismatch]], [[wiki/concepts/pydantic-default-factory-type-alias]], [[wiki/concepts/security-middleware-json-key-regex]], [[wiki/concepts/multitenant-fail-open-authz]], [[wiki/concepts/gemini-embedding-api-channel]], [[wiki/concepts/native-track-blob-url]], [[wiki/concepts/claude-code-plugin-marketplace]]
- Articles updated: [[wiki/client-knowledge/ford]] (added Ford QC server path confusion, BnP WERS allowlist pattern, service real working directory discovery); [[wiki/tech-patterns/redis-celery-worker-queue]] (added AI queue separation pattern — dedicated ai-queue for ingest/translate/render tasks)
- Index updates: [[wiki/concepts/_index]] (62→69); [[wiki/_master-index]] (concepts 62→69)

## [2026-04-29T21:00:00+01:00] compile | 2026-04-28.md (pass 3)
- Source: daily/2026-04-28.md
- Articles created: [[wiki/concepts/localstorage-key-migration-rebrand]]
- Articles updated: [[wiki/client-knowledge/barclays]] (added Banner Builder UI rebrand section: Oliver Modcomms design system, vertical sidebar, theme picker, localStorage key intentionally kept)

## [2026-04-28T23:15:00+01:00] compile | 2026-04-28.md (pass 2)
- Source: daily/2026-04-28.md
- Articles created: (none — all primary knowledge captured in pass 1)
- Articles updated: [[wiki/concepts/jellyfin-tmdb-thetvdb-plugin]] (added Sonarr root folder path gotcha and Jellyfin naming flexibility note)

## [2026-04-28T22:30:00+01:00] compile | 2026-04-28.md
- Source: daily/2026-04-28.md
- Articles created: [[wiki/concepts/jellyfin-tmdb-thetvdb-plugin]], [[wiki/concepts/azure-ad-yaml-allowlist-pattern]], [[wiki/concepts/zustand-async-hydration]], [[wiki/concepts/pydantic-model-dict-interface]]
- Articles updated: [[wiki/concepts/prowlarr-flaresolverr-limitation]] (added trailing slash bug, SQLite direct edit workaround, Docker Cloudflare TLS fingerprint detection section), [[wiki/client-knowledge/barclays]] (added "Lessons from banner-builder" section: DB seed silent skip, Zustand hydration bug, Pydantic/dict interface bug, LoginPage hardcoded redirect)

## [2026-04-28T22:30:00+01:00] compile | 2026-04-27.md
- Source: daily/2026-04-27.md
- Articles created: [[wiki/concepts/asyncio-contextvar-task-boundary]], [[wiki/concepts/pydantic-v2-alias-id-gotcha]], [[wiki/concepts/php-display-errors-json-leak]]
- Articles updated: [[wiki/concepts/litellm-pricing-source]] (added Gemini vertex_ai-language-models provider key gotcha)

## [2026-04-14T00:00:00] init | Knowledge Base Initialized
- System set up from coleam00/claude-memory-compiler
- Based on Karpathy's LLM Wiki architecture
- Hooks: SessionStart (inject), PreCompact (safety net), SessionEnd (capture)

## [2026-04-15T00:00:00] migrate | Knowledge Base Moved to Obsidian Vault
- KNOWLEDGE_DIR relocated from ~/.claude/memory-compiler/knowledge/ to <vault>/wiki/
- All three hooks promoted to global (fire from any project directory)
- Compile time set to 21:00 (9 PM) BST

## [2026-04-18T22:10:00+01:00] compile | 2026-04-17.md
- Source: daily/2026-04-17.md
- Articles created: [[wiki/concepts/openai-max-completion-tokens]], [[wiki/concepts/fish-abbr-patterns]], [[wiki/concepts/bitbucket-mcp-atlassian]]
- Articles updated: (none)

## [2026-04-18T23:00:00+01:00] compile | 2026-04-18.md
- Source: daily/2026-04-18.md
- Articles created: [[wiki/concepts/proxmox-mcp-server]], [[wiki/concepts/proxmox-vm-management-methods]]
- Articles updated: (none)

## [2026-04-18T21:53:15+01:00] compile | 2026-04-16.md
- Source: daily/2026-04-16.md
- Articles created: [[wiki/concepts/microsoft-graph-api-mailbox-migration]], [[wiki/concepts/mailcow-maildir-import]], [[wiki/concepts/fastapi-mongodb-role-migration]], [[wiki/concepts/monorepo-deploy-script-pitfall]], [[wiki/concepts/nextjs-basepath-auth-redirects]], [[wiki/concepts/python-service-deployment-dotenv]], [[wiki/connections/graph-api-vs-msal-app-vs-delegated]]
- Articles updated: [[wiki/dotfiles/wezterm-config]] (added Personal Setup section — Catppuccin Mocha, FiraCode, WebGpu, leader key)

## [2026-04-24T10:52:44+01:00] compile | 2026-04-19.md
- Source: daily/2026-04-19.md
- Articles created: [[wiki/concepts/home-assistant-proxmox-install]], [[wiki/concepts/homepage-proxmox-widget-quirks]], [[wiki/concepts/lxc-arp-cache-api-failures]], [[wiki/concepts/nodejs-ssl-system-trust-store]], [[wiki/concepts/tailscale-dns-homelab]], [[wiki/concepts/remote-server-dotfiles-bootstrap]], [[wiki/concepts/homarr-proxmox-integration]], [[wiki/connections/lxc-networking-api-failures]]
- Articles updated: [[wiki/concepts/_index]] (indexed 7 previously-unindexed articles from 2026-04-19), [[wiki/connections/_index]] (added lxc-networking-api-failures), [[wiki/_master-index]] (concepts 15→23, connections 2→3)

## [2026-04-24T11:10:00+01:00] compile | 2026-04-20.md
- Source: daily/2026-04-20.md
- Articles created: [[wiki/concepts/export-endpoint-filter-pattern]]
- Articles updated: [[wiki/concepts/_index]] (concepts count 23→24), [[wiki/_master-index]] (concepts 23→24)

## [2026-04-24T11:30:00+01:00] compile | 2026-04-21.md
- Source: daily/2026-04-21.md
- Articles created: [[wiki/concepts/ollama-lxc-ram-requirements]], [[wiki/concepts/beszel-monitoring-deployment]], [[wiki/concepts/adguard-dns-rewrites-homelab]], [[wiki/concepts/prometheus-joules-watts-gotcha]], [[wiki/concepts/old-gpu-sysfs-metrics]], [[wiki/concepts/chartjs-time-axis-adapter]], [[wiki/concepts/uptime-kuma-socketio-management]], [[wiki/concepts/proxmox-container-502-misdiagnosis]]
- Articles updated: [[wiki/concepts/_index]] (concepts 24→32), [[wiki/_master-index]] (concepts 24→32)

## [2026-04-24T11:45:00+01:00] compile | 2026-04-22.md
- Source: daily/2026-04-22.md
- Articles created: (none)
- Articles updated: (none)
- Note: Log contained only flush errors (exit code 1) — no session content to compile

## [2026-04-24T12:00:00+01:00] compile | 2026-04-23.md
- Source: daily/2026-04-23.md
- Articles created: [[wiki/concepts/git-includeif-per-remote]], [[wiki/concepts/dns-youtube-ad-blocking]], [[wiki/concepts/adguard-blocklist-setup]]
- Articles updated: [[wiki/concepts/_index]] (concepts 32→35), [[wiki/_master-index]] (concepts 32→35)
- Note: Grafana LXC CT109 permanently deleted — noted in session but no article changes needed (beszel article still reflects correct architecture)

## [2026-04-24T13:00:00+01:00] compile | 2026-04-24.md
- Source: daily/2026-04-24.md
- Articles created: [[wiki/concepts/claude-code-schedule-skill-account-type]], [[wiki/concepts/memory-compiler-mac-migration]]
- Articles updated: [[wiki/concepts/_index]] (concepts 35→37), [[wiki/_master-index]] (concepts 35→37)

## [2026-04-25T21:18:46+01:00] compile | 2026-04-20.md (re-run)
- Source: daily/2026-04-20.md
- Articles created: (none — already compiled 2026-04-24)
- Articles updated: (none)
- Note: Log contained only commit confirmation (3d2893a) and a failed push attempt; all content was captured in [[wiki/concepts/export-endpoint-filter-pattern]] on prior compile

## [2026-04-25T21:19:34+01:00] compile | 2026-04-21.md (re-run)
- Source: daily/2026-04-21.md
- Articles created: none - already compiled
- Articles updated: none
- Note: All 8 articles verified present on disk (proxmox-container-502-misdiagnosis, ollama-lxc-ram-requirements, beszel-monitoring-deployment, adguard-dns-rewrites-homelab, prometheus-joules-watts-gotcha, old-gpu-sysfs-metrics, chartjs-time-axis-adapter, uptime-kuma-socketio-management); originally compiled 2026-04-24

## [2026-04-25T21:25:00+01:00] compile | 2026-04-22.md (re-compile with content)
- Source: daily/2026-04-22.md
- Articles created: [[wiki/concepts/fish-fisher-conf-d-conflict]], [[wiki/concepts/macos-python-version-hooks]]
- Articles updated: [[wiki/concepts/memory-compiler-mac-migration]] (added Python 3.9 issue, Fisher conf.d conflict, time_tracker.py fix, rsync stats); [[wiki/concepts/_index]] (concepts 37→39); [[wiki/_master-index]] (concepts 37→39)
- Note: Prior compile 2026-04-24 had no content (flush errors only); this re-compile used the actual session log captured in the session-start context

## [2026-04-25T21:23:03+01:00] compile | 2026-04-24.md (Immich/systemd/autostart)
- Source: daily/2026-04-24.md
- Articles created: [[wiki/concepts/immich-lxc-ram-oom]], [[wiki/concepts/systemd-memory-oom-policy]], [[wiki/concepts/proxmox-lxc-autostart]]
- Articles updated: [[wiki/concepts/_index]] (concepts 39→42), [[wiki/_master-index]] (concepts 39→42)

## [2026-04-17T16:03:42+01:00] compile | 2026-04-15.md
- Source: daily/2026-04-15.md
- Articles created: [[wiki/concepts/librechat-openid-auth]], [[wiki/concepts/msal-vanilla-js-pkce]], [[wiki/concepts/shell-static-deploy-patterns]], [[wiki/concepts/fish-shell-path-config]], [[wiki/connections/oauth-state-mismatch-debugging]]
- Articles updated: [[wiki/tech-patterns/azure-ad-msal-auth]] (added SPA platform type gotcha, OAuth state mismatch gotcha, daily/2026-04-15.md source)

## [2026-04-25T21:25:48+01:00] compile | 2026-04-25.md
- Source: daily/2026-04-25.md
- Articles created: (none)
- Articles updated: (none)
- Note: No sessions in daily log; memory flush returned FLUSH_OK

## [2026-04-26T21:28:00+01:00] compile | 2026-04-26.md
- Source: daily/2026-04-26.md
- Articles created: (none)
- Articles updated: (none)
- Note: No sessions in daily log; memory flush failed with FLUSH_ERROR (exit code 1) — no knowledge to extract

## [2026-04-28T21:46:04+01:00] compile | 2026-04-27.md
- Source: daily/2026-04-27.md
- Articles created: [[wiki/concepts/authentik-homelab-tradeoffs]], [[wiki/concepts/icloud-git-sync-conflict]]
- Articles updated: [[wiki/concepts/_index]] (concepts 45→47), [[wiki/_master-index]] (concepts 45→47)

## [2026-04-28T22:00:00+01:00] compile | 2026-04-28.md
- Source: daily/2026-04-28.md
- Articles created: [[wiki/concepts/homarr-sqlite-integration-cleanup]], [[wiki/concepts/docker-lxc-dns-configuration]], [[wiki/concepts/mac-address-randomization-dhcp]], [[wiki/concepts/prowlarr-flaresolverr-limitation]], [[wiki/connections/docker-dns-adguard-split-horizon]]
- Articles updated: [[wiki/concepts/adguard-blocklist-setup]] (added OOM risk section: exit code 137, RAM recommendations, fix); [[wiki/concepts/_index]] (concepts 47→51); [[wiki/connections/_index]] (connections 8→9); [[wiki/_master-index]] (concepts 47→51, connections 8→9)

## [2026-04-28T22:11:43+01:00] compile | 2026-04-24.md
- Source: daily/2026-04-24.md
- Articles created: [[wiki/concepts/bash-and-or-short-circuit]], [[wiki/concepts/python-iso-z-suffix]], [[wiki/concepts/gemini-conversation-cost-scaling]]
- Articles updated: [[wiki/concepts/_index]] (concepts 51→54); [[wiki/_master-index]] (concepts 51→54)
- Note: Kling tech-pattern article already up-to-date from prior session; dotfiles Ghostty gotchas deferred (low reuse value vs 3 broadly applicable concepts)

## [2026-04-29T23:00:00+01:00] compile | 2026-04-29.md (pass 2)
- Source: daily/2026-04-29.md
- Articles created: [[wiki/architecture/cloud-run-jobs-celery]], [[wiki/concepts/docker-compose-cpu-limits-env]], [[wiki/concepts/etag-optimistic-locking]], [[wiki/concepts/double-submit-cookie-csrf]], [[wiki/concepts/time-sleep-blocks-asyncio]]
- Articles updated: [[wiki/client-knowledge/ford]] (SSH alias box-cli/not box-cli-01, full directory paths with /home/box-cli/FORD_SCRIPTS/ prefix, service names dev vs prod, GPAS zip naming, git stash deploy pattern, ford-gechub-sftp path)
- Index updates: [[wiki/concepts/_index]] (69→73); [[wiki/architecture/_index]] (10→11); [[wiki/_master-index]] (concepts 69→73, architecture 10→11)

## [2026-04-30T21:00:00+01:00] compile | 2026-04-29.md (pass 3)
- Source: daily/2026-04-29.md
- Articles created: [[wiki/concepts/mongodb-enum-deserialization]], [[wiki/concepts/websocket-react-token-guard]], [[wiki/concepts/docker-builder-prune-safe]]
- Articles updated: (none — ford.md already current from prior passes)
- Index updates: [[wiki/concepts/_index]] (75→78)

## [2026-04-29T23:00:00+01:00] compile | 2026-04-29.md
- Articles created: [[wiki/concepts/apache-proxypass-include-files-ignored]], [[wiki/concepts/cookie-domain-migration-auth-loop]]
- Articles updated: [[wiki/client-knowledge/ford]] (service path, GPAS naming, SSH alias), [[wiki/architecture/cloud-run-jobs-celery]] (USE_CELERY_FALLBACK, optical-dev override), [[wiki/architecture/optical-dev-server-deploy]] (ProxyPass include limitation)
- Index updates: [[wiki/concepts/_index]] (73→75); [[wiki/_master-index]] (concepts 73→75)

## [2026-05-10T21:00:00+03:00] compile | 2026-05-10.md
- Source: daily/2026-05-10.md
- Sessions: kvytky/shumiland Next.js+Payload CMS, banner-tool
- Articles created: [[wiki/concepts/payload-cms-root-layout-requirement]], [[wiki/concepts/payload-cms-node26-esm-workaround]], [[wiki/concepts/overflow-hidden-clips-absolute-children]], [[wiki/concepts/pydantic-exclude-none-null-clearing-conflict]], [[wiki/concepts/css-marquee-animation-gpu-pattern]], [[wiki/concepts/css-animation-js-scroll-conflict]], [[wiki/concepts/nextjs16-lint-command-removed]], [[wiki/concepts/figma-mcp-oauth-reconnect-restart]], [[wiki/concepts/react-state-playwright-css-hover]]
- Index updates: [[wiki/concepts/_index]] (187→196); [[wiki/_master-index]] (concepts 187→196)
