- Banner moved above article content with pulsing animation
- Review sheet disabled when feedback items are processing
- FAB dimmed and disabled during processing
- Submit button shows 'Processing feedback…' state
- 'Comments paused' note shown under form
525KB binary, zero external dependencies. Replaces start.sh as launchd target.
- Pre-start port cleanup (kills orphans holding 3111)
- Signal forwarding (SIGTERM/SIGINT/SIGHUP → bun child)
- Crash recovery with exponential backoff (1s→30s max)
- Health checks every 30s, auto-restart after 3 consecutive failures
- Inngest function registry PUT sync after startup
- Secret loading via `secrets` CLI
- TOML config at ~/.config/worker-supervisor.toml
Tested: bun crash → auto-restart in 1s, SIGTERM → clean forwarding,
launchd restart → no orphans, no EADDRINUSE.
timeouts.start = queued-before-execution timeout
timeouts.finish = total execution time timeout
Was using wrong one, causing 5m default to kill codex runs.
CFP-2 made getPost/getAllPosts async for Convex reads, but Next.js 16
with PPR rejects uncached async data access outside <Suspense>.
ALL article pages failed prerender with 'Uncached data was accessed
outside of <Suspense>'.
CFP-2 and CFP-3 need to land together — Convex reads require
'use cache' boundaries first.
retries: 0 made worker restarts fatal — Inngest couldn't retry
the step on the new worker. With retries: 2, the 1s restart window
is covered by Inngest's built-in retry backoff.
ADR-0156 rewritten: blue/green port swap > drain-then-restart.
Inngest is step-level stateless — we don't need to wait for runs,
just for the current in-flight step.
- /api/search now serves HATEOAS envelope for agents AND web UI
- Search dialog reads from .result.hits (envelope-aware)
- Updated /api discovery and layout comment
- Removed /api/agent/ directory
- Tutorial: generalized LiveKit voice agent pattern guide (Docker Compose + k8s)
Written for agents building on behalf of humans
- Layout: HTML comment instructing agents to use raw MDX/RSS/search API
- 16 unit tests for inference-router (catalog + router)
- Gateway model-fallback.ts wired to inference-router catalog
- Langfuse traces every inference call (success + failure)
- Strict/permissive mode based on NODE_ENV
- All TS errors fixed across system-bus and gateway
- ADR status page: added shipped + all status variants
- New StatusLed component: colored dot only, no text/pill background
- Sizes sm/md/lg (6/8/10px) with pulse animation for healthy
- Subtle glow effect matching status color
- Left-aligned: [LED] name across nodes, pods, daemons
- StatusBadge kept for backward compat
- Fix formatDateStatic import → toDateString (function was removed by prior commit)
- Remove proxy.ts (conflicts with middleware.ts in Next.js 16)
- Clean up untracked (owner) route group and leftover files from gateway agent
- Add connection() before MDX rendering in /[slug] and /adrs/[slug]
- Wrap AdrListWithFilters in Suspense on /adrs index
- next-mdx-remote uses Date.now() internally, requires dynamic opt-in
Nav: sliding active indicator bar (CSS transition, no framer-motion).
Measures active link position, slides on route change. 200ms
cubic-bezier(0.22, 1, 0.36, 1).
Mobile nav: exit animation mirrors entrance. Links slide out right
with reverse stagger (30ms), overlay fades out 150ms.
Fix transition-all violations (emilkowal props-transform-opacity):
- signin button: explicit property list
- review FAB: explicit + scale(0.97) per spec
- review submit: explicit + motion-reduce
All animations respect prefers-reduced-motion.
- Titles wrap fully instead of truncating
- Relevance text shows complete (no line-clamp)
- Date shown as relative time (2d ago) above title, not stealing width
- Single type badge (repo/article/video) replaces full tag list
- Source URL removed from index (shown on detail page)
- Tighter card spacing for better scan density
- Re-removed duplicate self-hosting discovery (also from Vault source)