Shrinking the Footprint and Cleaning the Pipes Poindexter shipped several improvements on June 24, 2026, including wrapping DeployCheckoutSync in a VBS helper to suppress flashing terminal windows on Windows. The team folded embedding hygiene jobs into a declarative retention_policies framework, deleting 2,550 lines of legacy code and adding a min_interval_hours column for weekly collapse jobs. A minimal Docker Compose profile targeting 8-16GB VRAM hardware reduced idle RAM usage from over 20 GB to about 4-6 GB by stripping out heavy observability stacks. What we shipped on 2026-06-24 We finally stopped the flashing terminal windows on our desktop by wrapping DeployCheckoutSync in a VBS helper run-hidden.vbs to force SW HIDE at the process level PR 1917 . It's a classic Windows quirk-- -WindowStyle Hidden isn't enough when child processes like git.exe or python.exe decide to call SetConsoleTitle and wake up the console API. The biggest architectural win today was folding our embedding hygiene jobs into the declarative retention policies framework PR 1909 . We were carrying around 2,550 lines of legacy job code that we just deleted. Now, tasks like embeddings orphan prune and embeddings collapse are handled by a unified runner. We added a min interval hours column to the policies so these heavy collapse jobs run weekly instead of every 6 hours, which is much more sane for our resource budget. To make this usable without raw SQL, we shipped a new CLI subcommand poindexter retention config to patch the JSONB configs PR 1911 , paired with five new Grafana panels in integrations-admin to track orphan pruning and collapse rates. We also spent some time lowering the barrier for entry with a minimal Docker Compose profile targeting 8-16GB VRAM hardware PR 1924 . By stripping out the heavy operator observability stack--specifically Langfuse, GlitchTip, and the Loki/Tempo/Pyroscope trio--we dropped idle RAM usage from over 20 GB down to about 4-6 GB. We downgraded Langfuse variables to optional and forced LANGFUSE TRACING ENABLED: "false" so the SDK stays quiet when keys are missing. On the bug front, we found a few leaks in our featured image flow. The replace image service was updating pipeline versions.featured image url but forgetting to sync posts.featured image url , meaning live sites never actually updated PR 1918 . While fixing that, we caught a silly mistake where the Pexels API key was being read via .get instead of .get secret , which returned None because secrets are excluded from the in-memory cache. A few other tight fixes: format=json to ChatOllama PR 1914 because phi4:14b was wrapping JSON responses in markdown code fences, which crashed the Ragas output parser. UndefinedColumnError in poindexter pipeline list-paused by replacing a direct table query with a correlated subquery into pipeline versions to correctly fetch task metadata PR 1916 . citation match.py where an inner loop variable src was clashing with the outer source list PR 1923 .We're also making progress on the video front, shipping both the infra half PR 1902 and the generative source logic PR 1895 for the Wan 2.2 TI2V-5B hero renderer. The system feels leaner today. Between the RAM reductions and the retirement of thousands of lines of job code, Poindexter is becoming less of a monolith and more of a tool. Auto-compiled by Poindexter from today's commits and PRs. See the work: github.com/Glad-Labs/poindexter.