Commit Graph
845 Commits
Author SHA1 Message Date
key 0b652a3835 fix: align Tika parser with 500MB uploads 2026-07-29 21:45:52 +08:00
key 140aa6f31f fix: allow 500MB async knowledge uploads 2026-07-29 17:55:12 +08:00
key 6ba7df863f chore: add UI audits and reconcile release docs 2026-07-29 16:10:46 +08:00
key d08d3fb921 fix(release): wait for backend readiness 2026-07-29 15:25:08 +08:00
key 652e48884b fix(aihr): recover stalled media processing 2026-07-29 15:09:01 +08:00
key f17b904b5c docs(release): register complete external gate archive 2026-07-29 12:55:01 +08:00
key 46f4616bd4 fix(release): gate channel and distribution acceptance 2026-07-29 12:51:31 +08:00
key 5ee002ddcd docs(release): register self-consistent handoff archive 2026-07-29 12:46:15 +08:00
key 9c53668c84 fix(release): stamp current package in audit snapshot 2026-07-29 12:43:48 +08:00
key 7548387430 docs(release): register strict 0.1.13 handoff 2026-07-29 12:43:03 +08:00
key 63968f3368 fix(release): enforce August 1 business readiness 2026-07-29 12:40:11 +08:00
key c0b55efc29 docs(release): clarify remaining content gates 2026-07-29 12:29:00 +08:00
key dd04b3b71a docs(release): register reproducible 0.1.13 handoff 2026-07-29 12:28:31 +08:00
key fee80877de fix(release): make August 1 handoff reproducible 2026-07-29 12:25:20 +08:00
key 6e2b6025c1 docs(release): register 0.1.13 delivery archive 2026-07-29 12:20:23 +08:00
key cc1865a979 docs(release): register Android 0.1.13 candidate 2026-07-29 12:18:00 +08:00
key af8af2f6dd fix(release): remove completed auth gaps from RC 2026-07-29 12:07:58 +08:00
key 70e5516ff3 fix(release): close fixed-code mobile auth gaps 2026-07-29 11:59:30 +08:00
key 3c92edd23d docs(release): register Android 0.1.12 package 2026-07-29 10:38:06 +08:00
key 6bf365d591 docs(android): adopt login-page legal consent 2026-07-29 10:35:41 +08:00
key b9e0878926 fix(android): share public legal URLs with cloud builds 2026-07-29 10:07:22 +08:00
key 7f3357c7a1 fix(android): use login consent instead of native privacy prompt 2026-07-29 09:59:41 +08:00
key f322f2b21b docs: register enhanced Android operations package 2026-07-29 03:45:16 +08:00
key 71f005c229 fix(android): capture privacy exit states 2026-07-29 03:43:30 +08:00
key 8354e4e9c2 docs: register final August 1 dual-freeze package 2026-07-29 03:40:33 +08:00
key 414af66eed docs: align August 1 dual-commit freeze 2026-07-29 03:39:19 +08:00
key 861fa0ea76 feat(release): package runtime and operations freezes 2026-07-29 03:38:19 +08:00
key 2d5568f94b test(release): verify Android production routes read-only 2026-07-29 03:34:21 +08:00
key 99958f42fc fix(release): protect backend recovery races 2026-07-29 03:30:39 +08:00
key 39476b2244 feat(release): gate backend deploy and rollback 2026-07-29 03:28:10 +08:00
key c3e0789f29 test(android): capture read-only acceptance evidence 2026-07-29 03:22:19 +08:00
key feece9bb74 fix(release): verify frozen backend artifacts 2026-07-29 03:14:26 +08:00
key 771d8552fa docs: record scoped production preflight 2026-07-29 03:10:52 +08:00
key 566f222e82 fix(release): support scoped backend preflight 2026-07-29 03:05:16 +08:00
key ab7d18406f docs: narrow Android production release scope 2026-07-29 03:01:40 +08:00
key 04b35c055f docs: refresh Android 0.1.10 release evidence 2026-07-29 02:53:10 +08:00
key dc20b92061 fix(mobile): recover direct channels after network failure 2026-07-29 02:31:19 +08:00
key 376a7c4b84 docs: record Android 0.1.9 RC evidence 2026-07-29 02:23:06 +08:00
key cb928edafd fix(mobile): handle file picker cancellation 2026-07-29 02:01:45 +08:00
key fd59421574 docs: record Android overlay lifecycle evidence 2026-07-29 01:56:23 +08:00
key 8d291d1483 docs: refresh August 1 RC evidence 2026-07-29 01:52:01 +08:00
key 8764031d4a release: gate August 1 content candidates 2026-07-29 01:36:07 +08:00
key 6a1f672892 docs: record Android 0.1.8 RC evidence 2026-07-29 01:22:57 +08:00
key ba68fc8326 release: harden Android network security 2026-07-29 01:13:18 +08:00
key 9ea5d79a62 release: prepare August 1 Android RC 2026-07-29 00:35:15 +08:00
key 9ae5f750c8 fix: align Windows dev, App compiler, and ASR 2026-07-26 21:27:37 +08:00
admin f57e0a53c6 feat(mobile): expand TTS voices and align App SDK 2026-07-26 17:05:43 +08:00
admin 94ee29f59c fix(speech): write native TTS temp file as binary and clean it up
App-Plus 的 plus.io FileWriter 只接受字符串:write 写文本,writeAsBinary 收
base64。原先传 Blob 会被原生桥接序列化成空内容,落地 0 字节且照样回调
onwriteend,InnerAudioContext 静默播完、不报错,表现为"界面正常但没有声音"。
改用 writeAsBinary 并在 onwriteend 里复核 size > 0,让写盘失败能被暴露。

清理侧同一处存在文件泄漏:播放要 convertLocalFileSystemURL 转出的 file://
绝对路径,而 resolveLocalFileSystemURL 删除只认 `_doc/xxx.mp3` 相对路径。
原先只回传前者,拿它去 resolve 解析不到,remove() 从不执行,且 catch 静默,
临时 mp3 逐句堆积。改为返回 { playbackUrl, plusPath } 两个路径,清理失败加告警。

真机验证(Android 10 / io.dcloud.HBuilder):落盘 80251 字节,ID3+LAME 头,
MPEG layer III 160 kbps 24 kHz 单声道,播完文件自动删除。

顺带把测试里 MP3 头字面量的真实 NUL 字节改为 \x00 转义(运行时字节不变),
此前 git 将该测试文件判为二进制,diff 无法审阅。
2026-07-26 12:10:50 +08:00
adminandClaude Opus 5 3f7f0496f7 docs(changelog): record the App voice-first restore and its tradeoffs
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-26 02:39:40 +08:00
adminandClaude Opus 5 d84ad87cb6 fix(sop): restore voice-first replies on App without withholding text
73712994 disabled voice-first on native by gating the TTS preload behind
!isNativeAppRuntime(), which left App users with the degraded text bubble
plus a 播报 button. The voice-line, 转文字 toggle and 收起全文 markup were
still present but unreachable.

Re-enable the preload on every platform and open the transcript when the
message is created, so the answer is readable while synthesis runs.

Collapse the transcript when playback starts rather than when synthesis
finishes: on-device synthesis settles in 2-6s, so collapsing on ready
pulled the answer away mid-sentence. transcriptPinned records a manual
toggle so the automatic collapse never overrides the reader.

Bound the preparing bubble at 20s (the upstream DashScope ceiling) so a
stalled synthesis degrades to the plain text bubble instead of showing an
endless placeholder duration.

Replace the tautological assertion that pinned the previous behaviour by
matching source strings with assertions on the behaviour itself.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-26 02:36:14 +08:00