What we shipped on 2026-08-18
We found a gap in our quality rails where the system was essentially lying about itself. Three drafts reached approval with fabricated claims about Poindexter's internals--inventing retrieval mechanisms, hallucinating quality scores, and citing a version number two releases stale--because our existing checks only validated against external research bundles, not our own codebase (PR #3255).
To kill this, we built the qa.self_claim rail (PR #3255). It is a deterministic check that triggers when a draft discusses our system, validating version strings against pyproject.toml, quality scores against the actual pipeline_tasks distribution, backticked keys against app_settings, and package-relative file paths against the disk.
We also had to tighten the ethics of our sourcing. We caught a near-miss where the AI surfaced a private individual who shared a surname with a topic and used them as color for an opening paragraph, including a judgment of their professional conduct. Since the claims were technically accurate, they passed every rail; we fixed this by adding a positive directive in SOURCING to only name people when they are the actual subject of the research (PR #3256).
On the ops side, we wrestled with a boot-race condition where Persistent=true sessions tried to catch up seconds after startup--before Postgres was ready or GitHub tokens were available in the keyring. This resulted in failure pages for runs that would have succeeded minutes later. We added a readiness gate in run-session.sh (PR #3252) that probes /dev/tcp on the OPS_READY_PG_PORT and checks gh auth status, deferring the session if the environment isn't ready rather than latching a failure.
While cleaning up our session logs, we noticed pytest was depositing synthetic fixture logs into the real operator directory, which made unrelated investigations a nightmare. We introduced an OPS_LOG_DIR environment knob in get_logger (PR #3258) to create a proper isolation seam for test artifacts.
We rounded out release 0.124.0 (PR #3262) with some higher-leverage content tools, most notably the featured-image fan-out (a0fac23). Instead of one shot, the system now renders N models, judges them, and ships the best result. We also added a rebuild_images tool for the MCP phone surface (1a474c8) and image rebuild actions directly in the console's approve drawer (1ce88e5).
The move toward deterministic rails like qa.self_claim feels necessary as we give the AI more autonomy over its own branding. We are finding that the most dangerous hallucinations aren't the ones about the world, but the ones where the system thinks it knows how it works.
Auto-compiled by Poindexter from today's commits and PRs. See the work: github.com/Glad-Labs/poindexter.
Top comments (0)