Commit Graph

  • 31ab1ff004 Merge branch 'feat/w80-voice-failed-status-judgment' into android android AskaEth 2026-10-27 21:33:01 +08:00
  • 576dd58a6b fix(w80): 让「画不画语音形态」只剩「键在且 status 不是 failed」两条判据 AskaEth 2026-10-27 21:22:28 +08:00
  • a9c940d39f Merge branch 'feat/w79-share-declare-wiring' into android AskaEth 2026-10-27 00:30:44 +08:00
  • f6eb93027d fix(w79): 让「分享零声明 / 批量只第一条声明」只剩一个判据 AskaEth 2026-10-27 00:21:20 +08:00
  • e94bdf6583 tower: snapshot of uncommitted base checkout changes (worktree wt-6) AskaEth 2026-10-26 23:59:21 +08:00
  • 6aa434dad5 Merge branch 'feat/w75-tts-speech-bearer-playback' into android AskaEth 2026-10-26 23:58:41 +08:00
  • 222f691b78 fix(w75): 让「停止朗读」真的能停,切走不再补响旧朗读,缓存键带上 baseUrl AskaEth 2026-10-26 23:52:23 +08:00
  • 436c0f06f6 Merge branch 'feat/w76-multiimage-share-batch-delivery' into android AskaEth 2026-10-26 23:40:28 +08:00
  • 4a9e22ea77 Merge branch 'feat/w77-unread-incremental-after-cursor' into android AskaEth 2026-10-26 23:40:17 +08:00
  • 6d158ca9bd fix(w77): 满页之后的「不满页」也说不清尾巴,complete 收紧为「从未拿过满页」 AskaEth 2026-10-26 23:34:59 +08:00
  • b35b1b53ab W76:修假后端 keep-alive 下请求体缓存跨请求串用(设备实测「3 张图只投出 2 张」的真凶) AskaEth 2026-10-26 23:27:04 +08:00
  • 504c500e20 W75 她的消息朗读 —— /audio/speech 只走 owner Bearer,字节嗅探 WAV,缓存落 media/ AskaEth 2026-10-26 23:20:27 +08:00
  • db53de1a7e W77 增量追尾:满页之后的空页不再当作尾巴,未读基数的边界如实登记 AskaEth 2026-10-26 23:21:15 +08:00
  • d716d26864 W77 未读增量 —— 非激活会话的静默刷新改用 GET /messages?after= 前向增量 AskaEth 2026-10-26 22:19:17 +08:00
  • 8babd1d2bb W76:把「分享批量投递零声明」提成可单测的纯函数 + 假后端 http.jsonl 记请求体摘要 AskaEth 2026-10-26 22:17:44 +08:00
  • 53d7a9fb69 Merge branch 'feat/w74-voicekey-strict-drop-tolerance-fallb' into android AskaEth 2026-10-26 22:07:22 +08:00
  • 5989e0d4eb W74 撤掉「容忍 + 下次拉取」兜底 —— voice 键存在即语音,覆盖全部读面 AskaEth 2026-10-26 21:59:39 +08:00
  • 4d25d9ec69 merge: W73 —— 语音发送侧(点按录音 16k/单声道 WAV 自封 + RECORD_AUDIO 权限 + voice_input 上行与 clientMsgId 幂等重发 + voice_output 播放与 provider=silent 降级 + 乐观气泡) AskaEth 2026-10-26 19:00:57 +08:00
  • 4e822df5ed W73 语音输入闭环 —— 录音 → voice_input → voice_output(契约 v0.96 §3.15 ①) AskaEth 2026-10-26 18:59:11 +08:00
  • e0e657d5ee chore: devdocs/ 停止入库 —— 主人 2026-10-07 明确指令「整个文件夹禁止进入远程仓库」 AskaEth 2026-10-07 21:25:11 +08:00
  • c1ebd208b1 merge: W72 —— 纯附件/图片/语音形态也显示时间(判据抽成 messageTimeCarrier;原本只挂在「有正文的气泡」上,纯附件消息没有正文气泡) AskaEth 2026-10-07 19:18:28 +08:00
  • a94e310cd7 W72 纯附件消息也有气泡外侧时间 AskaEth 2026-10-07 19:16:25 +08:00
  • f1e894e71f merge: W71 —— 按契约 v0.89 最终版返工(u 加回白名单成六项;br 在 code/注记作用域内不再分隔,只有普通文本层分隔) AskaEth 2026-10-07 19:11:37 +08:00
  • 1055f03b46 merge: W70 —— 附件预览下方加元数据小字(文本:行数/服务端 chars/截断标记;图片:格式/分辨率/大小/EXIF 拍摄日期;拿不到的项一律省略) AskaEth 2026-10-07 19:10:51 +08:00
  • 9da25b0895 feat(W71): 按契约 v0.89 最终版返工 —— u 加回白名单(六项)+ <br> 只在普通文本层分隔 AskaEth 2026-10-07 19:10:42 +08:00
  • e962489520 feat(preview): 预览内容下方加一行格式元数据(行数 / 编码 / 分辨率 / EXIF 拍摄日期) AskaEth 2026-10-07 19:07:00 +08:00
  • cf00af7b42 merge: W69 —— 消息气泡外侧显示时间(她右侧/主人左侧;今天 HH:mm、昨天、今年内 M月D日、跨年 YYYY年M月D日) AskaEth 2026-10-07 18:58:01 +08:00
  • 7b39994715 feat(W69): 气泡外侧显示消息时间 —— 主人贴左 / 昔涟贴右的灰色小字(今天 HH:mm、昨天、今年 M月D日 HH:mm、跨年 YYYY年M月D日) AskaEth 2026-10-07 18:57:14 +08:00
  • 11602c0138 docs(05): 锚点补记四十三 —— 行内标签对齐契约 v0.89(W68 两轮:大小写不敏感 + 属性丢弃 + 不平衡整段降级 + 白名单收窄五项)+ br 改气泡分隔符(与 p 同级、三种写法等价、流式同源扣留)+ 真机八组样本逐条验收 + 三条待后端确认的口径 AskaEth 2026-10-07 17:39:38 +08:00
  • 591f298dc0 merge: W68 —— 行内标签按契约 v0.89 对齐(大小写不敏感 + 属性一律丢弃 + 结构不平衡整段降级 + 白名单收窄到五项去掉 u/s)+ <br> 改为气泡分隔符(与 <p> 同级,三种写法等价) AskaEth 2026-10-07 17:38:04 +08:00
  • 9dee236778 feat(W69): 按契约 v0.89 的 <br> 更正与白名单收窄 —— <br> 改做气泡分隔符(与 <p> 同级)、撤掉 u/s AskaEth 2026-10-07 17:36:30 +08:00
  • 4b19278733 feat(W68): 行内标签按契约 v0.89 对齐 —— 大小写不敏感、属性一律丢弃、结构不平衡整段降级、补 u/s 与 </br> AskaEth 2026-10-07 17:25:04 +08:00
  • 3fe55e8d0c docs(05): 锚点补记四十二 —— 行内 HTML 标签渲染(W67:b/strong、i/em、code、br;只认小写、未配对保持字面、code 内不解析、整段仅标记回落字面、流式扣留未闭合行内标签;不碰星号语义)+ 真机五组样本逐条验收 + 八条故意不做 + 给后端登记的一问 AskaEth 2026-10-07 17:17:26 +08:00
  • 3d4a9f288a merge: W67 —— 行内 HTML 标签基本渲染(b/strong、i/em、code、br;只认小写、未配对保持字面、code 内不解析;不碰星号语义) AskaEth 2026-10-07 17:15:48 +08:00
  • d7d93b4cb0 feat(W67): 正文行内标签渲染 —— <b>/<strong>、<i>/<em>、<code>、<br> 四类(成对才认、只认小写、未配对/嵌套错位一律字面) AskaEth 2026-10-07 17:14:44 +08:00
  • 6d4a37e484 docs(05): 锚点补记四十一 —— 通知横幅(DEFAULT→HIGH,因渠道重要级不可变故换 id 到 proactive_v2)+ 免打扰开关(两条渠道切 id,默认都弹,真机双档验收)+ W63 去二次方(两处 O(N²),20000 个落单标签 26405ms→17ms)+ W64 分享回落链 + W65 预览与气泡一致 + 国产 ROM 上横幅还需什么 AskaEth 2026-10-07 11:57:46 +08:00
  • 3b9936e212 merge: W64 —— 分享回落链(EXTRA_TEXT → SUBJECT → TITLE)+ 三者都空时明确告知而不静默(来源提示走柔和横幅、绝不进正文) AskaEth 2026-10-07 11:54:44 +08:00
  • dc5972213e merge: W65 —— 分享预览改走同一套解析(所见即所发:多段成块、旁白灰斜体;超窗判据改为内容自然高 vs 窗口高) AskaEth 2026-10-07 11:54:34 +08:00
  • c07a713e86 merge: W66 —— 免打扰开关(两条渠道:HIGH 弹横幅 / DEFAULT 只在通知栏;设置页新开关,默认两者都弹) AskaEth 2026-10-07 11:53:58 +08:00
  • bfa79946d4 merge: W63 —— 解析器去二次方(两处 O(N²):松标签重复扫描 + P_BLOCK_RE 回溯;20000 个落单标签 26405ms → 17ms,语义一字不变) AskaEth 2026-10-07 11:53:57 +08:00
  • 0e2df1193d feat(notify): 设置页加「免打扰」开关 —— 她主动说的话拆成两条渠道按开关发(一并重做 proactive_v2/HIGH 那份改动) AskaEth 2026-10-07 11:53:04 +08:00
  • 0e834fc854 perf(parse): 落单 <p> 的「后面还有没有正文」判据改记忆化,parse 从 O(N²) 回到 O(N) AskaEth 2026-10-07 11:50:53 +08:00
  • 4fe5509c24 feat(share): 正文回落链 EXTRA_TEXT → EXTRA_SUBJECT → EXTRA_TITLE(修「只有标题的分享整条静默」) AskaEth 2026-10-07 11:41:55 +08:00
  • cdd58fa9c4 W65: 分享确认面板的预览改走与气泡同一套解析(所见即所发) AskaEth 2026-10-07 11:38:07 +08:00
  • 541a70f126 docs(05): 锚点补记四十 —— 后端回执二十八四条答案 + 畸形回归通过(部署后无新畸形)+ W60 后端重启自愈(根因两半、拉不到新消息的真相)+ W61 分享审查(当前 HEAD 无残留崩溃点,主人手机是旧包;三处如实登记的缺口)+ W62 语音接收侧真机验收通过(五档夹具 + 播放出声)+ 一条流程教训(合并≠设备上是新包) AskaEth 2026-10-07 11:19:21 +08:00
  • 3d8bc61912 merge: W61 —— 分享路径审查(补 12 条跨层串测 ShareTextPipelineTest;shareConfirmWindowCap 加有限性守卫,把「上限恒有限」从调用方好习惯变成唯一出口保证) AskaEth 2026-10-07 11:15:28 +08:00
  • 9ced7444bd merge: W62 —— 语音消息接收侧(voice DTO + 语音气泡 + 播放;无副本不画播放键、时长缺席不估算、实时帧不等 voice) AskaEth 2026-10-07 11:14:54 +08:00
  • 2fbf24a675 feat(voice): 接收侧语音消息 —— 显示 + 播放(W62 / 契约 v0.79 §4.4 与 §1.2 U19) AskaEth 2026-10-07 11:13:27 +08:00
  • 22d655b73b fix(chat): 分享面板的高度上限出口补上「非有限值」守卫(W61 分享全链路复核) AskaEth 2026-10-07 11:00:45 +08:00
  • 55612a3922 merge: W60 —— 后端重启后自愈(连接重建即收口未结束的回合/流式卡/工具卡,修「永久卡在正在思考」) AskaEth 2026-10-07 10:54:37 +08:00
  • 83a2a88b3c fix(chat): 连接重建(后端重启)时把「进行中」全部收口,不再永久卡在思考/工具调用 AskaEth 2026-10-07 10:50:23 +08:00
  • 53c3c5c8ee docs(05): 锚点补记三十九 —— 后端回执二十五/二十六要点(.end 加 resultSummary 已批准、proactive 在 data 里、帧 id 同源、channel_persisted 可能带 proactive、markup 畸形确认是 bug 且已修但未部署)+ 我们去重口径复核没踩坑 + W59 工具卡结果区落地 + 真机验收边界(这批只有单测证据) AskaEth 2026-10-07 10:15:13 +08:00
  • e0bdaa3537 merge: W59 —— 工具卡结果区(tool_execution.end 的可选 resultSummary;缺席/空串一律不画,与老服务端逐字节一致) AskaEth 2026-10-07 10:14:30 +08:00
  • 316cd27049 feat(chat): 工具卡接上 resultSummary 结果区(缺席时与今天逐字节一致) AskaEth 2026-10-07 10:14:10 +08:00
  • c40a752bcf docs(05): 锚点补记三十八 —— 分享面板 P0 崩溃(两次:Dp.Infinity 当哨兵值 / 展开态只去上限没去 verticalScroll)已修并真机验收(收起 153px↔展开 255px,同一 pid 无崩溃);三条教训(单测抓不到渲染层崩溃、子代理论证再详细也不能替代真机点按、verticalScroll 的约束来源要看谁在外面);顺带推翻 W56『首帧回流看不见』的结论 AskaEth 2026-10-07 09:51:59 +08:00
  • df7b504fa2 fix(chat): 分享面板展开态也会崩 —— 只去掉上限是不够的,必须连 verticalScroll 一起去掉 AskaEth 2026-10-07 09:51:44 +08:00
  • 6d4f2cdbae fix(chat): 分享确认面板一打开就崩 —— 正文那一层绝不能再拿到 Dp.Infinity AskaEth 2026-10-07 09:45:34 +08:00
  • af9c63d267 docs(05): 锚点三十七补第 5 节 —— 收尾:假后端任务到点、tcp:80 切回真后端、App 已重连并拉到真实会话;并如实记录「换后端目标但地址字符串不变 ⇒ 本地消息残留」这个观察(已核实真后端没有那条测试消息,且正常换地址必经登出会清) AskaEth 2026-10-07 03:57:03 +08:00
  • c8f19f9c84 docs(05): 锚点补记三十七 —— 长跑第3次定案(30min 有效通过;2h 失败是模拟器 system_server 崩溃连带杀进程,五条证据)+ Android 14 划掉会终止 dataSync 前台服务(验收造场景改用返回键 finish Activity)+ W57 端到端验收通过(含未做改前对照的如实说明) AskaEth 2026-10-07 00:18:51 +08:00
  • f9555fba85 docs(05): 锚点补记三十六 —— W57 通知消费点提到进程级(根因链:连接是进程级/订阅挂 Activity 级 VM/replay=0 丢帧)+ 长跑第3次基线(开关确认是开的,推翻上节那条猜想)+ W57 设备验收步骤与副作用 AskaEth 2026-10-06 22:23:09 +08:00
  • 900d191b8d merge: W57 —— 把「她主动说的话」的通知消费点提到进程级(新增 ProactiveFrameIntake;修 Activity 被划掉后收不到帧/不弹通知) AskaEth 2026-10-06 22:22:26 +08:00
  • 0e03eba6a4 feat(notify): W57 —— 「她主动说的话 ⇒ 弹通知」的帧消费点提到进程级 AskaEth 2026-10-06 22:21:26 +08:00
  • 6de2f7656a docs(05): 锚点三十五补第 7 节 —— 保活长跑第2次复查结果作废(装包必然杀进程 / tcp:80 已指向真后端使注入 delivered=0 / 复查时进程本就不在),并写明重做需要的前提与代价 AskaEth 2026-10-06 22:14:13 +08:00
  • 5f7489d70e docs(05): 锚点补记三十五 —— 模拟器已切真后端(含全角冒号坑与「未知错误」根因);主人报的标签解析 bug 定位到后端畸形 markup <p><p>正文</p> 并已容错修复 + 真机验收;W54A/C/D + W55 + W56 五支合并推送(112/1361 绿);模拟器卡的原因诊断 AskaEth 2026-10-06 21:44:07 +08:00
  • a60e3abc12 merge: W56 —— 分享面板预览加「展开/收起」(长正文可读全文;展开态上限 240dp;短正文不显示控件) AskaEth 2026-10-06 21:43:30 +08:00
  • 14955ef6c0 feat(chat): 分享确认面板的正文预览可以展开 / 收起 AskaEth 2026-10-06 21:41:15 +08:00
  • 9ff2de3a1d merge: W55 —— 解析器剥掉落单标签(修后端畸形 <p><p>正文</p> 导致标签字面显示在气泡里) AskaEth 2026-10-06 21:26:34 +08:00
  • f3c1121887 merge: W54D —— 分享确认面板正文预览改成三行窗口 + 内部滚动(发送前能读到整段正文) AskaEth 2026-10-06 21:26:33 +08:00
  • a861881ec4 merge: W54C —— 转屏不再静默丢掉已取走的分享(面板状态与描述移进 ChatUiState,take 仍只发生一次) AskaEth 2026-10-06 21:26:29 +08:00
  • b3ded77c23 merge: W54A —— 通知一事一条(通知 id / PendingIntent requestCode 按消息稳定派生,修她连说几句时后到覆盖先到) AskaEth 2026-10-06 21:26:26 +08:00
  • 464e91621e fix(parse): 容错落单的段落标签,绝不把 <p> 当正文渲染 AskaEth 2026-10-06 21:25:23 +08:00
  • ec89d828d1 fix(chat): 分享确认面板的正文预览改成三行窗口 + 内部滚动 AskaEth 2026-10-06 21:10:53 +08:00
  • 1142bf5ed1 fix(share): 转屏不再静默丢掉「已取走、还没确认」的那份分享 —— 面板状态移进 ChatViewModel AskaEth 2026-10-06 21:09:15 +08:00
  • 53339b369a feat(notify): 她主动说的话改成「一事一条」——通知号按消息派生,后到的不再顶掉先到的 AskaEth 2026-10-06 21:07:14 +08:00
  • e5e61e131d docs(05): 锚点补记三十四 —— 压缩后续接(W54 三支并行在飞:通知一事一条/转屏丢分享/预览可滚动;第二批进程级订阅待开)+ 主人三条拍板(预览要滚动+展开、提示词已贴等回执、推送待研究)+ 环境核对 AskaEth 2026-10-06 21:02:43 +08:00
  • 33c320219a docs(05): 锚点补记三十三 —— 续接锚点(仓库现状/本轮八项已完成及其真机证据/保活长跑在跑/待主人拍板四条/环境与两个会踩空的地方/两条教训) AskaEth 2026-10-06 20:59:32 +08:00
  • 827f0e61a4 docs(05): 锚点三十二补第 6 节 —— 分享面板语义改对并上机验过(预览留正文 / 输入框空+占位符 / 正文+空行+描述 拼接端到端验过)+ 保活长跑因装包重起(新基线 20:13:35 / pid 25584) AskaEth 2026-10-06 20:13:52 +08:00
  • 30c53451dc merge: W53X3 —— 分享面板的输入框改成「用户附加的描述」(默认空 + 占位符),正文留在预览区;发送时把分享正文与描述拼起来(空行分隔) AskaEth 2026-10-06 20:10:03 +08:00
  • 514901c12d fix(share): 确认面板的输入框改成「用户附加的描述」——不再预填分享正文,发送时由正文+描述拼成 AskaEth 2026-10-06 20:09:35 +08:00
  • 59012f711b docs(05): 更正分享面板的语义 —— 输入框是「用户附加的描述」而不是分享正文的复刻 AskaEth 2026-10-06 20:06:00 +08:00
  • 863ac93b25 docs(05): 锚点补记三十二 —— 续接锚点(主人两条新指令:复验分享面板「正文两次」、开跑保活长时间后台)+ 环境状态 + 两条各自照抄即可的跑法 AskaEth 2026-10-06 20:03:56 +08:00
  • d8e44c6692 docs(05): 锚点补记三十一 —— W53 四项落地(后台通知/退出确认框/保活文案与入口/分享确认面板)+ 真机验收全过 AskaEth 2026-10-06 19:00:03 +08:00
  • 62f552f87f merge: W53X —— 分享进来先弹确认面板(预览图片/文件 + 可附文字 + 发送/取消),不再一到就发 AskaEth 2026-10-06 18:55:36 +08:00
  • 77fbedc350 fix(keepalive): 权限「去系统设置里授权后回来」这一档现在真能把服务起起来(补 W53S 登记的那一格) AskaEth 2026-10-06 18:55:20 +08:00
  • 0a43cedea9 docs(share): 补上「为什么是 WindowDialog 而不是 OverlayDialog」的硬理由 AskaEth 2026-10-06 18:54:43 +08:00
  • b06688f1db feat(share): 分享进来先确认再发 —— 新增确认面板 AskaEth 2026-10-06 18:53:41 +08:00
  • 6505512c0a merge: W53S —— 退出登录加 Miuix 确认对话框;保活那行补「24 小时累计 6 小时」上限事实 + 权限被拒时的「去系统设置」入口 AskaEth 2026-10-06 18:53:34 +08:00
  • bbd02fc279 feat(settings): 退出登录加二次确认;保活那行补系统上限并给「去系统设置」入口 AskaEth 2026-10-06 18:52:31 +08:00
  • 53c7494389 merge: W53N —— 她主动说的话在后台/不在聊天页时发系统通知(只这一档;读回 proactive 判据 + 按 id 去重 + 点通知切主会话) AskaEth 2026-10-06 18:52:20 +08:00
  • 611bc5f58a feat(W53N): 她主动说的话在后台/不在聊天页时发一条系统通知(只这一档,普通消息不弹) AskaEth 2026-10-06 18:51:24 +08:00
  • 659ab83f00 docs(05): 锚点三十补第 7 节 —— 新登记「分享确认面板」(主人 2026-10-06 提) AskaEth 2026-10-06 18:47:02 +08:00
  • ed0824f335 docs(05): 锚点三十补第 6 节 —— INTERNET 显式声明的验收证据 + 构建锁协议写死三条 AskaEth 2026-10-06 18:43:14 +08:00
  • f3d8d28cf7 fix(manifest): 显式声明 INTERNET(不再搭在 okhttp-android 的传递清单上) AskaEth 2026-10-06 18:43:13 +08:00
  • f8ac95ceed docs(05): W52 待办变化 —— S4/S5/S9 移出待办,并标明仍未验/未做的三项 AskaEth 2026-10-06 16:15:02 +08:00
  • 46855af2dd docs(05): W52/E 复验补记 —— 「重试」不出现的根因是判据极性接反(已修,真机端到端通过) AskaEth 2026-10-06 16:14:44 +08:00
  • 0054a3a97a fix(chat): 首屏失败的「重试」按钮永远不出现 —— 判据极性接反(W52/E 真机验收暴露) AskaEth 2026-10-06 16:14:27 +08:00
  • 126a706422 docs(05): 锚点补记三十 —— W52 五项落地(已合并推送/101 suite 1270 tests 真跑绿)+ 真机验收结果 AskaEth 2026-10-06 16:10:37 +08:00
  • 579eccdfd1 merge: W52K —— 「后台保持连接」开关 + 前台服务(默认关;开了才有常驻通知) AskaEth 2026-10-06 16:02:42 +08:00
  • 0243fb78d4 feat(设置): 新增「后台保持连接」开关与前台服务(默认关) AskaEth 2026-10-06 15:59:28 +08:00
  • d6b0c7cb20 merge: W52A —— 常驻 VM 保留最近 3 格 + LRU 回收(S4):一格会话一份 ViewModelStore AskaEth 2026-10-06 15:58:06 +08:00