Work log: 2026-04-04
What shipped today
Three themes dominated: Vercel cost optimization, Sentry hygiene, and boundary clarification.
The Vercel work from yesterday was completed across all projects. Paul applied the dashboard changes (Standard build machine + exit 0 ignored build step) to eclectis, prakta, and dinly, matching the authexis settings from yesterday. #1918 closed. The estimated monthly savings across all four projects is ~$96/mo ($99 → $3.43). CLAUDE.md and memory were updated so future sessions know auto-deploy is off — vercel --prod is the only path to production now.
The Sentry backlog got a thorough cleaning. A scout run identified 10 unresolved issues, which the dev-loop triaged one per tick: 8 were stale errors from March (dead code, transient deploy hiccups, already-handled error paths, browser noise), 1 was a false positive (npm audit clean), and 1 moved to backlog (N+1 query needs Sentry trace data). A second scout run then bulk-resolved all 27 unresolved Sentry issues across both projects (authexis web + authexis-engine), achieving zero unresolved for the first time. The correct sentry-cli syntax (-i flag) was discovered — the dev-loop skill had it wrong.
On the security front, the anthropic Python SDK was upgraded from 0.86.0 to 0.89.0, patching CVE-2026-34450 and CVE-2026-34452 (memory tool path validation sandbox escape). 393 engine tests pass.
The curated briefing feature (#1916) went through a full cycle: clarification → decomposition → course correction. Paul clarified that “curated” means user selects articles + writes an intro paragraph. Three sub-issues were created. Then Paul flagged that article curation belongs in Eclectis, not Authexis — Authexis briefings are auto-assembled by design. All four authexis issues (#1916, #1931-#1933, #1913) were closed and a single issue filed on Eclectis (eclectis#676).
Completed
- #1918: Vercel manual deploy optimization (all projects configured)
- #1919: Anthropic SDK upgrade to 0.89.0 (2 CVEs patched)
- #1920: npm audit vulnerabilities (false positive — already clean)
- #1921: N+1 Query detected (moved to backlog — needs Sentry trace)
- #1922-#1930: 9 Sentry issues triaged (8 closed as stale/noise, 1 to backlog)
- #1916: Curated briefing (closed — belongs in Eclectis, filed eclectis#676)
- #1913: White-label briefings (closed — no white-label in Authexis)
- #1931-#1933: Curated briefing sub-issues (closed — wrong project)
- Sentry: 27 unresolved → 0 across both projects
- Synaxis agency: answered product interview + reviewed onboarding doc
Release progress
- v1.5: 1 open / 49 closed (#743 dashboard redesign, in backlog)
- v2.0-v2.2: All complete
Carry-over
- Synaxis onboarding doc has 4 open business questions for Paul (engagement scope, Synaxis branding, testimonials, landing page)
- diktura#101: Link Next.js frontend to Vercel (filed yesterday, not started)
Risks
No new risks. Existing open risks unchanged (13 untested handlers, no web tests, missing error boundaries, MCP tokens in-memory, prod DB in dev).
Flags and watch-outs
- The sentry-cli
resolvecommand uses-i <id>flag, not positional args. The dev-loop skill has the wrong syntax (sentry-cli issues resolve -i 12345is correct, notsentry-cli issues resolve 12345). Filed mentally — should update the skill. - All Sentry issues are now resolved. If new errors appear, they’ll be genuinely new — no noise to filter through.
- The issue queue is empty (7 backlog items, 0 actionable). The project needs new work — either from Paul’s product decisions or from promoting backlog items.
Next session
- Answer Synaxis onboarding open questions (Paul’s call — engagement scope, branding, testimonials, landing page)
- Consider promoting #1862 (social queue pagination) from backlog — it’s the most concrete backlog item
- Consider closing v1.5 milestone — #743 (dashboard redesign) is the sole open issue and it’s in backlog
- Check if eclectis#676 (curated briefings) needs any Authexis-side plumbing
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.
The bottleneck moved and nobody noticed
When execution becomes nearly free, the bottleneck shifts from doing the work to deciding what work to do. Most organizations are optimized for the wrong constraint.
The inbox nobody reads is the one that matters
Every organization has a monitoring system that works perfectly and reports to nobody. The gap between having information and acting on it is where most failures actually live.
The best customers are the first ones you turn against
Every subscription makes a bet that most customers won't use what they're paying for. The customer who closes that gap becomes a problem to be managed.