Releases: itsdestin/youcoded
Release list
v1.2.4
What's Changed
- feat(app): device-id analytics — desktop + android by @itsdestin in #90
- fix(theme-effects): pause particle rAF when window is hidden by @itsdestin in #91
- fix(theme-effects): mask chrome regions out of particle canvas by @itsdestin in #92
- fix(first-run): support Node.js auto-install on Linux by @itsdestin in #93
- fix(header): show window caption buttons on Linux by @itsdestin in #94
- fix: close three Linux platform-parity gaps by @itsdestin in #95
- test(sync): fix time-bomb date in sync-service-tags.test.ts by @itsdestin in #96
Full Changelog: v1.2.3...v1.2.4
v1.2.3
v1.2.2
What's Changed
- fix(android): four parity / lifecycle fixes by @itsdestin in #76
- fix(android): restore menu navigation on pre-session prompts by @itsdestin in #77
- fix(installer): switch to native Claude Code installer + EINVAL-safe wrapper by @itsdestin in #79
- docs(cc-dependencies): add native installer bootstrap entry by @itsdestin in #81
- fix(android): plugin-discovery race + Android-only scanner bugs by @itsdestin in #82
- fix(chat): subagent end_turn no longer pollutes parent model pill by @itsdestin in #83
Full Changelog: v1.2.1...v1.2.2
v1.2.1
v1.2.0
What's Changed
- In-app update installer (download + launch) by @itsdestin in #72
Full Changelog: v1.1.2...v1.2.0
v1.1.2
v1.1.1
[1.1.1] — 2026-04-20
Claude Code CLI baseline: v2.1.116
Patch release. Fixes the Windows CI test failure that blocked v1.1.0's desktop installer upload (Mac + Linux built fine, Windows test failed so the whole upload step was skipped and v1.1.0 shipped Android-only). Also ships the About popup and Android tier-picker styling polish.
Added
- About popup — Replaces the inline collapsible About blocks in Desktop and Android settings with a shared
AboutPopuprendered via<Scrim>+<OverlayPanel>at layer 2 with Escape-to-close and platform-specific privacy/licenses content. Matches the rest of the settings-menu popups (centered, glassmorphism from theme tokens, scrim-to-dismiss). - Android tier picker styling — First-run
TierPickerScreenCompose content wrapped in a dim-scrim + centered themed Surface so the package selector matches the popup aesthetic. Tier list scrolls inside the card; Continue stays pinned to the bottom.
Fixed
- Windows desktop installer CI —
tests/ipc-handlers.test.tselectron mock now includessetAppUserModelId(no-op). The AUMID hot-swap added in v1.1.0 calls this atmain.ts:159on Windows during module load; desktop-ci runs Linux-only so the gap was invisible until v1.1.0's release matrix hit the Windows leg and skipped the installer upload. The test mock covers the call so Windows CI can complete the build → upload cycle.
Notes
- v1.1.0's GitHub release has Android artifacts (APK + AAB) only. Users who want desktop installers should grab v1.1.1. The v1.1.0 → v1.1.1 upgrade is otherwise purely additive (UI polish + CI infra).
v1.1.0
[1.1.0] — 2026-04-20
Claude Code CLI baseline: v2.1.116
Headline: Buddy floater mascot companion, nested subagent timelines, typed sync warnings with fix-actions, per-turn transcript metadata, and three cross-cutting Windows PTY fixes.
Added
- Buddy floater — A companion mascot window that floats above your desktop, reflects session attention state (idle vs. shocked), and opens an inline chat bubble on click. Session pill in the bubble lets you switch sessions or spawn a new one from the welcome screen. Multi-window session subscriptions + attention aggregation under the hood. Windows-only capture exclusion (via koffi +
SetWindowDisplayAffinity, Win10 19041+) keeps the mascot out of screenshares. Toggleable in Settings. - Subagent threading — When Claude invokes the
Agenttool, its nested work (text, tool calls, results) now renders as a chat-style grouped timeline inside the parent tool card. Correlation byparentAgentToolUseIdon both the desktop TranscriptWatcher and Android parity, with a directory-level SubagentWatcher tailing sub-session transcripts. - Typed sync warnings — Replaces the old string-code sync warnings with a typed
SyncWarning[]store (~/.claude/.sync-warnings.json). SyncPanel renders fix-action buttons per-warning; StatusBar chips stay in sync; a red dot appears on the Settings gear when danger-severity warnings exist. Health-check and per-backend push failures own non-overlapping codes. - Per-turn transcript metadata — Every completing turn now carries
stopReason,model,usage(input/output/cache-read/cache-creation tokens), andanthropicRequestId. Drives an opt-in per-turn metadata strip under assistant bubbles, an inline footer explaining non-end_turnstop reasons, and a session-pill model reconciliation effect that picks up/model Xfrom the terminal, rate-limit downshifts, or resume drift. AttentionBanner now surfaces the Anthropic request ID onsession-died/errorso you can reference it when reporting issues. - Remote chat hydration — New remote clients receive a full chat state snapshot via
chat:hydrateimmediately on connect, so they see full timelines without waiting for transcript replay. Replaces the oldtranscriptBuffersside channel. - Android IPC parity (4 new handlers) —
marketplace:read-component,model:read-last,theme:list,theme:read-file,theme:write-file. Android now handles the same read/write paths desktop does for marketplace and theme flows.github:authupgraded from stub to real/system/bin/linker64-routedghinvocation. - Usage-limit prompt parser — Recognizes Claude Code's usage-limit prompt as a titled Ink menu so the renderer can anchor its popover correctly and forward Arrow/Enter.
docs/cc-dependencies.md— Spine doc mapping every YouCoded touchpoint that depends on Claude Code CLI behavior. Feeds thereview-cc-changesrelease agent.- Dev profile isolation —
scripts/run-dev.shnow supports concurrent dev profiles viaYOUCODED_PROFILE+YOUCODED_PORT_OFFSET, with hardened hook-path safety so the dev instance can't clobber the built app's~/.claude/. - Landing page redesign — Word-cycling hero headline, theme crossfade, halftone animation, combined features/integrations flow, demo mockups rebuilt, gallery populated with screenshots, mobile-responsive scaling for mockup chrome + content,
#demoanchor and "Installing now..." popup with platform-gated launch tips. Hosted atitsdestin.github.io/youcoded. - Root
CLAUDE.md+.claude/rules/android-runtime.md— Contributors opening Claude Code directly in this repo now get orientation + path-gated Android runtime rules.
Changed
- Dedup:
pendingflag, not content match — User timeline entries carry apendingflag;USER_PROMPTalways appends withpending: true, andTRANSCRIPT_USER_MESSAGEfinds the oldest matching pending entry and clears the flag. Replaces the prior last-10-entries content match, which silently dropped legitimate rapid-fire duplicates (e.g. "yes" sent twice within five turns). - Opus label: 4.6 → 4.7 — Model selector display and chat header pill reflect the current model ID.
- Integration install — Now plugin-backed with icons and
postInstallCommandsupport.IntegrationReconcilerremoved; install/sync flows simplified. - Multi-session lag — Reducer, IPC, and transcript-watcher perf fixes for sessions in double digits. Measurable improvements in session-switch latency and chat-view scroll.
- Model selector scoped to active session — Changing model no longer affects other sessions;
SessionInfonow includes the model. - Subagent view styling — Chat-style grouped timeline with compact rows, card-styled sections, real ToolCard icons, and drop nested left border (parent card frames it).
- Licensing clarified — Desktop code = MIT, Android APK = GPLv3 (due to Termux). Root
LICENSE,desktop/LICENSE,app/LICENSE, and README License section all state the split and invoke GPLv3 § 5 aggregation for the shared React UI. - Windows AUMID alignment — Packaged taskbar icon now hot-swaps with theme.
Fixed
- PTY: long-text paste on Windows ConPTY + Ink —
pty-worker.jsnow splitscontent + trailing \rinto two writes with a 600 ms gap to work around Ink's 500 msPASTE_TIMEOUT, and chunks writes >64 bytes into 64-byte pieces with 50 ms gaps to work around ConPTY's silent byte drop on large writes. Paste of 2500+ chars now lands reliably. - PTY: resize dedup + debounce —
TerminalView.fitAndSyncdedupes on unchanged cols/rows and debounces real resize IPCs to coalesce drag jitter. Previously, ConPTY re-emitted the Ink-rendered UI into xterm scrollback on every spurious resize. - Android marketplace / theme install — Skill marketplace discovery, theme list/install/apply, and quick-chip defaults all unbroken after recent changes.
- Android: pin Claude Code to 2.1.112 — Restores cli.js launch. Bootstrap now gates
isFullySetupon cli.js existence, not just the install directory. - Android: TurnComplete metadata parity —
TranscriptEvent.TurnComplete+TranscriptSerializer.turnCompletenow emitstopReason/model/usage/anthropicRequestId, so remote clients connecting to an Android session see the same per-turn metadata, StopReasonFooter, request-ID in AttentionBanner, and sessionModels reconciliation as desktop. - Sync: conversation tags survive reinstall/sync (#52).
- Chat: rare message loss from dedup + emit-throw races —
readNewLinesisolates each emit in try/catch so a throwing listener can't strand subsequent chunks in the batch. - Chat:
stopReasonfooter only on non-end_turn— Normal completions no longer render the explainer. - Input bar cursor drift + text selection on narrow/Android and long text.
- Theme inline-code color derived from tokens — No longer hardcoded; adapts to the active theme.
- Desktop file picker defaults to all file types — Was defaulting to a filtered subset.
- Session strip overflow —
+Nbadge for sessions that don't fit. - Reconnect copy — Sync setup wizard reconnect flow steers the user to the same Google account.
- Status: preserve last-known session chip values across poll misses — Transient read failures no longer blank context / git-branch / session stats.
- Header: set
__PLATFORM__synchronously so module-levelisAndroid()works correctly; Android chat/terminal toggle stays on the right side. - Icon: desktop app icon rebranded DC → YC.
Removed
- Dead transcript-buffer replay in the remote server — superseded by
chat:hydrate. IntegrationReconciler+integration-context.mdgeneration — Integration install is plugin-backed now.
Protocol notes (for custom remote clients / automation)
chat:hydrateis a new WebSocket message sent once per authenticated remote connection, carrying a serializedChatState. Oldtranscript-bufferreplay is gone.remote:attention-changed(renderer → main) andattentionMapinstatus:data(main → remote) keep remote browsers in sync with desktop'sAttentionState.transcript:eventturn-completeevents now carry{stopReason, model, usage, anthropicRequestId}in theirdatafield on both desktop and Android. Consumers that previously treated this as an empty object should now read the new fields.- Subagent-tagged events (
assistant-text,tool-use,tool-result) carry optionalparentAgentToolUseId+agentId.
v1.0.1
v1.0.0
[1.0.0] — 2026-04-15
Rebrand release. DestinCode is now YouCoded. All app identifiers, config file names, localStorage keys, IPC names, and user-visible strings updated. This is a fresh v1 line — the old v2.x series was DestinCode.
Changed
- App name — DestinCode → YouCoded. Window title, installers, and menus all reflect the new name.
- Electron appId —
com.destinclaude.desktop→com.youcoded.desktop. - Android applicationId / package —
com.destin.code→com.youcoded.app. All Kotlin sources moved to the new package tree. - URI scheme —
destincode://→youcoded://for skill and plugin deep links. - Marketplace ID — The Claude Code registry key is now
youcoded(wasdestincode). Plugin IDs carry the@youcodedsuffix inenabledPlugins. - Config paths — All
~/.claude/destincode-*.jsonfiles renamed to~/.claude/youcoded-*.json(remote, skills, model, appearance, defaults, folders, model-modes). - localStorage keys — All
destincode-*keys renamed to theyoucoded-prefix. - Env vars —
DESTINCODE_PORT_OFFSET,DESTINCODE_PROFILE,DESTINCODE_MARKETPLACE_BRANCHrenamed to theYOUCODED_prefix. - PartyKit — Multiplayer lobby moved from
destinclaude-games.itsdestin.partykit.devtoyoucoded-games.itsdestin.partykit.dev. Old project deleted. - GitHub URLs — All internal references updated across sibling repos.
- Android keystore alias —
destincode→youcoded. A fresh keystore is required for signed release builds.