Shipped
A log of shipped work@illscience
8 projects · 132 entries · since 2025Auto-logged by agents · synced 1m ago
Fable-Timeline
Jul 21, 2026
Claude Code
feature
Inverted tab bar — ink glass with cream glyphs
The app's tab bar is now ink-glass with cream glyphs instead of cream-on-cream, making it visually distinct from the feed and higher contrast.
Jul 17, 2026
Claude Code
feature
models.html intro: lede-first, two paragraphs, done
The page intro now leads with a direct headline and two short paragraphs instead of a wall of explanatory prose.
Still
Jul 17, 2026
Claude Code
feature
Kimi clean-rerun + Fable 5 & Sol-high judges added
The shadow-judge benchmark now covers 10 models with uncontaminated per-model cost and latency numbers, and its public page explains the test to someone who has never heard of the project.
Still
Jul 13, 2026
Claude Code
feature
Article cleaner with retry resilience + transcript storage
Bookmarked articles are now stripped of page chrome before voicing and stored with a clean readable transcript.
Jul 12, 2026
Claude Code
feature
Audio episode dedupe by resolved source identity
The same article bookmarked from two different tweets now produces one audio episode instead of two identical ones.
Still
Jul 12, 2026
Claude Code
feature
Persistent resume + long-form Listen library3 shots
The audio player now tracks and restores playback position, and the Listen tab organises voiced long-form content into Continue, Up Next, Newly Saved, and Completed sections.
Jul 12, 2026
Claude Code
feature
Image sources now show the actual image
Evidence pages and the feed's context expander now embed the real source image instead of displaying the vision model's text transcription of it.
Still
Jul 12, 2026
Claude Code
feature
Live onboarding build screen with real-time belief graph
New users now watch their instrument build in real time — sources, claims, and a belief-graph constellation growing on screen — instead of landing on an empty feed.
Still
Jul 12, 2026
Claude Code
feature
Per-account ingestion; migration bridge retired
The cron now authenticates as each account individually — minting a per-owner JWT, decrypting that user's stored X token, and writing into their own data partition — instead of funneling everything through a single founding-owner bypass.
Still
Jul 12, 2026
Claude Code
feature
Opt-in public profiles at /{handle}
Any account can now flip a toggle and share a read-only mirror of their full graph at a public URL — private by default, no leak when off.
Still
Jul 12, 2026
Claude Code
feature
Opt-in public profiles with full read-only graph mirror
Any account can now publish a shareable /{handle} URL that renders the complete read-only graph — Today, Disagreements, Views, Topics, Record, Listen, Archive — or keep it dark with one toggle.
Still
Jul 12, 2026
Claude Code
feature
X OAuth + OIDC Auth Layer Live in Production4 shots
Unauthenticated visitors now hit a sign-in gate and are redirected through a full X OAuth 2.0 + PKCE flow before reaching any app data.
Jul 10, 2026
Claude Code
feature
Indexed quotables + spliced real audio in Briefing episodes
The daily Briefing is now a produced documentary: host narration, a two-host faceoff, real audio clipped from YouTube sources at semantically-found timestamps, and news-anchor reads of real statements — all assembled into one MP3.
Still
Jul 10, 2026
Claude Code
feature
Same-origin audio proxy + Listen space
The app now serves audio through its own /api/audio/[id] route instead of pointing the browser directly at cross-origin storage URLs.
Still
Jul 10, 2026
Claude Code
feature
Durable LaunchAgent for recurring bookmark ingestion
The system now automatically pulls new bookmarks, ingests any media, and judges claims into the graph every four hours — surviving reboots and Claude session endings.
Still
Jul 9, 2026
Claude Code
feature
Embedding leak fix: judging cost drop from $2.02 to $0.16/claim
The judge pipeline no longer sends raw embedding vectors to the model, cutting per-claim token usage 23× and bringing the full 1,330-claim pass from a ~$2,681 projection down to ~$208.
Still
Jul 9, 2026
Claude Code
feature
YouTube transcript fallback for bookmarked video tweets
The ingest pipeline now resolves bookmarked tweets containing native X video to their YouTube equivalents and extracts full transcripts without any API key, feeding them into the claims graph as first-class evidence.
Still
Jul 9, 2026
Claude Code
feature
Mobile grid overflow fix: minmax(0, 1fr)
Every page on mobile now confines content to the viewport width — no horizontal scroll, no clipped text.
Still
Jul 9, 2026
Claude Code
feature
Vercel production deploy + Convex env wiring
The app is now live at a stable public URL with the Convex backend correctly wired in for all environments.
Still
Jul 9, 2026
Claude Code
feature
Markdown renderer in Record — all six surfaces live
The Record page now renders the monthly draft as real essay typography — serif headline, styled section headers, superscript citation chips — instead of raw markdown symbols.
Still
Jul 9, 2026
Claude Code
feature
Extractor v2: bare propositions, no attribution prefix
The feed now shows claims as standalone propositions — attribution comes from the @handle, not the sentence itself.
Still
Jul 9, 2026
Claude Code
feature
AllyBi design system rebuilt from actual handoff
The UI now renders the correct cream/ink palette, self-hosted Inter 300/500, Source Serif 4 for claims, hairline borders, and zero border-radius — matching the real design handoff instead of an improvised interpretation.
Still
Jul 9, 2026
Claude Code
feature
Fable Timeline web UI — three live reactive surfaces
The app now has a working Next.js frontend — Today, Disagreements, and Views — pulling live data from Convex and rendering reactively as the ingestion pilot populates the graph.
Jul 8, 2026
Claude Code
feature
Hybrid search + stance-neighbor detection (Phase 1)
The backend now supports vector search with graph-edge traversal for context retrieval, and a findStanceNeighbors action that surfaces implicit tensions between positions. All 14 new tests pass alongside the existing suite with zero regressions.
Still
SwingAnalyzer
Swift · TypeScript
Overview
Started Jun 2026

SwingAnalyzer bets that vision-capable LLMs can meaningfully evaluate athletic swing mechanics — the project exists to benchmark which models are actually useful for that task.

The core shipped work is a multi-model evaluation harness built in Swift and TypeScript that runs a two-pass locate-then-refine pipeline against any OpenRouter vision model, then assembles a 3×3 contact sheet per model/video pair. An independent vision judge scores each sheet 0–10, and the system emits the sheets, a markdown leaderboard, and a results.json in a single run — making model comparison systematic and reproducible.

2 shippedCLI · APIExperimental
Jul 9, 2026
Claude Code
feature
Gate + locate robustness fixes validated (2 of 3 hard-fails rescued)
Valid swings with confidence 35–49 and clips where locate briefly returns 'no swing' now produce a sequence sheet instead of an error.
Jun 20, 2026
Claude Code
feature
Multi-model swing eval harness with LLM judge
Runs the two-pass locate-then-refine pipeline across any OpenRouter vision models, renders a 3×3 contact sheet per model/video pair, and has an independent vision judge score each sheet 0–10. Outputs sheets, a markdown leaderboard, and results.json in one shot.
Still
SneakStream-ClaudeCode
TypeScript · Swift · Kotlin
Overview
Started Oct 2025

SneakStream is a DJ-focused live streaming platform built to replace generic video infrastructure with a purpose-built experience: synchronized broadcast playback, pay-per-view gating, real-time chat, and a mobile app — all tuned for the specific rhythms of nightclub and DJ culture.

The platform ships a Next.js web frontend backed by Convex, supporting live RTMP streaming via Mux or Livepeer, clock-synced 24/7 radio, a VOD library with HLS delivery, auction-based track-crate purchases, Apple IAP for tips and PPV unlocks, and a party-photo capture-to-gallery loop with QR-based guest sharing. An Expo React Native app covers iOS and Android with feature parity including chat, clips, PPV, and GIF/emote support. Recent work has concentrated on App Store compliance (UGC moderation, account deletion, IAP receipt verification), production hardening (webhook deduplication, brownout recovery, HEIC transcoding), and a fully animated iOS Dynamic Island Live Activity that surfaces stream state and replay position without user interaction.

42 shippedWeb · iOS · AndroidProduction
Jul 5, 2026
Claude Code
feature
App Store Server Notification webhook with Slack alerts
The app now receives Apple ASN webhook events, verifies the JWS signature, and posts formatted Block Kit messages to Slack for purchases, refunds, and test pings. Forged or malformed payloads are rejected with 401/400 and trigger a separate Slack warning instead of silently failing.
Still
Jul 4, 2026
Claude Code
feature
Live PPV purchase → 24h day pass to all streams2 shots
A paid live viewer now keeps access to every live stream for 24 hours, so a brownout restart (which mints a brand-new stream id) no longer re-gates them or asks them to pay again. Also locked the grant/revoke entitlement mutations down to server-only to close a paywall-griefing hole.
Jul 3, 2026
Claude Code
feature
Clickable sneakstream.xyz links in web chat3 shots
Chat messages containing sneakstream.xyz URLs now render them as clickable links that open in a new tab. Only the platform's own domain is linkified, so external URLs stay plain text and can't be used for spam or phishing.
Jul 3, 2026
Claude Code
feature
/app short link → App Store (no auth wall)
Visiting /app now 307-redirects straight to the App Store listing without hitting Clerk's sign-in wall. Works on apex and www, handles trailing-slash and case variants, and is safe to repoint later since it's a temporary redirect.
Jul 2, 2026
Claude Code
feature
iOS Dynamic Island Live Activity — always-on, all states2 shots
The app now automatically starts an ActivityKit Live Activity on open and keeps it running across all six Dynamic Island and lock-screen states without any user action. During a live set, the compact island shows a pulsing live timer alongside DJ name, like count, chat preview, and logo; when the set ends, it flips in-place to a real-time replay-position timer synced frame-accurately to the in-app player. Expanded and lock-screen surfaces display the full DJ name, heart count, chat, and correctly sized logo across all Dynamic Island and non-island devices running iOS 16.2+. Previously the modu
Jun 29, 2026
Claude Code
feature
Mobile video: automatic brownout recovery
Mobile video players now detect network brownouts and automatically retry playback without user intervention. A watchdog hook monitors stall state and network quality, stepping through a backoff-and-reconnect sequence until the stream recovers or a hard failure is declared.
Still
Jun 27, 2026
Claude Code
feature
In-app account deletion (Apple Guideline 5.1.1v)
Users can now permanently delete their account and all associated data directly from the Profile tab without emailing support. The flow purges Convex records first, then removes the Clerk identity, retaining purchase rows anonymously for accounting.
Still
Jun 23, 2026
Claude Code
feature
Reply action in chat message long-press menu
Long-pressing any chat message now shows a Reply option that pre-fills the composer with a quote target and scrolls to it, in addition to the existing Report/Block actions. Users can reply to their own messages too, since Report/Block stays gated to other people's messages.
Still
Jun 20, 2026
Claude Code
feature
UGC safety screens: report, block, terms gate
Users can now report content, block other users, and must accept terms before participating in chat — satisfying Apple App Store Guideline 1.2 for user-generated content. None of these moderation flows existed before this PR.
Still
Jun 12, 2026
Claude Code
feature
On-demand HEIC-to-JPEG transcoding for web photo views
iOS HEIC uploads now render correctly across the web photo rail, wall, lightbox, landing page, and OG previews via a new /api/heic transcoding endpoint — no re-upload or mobile-side change required. Each image is converted on first request and the response is immutably CDN-cached, so transcoding only happens once per image.
Still
Jun 12, 2026
Claude Code
feature
Photo landing: mini-player top bar + Get-the-app CTA
The photo share page now opens with a mini-player bar showing the stream thumbnail (or a gradient fallback on 404) and party name, giving guests immediate context before they see the photo. The primary CTA now points to the TestFlight beta instead of a dead App Store stub.
Still
Jun 12, 2026
Claude Code
feature
Camera shoot → review → Done flow
After taking a photo or recording a clip, the camera now holds on a review screen so you can retake before anything is submitted. Matches the existing library-picker flow instead of posting immediately on capture.
Still
Jun 11, 2026
Claude Code
feature
Party Photos growth loop: capture → live rail → wall → QR landing
Photographers can now shoot at a party, see clips appear live in a floor rail and full Party Wall gallery, and hand guests a QR code that opens a public per-photo landing page with a mobile mini-player. None of that flow existed before this PR.
Still
Jun 8, 2026
Claude Code
feature
Apple IAP: tips & PPV unlocks with server-side JWS verification
Mobile users can now send tips and unlock pay-per-view content via Apple in-app purchases, with prices derived server-side and receipts verified against Apple's signed JWS before any entitlement is granted. Plugged three bypass paths: free PPV via direct intent completion, client-supplied prices, and environment-claim spoofing.
Still
Apr 21, 2026
Claude Code
feature
24/7 Deterministic Radio Station + Audio-Reactive EQ
The site now streams a continuous, clock-synced radio station with a live schedule page so visitors can see what's playing and what's next. The homepage player also gained an audio-reactive EQ visualizer that animates in real time to the audio output.
Still
Mar 3, 2026
Claude Code
feature
@mention autocomplete + fullscreen landscape layout fix
Mobile chat now surfaces a live user search popup when you type @, letting you tap to insert a mention without guessing spellings. The fullscreen video modal also correctly reflows its button layout when the phone rotates to landscape.
Still
Mar 2, 2026
Claude Code
feature
Mobile chat: replies, likes, fullscreen video, AirPlay
Mobile users can now reply to messages, like with avatar previews (with a sign-in prompt if logged out), and watch video fullscreen with mute, double-tap heart, and AirPlay support. Reply rendering for tip messages is also fixed on both web and mobile.
Still
Mar 1, 2026
Claude Code
feature
React Native mobile app for iOS and Android (Expo)
A full Expo/React Native app now ships alongside the web client, targeting both iOS and Android. It includes live playback, chat with GIFs and image paste, emotes, PPV purchase, hearts, and auth/sign-in support. Clip creation is available without an account, so signed-out users can create and share clips directly from mobile.
Still
Feb 19, 2026
Claude Code
feature
Live Stream & VOD Clip Capture with Sharing
Viewers can now grab a 15-second clip from any point in a live stream or VOD video and share it directly from the player, including to Instagram. Previously, neither live nor recorded video had any clip capture or sharing capability.
Still
Feb 18, 2026
Claude Code
feature
VIP Guest List with PPV Bypass
Admins can now search for users and grant VIP status, giving them automatic access to all PPV content without individual entitlements. A new admin panel section lists current VIPs and lets admins add or revoke that status in one click.
Still
Feb 17, 2026
Claude Code
feature
Notifications System with Inline Drawer
Users now receive real-time notifications for @mentions, replies, follows, and go-live events, surfaced via a bell icon with an inline drawer in the nav. Notifications mark themselves as read on drawer close, and reply context threads back into live chat.
Still
Feb 14, 2026
Claude Code
feature
End-to-end recording deduplication across ingest and past shows
The Mux webhook handler and stream-end flow now deduplicate asset records on every retry path, ensuring a single live session never produces duplicate video rows regardless of webhook replay or race conditions. All ingest decisions are traceable via a debug mode for reproducing and diagnosing duplicates locally. The past shows query also collapses duplicate uploads of the same show — matched by upload date and duration — into a single entry, preferring the PPV-visible copy when one exists.
Still
Feb 8, 2026
Claude Code
feature
Live auction bidding system for track crate purchases
Viewers can now place bids on track crates during a livestream, with admins opening and closing sessions from a new bidding control panel. Stripe payment verification, Mux webhook-driven download state, and deep links from crate items to recording timestamps are all wired up end to end.
Still
Feb 4, 2026
Claude Code
feature
Server-side download state via Mux webhooks
Video master-download status is now tracked in Convex and updated by Mux webhooks instead of long-polling the Mux API for up to 30 minutes. The download endpoint immediately returns a preparing or ready status, and the UI reflects progress without blocking a server-side loop.
Still
Oct 24, 2025
Claude Code
feature
Broadcast-style playlist system with admin controls
Admins can now queue videos into a shared playlist with Play Now and Play Next controls, and the player auto-advances to the next item when a video ends. Previously every viewer was on their own with no coordinated queue.
Still
Oct 23, 2025
Claude Code
feature
Admin page with nightclub visibility control + avatar queue
Admins can now toggle nightclub simulation visibility and manually drive the avatar queue through a dedicated admin page. The system also shares a pooled avatar backlog and generates varied AI selfie prompts to cut generation costs.
Still
Oct 11, 2025
Claude Code
feature
One-button Mux live streaming with persistent credentials
Streamers can now go live on Mux with a single button click, with stream keys and credentials saved so they never need to re-enter them. Viewers get real-time viewer counts, auto-resume on tab refocus, and iOS background audio support.
Still
Oct 8, 2025
Claude Code
feature
Dynamic streamer pill with live follow/unfollow
The streamer's identity and follow button now resolve dynamically from whoever is actually streaming—live stream or fallback video—instead of a hardcoded ID. Viewers see a unified name-plus-icon pill and the follow button hides entirely when watching your own content.
Still
Oct 8, 2025
Claude Code
feature
Persistent heart counts backed by database
Hearts tapped on the video player now increment and persist in the database instead of resetting on every page load. The running total is loaded live from the current video record.
Still
Oct 8, 2025
Claude Code
feature
Live viewer count via Mux Data API
The stream page now pulls real viewer counts from Mux Data every 30 seconds and syncs them to Convex so every connected client sees the same live number. Previously the UI showed a hardcoded '2.4K Viewers' placeholder regardless of stream state.
Still
Oct 7, 2025
Claude Code
feature
Dual video provider support: Mux and Livepeer
A single environment variable (`NEXT_PUBLIC_STREAM_PROVIDER`) now routes go-live, upload, and watch flows to either Mux or Livepeer at runtime, replacing the previous Mux-only hardwiring. Each provider has fully isolated frontend pages and backend logic, ensuring neither path interferes with the other. This covers all video flows: live streaming, VOD upload, and playback.
Still
Oct 5, 2025
Claude Code
feature
Inline alias editing on profile page
Users can now click their alias on the profile page and edit it in place using a text field with confirm/cancel controls, without navigating away. Previously the alias was read-only or required a separate flow.
Still
Oct 5, 2025
Claude Code
feature
Muted autoplay with synced mute/unmute control
Videos now autoplay muted to satisfy browser autoplay policy, with a mute toggle that stays in sync across all player instances. Mute state lives in the parent and flows bidirectionally so the button and native player controls never disagree.
Still
Oct 5, 2025
Claude Code
feature
Video processing progress bar and percentage display
Processing videos now show a live percentage in the status badge and an animated progress bar along the bottom of the thumbnail. Progress syncs from the upstream asset status every 10 seconds instead of showing a static 'processing' label.
Still
Oct 5, 2025
Claude Code
feature
Radio-style synchronized video playback via t0 timestamp
All connected clients watch the default video at the same playback position, derived from (now - t0) % duration, where t0 is recorded the moment a video is set as default. This eliminates server-side playback state entirely, as the current position is always computable from a single reference timestamp. Clients that drift more than 3 seconds from the expected position automatically correct themselves.
Still
Oct 5, 2025
Claude Code
feature
Default video fallback for homepage
Admins can now designate a library video to play on the homepage whenever no live stream is active. The homepage automatically detects the default video and plays it across all layout modes, with a badge and star toggle visible in the library.
Still
Oct 4, 2025
Claude Code
feature
Live streaming via LivePeer with Go Live page
Users can now go live with RTMP streams configured through a dedicated Go Live page, with video/audio settings, chat controls, privacy options, and a theater/classic layout toggle. Active streams are stored in the database and surfaced on the main page.
Still
Oct 2, 2025
Claude Code
feature
Persistent event storage with fuzzy duplicate detection
Discovered events are now saved to a database and loaded instantly on page open, so past searches aren't lost between sessions. Fuzzy matching on names and dates prevents the same event from being stored twice, and each card has a delete button for manual cleanup.
Still
Oct 1, 2025
Claude Code
feature
Events page with live DJ search via Claude web search
Users can now look up upcoming gig dates for specific DJs using real-time web search powered by Claude. Results surface within 90 days, grouped by artist in responsive cards with venue, date, and ticket links.
Still
Oct 1, 2025
Claude Code
feature
Video upload, playback, and feed system via LivePeer
Users can now upload videos via TUS resumable upload, which get transcoded and delivered through LivePeer's CDN as HLS streams. A personal library, public feed, watch page, and follow system tie it all together.
Still
Oct 1, 2025
Claude Code
feature
Real-time live chat via Convex backend
Visitors can now send and receive messages in real time through a persistent chat window backed by Convex. Users can set and inline-edit a display name before posting.
Still
Oct 1, 2025
Claude Code
feature
DJ Streaming Site — Live Player UI
Replaced the Next.js boilerplate with a full DJ streaming frontend: live video player with viewer count and live-status badge, audio controls with progress bar, and sections for upcoming shows and now-playing info. None of that existed before.
Still
compact
Overview
Started Jul 2026

compact is an experiment harness and diary system for tracking shipped work, betting that structured deduplication and rich media replay can turn a raw commit stream into a reliable, browsable record.

The core harness gained a post-hoc merge pass that collapses duplicate beat entries across source units and re-grades survivors, cutting commit-granularity entries by 34%. On the display side, diary entries with multiple screenshots now render as a 2×2 tile cluster with a shot-count badge, opening into a full lightbox with arrow navigation, a thumbnail strip, and keyboard shortcuts.

2 shippedWebExperimental
Jul 2, 2026
Claude Code
feature
Multi-shot cluster + tap-to-expand lightbox
Diary entries with multiple screenshots now render a 2×2 tile cluster with a shot-count badge instead of a single frame. Clicking any tile opens a full lightbox with arrow navigation, a thumbnail strip, and keyboard shortcuts.
Jul 1, 2026
Claude Code
feature
Deduplication layer for experiment harness
The harness now runs a post-hoc merge pass that collapses entries describing the same beat across source units, then re-grades the survivors. Commit granularity dropped from 50 to 33 entries (34% dup rate exposed); PR and weekly granularities were already cleaner at 7% and 0%.
Still
OpenParent
TypeScript · Python
Overview
Started May 2026

OpenParent is a family accountability system that uses an AI judge to evaluate household interactions—captured audio exchanges—against a configurable rubric, then translates those judgments into a consequence ledger visible to both parents and children.

The core shipped work is a full consequence pipeline: audio is captured, speaker-verified on-device via cosine similarity, scored by a rubric-driven LLM judge, and routed through a deterministic safety rail that enforces magnitude clamps, rate limits, and daily caps before writing to the ledger. Recent focus has been on parent control surfaces—a pending-proposals inbox, event drill-down with Apply/Skip actions, an in-browser simulation console, and versioned editors for both the rubric and policy config—alongside a secrets-free Convex test harness with comprehensive coverage of the consequence rail and ledger logic.

8 shippedWeb · Self-hostedProduction
May 29, 2026
Claude Code
feature
On-device target-speaker verification via cosine similarity
The system can now enroll a reference voice from audio clips and verify whether a new clip matches that speaker — entirely on-device using Resemblyzer embeddings. Validated against real clips with clean separation (0.852 match vs 0.51–0.63 impostor) at a 0.75 cosine threshold.
Still
May 28, 2026
Claude Code
feature
Simulate Console — run judge from browser without hardware
Admins can now paste any kitchen exchange into /admin/simulate and run it through the live judge, active rubric, and consequence rail entirely from the browser. Scorable events land in the ledger and leaderboard exactly as real captures do, with latency, token cost, and reasoning shown inline.
Still
May 27, 2026
Claude Code
feature
Versioned policy.yaml editor (admin + Convex backend)
Admins can now edit, save, and roll back config/policy.yaml versions through the admin UI instead of a read-only view. The active version is served to the iPad controller via a public Convex query, and a shared YamlVersionEditor component eliminates duplicated logic with the rubric editor.
Still
May 27, 2026
Claude Code
feature
Rubric Editor with Versioning + Live Edge Pickup
Admins can now edit, save, and roll back the judge rubric from the dashboard with live YAML validation and full version history. The edge fetches the active rubric from Convex before each judge call, so changes take effect immediately without a redeploy.
Still
May 27, 2026
Claude Code
feature
Pending-proposals inbox on admin overview
The /admin page now surfaces every unresolved proposed consequence in one place, with inline Apply/Skip buttons that reactively drop items as they're resolved. Backed by a new proposals.listPending query that joins event and subject data, with 32 convex-test cases covering it.
Still
May 27, 2026
Claude Code
feature
Event detail drill-down with Apply / Skip actions
Parents can now open any flagged event to see full context—proposed change, confidence, rubric version—and apply or skip it directly, closing the review loop. A 'Show transcript' button proxies the raw source from the local machine on demand and degrades gracefully to 'evidence offline' when unreachable.
Still
May 27, 2026
Claude Code
feature
No-secrets Convex test harness + SessionStart hook
Backend mutations and queries now run against an in-memory Convex DB via Vitest—19 tests covering the full consequence rail, rate limits, ledger idempotency, and leaderboard—no live deployment or secrets required. A SessionStart hook auto-installs workspace deps on web sessions so the suite is runnable from the first prompt.
Still
May 26, 2026
Claude Code
feature
Deterministic consequence rail (Phase 3 safety gate)
The judge now routes every scorable event through a pure decision layer that enforces single-event magnitude clamps, hourly rate limits, and daily net caps before anything touches the ledger. Small high-confidence rewards auto-apply; punishments and quiet-hours events gate on a parent-approval proposal instead of writing through.
Still
vibe-debugAgent-friendly debugger CLI and MCP server.
Python
Overview
Started May 2026

vibe-debug bets that coding agents debug better with real runtime state than with static source reading — the project exists to give agents a proper DAP-backed Python debugger they can drive programmatically, rather than guessing from tracebacks.

The core deliverable is an MCP server that exposes breakpoints, stepping, and live locals inspection as structured tool calls, letting agents launch a repro script and interrogate actual runtime state. Distribution friction was addressed with an npx shim so no Python tooling is required to register the server with Claude Code. The project then expanded in two directions: a stream-json formatter for watching Claude debugging sessions in real time, and a standalone CLI mode with an init command that writes a project-level skill file so agents can discover and invoke the debugger without MCP at all.

4 shippedCLI · MCP ServerAgent tool
May 7, 2026
Claude Code
feature
Agent-friendly debugger CLI skill
The debugger can now run as a plain CLI command without MCP, letting coding agents invoke it directly from a shell with breakpoints and expression evaluations. An init command also writes a project-level skill file so agents automatically discover and trigger the CLI on reproducible Python bugs.
Still
May 7, 2026
Claude Code
feature
Claude progress formatter for stream-json output
Piping `claude --output-format stream-json` through `mcp-debugger claude-progress` now prints human-readable lines (MCP status, tool calls, local variables) instead of raw JSON. Previously there was no way to watch a Claude debugging session without grepping JSONL by hand.
Still
May 7, 2026
Claude Code
feature
npx wrapper for mcp-debugger
The debugger server can now be launched directly via `npx -y github:illscience/mcp-debugger` without any Python tooling on the user's PATH. A Node.js shim locates and spawns the Python backend, making one-line Claude Code registration possible.
Still
May 7, 2026
Claude Code
feature
Codex Debugger MCP Server
Exposes a full DAP-backed Python debugger as an MCP server so coding agents can set breakpoints, step through execution, and inspect live locals instead of guessing from source. Agents can now launch a repro script, hit a breakpoint, and read real runtime state via structured tool calls.
Still
AllyBi
TypeScript
Overview
Started Apr 2026

AllyBi is a video-statement platform built for both web and mobile, with the core bet that authenticated, user-owned video content requires a robust, cross-platform identity layer from the start.

The shipped work spans a full Clerk-backed auth system across web and mobile: eight branded web screens covering sign-in, sign-up, MFA, SSO, and invite flows, plus a mobile-native FAPI client using secure-store JWTs with an AuthGate routing layer. Recent work has tightened the mobile experience specifically — wiring real Google/Apple OAuth flows, adding a phone-collection screen for OAuth sign-ups missing that data, implementing SMS OTP for two-factor sign-in, and delivering a JWT-gated /api/videos/me feed so signed-in users see only their own content across both apps.

6 shippedWeb · Mobile (React Native)Production
May 3, 2026
Claude Code
feature
SMS OTP second-factor screen for sign-in
Users with 2FA enrolled can now complete sign-in by entering a 6-digit SMS code instead of hitting a dead-end error. Both password and OAuth sign-in paths route to the new MFA screen when Clerk returns needs_second_factor.
Still
May 2, 2026
Claude Code
feature
OAuth phone collection screen for Google/Apple sign-up
Users who sign up via Google or Apple OAuth are now routed to a dedicated screen to supply their phone number when Clerk reports it missing, then flow straight into OTP verification. Previously the app hit a dead end with a buried error message and no path forward.
Still
May 2, 2026
Claude Code
feature
Mobile Google/Apple OAuth via Clerk FAPI
Users can now sign in or sign up on mobile using Google or Apple OAuth — the app drives the full FAPI dance, opens the browser session, and handles the transferable-to-sign-up fallback. Previously the buttons existed but silently errored.
Still
May 2, 2026
Claude Code
feature
Authenticated /api/videos/me feed (mobile + web)
Signed-in users now see only their own videos in the My Statements feed, gated by a real Clerk JWT rather than anonymous local IDs. A shared authedXhrFetch wrapper handles token injection and 401 retries across all API calls in both apps.
Still
May 2, 2026
Claude Code
feature
Mobile auth foundation: FAPI provider, sign-in screen, AuthGate
The mobile app can now authenticate users via phone + password through a custom Clerk FAPI client backed by secure-store JWTs, with a route-level AuthGate that redirects unauthenticated users to sign-in and keeps signed-in users out of public screens.
Still
Apr 28, 2026
Claude Code
feature
Clerk auth flows — 8 screens + SSO + session-stamped uploads
The app now has a full auth layer: sign-in, sign-up, email verify, MFA, forgot/reset password, invite-accept, and OAuth SSO callback, all in brand-correct screens with a responsive split layout. Video uploads stamp the Clerk userId on new records server-side, with anonymous uploads still allowed and a listByUser query ready for a future 'my videos' view.
Still
WineMail
Python · TypeScript
Overview
Started Feb 2025

WineMail is a personal wine management app built on the premise that a wine enthusiast's inbox, cellar, and palate can be unified into a single AI-augmented tool — turning merchant emails, PDF receipts, tasting notes, and label photos into a queryable, rankable, and recommendable wine collection.

The app ingests wine data from Gmail (via OAuth), uploaded PDFs, and label photos (including video), then structures it into inventory, offer, and diary records backed by Supabase. Over time the focus has expanded from data capture and display into AI-heavy workflows: async Celery tasks handle OpenAI-powered ranking, FAL-based bottle image generation, web-search shop discovery, food-pairing recommendations via OpenRouter, and a 'Tonight' picker with curated nightly lenses — all coordinated through Redis and S3. Most recently, the project extended outward via a dual-protocol MCP server exposing the full wine dataset to Claude Desktop and ChatGPT Apps as interactive card-grid widgets.

44 shippedWeb · MobileSolo
Dec 7, 2025
Claude Code
feature
Batch bottle image generation with admin control panel
The app can now automatically generate AI bottle images for all inventory items that lack one, either triggered on upload or kicked off manually from a new admin page. An admin dashboard tracks progress, shows the current item being processed, and displays a grid of the 24 most recently generated images.
Still
Dec 1, 2025
Claude Code
feature
Dual-Protocol MCP: JSON-RPC + OpenAI Apps SDK Widgets
The server now speaks both Claude's JSON-RPC 2.0 MCP protocol and OpenAI's Apps SDK protocol from a single shared service layer, exposing 9 read-only wine tools. ChatGPT Apps can now render interactive card-grid widgets showing bottle images, prices, and tasting notes directly inside conversations.
Still
Nov 4, 2025
Claude Code
feature
Redis cache + logging for email analysis workflow
Email analysis results are now stored in Redis so repeated inbox loads skip redundant AI calls. Shop purchase links are also surfaced directly on sorted wine analysis cards.
Still
Oct 20, 2025
Claude Code
feature
MCP Server — expose wine data to AI assistants
The app now speaks Model Context Protocol, letting AI assistants like Claude Desktop and ChatGPT query a user's wine inventory, diary entries, merchant offers, and favorites directly via JSON-RPC 2.0. None of that data was accessible to external AI tooling before.
Still
Sep 28, 2025
Claude Code
feature
Tonight Quick Picks: photo upload + food pairing + S3/Celery
Users can now upload photos of their wine labels to get instant Tonight quick-pick recommendations, and describe a dish to re-rank those picks via an async OpenRouter pairing flow. Photos are stored in S3 and analysis runs as a background Celery task so the UI stays responsive.
Still
Sep 27, 2025
Claude Code
feature
Inventory vintage highlights + inline shop buttons on shop page
Shop readiness cards now surface drink-now vintage recommendations powered by OpenRouter/Kimi K2, and inventory rows gain inline shop buttons so a wine can be searched at merchants directly from the cellar list.
Still
Sep 25, 2025
Claude Code
feature
Shop shortcuts for notable inbox wines
Notable wines flagged in the inbox now show direct shop links, letting users jump straight to live merchant listings without navigating to the diary first. The shop results page also gained a vintage switcher and preserves the correct back-navigation context depending on where the search was launched from.
Still
Sep 25, 2025
Claude Code
feature
Tonight: dynamic spotlights (6 lenses)
The Tonight page now generates contextual spotlight modules — iconic vintages, regional picks, vertical flights, crowd-pleasers vs. nerd bottles, ready-to-drink vs. patience required, and weeknight vs. splurge — alongside the existing card rows. Previously none of these curated lenses existed.
Still
Sep 24, 2025
Claude Code
feature
Bottle image generation via fal flux-pro
Wine profiles can now auto-generate a product-style bottle photo using a dedicated fal flux-pro model, separate from the general image pipeline. The canvas utility also switched from letterboxing to crop-fill so bottle shots always land at the exact target dimensions.
Still
Sep 22, 2025
Claude Code
feature
GPT-5 support via centralized OpenAI model registry
A new `openai_models.py` module centralises all model name constants (TEXT_MODELS, IMAGE_MODELS, TEXT_MODEL_SEQUENCE) so every call site pulls from one source of truth instead of hardcoded strings. The wine expert, ranking helpers, and backfill scripts now resolve their model at runtime, making a GPT-5 upgrade a one-line config change.
Still
Sep 16, 2025
Claude Code
feature
S3-backed cross-worker video label extraction
Uploaded videos are now staged to S3 temp storage so Celery workers on separate containers can download and process them without a shared filesystem. Temp objects are automatically deleted after processing completes or fails.
Still
Sep 15, 2025
Claude Code
feature
Tonight's Pick: daily personalized wine recommendation
Users can open a dedicated 'Tonight' page that selects a wine from their cellar for the evening. The pick can be filtered by color and whether champagne is included. Selection is deterministic per day, so the same wine is shown consistently throughout the night regardless of how many times the page is visited.
Still
Sep 10, 2025
Claude Code
feature
FAL-powered bottle photo editing + drag-and-drop Image Lab
Users can now upload their own wine bottle photo (including HEIC) and have it AI-edited via FAL flux-context-pro, replacing the generate-only flow. Image Lab gained a drag-and-drop dropzone and all outputs are letterboxed to an exact 1024×1536 canvas before saving.
Still
Sep 6, 2025
Claude Code
feature
Read-Only Viewer Mode with Token-Gated Access
A token-gated URL allows anyone to browse a specific account's wine data without logging in. All write operations are blocked and return 403, while AI features such as ranking and image lab remain fully functional.
Still
Sep 2, 2025
Claude Code
feature
Google Images panel on wine profile pages
Wine profile pages now display a 'Found on Google' image grid pulled via Custom Search API, searching by producer, designation, and vintage. SafeSearch is off, size floor is medium, and results show as portrait cards with source domain captions.
Still
Sep 1, 2025
Claude Code
feature
Image Lab: async per-card AI image generation via FAL
Wine profile images are now generated asynchronously through Celery workers using FAL flux models, with each card able to generate or regenerate its image independently without affecting others. Live per-card spinners and polling reflect real-time task status. Previously no async image generation pipeline existed, and any generation was synchronous and blocking with no per-card isolation.
Still
Aug 30, 2025
Claude Code
feature
Wine Order Tracking via PDF Extraction
Uploaded order PDFs are now parsed to extract order metadata (merchant, bottles, appellation) and stored in Supabase with duplicate detection and inventory linking. A backfill CLI can retroactively infer missing appellations and merchants across existing records.
Still
Aug 17, 2025
Claude Code
feature
Mobile-friendly shop results layout
The shop results page now renders as stacked cards on small screens instead of a wide table that overflowed. Size, Location, and Availability columns were dropped to keep the layout tight on both mobile and desktop.
Still
Aug 16, 2025
Claude Code
feature
Wine Shop Discovery via AI Deep Research
Users can now search for active retail listings of any wine and vintage directly from the app, with prices, merchants, and neighbor-year comparisons returned via a Celery-backed OpenAI web search flow. Previously there was no way to find where to buy a wine without leaving the app.
Still
Jul 15, 2025
Claude Code
feature
Logged-out landing page with app screenshots
Unauthenticated visitors now see a dedicated landing page showcasing the app with real mobile and desktop screenshots instead of being dropped straight into the login form. The root route serves the landing page; a separate /login route keeps the plain login form accessible.
Still
Jul 13, 2025
Claude Code
feature
Wine Inbox: inline AI analysis replaces offer extraction
The wine inbox now displays all merchant emails with on-demand AI analysis buttons (notable wines, price check, sorting) rendering results inline above each email. Pre-processing and automatic offer extraction have been removed in favor of this triggered, LLM-backed approach.
Still
Jul 4, 2025
Claude Code
feature
Async merchant email loading via Celery
Merchant email refresh and offer extraction now runs as a Celery background task instead of blocking the request. The UI polls for status and shows a spinner while processing, matching the pattern already used on the ranking page.
Still
Jul 3, 2025
Claude Code
feature
Region backfill via AI ranking refresh
The ranking pipeline now asks the AI to infer and return a wine's region whenever the appellation field is empty, then writes that value back to the database during score updates. Wines with no region recorded no longer stay blank after a ranking run.
Still
Jul 2, 2025
Claude Code
feature
Clickable wine links + auto-generated profiles on visit
Wines in the ranking and diary pages are now clickable links that navigate to their profile pages. Visiting a profile that hasn't been generated yet automatically triggers AI content and bottle image creation.
Still
Jul 2, 2025
Claude Code
feature
Wine Profile Pages with AI Content & Bottle Images
Each wine in inventory now has a dedicated profile page with AI-generated tasting notes, growing season context, producer info, and a GPT Image-generated bottle photo. Content is cached in the database so expensive AI calls only run once per wine.
Still
Jul 1, 2025
Claude Code
feature
Region filter for Wine Rankings page
Users can now filter the /rank page rankings by appellation using a dropdown, narrowing results to a specific wine region. Previously the page showed all ranked wines with no way to scope by geography.
Still
Jun 11, 2025
Claude Code
feature
Persist wine ranking scores to DB with explanation and date
AI-ranked wines now write their overall score, score explanation, and scoring date back to the database instead of being discarded after the response. The ranking page renders this persisted data server-side, and RLS policies allow authenticated users to read and update their own scores.
Still
Jun 9, 2025
Claude Code
feature
Async Wine Rankings Page with Live Polling
A dedicated Rankings page displays the user's wine collection sorted by global score and drinkability score side by side. Ranking computation runs as a background Celery task, offloading the long-running OpenAI call from the main request thread to keep the UI responsive. The frontend polls for task completion and dynamically renders the top-20 ranked lists once results are ready, with an on-demand refresh option to recompute rankings at any time.
Still
Jun 9, 2025
Claude Code
feature
OpenAI-powered wine inventory ranking
The app can now rank an entire wine collection by producer, vintage, designation, and overall quality using OpenAI, processing large inventories in chunks. Previously there was no AI-driven scoring of the collection at all.
Still
Jun 8, 2025
Claude Code
feature
Live search filter on inventory page
Users can now type in a search box to instantly filter their wine collection by producer, designation, vintage, or appellation across both the desktop table and mobile card views. Before this, finding a specific wine required manually scrolling through the entire list.
Still
Jun 8, 2025
Claude Code
feature
Inventory quantity stepper with zero support
Inventory items now have +/− buttons to adjust quantity one step at a time, and quantities can be set to zero to mark stock as depleted. Previously the minimum was 1 and only a bare number input existed.
Still
Jun 2, 2025
Claude Code
feature
Wine Offers Pagination
The wine offers page now loads results 20 at a time instead of fetching everything at once, with full page navigation controls. The database layer returns a total count alongside each page so the UI can render accurate prev/next links.
Still
May 5, 2025
Claude Code
feature
Wine expert analysis via OpenAI Responses API with image URLs
The wine expert endpoint now calls the OpenAI Responses API and can pass a label image URL alongside the query, instead of relying on cached tasting notes or the older chat completions path. Supports both image URLs and file inputs in a single unified function.
Still
Apr 28, 2025
Claude Code
feature
Persistent AI tasting notes on Wine Diary entries
Wine insight generated by the AI expert is now saved to the database against the diary entry, so subsequent requests return the cached text instantly without hitting the model again.
Still
Apr 25, 2025
Claude Code
feature
Bulk PDF upload on inventory page
Users can now select and upload multiple PDFs at once on the inventory page instead of one at a time. Each file is processed sequentially, with per-file success and failure tracking reported back after the batch completes.
Still
Apr 20, 2025
Claude Code
feature
Wine Diary feature with local image upload
Users can now log wine tasting notes and attach photos, stored locally on the filesystem. Image hosting is temporary and will move to a cloud service before production.
Still
Mar 31, 2025
Claude Code
feature
Favorites filter and date controls for Wine Offers
Users can mark grape varieties as favorites alongside producers and regions, then toggle a 'Show Only Favorites' filter on the Wine Offers page to surface only wines matching their saved preferences. The default date window is 14 days rather than a full year. Filter state and sort order persist across page interactions.
Still
Mar 23, 2025
Claude Code
feature
Cascade-delete merchant data + domain URL cleaning
Deleting a wine merchant now removes all related emails and wine offers from the database in a single transaction, not just the merchant record. Domain inputs are also sanitized to strip URL prefixes like http:// before any lookup or storage.
Still
Mar 18, 2025
Claude Code
feature
Gmail API OAuth Integration
Users can now connect their Gmail account via OAuth so the app reads emails directly through the Gmail API instead of IMAP. This eliminates the password-sharing and IMAP auth failures that blocked Google accounts before.
Still
Mar 17, 2025
Claude Code
feature
Direct OpenAI Vision API integration for wine label analysis
The app now sends wine bottle photos directly to gpt-4o as images instead of first running OCR and passing extracted text. Label details like producer, vintage, and appellation are read more accurately, especially for photos of physical bottles.
Still
Mar 16, 2025
Claude Code
feature
Wine Inventory Management with Column Sorting
Users can upload PDF wine receipts to automatically extract and track bottle details in a personal inventory. The inventory and wine offers views both support ascending and descending sort on any column — including producer, vintage, price, and quantity — replacing the previous fixed newest-first ordering.
Still
Mar 9, 2025
Claude Code
feature
Auto-load emails from merchant domains on add/refresh
When a merchant is added, the last 10 emails from their domain are loaded automatically. Merchant domain emails are also included whenever Refresh Offers runs.
Still
Feb 14, 2025
Claude Code
feature
Expandable email body in wine offers UI
Users can now expand any wine offer row to read the original source email body directly in the UI. The full email text is stored in the database alongside offer metadata and retrieved on demand.
Still
Feb 14, 2025
Claude Code
feature
Responsive card views for tables on mobile
Data tables on the wine emails and offers pages now reflow into stacked card layouts on small screens instead of overflowing. A hover-activated nav dropdown was also added to the base layout for logged-in users.
Still