2026-03-28 — Observability verification and PostHog separation
What shipped today
The session started with a dev-loop tick that found all queues empty, then shifted into verifying the observability stack — a carry-over TODO from the initial launch. PostHog and Sentry both needed confirmation that events were actually flowing in production, not just wired up in code.
PostHog verification revealed something unexpected: Eclectis events were flowing into the Authexis PostHog project (308520), not Eclectis’s own project (360405). The Eclectis project existed in PostHog but was completely empty — zero events, zero sessions. This was a leftover from forking the project, where the env var was copied from Authexis but never updated. After getting direction to wire Eclectis to its own project, updated NEXT_PUBLIC_POSTHOG_KEY across .env.local and all three Vercel environments (production, preview, development). No code changes needed — the instrumentation (provider, identify, server capture, reverse proxy) was already correct.
Sentry verification confirmed 9 unresolved issues in the eclectis web project under the synaxis-ai org. Two new issues (ECLECTIS-A and ECLECTIS-8) appeared during the session — both “Cannot coerce the result to a single JSON object” errors from Supabase, likely a .single() call returning multiple rows. These weren’t addressed in this session but are visible for next time.
Completed
- #591 — [Analytics] Unused “Eclectis” PostHog project — consolidate or remove
Carry-over
- Sentry ECLECTIS-A / ECLECTIS-8: new errors (1h old at session end) —
getFeedbackLoopHealthandgetSettingsboth failing with “Cannot coerce the result to a single JSON object”. Likely.single()queries hitting multiple rows. Should investigate. - Sentry ECLECTIS-3: Missing
SUPABASE_SERVICE_ROLE_KEYon/admin/pipeline(11 events). Env var issue on Vercel. - Sentry ECLECTIS-5: ESM/CJS require() error on briefings page. Build issue.
- Sentry ECLECTIS-4: FK constraint violation on
engagement_events.feed_idfrom newsletter flow. - 7 open issues all in backlog — no active work items queued.
Risks
- PostHog token change takes effect on next Vercel deploy. Until then, production events still flow to the Authexis project. The env vars are set correctly on Vercel — just needs a deploy to propagate.
- The two new Sentry errors (ECLECTIS-A, ECLECTIS-8) affect settings and feedback loop health endpoints. If these are user-facing, they could impact the settings page experience.
Flags and watch-outs
- PostHog MCP in this session was switched to project 360405 (Eclectis). Future sessions querying PostHog will see the Eclectis project, which will be empty until the first deploy with the new token.
- The
engine/uv.lockhas uncommitted changes from a prior session (added openai and sentry-sdk deps). Not related to today’s work.
Next session
- Investigate and fix Sentry ECLECTIS-A and ECLECTIS-8 (
.single()coercion errors ingetFeedbackLoopHealthandgetSettings) - Deploy to Vercel to activate the PostHog token change — verify events appear in the Eclectis project (360405)
- Check Sentry ECLECTIS-3 — verify
SUPABASE_SERVICE_ROLE_KEYis set in Vercel env for the admin pipeline route - Consider filing the remaining Sentry issues (ECLECTIS-4, ECLECTIS-5) as GitHub issues if not already tracked
Why customer tools are organized wrong
This article reveals a fundamental flaw in how customer support tools are designed—organizing by interaction type instead of by customer—and explains why this fragmentation wastes time and obscures the full picture you need to help users effectively.
Infrastructure shapes thought
The tools you build determine what kinds of thinking become possible. On infrastructure, friction, and building deliberately for thought rather than just throughput.
Server-side dashboard architecture: Why moving data fetching off the browser changes everything
How choosing server-side rendering solved security, CORS, and credential management problems I didn't know I had.
The work of being available now
A book on AI, judgment, and staying human at work.
The practice of work in progress
Practical essays on how work actually gets done.
Everything pointed at ghosts
Most organizations are measuring work they stopped doing years ago. The dashboard is green. The reports are filed. Nobody realizes the entire apparatus is pointed at ghosts.
Silence by design
Most systems have more suppression than their owners realize. It gets installed for good reasons. The cost accumulates slowly, in the form of systems you can't operate because you've removed the signals that would let you understand them.
Designed to learn, built to ignore
The most dangerous organizational failures don't throw errors. They look fine, return results, and quietly stay frozen at the moment of their creation.