Skip to content

Kody v2026.08.20

Latest

Choose a tag to compare

@kody-bot kody-bot released this 20 Aug 10:02
· 5 commits to main since this release
15d1951

Kody v2026.08.20

This release is about the surfaces you touch every day. List/detail screens now expand records inline instead of popping a side pane, integrations gain undoable disconnect and delete, and the status page gets favicons that follow real incidents. Invocation tokens also move to a per-package model so a bearer proves access to one package — not a grab bag of grants.

New

  • List/detail records now unfold inline inside the table. Secrets, integrations, MCP servers, memories, jobs, values, and the remaining admin screens expand the selected record under its own row — the same accordion packages already used. If a record is off-window or not found, it falls back to a pane so nothing vanishes. (#1594)

  • Disconnect or delete an integration with undo. Both actions use a double-check, then a short delayed-commit window where clicking Undo brings everything back before the change is committed. Built-in integrations stay operator-owned; you can only disconnect their accounts, but user-registered OAuth apps can be fully deleted. (#1574)

  • Invocation tokens now belong to one saved package. The URL names the owner and package, and the bearer proves access to that package only — the same model webhook secrets already use. The token form also describes each field and lets you pick from the package's real exports via checkboxes instead of typing names into a textarea. The unreliable source allowlist is gone; request source stays as an optional log label. (#1553, #1571, #1570)

  • Status-page favicons now switch with incidents. An open status tab shows a green check, red exclamation, or amber question mark depending on overall health — no JavaScript required, just the existing meta refresh. The favicons are also transparent so they sit cleanly on any tab chrome. (#1587, #1590)

  • Two new guides: the Kody factory map and local MCP tunnels. The factory guide gives you a concrete picture of hosted primitives; the tunnel guide covers Cloudflare Tunnel + Access, OAuth, and a forkable home MCP server starter. Both guides ship with editorial artwork and generated social share cards. (#1577, #1584, #1589)

  • Admin-only community.listing.published subscription topic. Operators can now subscribe to first-publish events for community listings, with idempotent delivery and metadata-only payloads. Republish does not fan out. (#1592)

  • Join the Discord from the README and onboarding. A badge in the README and a compact link under the onboarding header point at the community Discord on every step. (#1578)

Improved

  • Community search misses now point you toward package authoring. Instead of a dead end, a no-match result offers a query-specific agent prompt that loads the authoring guides before creating a git-backed package. (#1576)

  • Onboarding does a better job of guiding first connections. Step 1 now requires a two-click confirmation before an unconnected user leaves, a prominent Authenticate callout appears for Cursor and Claude Code, and Step 2 scopes package search prompts to your username. The factory-map card also moved above the onboarding steps so it stays discoverable. (#1579, #1581)

  • Open Graph emoji now render with Twemoji. Profile and guide cards that include emoji like 🐨 show the real glyph instead of a tofu box. (#1572)

  • GitHub social preview now reads as this repository. The card carries the official Invertocat and github.com/kentcdodds/kody so Slack, Discord, and Twitter unfurls look like the repo, not the marketing site. (#1593, #1596)

  • Prefilled secret links now focus the value field. Opening /account/secrets/new?name=… puts the cursor on the secret value so you can paste immediately. (#1591)

  • Account packages search keeps focus after the first keystroke. The caret no longer jumps out of the field on the first character. (#1585)

  • The built-in integrations badge uses a cleaner stroke key. The glyph insets inside the circle rim so the diagonal stays readable at small sizes. (#1541)

  • Docs and examples now use home.example.com instead of a personal hostname, and several guides and cleanup runbooks got a present-tense and accuracy pass. (#1588, #1599, #1567)

Fixed

  • Status history no longer paints amber days for isolated probe blips. One-minute failures that never opened an incident are cleared from daily rollups, and the uptime label uses the measured span. The one real Package runtime incident (HTTP 530, 6 minutes) stays amber. (#1575, #1580)

  • Oversized webhook bodies no longer hit a 413 under the ack queue cap. Bodies that exceed the serialized ceiling spill to temporary storage and hydrate on the consumer side, so every payload that passed the 1 MB ingress limit is accepted. (#1582)

  • Standalone scheduled jobs can now call packages.invoke. The nightly thermostat job that crashed with a null invoke error is bound the same way authenticated workflows already are. (#1583)

  • Package apps can destructure kody.mcp servers without them vanishing. Connected MCP server names are now advertised so destructuring kody.mcp binds the real proxy instead of undefined. (#1586, #1561)

  • The admin system inbox no longer shows each email three times. The list query resolves the inbox label correctly and now includes the actual To address. (#1573)

  • Stale package artifacts refresh after an already_published publish. Jobs and packages.invoke no longer execute an old bundle when the database already points at the latest commit. (#1563)

  • Missing-package publish/adopt no longer fires false crash reports. (#1557)

  • Retired service-instance bindings and leftover storage purge lanes are fully removed now that production inventory is clean. (#1559, #1560, #1569)

  • The Nx cache worker can be redeployed on demand. (#1564)