54 Commits
Author SHA1 Message Date
okooooooo cbd1c483bf Update README_EN.md 2026-10-18 23:45:03 +08:00
okooooooo fd90ed884b Update README.md 2026-10-18 23:44:44 +08:00
okooooooo e7e27f6a5b Rename README.zh-CN.md to README.md 2026-10-18 23:44:13 +08:00
okooooooo bd8f198066 Rename README.md to README_EN.md 2026-10-18 23:43:59 +08:00
yi111 68751e4d89 fix(readme): describe explicit model selection instead of automatic picking (#19)
The setup step 4 and model section said the app picks a model automatically,
but the app requires choosing one explicitly. Update the docs to match.
2026-10-18 08:06:23 +08:00
Eliot AndresandClaude Opus 5.5 6dec6a60ec Fix launch crash when MetricKit delivers a diagnostic (#16)
DebugLog.write is called from any thread, but its relay assumed the
main actor. MetricKit delivers payloads on a background queue, so
CrashReports.didReceive trapped in MainActor.assumeIsolated on launch,
and every crash queued another payload for the next launch.


Claude-Session: https://claude.ai/code/session_01KN6Wd5bdgWERis2b4x9Rm3

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 20:35:10 +08:00
Henry ff2e228087 docs: explain raw run exports for agent review 2026-10-17 03:08:25 +08:00
Henry 9b1a667424 docs: warn against running install commands posted in issues or comments 2026-10-16 15:12:47 +08:00
HenryandClaude Opus 5.5 81a59ff8a3 ios: review contact, notes and zh-Hans listing draft
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 13:33:07 +08:00
HenryandClaude Opus 5.5 3573445307 ios: no "iPhone" in the Run Task intent description (ITMS-90626)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 13:25:22 +08:00
HenryandClaude Opus 5.5 20e5d6aeb7 ios: store release prep — TestFlight lane, crash reports, privacy manifest
- Drop the private UIApplication suspend selector (guideline 2.5.1); Cmd+H and the home flick remain
- iphoneagent:// debug commands only in Debug builds, so web pages can't start runs
- MetricKit crash/hang reports kept in Documents/diagnostics and included in Export all logs
- About › Report a bug opens a prefilled GitHub issue
- PrivacyInfo.xcprivacy for app and widget; ITSAppUsesNonExemptEncryption = false
- App and widget share MARKETING_VERSION / CURRENT_PROJECT_VERSION
- fastlane beta: Release archive with the LLM preset cleared and checked, then TestFlight upload
- Store listing draft (fastlane/metadata) and docs/privacy.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 13:25:22 +08:00
Henry Yuan 9a2b6cbb4b Merge OpenRouter setup, connection recovery, and run feedback improvements
Add OpenRouter configuration and searchable model selection, improve Bluetooth setup guidance, expose request timings and run status, and provide clear failure details with reconnect-before-retry recovery. All four CI checks passed.
2026-10-16 12:00:35 +08:00
Henry d7ebad5fa7 Merge main before OpenRouter and reliability release 2026-10-16 11:55:38 +08:00
Henry 6e456655a7 Use text-only status in the minimal Dynamic Island 2026-10-16 11:52:09 +08:00
Henry 58992042e0 Keep active run status consistent across list and review 2026-10-16 11:37:37 +08:00
Henry 851a8c6110 Explain failed runs and reconnect before retrying 2026-10-16 11:31:42 +08:00
Henry 32267d6306 Show home refresh progress as an unlabeled top spinner 2026-10-16 11:26:22 +08:00
Henry c995e419c8 Add home status refresh through pull and character gestures 2026-10-16 11:23:08 +08:00
Henry c12039631e Drive Island waiting and planning text from model response progress 2026-10-16 11:04:26 +08:00
Henry 7c7b656e02 Show model timings and recover timeouts with visible Island status 2026-10-16 10:54:40 +08:00
Henry e8e8110497 Illustrate placing the board beside the phone during setup 2026-10-16 10:20:11 +08:00
Henry dea9977222 Record successful post-update OpenRouter device check 2026-10-16 10:17:08 +08:00
Henry acc3a24e4b Clarify OpenRouter checks and add searchable model selection 2026-10-16 10:16:11 +08:00
Henry 70857e503c Show proximity guidance before discovery and keep it visible on screen 2026-10-16 09:17:25 +08:00
Henry 346feea2d5 Fix board setup recovery and simplify model provider configuration 2026-10-16 00:47:10 +08:00
onehumanbeing d427a2f908 README: add recommended-models list to roadmap 2026-10-15 22:59:02 +08:00
onehumanbeing 8effa8c0cc docs: merge app screenshots into one row 2026-10-15 11:47:34 +08:00
onehumanbeing a7bd8e2c0a docs: add app screenshots 2026-10-15 11:31:56 +08:00
onehumanbeing 11af0ad203 docs: drop App Store/TestFlight roadmap item 2026-10-15 10:12:41 +08:00
HenryandClaude Opus 5.5 e035e424f4 docs, CI: README for the no-computer version, legacy notes, app + firmware CI
server/ stays as the legacy v0.1.0 setup (tag v0.1.0, branch legacy).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 09:55:35 +08:00
HenryandClaude Opus 5.5 f911d841c0 ios: ESP32 Agent app, the agent now runs on the phone
SwiftUI app: BLE link, VideoToolbox decode, planner/actor loop ported from the server, pointer calibration and
aim, four-step setup, run replay and review, Live Activity / Dynamic Island, widgets, Siri and Shortcuts,
self-healing when the board, hotspot or mirroring drops, redacted run export. Prompts live in prompts/.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 09:54:13 +08:00
HenryandClaude Opus 5.5 80f27a5bbb firmware: the board receives AirPlay itself and talks to the app over BLE
- AirPlay mirroring receiver ported from UxPlay (src/airplay/, GPL-3.0): mDNS, RTSP, pairing, FairPlay, AES-CTR
- Own Wi-Fi hotspot with a random per-board password in NVS (optional STA mode for testing)
- BLE GATT link (NimBLE-Arduino): commands, status, H.264 video forwarded from a PSRAM GOP buffer
- USB HID unchanged in spirit; adds the consumer Home key
- Host tests (bplist, GOP buffer) and a Mac BLE test harness (tools/)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 09:54:13 +08:00
HenryandClaude Opus 5.5 f9948d27e1 docs: BLE protocol between the board and the iOS app
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 09:54:13 +08:00
Henry 1f6a51aa3d docs: add exploratory roadmap direction 2026-10-14 00:19:49 +08:00
Henry 88a51030b5 docs: drop the Xiaohongshu link from the English README 2026-10-13 01:38:15 +08:00
HenryandClaude Opus 5.5 1315d5759a docs: name the exact XIAO ESP32S3 version and where to buy it
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 00:50:31 +08:00
Henry d300a0a518 docs: link X, Xiaohongshu and the demo video in the README 2026-10-13 00:42:19 +08:00
HenryandClaude Opus 5.5 68584cfc8b docs: show two examples in the README, drawing a smiley and setting an alarm
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 21:20:52 +08:00
HenryandClaude Opus 5.5 1fce18425e firmware: watchdog, fast reconnect, never block on a sleeping phone; docs
- a task watchdog restarts the board if its loop stops responding
- retry the server every 200 ms so the board shows up right after it joins Wi-Fi
- when the phone's USB is suspended, try to wake it and otherwise answer 'err phone usb asleep'
- greet the server with the last reset reason and uptime
- README (EN/ZH): protocol hello, automatic calibration, motion switch, XIAO antenna, landscape limitation

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 21:09:53 +08:00
HenryandClaude Opus 5.5 94396fdab2 ui: red tap marker with ripple, motion switch, inline calibration hints
- taps get a large red ring and an animated ripple; a Motion switch turns animation off
- calibration progress and instructions show right under the phone
- manual controls no longer get cut off when expanded
- Clear history also empties the task box; precise taps are labelled in the log
- first example: set a 7:00 AM alarm that repeats every day

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 21:09:53 +08:00
HenryandClaude Opus 5.5 099fd8dcd8 server: board heartbeat, safer keep-awake, no-cache UI, OpenAI token parameter
- ping the board every 2 s so an unplugged or silent board shows as gone within seconds
- never nudge the pointer right after the board connects or while the phone is not mirroring
- read and log the board's hello (last reset reason, uptime)
- serve the web UI with Cache-Control: no-cache so updates show on refresh
- LLM_TOKEN_PARAM (auto by default) for models that want max_completion_tokens

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 21:09:53 +08:00
HenryandClaude Opus 5.5 b27a47ebae pointer: two-point auto calibration, learned correction, sensitive change detection
- calibration finds the pointer at two distances and fits scale and offset; it is saved with the
  landings seen while aiming, so every later move is corrected
- search the whole screen when the pointer is far from the target; ignore implausible readings
- rest before lifting a swipe (no momentum) and after a click (no accidental drag)
- detect small changes such as a checkmark, masking the pointer and the status bar
- mirroring counts as live only while the phone is connected to UxPlay (Linux)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 21:09:53 +08:00
HenryandClaude Opus 5.5 b0ca43f4d1 agent: batch independent taps, precise taps, and stronger self-checks
- give several DO lines when actions do not depend on each other (e.g. ticking days)
- 'tap X Y precise' locates the pointer and corrects it before tapping small targets
- reject an action that just changed nothing; repeating a scroll that still moves is not 'stuck'
- history shows actions and their effect only, so the model looks again instead of echoing itself
- prompt rules for momentum-free swipes, time wheels (tap then type) and searching lists

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 21:09:53 +08:00
Henry Yuan 86bbe2cfe0 README: lead with No Mac 2026-10-12 20:01:59 +08:00
HenryandClaude Opus 5.5 27f36ce0f5 docs: use a clearer UI screenshot as the demo, move the setup photo to Hardware
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 04:43:28 +08:00
HenryandClaude Opus 5.5 23f9e65788 ui: keep model names on one line
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 04:36:05 +08:00
HenryandClaude Opus 5.5 9e50ed4c98 docs: add demo image to the README
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 04:08:58 +08:00
Henry YuanandHenry Brain 17d3afb5e8 docs: add Related projects comparison (EN/ZH) (#1)
Co-authored-by: Henry Brain <grok@henryht.sh>
2026-10-12 03:54:11 +08:00
HenryandClaude Opus 5.5 d1d54fad6b CI: update actions to Node 24 versions
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 03:13:42 +08:00
HenryandClaude Opus 5.5 da099a51e6 Add README in English and Chinese
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 03:10:13 +08:00