Skip to content

Kody v2026.08.07

Choose a tag to compare

@kody-bot kody-bot released this 07 Aug 10:01
· 32 commits to main since this release
a61205e

Kody v2026.08.07

This is the redesign release. Every public surface β€” landing, pricing, blog, community, login, onboarding, and account β€” has been rebuilt around a green OKLCH palette, self-hosted Bricolage Grotesque + Wix Madefor Text, and a restrained motion system that enhances without distracting. Onboarding now leads with a zero-setup first win instead of homework, provider guides ship as a real catalog, code blocks finally have syntax highlighting, and you can triage run errors without deleting history.

New

  • The heykody.dev redesign is live across all nine surfaces. A new green token system on the existing custom properties, self-hosted display and body fonts (Google Fonts wouldn't survive the CSP), scroll and card reveals gated behind prefers-reduced-motion, and shared primitives β€” pill/ghost buttons, surface cards, page-head scaffolds β€” that give the whole product a consistent vocabulary. Every loader, form POST, auth flow, and server-owned content source came through untouched. (#1233)

  • Onboarding starts with a guaranteed first win β€” no setup required. Instead of ending on "connect an integration," step 3 now hands you two copyable prompts: send yourself a welcome email (teaching the storage-first model β€” Kody stores your reply, nothing answers until your agent reads it) and a tiny memory interview. A derived checklist computes six items from live signals β€” email verified, MCP grant, stored mail, active memories, saved integrations, saved packages β€” and shows up on the onboarding page, the account banner, and as a one-line agent notice that retires itself once you're done. The checklist lives only on the final step now, provider icons sit at text height, and both prompts start with "Hey Kody, " so the receiving agent knows the request is for it. (#1266, #1269)

  • Provider connect guides are now a bundled, single-source catalog. Five verified guides β€” Google, GitHub, Notion, Spotify, Discord β€” with current console steps, prefilled /connect/oauth and /account/secrets/new links, minimal-scope tiers, and the sharp edges called out (Google's Testing-mode 7-day refresh-token trap, Spotify's Premium requirement). Guides serve three ways: the MCP coding_guide_get capability (no more request-time GitHub fetch), browsable /guides pages with header and footer links, and raw markdown via content negotiation. (#1255)

  • Code blocks across the site now have VS Code-quality syntax highlighting. Shiki renders GitHub light/dark themes via CSS variables, wired into guides, blog posts, community READMEs, onboarding snippets, and JSON dumps β€” with a safe plaintext fallback for unknown languages or oversized snippets. (#1259)

  • You can now ignore or resolve retained run errors without deleting history. Soft triage (ignored, resolved, or reopen to open) persists on each run with an optional note, who decided, and when. Activity and run_list default to showing only open errors, so handled noise drops out of view while the records stay. Your agents can set triage via run_update, and run_summary breaks counts into open, ignored, and resolved. (#1251)

  • You can follow community package owners from the listing page. A follow button sits next to each public owner's @username; signed-out visitors are sent to login and returned. New accounts also auto-follow @kody and @kentcdodds so the community timeline starts with something useful. Public owners link to their profile; private owners show a lock with a "This profile is private" tooltip. (#1261, #1256)

Improved

  • Selecting a record in any list/detail sidebar no longer scrolls you back to the top. Every list entry across memories, secrets, values, jobs, packages, MCP servers, integrations, email, activity, and admin views is now a real link with scroll preservation β€” middle-click and cmd-click open in a new tab, and hover prefetch warms the destination. (#1270)

  • Account Activity is usable on phones. The shared list/detail layout stacks below 1100px, long ids wrap, metadata goes single-column, and the selected run's detail pane moves above the list on stacked screens. (#1265)

  • Activity now offers a copyable prompt for reviewing open errors. A short prompt under the page description points your agent at run_summary, the open-error run_list, and run_get, then asks for ignore / resolve / fix recommendations β€” one click to copy, paste to your agent. (#1264)

  • Profile package cards are quieter, and code blocks everywhere indent at 2 spaces. The package name is now the listing link, the redundant kody-id subtitle and "View listing" action are gone, and Fork is a compact icon. Site-wide tab-size: 2 replaces the browser default of 8, and billing/usage shows a single current-plan line unless an admin grant overrides it. (#1260)

  • Codemod run history no longer gets stuck in "running" forever. Step-level failures now mark the run failed, every continuation step bumps a liveness heartbeat, and a reconciliation sweep marks stale runs abandoned β€” so the admin history reflects reality. Run ids and initiator attribution are visible at a glance. (#1257)

  • Every blog post now carries a quiet callout noting the current posts are AI-written placeholders until Kent rewrites them. (#1258)

Fixed

  • The closed mobile menu no longer swallows taps. After opening and closing the header menu on mobile, taps in the area the menu had covered were still landing on invisible links. The panel's display: grid moved into &:popover-open so the closed state falls back to the browser's display: none. (#1249)

  • Source maps now actually reach Sentry. The worker upload step was looking in the wrong directory and exiting silently; the client build wasn't generating source maps at all. Both are fixed, and the upload step now fails the deploy if credentials are set but artifacts are missing β€” so this can't go unnoticed again. (#1268)

  • The status page's audit-database uptime dip β€” caused by isolated transient blips against a cold, idle database with no retry β€” is resolved by wrapping the health-check queries with the same retry tolerance every other database path already had. (#1253)

  • Redundant identical database queries within a single run-log call β€” the same counter re-fetched on every operation β€” are now memoized in-isolate, cutting repeated round trips. (#1250)