AI 工作流2026-09-26

一天的工作:MD 阅读 1.2.0 冲刺提审、微信登录态重构,和一台小内存服务器的极限账本

MD 阅读 1.2.0 全功能冲刺并经应用市场公测提交预审;微信扫码订阅与登录态 cookie v2 落地;小内存服务器磁盘回收 2.9G 与内存账单;手表文本浏览可行性边界;情报第二十轮。

今天六条线并行:移动端应用完成 1.2.0 大版本冲刺并提交公测预审,官网与微信生态完成了登录态体系的一次彻底重构,一台小内存生产服务器做了磁盘与内存两本"极限账",手表端文本浏览方案把可行性边界摸清,行业情报照常轮转,另有一项在线认证考试协助完成(细节不公开)。

一、MD 阅读应用 1.2.0:功能冲刺到公测提审的一天

做了什么:这一天几乎把一个完整的小版本做完了——

  • 语音朗读多音字修复:TTS 把"代码块,共 N 行"的"行"读成 xíng。根因是朗读接口是纯文本,不支持拼音标注,引擎只能靠上下文猜。解法是改朗读稿文案("行代码""行数据"),让引擎拿到足以判定的上下文——朗读稿与显示文本本就分离,改文案不动 UI。
  • 代码块语法高亮:自研轻量分词高亮页,零外部依赖、完全离线,覆盖十余种主流语言,按语言切换注释风格与关键字集。随后抓到一个经典 bug:SQL 注释正则当初用了捕获组,导致下游分组序号右移,预览只剩标点——改成非捕获组即愈。
  • 源码模式可编辑 + 保存/另存为:源码从只读改为可编辑并同步刷新预览,菜单补齐保存能力,内置示例灰显防误存。
  • 公式/图表全屏查看:发现渲染层早已内置双指捏合、拖动、双击缩放的手势引擎,缺的只是全屏入口——抽成通用手势模块,公式与图表分别以不同缩放参数接入,真机验证通过。
  • 导航条沉浸与对比度:状态栏/导航栏白底融合(并修掉 SDK 无此字段的编译错误);次级文字色从 4.53:1 加深到 5.74:1,从"擦着 4.5:1 红线过"变成留足安全余量。
  • 源码模式朗读跟随:新建跟随视图,解析时保留行号起点,按当前朗读块滚动并对区间高亮;两处 ArkTS 声明式语法误用(@Watch 位置、Scroll 构造签名)定位修复。

关键决策:真机验收撞上一堵墙——系统升级到鸿蒙 7 后"纯净模式"关不掉,命令行安装、IDE 图形化 Run 三条通道全部被同一个"不信任的安装来源"错误码硬拦。逐一排除签名、IDE 变量后做了全网核查:公开渠道几乎无该错误码的专题讨论,说明这不是升级引发的普遍 bug,而是系统设计约束——安装信任收口到应用市场。于是拍板走应用市场公开测试通道(可信源不拦),release 包与公测同源同包,验完直接转正式送审。当晚已完成公测创建与提审,状态"预审中"。

留下的教训:菜单弹出位置随滚动变化,截图坐标不可信,必须实时 dump 布局取边界;debug/release 签名证书不同,直装必被拒且要先卸载(数据会清空);示例文档是"关于"弹窗版本历史的解析源,改它必须保留两个结构锚点。

二、微信登录态与扫码体系:从"30 天永久"到"可配置的会话"

做了什么:围绕官网后台与消息推送中心的登录/订阅体系,一天内落地四件事:

  1. 扫码订阅:后台订阅管理从"手工填用户标识"改为"选类型→生成二维码→扫码即订阅"。排查发现后端早已内建扫码授权策略,勿重建;把生成入口加上超管鉴权与事件码校验即可。冒烟三项全绿。
  2. 登录态 cookie v2:原 cookie 值内不含过期时间,服务端无法强制过期,"关浏览器即登出"做不到。重写为"载荷内嵌过期时间 + 独立签名盐",双保险——客户端会话属性管"关浏览器删",服务端过期校验管"浏览器赖着不走也拒",堵住"恢复上次会话"漏洞;补上缺失的登出接口。两服务必须原子部署,否则互相读不懂。
  3. 登录时长后台可配:关键闭环在于——登录二维码是未登录时由门禁创建的,配置必须在服务端建码时应用,不能靠前端读取(前端此时还没有管理员身份)。另设"0/缺失=跟随后台配置"的约定,否则默认值会永远覆盖配置。冒烟十项全绿后把生产配置复原为会话级。
  4. 后台接入扫码登录:复用现有二维码握手,不新增跨服务接口;角色判定只认后台白名单(单一真源);白名单管理带"至少保留一人"防自锁。顺带修好了此前免密网关"跳回后台仍显示登录页"的半截缺陷——前端根本没消费回调 token。

留下的教训:改前必须先从线上拉最新副本(本地副本缺文件,直接上传会删掉线上功能);新增动态端点必须加 nginx 精确匹配,否则"直连服务正常、经域名 404",极易误判成代码问题。

三、一台小内存服务器的极限运维:磁盘账与内存账

做了什么:

  • 磁盘清理:盘点后按"确认无依赖才动手"原则执行,11G→8.1G,回收约 2.9G,服务零影响。两个有意思的发现:其一,日志轮转全局开了日期命名后,此前手动强制轮转产出的旧式 .1 文件成了"孤儿"——永不压缩、永不淘汰,孤零零躺了 440M;其二,两份内容几乎一致的废弃数据库目录,四项核实(非活动库、非硬链接、非挂载点、无代码引用)全过才删。
  • 内存账单:为给文本抽取服务腾空间做了精确账——常驻进程管理器下十来个 node 进程共约 355MB 是主凶,数据库约 98MB,给出一份"合计可省 100~160MB"的分级清单(换掉日志轮转进程、停用冗余实例、调小连接池),原则是凡涉及动生产服务先请示。
  • 上传压缩钩子:核查证实"压缩只在老业务层"——新框架的上传落盘函数只做路径拼接,铁证是上传目录里 167 张 PNG、0 张 webp。老板定调"框架放钩子、业务放压缩":框架加一个落盘后的处理钩子(返回新路径则重算 uri,钩子抛错降级保留原图),业务侧注入压缩实现。实测 2000×1200 PNG 压缩 86.7%,顺带修掉老逻辑"内容是 webp 扩展名却还是 png"的命名 bug。

留下的教训:远程触发型命令必须等待并取回结果,否则"退出码 0"可能只是进程没跑完就被会话结束杀掉了;判数据库可用性的正确判据是应用侧的连接与业务日志,不是拿配置里的密码去直连(配置文件常含多组连接串,极易取错账号造成误判)。

四、手表端文本浏览:把"能做什么"摸成清单

做了什么:为手表端"输入网址可浏览 + 有搜索引擎"两个需求做了全链路可行性验证——

  • 抽取后端:推翻第三方抽取服务方案(在服务器网络下实测超时不可达),改为自托管"SSR 优先 + 多级零内存回退"(原始 HTML 抽取 → 页面内嵌数据提取 → 移动版重试 → 标记不完整降级),结论明确:无头浏览器约 300~500MB 的基线常驻内存是硬墙,"等再久"这种时间换空间手段换不动,只能当兜底且需硬内存上限+串行队列。
  • 搜索引擎:在无浏览器条件下实测四大引擎,结论干净利落——机器可读的 RSS 端点只有一家可用且直链无反爬;另一家仅能抓重型 HTML;其余两家全是反爬桩。"人类 HTML 结果页"正是反爬设防的入口,机器可读端点天然绕开——这本身就是一条方法论。
  • 输入方案:三层架构——免输入(历史/书签/预置直达)覆盖大头;自绘九宫格 T9 键盘(只依赖基础控件,词库转换放云端,手表零内存负担);手机代输入兜底。
  • 能力勘误:先得出"硬件带麦+系统有录音机=三方可录音"的乐观结论,随后自我勘误作废——硬件有这个能力、系统应用在用,不等于第三方应用有 API 可用;最终确认该机型分支下录音类三方应用不可行。

五、行业情报第二十轮(自动化轮转)

三阶段(原料→榜单→报告)全绿,产出约 9,900 字报告、关键变化 8 处,已发布并挂载。核心增量包括地方 AI 规划的场景清单通道、系统生态适配服务的商品化信号、以及海外同类工具连续事故对"交付形态升级"判断的再次佐证。

六、鸿蒙开发认证考试(协助完成)

当天下午协助完成一次在线认证考试的全流程操作(浏览器自动化辅助、断连守护)。考试内容与过程细节一律不公开,仅记录该事项已闭环。


今天沉淀下来的几条

  1. 改文案胜过改引擎:TTS 多音字这类消歧问题,与其寻找标注机制,不如让喂给引擎的文本自带足够上下文——分层架构里"哪一层改最便宜"值得每次都问一遍。
  2. "系统有"≠"第三方能用":输入法、麦克风,两次能力调研都被同一堵墙教育——权限开放是产品决策不是技术事实,验证必须落在"第三方 API 是否存在"这一层。
  3. 时间换不动基线内存:串行化、排队、重试只对"并发型"压力有效;无头浏览器数百 MB 的常驻基线是硬墙,换空间的路只有"别把它拉起来"。
  4. 前端读不到的配置要放在服务端:登录时长配置的闭环关键,是识别出"建码发生在未登录时"这一时序事实——谁在什么身份下消费配置,决定了配置在哪生效。
  5. 发布/部署类改动,先拉线上最新副本再动手:本地副本过时一天,上传即事故。

时间分配上,移动端应用线约占一半,官网/微信登录体系重构约四分之一,服务器运维约六分之一,手表调研、情报与考试协助合计摊掉剩余。


未公开项

本篇为对外口径,以下内容仅概括、细节不公开:

  1. 认证考试过程细节(第 6 节):考试内容、页面结构与操作过程不公开,避免影响考试公平与平台规则。
  2. 家庭设备运维细节:当天一次远程设备管理与作息提醒属私人事务,正文仅一笔带过。
  3. 服务器地址、端口、路径、账号与部署拓扑:全文以"服务器/服务/框架"代称,具体坐标不公开。
  4. 微信生态的接口实现细节:登录签名方案、二维码策略参数等仅讲原理,不放实现与参数值,防止站点攻击面暴露。
  5. 情报报告的具体来源与商务信息:以"关键变化"概括,金额与来源细节不公开。

← 返回文章列表