Releases: TongilKim/ClauTunnel
Releases · TongilKim/ClauTunnel
Release list
Fix pairing screen on cold restart from Expo Go
Bug Fixes
-
Fix pairing screen shown on cold restart from Expo Go (#54, #56)
- Expo Go caches the initial deep link URL — on cold restart, the same
code=from the previous QR scan caused the app to sign out
the valid session and show the pairing screen - Track last redeemed pairing code in SecureStore to skip re-pairing for cached URLs
- Cache auth tokens in SecureStore adapter to recover sessions when Supabase's internal refresh fails on cold start (network not
ready) - Validate
expires_aton sessions returned bygetSession()and refresh expired tokens synchronously - Skip cached token recovery when a new pairing code is present to avoid restoring old sessions during re-pairing
- Expo Go caches the initial deep link URL — on cold restart, the same
-
Fix mobile server setup (f3ad7c5)
- Reset local changes before
git pullin mobile server setup to avoid conflicts
- Reset local changes before
Improvements
- Auto-detect local mobile project in monorepo —
pnpm startfromapps/clinow automatically uses the siblingapps/mobile
directory instead of cloning to~/.clautunnel/repo/, eliminating the need forclautunnel mobile-setupduring development
v1.7.0
What's New
QR-Based Device Pairing
Replace email/password mobile login with secure QR code pairing. Run clautunnel start on your computer, scan the QR code with Expo Go, and you're connected — no credentials to type on your phone.
- Pairing codes are reusable within a 5-minute TTL for easy reconnection
- Automatic retry on network errors during background→foreground transitions
- Account switching support: scanning a new QR while already paired signs out the old session first
- Pairing codes created via Edge Function (service role) with direct INSERT policy removed
clautunnel reset Command
New built-in command to cleanly reset to a fresh user state — stops processes, clears Supabase data, uninstalls CLI & ngrok, and removes local config. Supports --skip-db and --skip-ngrok flags.
Bug Fixes
- Fix "Network request failed" when scanning QR after disconnect (retry with delay)
- Fix instructions screen flashing briefly during warm-start deep links
- Fix error screen flashing for one frame before pairing spinner appears
- Move Expo Go install links below QR code for better readability
- Reorder reset steps so CLI uninstall runs last (safer if earlier steps fail)
- Add port 8081 cleanup to reset script
- Fix Expo port conflicts in
clautunnel start
Tests
- Add P0 auth store tests: retry logic, verifyOtp failure, re-pairing sign-out, initialize with existing session/URL, onAuthStateChange updates, disconnect cleanup
- Add pair screen logic tests: cold/warm-start deep link guards, URL parsing, render state decisions
v1.6.2
What's New
CLI
- Auto-kill stale ngrok processes — leftover ngrok processes no longer cause
ERR_NGROK_334when starting a new tunnel - Expo Go install links — first-time users now see iOS/Android install links above the QR code, preventing the "No usable data found" error when Expo Go isn't installed
v1.6.0
What's New
Mobile
- Fix markdown clipping in chat bubbles — long inline-code tokens and paragraphs no longer get cut off mid-word
- Widen tool-use message cards — Edit/Write/Tool cards now fill the assistant bubble width instead of shrinking to content
- Fix badge count — ended session count is now shown instead of offline count
- Input messages no longer grouped — each user message renders as its own bubble, matching expected chat UX
CLI
- Auth error detection — auth/API errors are now detected and broadcast to mobile
- Harden compact fallback — improved completion handling in compact mode
E2E Testing
- Comprehensive Maestro test suite — added 20+ edge-case flows covering permissions, model picker, command search, session CRUD, resume, and more
- Seq-based testIDs — user message bubbles now use stable seq-based identifiers instead of position-based indices
- Tool-use width probe — runtime width verification for tool-use cards in test mode
- Android + iOS CI — stabilized E2E runs on both platforms
CI/CD
- Codex PR review + Claude fix workflow — dual-agent review pipeline
v1.5.1
Highlights
- Stabilized the Plan Mode approval flow: when approving
ExitPlanMode, the CLI now safely falls back to the original input ifupdatedInputis missing. - Unified permission mode validation by moving duplicated validation logic into a shared utility.
- Hardened pending-state cleanup during session/model/permission transitions to prevent stuck permission/question UI states.
- Improved shutdown and stop reliability: better machine
offlinehandling on shutdown and safer PID-file based stop behavior. - Aligned session list online/offline status semantics with chat room status behavior.
- Moved the session status dot to sit next to the
Active/Endedlabel in the session card. - Fixed mobile chat header layout so long titles no longer overlap with status badges (for example
CLI Offline).
Testing
- Added/expanded regression tests across CLI and mobile for permission mode flow, pending-state cleanup, PID handling, and session status rendering.
Update
- npm:
npm install -g @tongil_kim/clautunnel@1.5.1 - Homebrew:
brew update && brew upgrade clautunnel
Full Changelog: v1.5.0...v1.5.1
v1.4.0
What's Changed
- feat: Add PR review agent with GitHub Agentic Workflows by @TongilKim in #1
- refactor: Remove dead code and consolidate duplicated logic by @TongilKim in #2
- Fix: Send error feedback when rejecting duplicate requests by @TongilKim in #3
- Fix AskUserQuestion deadlock in SDK session by @TongilKim in #5
- chore: Change default model from Sonnet 4.5 to Opus 4.6 by @TongilKim in #6
- fix: Prevent isProcessing deadlock on unexpected stream termination by @TongilKim in #7
- fix: Auto-grow multiline input and fix Claude message bubble width by @TongilKim in #8
- fix: Queue messages during processing & add status sync by @TongilKim in #9
- fix: Show all ended sessions in resume picker by @TongilKim in #12
- feat: Auto-set session title from first user message by @TongilKim in #13
- fix: Update session title in real-time and fix overflow by @TongilKim in #14
- fix: Broadcast model confirmation when model doesn't change by @TongilKim in #15
- ui: Replace Claude text avatar with official logo by @TongilKim in #16
- feat: Collapsible code diff display for tool use by @TongilKim in #17
- perf: Use expo-image for Claude avatar to fix slow icon rendering by @TongilKim in #18
- feat: Add cancel/stop button to interrupt Claude mid-processing by @TongilKim in #19
- chore: Remove unused expo-haptics from all components by @TongilKim in #20
- fix: Prevent expanded tool accordion from pushing content behind input bar by @TongilKim in #21
- fix: Auto-fallback to new session when resume fails by @TongilKim in #22
- feat: Status-response and typing indicator on reconnect by @TongilKim in #23
- fix: Persist Supabase session tokens after refresh by @TongilKim in #24
New Contributors
- @TongilKim made their first contribution in #1
Full Changelog: v0.1.9...v1.4.0
v0.1.9
What's New
- Updated SDK version
- Bug fixes and improvements
Install
npm install -g @tongil_kim/termbridgeOr via Homebrew:
brew tap TongilKim/termbridge
brew install termbridgeFull Changelog: v0.1.8...v0.1.9