close
Skip to content

Releases: MioMioOS/MioIsland

v2.1.6 — Mio Island

17 Apr 21:24

Choose a tag to compare

修复

  • #30 Live Edit 预览 WYSIWYG:空闲状态调宽度/高度箭头时刘海立即联动,不再 shrink-to-content 让你误以为没生效
  • #57 Pair iPhone 插件面板改为内联式:
    • 未配服务器时显示「第 1 步 · 配置服务器」大卡片(图标 + 解释 + 输入框 + 保存按钮),让服务器配置步骤不可忽略
    • 配置后显示「第 2 步 · 用 Code Light 扫码」,带 QR + 配对码 + 一整行的服务器信息和独立「更换服务器」按钮(不再是小 pill)
    • 完整中英双语
  • #67 Settings → Behavior 新增「完成时自动展开」开关:默认开启保持现有行为,关掉后 Claude Code 回答完就不再自动弹刘海
  • #69 修正 README 里的 cmux 链接(cmux.io → cmux.com)

安装

  • Homebrew: `brew upgrade codeisland`(cask 自动处理 Gatekeeper)
  • 手动: 下载 `.dmg` 或 `.zip`,拖进应用程序,右键打开 → 打开;或终端跑 `xattr -dr com.apple.quarantine "/Applications/Mio Island.app"`

未签名 ad-hoc 构建,macOS 15+,带刘海或外接显示器的 Mac。

v2.1.5 — Mio Island

16 Apr 15:33

Choose a tag to compare

v2.1.5

待机指示器重设计

刘海现在总是显示内容,即使没有活跃会话。待机状态左对齐(圆点 + 像素猫),宽度和活跃对话状态一致,兼容紧凑模式和 buddy 设置。

钥匙串修复

修复每次更新后都要重新输入密码的问题。Ad-hoc 重签名每次都会改变二进制 hash,导致钥匙串 ACL 失效。现使用开放访问 ACL,任意版本的 app 都能静默读取凭证。


Standby indicator redesign

The notch always shows content, even without active sessions. Standby is left-aligned (dot + cat icon), uses the same width as the active conversation state, and respects compact mode and buddy settings.

Keychain fix

Fixed the macOS password prompt appearing on every update. Ad-hoc re-signing changes the binary hash, which broke the keychain ACL. Now uses open-access so any version reads credentials silently.

v2.1.4 — Mio Island

16 Apr 14:54

Choose a tag to compare

fix: standby indicator always visible in notch from app launch, no more flash

v2.1.3 — Mio Island

16 Apr 14:43

Choose a tag to compare

fix: standby indicator now always visible in notch when no sessions active

v2.1.2 — Mio Island

16 Apr 12:53

Choose a tag to compare

What's New

  • Show standby indicator (pixel cat + "Standby") in collapsed notch when no active sessions
  • Users can now see the app is running even without Claude Code sessions
  • Fix background rendering for notch themes

v2.1.1 — Mio Island

15 Apr 11:15

Choose a tag to compare

改进

  • 检查更新按钮 hover 使用品牌绿色
  • 修复 Sparkle 版本比较和签名验证
  • 更新弹窗完整中文本地化

v2.1.0 — Mio Island

15 Apr 11:15

Choose a tag to compare

新功能

  • 应用内自动更新(Sparkle 2 + EdDSA 签名)
  • 设置 → 关于 → 检查更新
  • DMG 安装包支持拖拽到 Applications
  • 中文本地化更新弹窗

v2.0.9 — Mio Island

15 Apr 06:42
8b5d841

Choose a tag to compare

Rename: Code Island → Mio Island

The app is now called Mio Island everywhere — Spotlight, Dock, About panel, and release artifacts. Internal bundle ID (com.codeisland.app) is unchanged for backward compatibility, so your settings and CodeLight connections are preserved.

Bug Fixes

  • Fix cmux diagnostics hang (#60): probeAutomationPermission passed the wrong AEAddressDesc (requestorAddr instead of targetAddr) to AEDeterminePermissionToAutomateTarget, causing the settings panel to freeze when opening the cmux connection tab
  • Fix session detection (#59): discoverClaudeSessionsFromConfig used runShellWithTimeout("/bin/ps") for pid liveness checks, which fails under certain code-signing configurations. Replaced with kill(pid, 0) signal check — faster and works in all environments
  • Fix async/await compiler error: Resolve Swift 6.3 await in nil-coalescing autoclosure (TerminalWriter.swift)

New Features

  • Quit button: Settings → About now has a "Quit Mio Island" button at the bottom
  • Hover speed setting: Three-level hover expand speed control (Fast / 1s / 2s) in notch settings
  • Auto-cleanup ended sessions: Sessions in ended state for over 1 hour are automatically removed

UI Improvements

  • Anthropic API Proxy description text: improved readability (medium weight, gray-white color, wider line spacing)
  • TextField placeholders (proxy URL, plugin install URL): changed from black to light gray for visibility on dark backgrounds
  • Pair phone popup: corner radius clipping, linked devices list spacing
  • Pair iPhone / Settings rows: full-row hover and click support
  • WeChat group QR code added to README contact section
  • Brew install command updated to correct tap path

Installation

Download the DMG, open it, drag Mio Island to Applications.

On first launch, macOS Gatekeeper may block it. Either:

  • Right-click → Open → click Open, or
  • Run: xattr -dr com.apple.quarantine "/Applications/Mio Island.app"

Or install via Homebrew:

brew install xmqywx/codeisland/codeisland

v2.0.8 — Fix phone→terminal routing

13 Apr 13:46

Choose a tag to compare

What's Fixed

This release fixes a regression where messages sent from the iPhone Code Light companion would silently never reach the Claude terminal, even though the phone thought they were delivered.

Three distinct root causes were identified and fixed:

1. ps output truncation

On macOS, ps -Ax and ps -E truncate output to the terminal column width by default. For modern Claude Code + cmux setups, the argv line includes the full hooks JSON (thousands of characters), and the env list is long enough that CMUX_WORKSPACE_ID would get cut off. This made CodeIsland unable to find the target cmux workspace.

Fix: Use -Axww and -Eww to disable truncation.

2. Hardened runtime hides env vars

On some macOS configurations, ps -E returns no environment variables for Claude processes at all, regardless of -ww. This affects hardened-runtime signed Claude binaries.

Fix: The hook script now reads CMUX_WORKSPACE_ID and CMUX_SURFACE_ID directly from its own os.environ (inherited from the parent claude process, which inherited them from the cmux shell), and reports them to CodeIsland via the Unix socket. CodeIsland stores them per-session and uses them as the primary routing path, bypassing ps -E entirely.

3. New Claude Code argv format

Recent Claude Code versions launch with the session UUID as the first positional argument (claude <uuid>) instead of --session-id <uuid>. The old process scanner didn't recognize this format.

Fix: listClaudeProcesses now accepts both formats and validates the UUID shape before accepting.

Who is affected

You should upgrade if:

  • You're running the iPhone Code Light companion paired with a Mac running cmux
  • You notice messages sent from phone appear in the chat history but never trigger Claude to respond
  • Earlier versions (< v2.0.8) had this problem silently

Upgrade

brew upgrade --cask codeisland

Or download the zip, unzip, drag to /Applications, then on first launch: right-click → Open, or run:

xattr -dr com.apple.quarantine "/Applications/Code Island.app"

Code changes

6 files touched: codeisland-state.py, HookSocketServer.swift, SessionState.swift, SessionStore.swift, TerminalWriter.swift, SyncManager.swift. See commit ec98b8fa for details.

v2.0.7 — 修复 cmux 卡死 + 新增诊断面板

13 Apr 11:06

Choose a tag to compare

🐛 重点修复:手机消息发送给 cmux 时 CodeIsland 卡死

根因TerminalWriter 里所有子进程调用(cmux CLI、osascript、ps、lsof)都是同步阻塞的 waitUntilExit(),跑在主线程上。cmux 或 osascript 一旦响应慢或挂起(比如 TCC 自动化权限没给、cmux CLI 卡住、对不存在的 pid 跑 ps),整个灵动岛 UI 就冻住。

修法:所有子进程通过新的 runShellWithTimeout helper 走后台队列,5 秒 SIGTERM + 0.25 秒后 SIGKILL 兜底。再也不会让子进程把主线程拖死。

✨ 新增:设置 → cmux 连接 诊断面板

用来诊断"手机发消息 cmux 没收到"这类静默失败。包含:

  • cmux 命令行 二进制存在性检查
  • 辅助功能权限 实时状态(AXIsProcessTrusted
  • 自动化权限 真实查询 TCC 数据库(AEDeterminePermissionToAutomateTarget),不会触发弹框;区分"已授权 / 被拒 / 未授权过 / 其他错误"
  • 检测到的 Claude 会话数
  • 测试发送 按钮 — 往第一个 cmux 会话发一条 # CodeIsland probe 注释行(shell 会忽略,不污染终端)
  • 请求自动化权限 按钮 — 用进程内 NSAppleScript 主动触发 TCC 授权对话框,免得等发图片时才发现没权限
  • 打开辅助功能 / 自动化设置 快捷跳转

✨ 新增:设置 → 日志 面板

实时 tail ~/.claude/.codeisland.log,error/warning 高亮,自动滚动。三个操作按钮:

  • 复制全部 → 剪贴板
  • 打开文件夹 → Finder 定位
  • 提交 GitHub issue → 自动预填 CodeIsland 版本 + macOS 版本 + 最近日志的 issue 模板。完整日志复制到剪贴板,URL 里只塞 preview 部分(动态裁剪 20→10→5→2→1→0 行)确保不超过 GitHub 8KB URL 限制

🔧 修复:终端跳转卡死/误跳

  • 删除 TerminalJumper 无条件的 cmux fallback——用户在 iTerm 里时不再误发 AppleEvent 到可能没运行的 cmux
  • 新增 isRunning(bundleId:) 检查,每个跳转策略只对实际在跑的终端触发

安装

# Homebrew cask
brew install --cask xmqywx/codeisland/codeisland

# 或者直接下载 CodeIsland-v2.0.7.zip 解压到 /Applications
# 首次运行可能需要:xattr -dr com.apple.quarantine "/Applications/Code Island.app"

本版本依然 ad-hoc 签名未 notarize——原因见 v2.0.2 release notes。