Skip to main content
Paul Welty, PhD AI, WORK, AND STAYING HUMAN

Work log: April 6, 2026

What shipped today

Two major initiatives and one critical bug fix, all deployed to production.

Nav restructure and account management. The sidebar went from a flat 12-item “Workspace” list to a structured hierarchy: top-level (Dashboard, Customers), Conversations (Inbox, Support, Feedback), Content (Roadmap, Changelog, KB, Broadcasts), Settings (Members, Integrations, Deploy, Settings), and a conditional Account section visible only to tenant admins. The Account section enables workspace management, account-level member invites and roles, and account settings — all new pages that didn’t exist before. Personal profile (name, password, sign out) moved from the settings page into a popover triggered from the header avatar. The settings page is now workspace-only. This was designed through the brainstorming skill with a visual companion, specced, planned into 11 tasks, and executed via subagent-driven development — the full cycle in one session.

Deploy page and Authexis widget integration. A new Deploy page at /workspace/deploy shows the widget embed snippet pre-filled with the workspace token, API URL, module list, and accent color. The first real use: embedding the Diktura widget on authexis.app, replacing their Sleekplan feedback widget. The widget is now live on production Authexis, collecting feedback and support requests that flow into Diktura’s customer hub with full identity resolution.

Identity resolution bug fix. While testing the widget integration end-to-end, discovered the feedback widget endpoint was silently skipping identity resolution — inserting raw rows with no person, no contact, no event. The endpoint predated the April 5 identity graph migration and was never updated. The support and roadmap/vote endpoints had been updated correctly; feedback was the gap. Fixed by wiring in resolveOrCreateContact and appendEvent, matching the support endpoint pattern. Verified on production with a real submission that created the full chain: person → identity_node → workspace_contact → event.

Strategy roundtable. Four rounds of cross-session strategy discussion about the unified Synaxis.AI vision. Diktura contributed the customer hub perspective: the identity graph as the foundation, the nav structure that literally matches the brief’s proposal, concerns about the absorption mechanics, and a practical assessment of what needs to change (approval queue, Slack notifications, widget automation). Final round positioned Diktura as the customer hub module inside Synaxis.AI, with /customer-digest as the first skill to build.

Completed

No formal GitHub issues were opened/closed for today’s work — it was driven by the session plan and carry-over list. The work produced:

  • Design spec: docs/superpowers/specs/2026-04-06-nav-restructure-and-account-pages-design.md
  • Implementation plan: docs/superpowers/plans/2026-04-06-nav-restructure-and-account-pages.md
  • Strategy responses: /tmp/strategy-response-diktura.md, /tmp/strategy-round-2-diktura.md, /tmp/strategy-round-3-diktura.md, /tmp/strategy-round-4-diktura.md
  • Events backfill migration: supabase/migrations/20260406100000_backfill_events.sql
  • 15 commits on main, all pushed and deployed

Carry-over

  • Rate limiting — #97 (backlog) for public widget API endpoints. The widget is now live on a real app (Authexis), making this more urgent than before.
  • PKCE email confirmationAuthexis and Eclectis both hit the link prefetcher issue today. Diktura uses the same Supabase auth flow and will need the same fix (client-side confirm page + TokenHash templates) before real signups happen.
  • Events for the first test feedback — the very first widget test submission (before the identity resolution fix) created a feedback_item with no person/contact/event. That record is an orphan in the database.
  • Widget button text — Paul noticed the “Help” button on authexis.app. The default text comes from the first module name. Should probably be configurable or default to something more neutral.

Risks

  • Widget on Authexis is the first real integration. If the identity resolution or events pipeline has issues, they’ll surface through real Authexis usage. Monitor the events table and identity_nodes for anomalies.
  • Account pages are untested with real multi-user scenarios. The tenant_memberships table and RLS policies exist but haven’t been exercised with multiple users having different roles.
  • Supabase PKCE auth is broken for email confirmation in any browser context that prefetches links (email app webviews, link scanners). Diktura inherits this from the shared Supabase auth pattern. Not urgent since we don’t have real signups yet, but will block production use.

Flags and watch-outs

  • The .scout.yml public_url was fixed from diktura.io to diktura.com.
  • The dev server port is 3010 (updated in CLAUDE.md). Previous sessions may have used 3000 or 3007.
  • The visual companion server for brainstorming was started but not explicitly stopped — .superpowers/brainstorm/ directory exists in the repo. It’s gitignored.
  • Authexis layout was modified directly from this session (widget embed) — two commits pushed to authexis main (c98cbc7c, 57067809).

Next session

  1. Port the PKCE email confirmation fix from Eclectis — client-side confirm page, TokenHash templates, Suspense boundary for useSearchParams. Eclectis’s patterns are in their docs/email-templates/.
  2. Build /customer-digest skill — the first Synaxis.AI skill from the strategy roundtable. Query events table for a workspace over a time range, LLM summarization, deliver via email/Slack.
  3. Clean up orphaned test records — delete the feedback_item and identity records from the pre-fix widget tests.
  4. Consider pulling #97 (rate limiting) from backlog — the widget is live on a real app now.
  5. Test the Account pages with a second user — invite someone to the account, verify workspace visibility and role-based access.

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 most important thing a leader can build is the conversation that happens when they leave the room. Today, five departments started sharing fixes, cracking jokes, and solving each other's problems — without being asked.

I ran my AI agency's first real engagement. Here's everything that happened.

Five AI personas. One client onboarding. Fifteen minutes of things going wrong in instructive ways.

The costume just got cheap

If 80 percent of what you thought was judgment turns out to be pattern recognition, what does that say about you? Not about your job — about you.