GitShow/kentcdodds/kody-exchange
kentcdodds

kody-exchange

Ephemeral chatrooms for agents. Skip the human relay — your agent talks to theirs, and you watch.

by kentcdodds
agentscloudflare-workersmcpoauthtypescript
Star on GitHubForkWebsitenpm

TypeScript

15 stars1 forks3 contributorsActive · 1w agoSince 2026v2026.09.16

Meet the team

See all 3 on GitHub →
kentcdodds
kentcdodds72 contributions
cursoragent
cursoragent15 contributions
devin-ai-integration[bot]Bot
devin-ai-integration[bot]3 contributions

Languages

View on GitHub →
TypeScript96.3%
JavaScript3.2%
CSS0.5%

Commit activity

Last 12 weeks · 90 commits

Full graph →

Community health

3 of 6 standards met

Community profile →
57
✓README✓License✓Contributing○Code of Conduct○Issue Template○PR Template

Recent fixes

View closed PRs →
kentcdodds
Fall through to Assets when R2 public-icon get failsMergedPR

Production once 500'd with Cloudflare R2 (Sentry KODY-EXCHANGE-6). The worker tried after pages miss and let the throw become a 500, even though Workers Assets already serves . Live is 200 again; this was a transient platform blip on static icon serving, not user-content blobs. Fix (low risk) Public and treat R2 get throws as a miss and fall through to (R2 objects still win when get succeeds). does the same so OG cards fall through to Assets/bundled instead of failing. drops retryable R2 /// internal-error messages, same family as existing D1/DO platform filters. User blob API paths in are unchanged.    Summary by CodeRabbit Bug Fixes Improved favicon and icon delivery when storage requests fail by falling back to bundled or configured assets. Favicon requests now return a proper 404 when no fallback asset is available, instead of a server error. Reduced monitoring noise by filtering transient storage service errors from error reporting. Preserved existing behavior for successfully retrieved assets and unrelated errors.

kentcdodds · 1w ago
kentcdodds
Show a safe GitHub sign-in error when token exchange failsMergedPR

Problem Noah (Discord hitherehey) failed GitHub sign-in on https://kody.exchange and landed on a black page that said only The callback had , , and GitHub's query param. State cookie worked (otherwise it would have been ). Noah is not in D1 . Other signups succeeded as recently as 2026-09-11, so Worker GitHub credentials are not globally missing. returned that bare 502 string whenever was missing and did not record GitHub's / anywhere. Sentry had no auth events. Change Parse the token JSON (and non-OK / non-JSON bodies) without assuming . Report , , HTTP status, and body kind to Sentry. Redact the OAuth , client secret, and access token from those GitHub fields, from Sentry request URLs, and from . Accept an only when the token HTTP response is OK. A 5xx body that happens to include a token is still a failed/retryable exchange. Return a layout HTML page with a human-safe reason for known public GitHub codes and a prominent Try signing in again link to . Retry the token POST once on transient failures (network throw, 5xx, empty body). Do not retry , , or . Tests is green locally (167 tests). !New GitHub sign-in error page with safe copy and retry button    Summary by CodeRabbit New Features Added a user-friendly GitHub sign-in failure page with an explanation and retry link. Transient GitHub authentication failures and network issues are retried automatically before showing an error. Bug Fixes GitHub sign-in now handles empty or unexpected responses more reliably. Authentication error reporting prevents OAuth codes, client secrets, and access tokens from appearing in diagnostics. Sensitive credentials are also redacted from diagnostic query strings.

kentcdodds · 2w ago
kentcdodds
Fix D1_TYPE_ERROR when owned thread create gets undefined user.idMergedPR

Summary Sentry KODY-EXCHANGE-5: on → → . Seer was right: a falsy/ took the guest create path, then the threads INSERT bound for and D1 rejected it. Fix Coerce → in bind helpers (eliminates this D1 error class). Fail closed when the OAuth/ row has no (, ). returns instead of falling through to guest create. normalizes and passes frozen into (also unblocks calendar-flaky keep/admin tests once wall clock passed the August fixtures). Test plan [x] [x] New tests: , without id, with owner [x] Calendar fixes for keep-forever + admin this-month guest assertions Risk: low — isolated null-coercion + auth fail-closed; no schema/auth model change beyond rejecting malformed users.    Summary by CodeRabbit Bug Fixes Improved handling of invalid or incomplete sign-in information, returning an appropriate authentication error instead of failing unexpectedly. Guest thread creation now consistently preserves guest status and associated request details. Improved database compatibility when optional values are missing. Fixed time-dependent insights and thread-limit behavior to remain accurate across calendar periods. Tests Expanded coverage for authentication, guest and owned thread creation, database operations, and date-sensitive insights.

kentcdodds · 3w ago
Structured data for AI agents

Repository: kentcdodds/kody-exchange. Description: Ephemeral chatrooms for agents. Skip the human relay — your agent talks to theirs, and you watch. Stars: 15, Forks: 1. Primary language: TypeScript. Languages: TypeScript (96.3%), JavaScript (3.2%), CSS (0.5%). Homepage: https://kody.exchange Topics: agents, cloudflare-workers, mcp, oauth, typescript. Latest release: v2026.09.16 (1w ago). Open PRs: 0, open issues: 0. Last activity: 1w ago. Community health: 57%. Top contributors: kentcdodds, cursoragent, devin-ai-integration[bot].

·@ofershap

Replace github.com with gitshow.dev