{"testGroup":"beta","releaseChannel":"beta","latestVersionCode":200,"latestVersionName":"0.3.96","apkUrl":"https://xin.gpt1688.net/download/android-latest.apk","rollbackVersionCode":199,"rollbackVersionName":"0.3.95","rollbackApkUrl":"https://xin.gpt1688.net/download/android-rollback.apk","patch":{"available":false,"fromVersionCode":0,"toVersionCode":200,"url":"","sizeBytes":0,"fallbackApkUrl":"https://xin.gpt1688.net/download/android-latest.apk"},"notes":["Client failover is hardened: new installs and upgraded clients seed built-in bootstrap endpoints, migrate retired domains, and expose /app/bootstrap plus /xinxian-bootstrap.json as config mirrors","Default Android API domain now points to https://xin.gpt1688.net, and the old xing.gpt1688.net transition domain has been released from the active fallback list","The backend root path now serves a simple public status and APK download page for testers","AI reply fallback now covers more recorded-screen chat scenes: goodnight, morning, late replies, cold-fight recovery, and security/jealousy reassurance on both Android local fallback and backend fallback","AI chat-quality preflight now checks 25 screen-level scenes with a 20-pass threshold before live WeChat testing, raising the bar beyond basic reply templates","AI reply cards now stay on the first keyboard panel screen, before the context and draft editors, so small-screen testers can see and tap generated replies without hunting below the fold","The AI panel contract now verifies two-tap reply flow plus first-screen reply-card priority: front actions, reply cards, and regenerate/read-clipboard/clear actions remain above the editors","Screen-level beta readiness is now a first-class self-test contract: basic input, AI reply, interaction, stability, and privacy/update gates are explicitly tracked for the v0.4.0 recorded-screen target","Removed an unused older daily-driver acceptance checklist from the Android app so the clean complete checklist is the only real-device acceptance source","Keyboard status feedback now has a self-test contract: AI generating/failure/local fallback, reply insert/send/copy, mode switching, and edit actions must use readable user-facing Chinese instead of debug English or mojibake","Keyboard service and AI reply cards now reuse the shared status feedback contract for core typing privacy, direct-input lock, Chinese/English/9-key modes, reply insertion, send-pending, copy, and failed AI fallback states","Remote config and update failover are now part of the daily-driver gate: old domain failure, fallback promotion, stale-config protection, retryable update failure, and ordinary typing availability are self-tested","When a remote config switches the primary API domain, the app now keeps the previous reachable/current domains in the fallback chain so temporary test tunnels can recover more safely","Daily coverage now includes an explicit AI reply interaction contract for the recorded-screen target: open panel, read user-provided context, auto-generate, show cards, insert/send/copy, regenerate, local fallback, and two-tap insertion","Full daily input flow and closure gates now fail unless the screen-level AI reply card interaction contract passes alongside typing, privacy, and failure-resilience checks","Keyboard AI and voice visible status strings are cleaned to readable Chinese again, including logged-out, blank context, degraded AI, feedback, microphone, recognition, and retry states","AI reply cards now give clearer post-generation status, recover gracefully from empty reply lists, and use shorter compact card action heights on small screens","Enhanced input resilience self-test now uses clean Chinese voice, clipboard, quick phrase, comfort, and meet-up samples instead of corrupted legacy text","Main app now shows a compact screen-level acceptance status near the top, including current QA version, WeChat rounds, AI usability, privacy proof, checklist progress, and the next missing gate","Removed the old mojibake product-goal initializer from the Android settings screen so the displayed acceptance target comes from the clean daily-driver goal text only","Keyboard AI and voice failure states now show clear Chinese status text, explicitly telling testers that ordinary typing still works","Daily coverage self-test now verifies that local AI fallback cards are clean, useful Chinese replies and that regenerate can avoid the previous batch","Removed the old unused Android-side mojibake AI fallback function so future fallback maintenance uses the clean shared policy only","Keyboard AI local fallback now uses clean Chinese screen-level replies, so logged-out, offline, or failed-model states still show usable reply cards instead of corrupted text","AI reply candidates are now clearer cards with per-reply Insert, Send, and Copy actions, while tapping the card still inserts immediately","Full daily QA now records the real WeChat AI reply usability gate: at least 20 AI-assisted reply rounds and at least 16 usable replies are required before the screen-level beta can pass","AI panel flow is tightened for the recorded-screen target: manual Generate is hidden by default, opening AI with an empty clipboard now shows local reply cards, repeated same-clipboard opens keep candidates instead of showing a false generating state, and layout self-test checks the two-tap AI flow","AI degraded mode is now more screen-level: backend fallback reads the incoming chat context and returns scene-specific cards for tired/comfort, missing/flirt, meet-up, refusal, praise, apology, and urgency flows","A backend fallback self-test is available at /admin/ai-fallback-self-test to verify local replies stay useful when the model provider is unreachable","AI backend status is now inspectable from the app and /admin/ai-status: it reports key presence, provider, baseUrl, endpoint, model warnings, live probe result, and classified failures such as network_unreachable or invalid_model","OpenAI-compatible base URLs ending in /v1 are now handled correctly instead of being expanded to /v1/v1/chat/completions","Ordinary typing privacy acceptance is now a hard 100-local-commit proof: the app records a baseline, requires at least 100 normal input commits, and fails unless AI/feedback/analytics request deltas stay exactly 0","Regenerate now stays useful when AI is degraded: backend and Android local fallback keep four reply cards available even when avoidReplies filters the previous batch","Default API/update domain is refreshed to https://repair-hand-telling-cinema.trycloudflare.com after the previous temporary Cloudflare tunnel expired","AI backend prompt and fallback replies now use clean Chinese screen-level mode/tone logic, returning up to four keyboard reply cards for continue, flirt, meet, comfort, apology, refusal, praise, and urging flows","Keyboard AI reply flow is updated from frame-by-frame video study: mode chips, expanded tone chips, thinking state, reply cards, copy first reply, insert first reply, insert-and-send, and regenerate are now reachable inside the keyboard panel","Daily coverage self-test now verifies direct English input and Shift behavior for password, email, URL, account, ID, phone, code, and date/time fields so login and form typing do not fall back into pinyin mode","Daily coverage self-test now includes connectivity resilience: offline, logged-out, API unreachable, remote-config failure, update failure, AI failure, and voice failure must all keep ordinary typing available","Privacy self-test now models explicit user actions: ordinary typing actions cannot read clipboard or hit backend, clipboard reads require AI/clipboard/paste actions, and backend requests are limited to generate/regenerate/feedback/analytics actions","Keyboard AI and edit panels now use capped scrollable height on compact and landscape layouts, so opening enhanced tools does not consume the full keyboard area and daily typing remains reachable","Main app setup screen now puts backend URL, beta group, phone/code login, update check, and IME enable/switch actions before long diagnostics, making small-screen inner-test setup reachable without hunting through status text","Full daily QA scenario evidence now requires per-scenario proof tags for checked scenarios: [SMS], [LOGIN], [BROWSER], [COMMENT], [FORM], [LONG], [ENHANCED], and [FAILURE], preventing broad checkbox-only acceptance","Daily coverage self-test now simulates composing a full mixed WeChat message from input actions, including Chinese pinyin commit, English raw text, numbers, punctuation, newline, URL text, composing backspace, and nine-key sentence coverage","Daily coverage self-test now verifies complete symbol input workflows for chat/comment, password, email, URL, account, ID, number/date, symbol pages, and long-press symbols, so the target is full daily typing rather than basic text entry","Daily coverage self-test now verifies common field-switching sequences, ensuring chat/comment text mode does not leak into password, phone, code, email, URL, ID, or account fields and returns cleanly to text","Full daily QA scenario pass marks now require written real-device evidence, so SMS/login/browser/comment/form/long-message/enhanced/failure checks cannot be checkbox-only","Full daily QA now requires at least 60 real local input commits during the current QA session, preventing time-only or checkbox-only acceptance","Daily coverage self-test now includes enhanced-input resilience rules for logged-out AI, blank AI context, duplicate AI taps, remote AI failure, voice permission/start/recognition failure, clipboard open-only reads, and quick phrase insertion","Full daily QA maturity gate now requires the daily input coverage self-test to PASS on the current APK version; old self-test results expire after an upgrade","Daily layout self-test now verifies direct-key coverage for phone, verification code, number, date/time, password, account, ID, email, and URL fields","Daily-driver target is now complete typing coverage, not basic typing: 18 input needs, real apps, 60 minutes, 30 WeChat rounds, failure resilience, and ordinary typing privacy proof are all required","Ordinary typing privacy gate now requires real local input commits and zero AI/feedback/analytics request delta, sharing the same policy used by self-tests","Daily closure self-test now explicitly checks the nine-key-to-direct-input contract, including URL Chinese search and digit-composing cleanup","Switching from nine-key Chinese mode into English/direct-input fields now exits nine-key cleanly, preventing URL, account, and password workflows from getting stuck on digit-only keys","Removed legacy mojibake quick-phrase and fallback self-test remnants, and expanded mojibake guards so daily QA catches corrupted Chinese candidates earlier","Browser URL Chinese-search mode now exposes a 9KEY/QWERTY toggle, so nine-key users can search Chinese in the address bar without switching input methods","Candidate cleanup now prioritizes clean Chinese daily phrases and filters legacy mojibake from 9-key fallback candidates and self-tests","AI reply generation now has an in-flight guard, preventing repeated taps from starting multiple backend requests while ordinary typing remains available","Input field detection now recognizes common web tel fields as phone keypads and postal/zip-code fields as numeric keypads, reducing wrong Chinese-mode switches in login and form pages","Nine-key text mode now exposes a direct 0 key in the bottom row, making mixed chat like 10点, 100元, and 520 smoother without opening the symbol page","Long-press newline is now limited to normal text fields, keeping login, password, verification-code, URL, phone, number, date, account, and ID fields from inserting accidental line breaks","Enter/Search/Send/Done keys now support long-press newline insertion, so long WeChat messages, comments, and form remarks can add line breaks even when short-press sends or submits","Chinese text keyboard now inserts ！ by long-pressing Space, keeping ，/； and 。/？ on the bottom row for faster chat and comment punctuation","Password keyboard now exposes @ # $ * ! _ - . as visible direct keys, with ~ + / ? still available by long-press, making strong-password entry faster during login and registration","Browser URL keyboard now shows a Space key while in Chinese search mode, so omnibox queries like 心弦键盘 测试 can be typed without switching input methods","Browser URL keyboard now exposes a Chinese/English toggle, so the same address bar can type URLs and Chinese search queries without switching input methods","Form field detection now keeps mailingAddress/mail-address style fields in Chinese text mode instead of mistaking them for email fields","Full daily QA sessions now lock to the APK version that started the test, and the maturity gate requires restarting QA after any APK upgrade","Edit panel now adds word-level cursor movement and word selection shortcuts, improving long WeChat messages, comments, and form correction without switching input methods","URL direct-input keyboard now exposes a visible :// shortcut with long-press https:// while keeping / . ? & = and .com available for browser workflows","URL clipboard extraction call path is consolidated onto the Unicode-escape implementation, keeping browser and login URL paste away from legacy mojibake regex code","URL clipboard extraction now avoids non-ASCII regex literals by using Unicode escapes, preventing encoding drift from breaking browser and login URL paste","Full daily QA now separates ordinary-typing 0-request privacy proof from allowed AI/feedback/analytics requests, so AI testing no longer invalidates the ordinary typing privacy gate","URL clipboard extraction now uses clean punctuation-safe regular expressions, preventing browser/login URL paste from failing on copied Chinese messages","Full daily QA now includes a copyable real-device test script with exact WeChat, SMS, browser, login/register, comment, form, enhanced-input, failure-resilience, and privacy samples","Daily input closure policy now turns WeChat, SMS, browser, login/register, comment, form, failure resilience, privacy, and real-device maturity gates into an explicit PASS/REAL_DEVICE_REQUIRED report","Deletion behavior policy is now centralized and self-tested for nine-key composing, pinyin composing, selection deletion, text deletion, emoji/ZWJ deletion, chunk deletion, and long-press repeat timing","Daily Input Test Lab now includes dedicated enhanced-input and failure-resilience fields plus clipboard samples for AI reply, voice, clipboard, phrases, offline, logged-out, and failure testing","Full daily QA now requires enhanced input and failure resilience scenarios: AI reply, voice, clipboard, phrases, offline, logged-out, AI failure, and voice failure must not block ordinary typing","Editing capability policy is now self-tested for cursor movement, line start/end, delete chunk, clear all, select all, copy, cut, paste, and pending composing handling","Mode transition policy is now centralized and self-tested, covering composing behavior for raw text, Chinese/English switching, 9-key switching, symbol panels, edit actions, voice, Enter, and field changes","Daily-driver acceptance now explicitly covers ID/certificate number input and the Daily Input Test Lab includes a real ID-card field plus mixed clipboard sample","ID/certificate fields now extract copied ID-card numbers from mixed clipboard text before insertion, improving real form workflows","Input mode detection now covers ID/certificate fields, domain/homepage hints, and more account identifiers such as WeChat and QQ, reducing wrong Chinese-mode switches in forms","Email and URL fields now use the direct text keyboard with a visible number row while keeping their dedicated shortcuts, making login and browser input faster","Keyboard long-press symbols now guard against also firing the short-click key, improving password, URL, symbol, and punctuation input reliability","Daily Input Test Lab now has clean readable labels plus dedicated comment, required-symbol, AI-context, and symbol/comment clipboard scenarios","Daily QA maturity gate now requires the full 18-item daily input checklist before the IME can be called a daily replacement","Full daily QA now has an explicit maturity gate summary and copied reports list the remaining blockers before the IME can be called a daily replacement","LocalPinyin fallback candidates now avoid legacy mojibake dictionaries and daily fallback self-test uses clean Chinese expectations with mojibake checks","Raw text insertion is now safer: quick phrases, clipboard text, AI replies, and emoji clear unfinished composing instead of accidentally committing a half-typed candidate, while single punctuation still commits composing first","Small-screen and landscape usability now has an ultra-compact keyboard sizing profile, with daily layout self-test reporting touch heights and panel height","Visible quick phrases are now switched to a clean daily-use Chinese set for chat, SMS codes, links, shopping, comments, forms, and relationship replies, and the layout self-test checks for visible phrase mojibake","Privacy/network policy is now centralized and self-tested: ordinary typing, logged-out AI, blank AI context, feedback without login, and analytics opt-out do not send or count backend requests","Enter action behavior is now centralized and self-tested for Send, Search, Go, Done, Next, Previous, multiline newline, and single-line fallback","Daily input coverage self-test now checks clipboard extraction for SMS codes, phone numbers, amounts, date/time, email, and full-width copied URLs","Daily input coverage self-test now checks core input behaviors: composing, backspace-before-text, candidate commit clearing, English mode direct input, clear, and long pinyin candidates","Daily input coverage self-test now reports PASS/FAIL expectations for text, WeChat/comment, search, code, password, phone, amount, date, email, URL, and account field modes","Daily input coverage self-test now verifies actual keyboard layout data for required ASCII symbols, letter long-press symbols, quick phrases, and comment shortcuts","Backspace now deletes emoji modifiers and zero-width-joiner emoji sequences as one visible unit, reducing broken emoji leftovers in chat and comments","LocalPinyin fallback now includes the same daily SMS, link, address, shopping, comment, and reply candidates used by nine-key and quick phrases","Quick phrases now cover daily chat, SMS-code help, address/link sharing, shopping questions, comments, and form workflows","v0.3.0 expands nine-key daily candidates for search, forms, SMS codes, shopping comments, address sharing, and common reply flow","Chinese/English switching is now pinned to the keyboard bottom row, so mixed Chinese and English chat does not require searching the toolbar","The real-device daily-driver acceptance checklist now displays clean Chinese text, so testers can read and complete all 18 gates","LocalPinyin fallback now has a clean high-frequency Chinese phrase layer, so typing remains readable if native Rime is unavailable","Daily input coverage self-test now reports LocalPinyin fallback results in addition to RimeNative and nine-key checks","Enter action fallback is improved: if an app does not handle Next/Previous/Done, the keyboard now sends Tab, Shift+Tab, or hides the keyboard instead of inserting an accidental newline","Email and URL paste now extract account addresses and links from mixed copied text, including full-width punctuation in copied Chinese messages","The daily input test lab now includes a copied email/URL sample for browser and login-field testing","Phone, number/amount, and date/time paste now clean copied form text before insertion, such as extracting +8618078821325, 1234.56, or 2026-06-14 18:30 from mixed clipboard text","The daily input test lab now includes a copied form sample covering phone, amount, and date/time paste testing","Switching between input fields now clears pending pinyin and nine-key composing state before applying the new field mode, reducing dirty-state commits in login, URL, phone, and chat fields","Verification-code paste now extracts the first 4-8 digit code from copied SMS text, so login forms can insert 123456 instead of the whole message","Password, email, and URL keyboards now expose a compact one-tap paste key directly in the bottom row","The daily input test lab now includes a one-tap copied SMS-code sample for real-device login testing","The app now states the daily-driver goal clearly: 心弦 must cover all real typing needs, not only basic Chinese input","The real-device acceptance checklist is expanded to 18 gates covering Chinese 26-key, 9-key, English, numbers, ID/certificate numbers, dates, phone, code, password, email, URL, symbols, emoji, clipboard, editing, Enter actions, voice, AI insertion, app scenarios, privacy, and 1-hour stability","Clipboard insert now preserves copied text exactly, including leading/trailing spaces and line breaks, while AI generation still handles blank context safely","AI panel now shows local one-tap reply candidates when clipboard/chat context is empty, offline, or not logged in, so AI failure never blocks ordinary typing","Voice input now safely commits pending pinyin before listening and falls back cleanly when permission, recognizer availability, startup, or recognition fails, keeping ordinary typing available","Edit panel now adds line start, line end, delete previous word/chunk, and clear-all actions for long WeChat messages, comments, forms, and browser text fields","Nine-key pinyin dictionary is cleaned and expanded with readable daily chat, login, search, browser, Xiaohongshu comment, and form phrases","Nine-key self-test now checks clean Chinese daily candidates for chat replies, login fields, comments, address forms, and notes","Phone, number, amount, and date/time direct-input keyboards now include one-tap Paste so copied form values can be inserted without switching keyboards","Password fields now use a dedicated direct-input keyboard with a visible number row and one-tap @, #, !, _, -, and . shortcuts for login and registration flows","Date and time fields now use a dedicated direct-input keypad with /, :, -, decimal, and space access for birthdays, schedules, forms, and timestamps","Keyboard toolbar is now horizontally scrollable with fixed minimum button widths, keeping AI, voice, clipboard, phrases, edit, emoji, Chinese/English, 9KEY, and symbols reachable on small screens","Default API/update domain is moved to the verified http2 Cloudflare tunnel after full APK download validation","Default API/update domain is refreshed to the active Cloudflare tunnel so new installs do not point at the expired test tunnel","Keyboard symbol configuration is repaired so the required ￥ symbol is available from long-press and symbol pages instead of mojibake","A one-tap emoji toolbar entry opens the emoji/chat shortcut page directly, making WeChat and comment input faster","Nine-key pinyin daily coverage is expanded with high-frequency chat, login, browser, comment, and form phrases such as 收到, 没问题, 手机号, 验证码, 姓名, 搜索, 小红书, 评论, 表单, and 我们慢慢聊","Nine-key self-test now checks more daily phrases beyond the original minimum set, making 9KEY readiness easier to audit","Real-device daily input acceptance now persists checklist progress, restores checked items when reopened, and lets testers copy the acceptance report from the app","Keyboard now includes an edit panel for daily long-text work: move cursor left/right, select all, copy, cut, and paste without switching input methods","Verification-code detection keywords are repaired from mojibake, so SMS/login code fields can reliably switch to the numeric code keypad","The app now includes a Daily Input Test Lab with real EditText fields for chat, search, URL, email, phone, verification code, password, number/date, and form remarks","AI reply prompt and local fallback text are repaired from mojibake, so replies now receive readable Chinese context and stay closer to the copied chat message","Small-screen and landscape keyboard layout is now more compact: shorter toolbar labels, lower key heights, smaller candidate controls, and shorter phrase panels keep buttons reachable","IME diagnostics now include screen width/height, orientation, and whether compact keyboard layout was active during testing","A daily ASCII symbol page now exposes , . ? ! : ; @ # % & + - = / \\ ( ) \" ' and ￥ in one place for chat, comments, search, forms, and browser input","Local diagnostics now show local input commit counts plus AI/feedback/analytics network counters, with ordinary typing backend requests kept at 0","Verification-code and OTP fields are now detected from hint/action/private IME metadata and use a numeric direct-input keypad with a user-tapped Paste key","Non-text fields now use a compact toolbar, keeping AI, clipboard panels, quick phrases, Chinese mode, and nine-key controls out of phone/code/password/email/URL entry","Email and URL keyboards add more direct shortcuts such as + and : so common form and browser input needs fewer panel switches","Phone, verification-code, password, number/date, email, and URL fields now hide/block Chinese-mode switching so pinyin mode cannot disrupt login and form input","The Enter key now follows the target field action, showing Send, Search, Go, Done, Next, Previous, or Newline while keeping editor actions intact","A local IME diagnostic snapshot is now available in the main app for inner testing, with mode/engine/candidate metadata but no ordinary typed text, clipboard text, candidates, or AI context","The diagnostic snapshot can be copied from the app when testers hit typing, deletion, voice, AI, or mode-switch issues","Backspace now handles real chat editing better: selected text is deleted first, emoji are deleted as a whole character, and normal text deletion still works one character at a time","Bundled Rime and fallback pinyin dictionaries have been cleaned so candidates show readable Chinese instead of mojibake","Long-message daily chat candidates were added, including 我们慢慢聊 and 我想好好和你说, and the daily self-test now checks them","Nine-key pinyin candidates now use a dedicated daily-chat index instead of a tiny inline map, covering more common Chinese chat phrases","The daily input coverage self-test now includes nine-key checks for 你好, 我想你, 谢谢, 好的, and 有空吗","Scenario keyboards are now available for phone, numeric/date, email, and URL fields, with direct keys for common login, verification-code, browser, and form input","Non-text fields no longer show the nine-key pinyin switch, reducing accidental mode changes in phone/code/password workflows","Main app now includes a real-device daily input acceptance checklist for WeChat, SMS, browser, login forms, comments, forms, long messages, enhanced input, offline/login failure, and 1-hour stability","Acceptance checklist results are saved locally and shown in Settings & Privacy, making v0.3.0 readiness easier to audit","Input mode classification is now centralized and self-testable for normal text, passwords, phone, numbers, dates, email, and URL fields","Main app now includes a daily input coverage self-test that reports engine checks plus input-field mode decisions","Settings and privacy text is cleaned up so API, fallback API, version, remote config, voice permission, and AI upload boundary are readable","Daily input coverage polish: Enter now performs Send/Search/Done actions when an input field requests it, otherwise inserts a newline","Input fields adapt more cleanly for passwords, phone numbers, verification codes, dates, email, URL, and normal Chinese text","Quick phrases now include 20 local relationship-chat phrases, and the symbol panel includes emoji/common chat shortcuts","AI, voice, clipboard, and quick phrases can fail independently without blocking ordinary typing","Basic IME polish: redesigned keyboard toolbar with AI, Voice, Clipboard, Quick Phrases, Chinese/English, 9-key, and Symbols","Clipboard center is now available inside the keyboard: insert copied text or send it directly into AI reply generation","Quick phrases panel adds local relationship-chat phrases that insert instantly without calling the backend","Keyboard visible labels are cleaned up for candidates, punctuation, space, enter, backspace, and AI status","Three-layer update foundation is available: behavior hot config, resource manifest downloads, and differential update metadata with APK fallback","AI goal and tone buttons now generate immediately, so users can tap Continue/Flirt/Meet/Comfort or tone options without pressing Generate again","AI reply panel now auto-loads clipboard text and auto-generates the first default reply batch when opened","AI reply panel now prefers user-selected text as explicit context when opened, without logging the selected content; clipboard remains the fallback","AI reply Insert-and-send now uses a dedicated send action: it commits the reply, prefers the host app editor action, and falls back to an Enter key instead of inserting a newline","AI panel first row now matches the recorded chat-keyboard flow: Help Me Reply, High EQ, Sweet, and Refuse all auto-generate without a separate Generate tap","AI fallback self-test now covers eight screen-level chat scenes including apology, praise, and sweet-tone comfort","Backend and app now expose an AI 20-round chat preflight: /admin/ai-chat-quality-self-test checks at least 16 of 20 screen-level scenes before real WeChat acceptance","The app now auto-checks updates on launch with visible status, always refreshes remote config before checking, and prompts users when a newer version is available","Main app settings screen is now scrollable, and Login/Check Update buttons are moved higher so they remain reachable on small phones","Default API now points to the active Cloudflare tunnel, old LAN test addresses migrate automatically, and the settings input refreshes after remote config sync","Remote app config is available: the app can pull primary and fallback API domains, save new domains, and fail over when the current domain is unavailable","Nine-key pinyin MVP is available: 9KEY layout, digit composing, common phrase candidates, space commit, candidate tap, and digit-first backspace","Android update checks now send an inner-test group; the LAN backend can return beta or stable channel metadata per group","Inner test group: beta (beta channel)","LAN backend now exposes /admin/metrics for inner-test AI success/fallback, feedback, and opt-in event counters","Update API now exposes a rollback/stable APK channel, and the Android update dialog can download the stable version","App now records a local-only last crash snapshot and shows it in Settings & Privacy for inner-test troubleshooting","Settings & Privacy now includes an opt-in anonymous usage analytics switch; automatic event uploads are disabled by default","Main app now includes a lightweight Settings & Privacy center showing input options, voice permission, AI upload boundary, local data, update URL, and version","Voice input now shows listening/recognizing states, maps recognition errors, and lets users tap Voice again to retry","Voice input now detects missing microphone permission from the keyboard and opens the main app to request authorization","AI reply generation now shows local fallback replies when the backend/model call fails, so ordinary typing and reply insertion remain usable","AI reply panel can import clipboard text into the chat context field without calling the backend until Generate is tapped","Input fields now auto-adapt keyboard mode: password/email/URL use English direct input, number/phone fields open the symbol keyboard","新增数字/符号键盘多页切换","新增字母与常用标点长按副符号输入","新增按键按下反馈、轻触震动、Shift 大小写和长按连续删除","新增恋爱聊天场景词库，常见关心、安抚、约见短语候选更靠前","新增本地用户词频记忆，用户选过的 fallback 候选会优先","新增 FZY 模糊音开关与 S/T 简繁切换入口","新增候选词翻页按钮与 Rime change_page 接口","新增 adb smoke 与 Android AVD runtime 验收工具","输入核心诊断新增实际 librime 版本","四个 Android ABI 均已真实链接 librime","native 初始化失败仍会安全回退","普通打字不上传，AI 仍需用户主动点击生成","下一步继续补齐设备实测"],"force":false}