KanBox:从素材、解析到真机,把“看起来完成”再核实一遍 今天的 KanBox 工作从新图标开始,后来被一个 README 正文丢失的问题打断,最后进入真机验收。几件事看起来分散,却都在回答同一个问题:产物已经生成、代码已经通过测试之后,实际使用是不是仍与预期一致?版本按这个过程推进。1.31.0/151 更新桌面图标目录,152 修复 GitHub README 清洗并完成覆盖安装;到记录整理时,153 诊断版还在验证,没有作为最终安装包交付。前两个构建的完成不能替后一个构建背书,模拟器通过也不能替真机上的失败开脱。真机验收尤其有价值。它确认了部分既有功能正常,也复现了小红书订阅预览的两处媒体读取失败。接下来的工作因此从泛泛地“再测一下”,变成了区分失败环节、补诊断、再针对证据修复。小动物素材接入后,旧图标也要有明确去向今天按已经认可的简洁大轮廓、小表情、轻微层次与纯色背景方向,扩展了 20 种小动物,包括狐狸、小熊猫、考拉、浣熊、水豚、水獭、海豹和小象。原生 1254×1254 图像全部保留,另外导出 1024×1024、sRGB、不透明 PNG,并为每款附上通过资源编译核验的 Xcode 图标集。这一步交付的是可导入素材,不是自动更换软件图标。随后按新的取舍更新 App:加入这 20 款小动物,只保留此前第二批 16 款质感换皮,其他旧款从软件打包目录移除,原素材留在可恢复归档中。151 最终提供 36 款替换图标,另有恢复默认的入口。小动物也有了名称,例如“杏仁狐”“晚安浣熊”“慢慢水豚”,并补齐英日显示名称。升级后如果原来选中的图标已经下架,设置页不能继续给出含糊状态,所以这轮补了相应提示与恢复默认测试。安装包中的图标注册、预览与源文件逐项核对,避免旧资源又混进新包。完整检查曾遇到 WebKit 脚本超时。图标专项测试已通过,但这不足以让整包直接放行;重启测试环境后仍有超时,于是换独立模拟器交叉检查,未修改源码、断言或超时时间,失败记录也保留。最终完整单测执行 1630 项,2 项按既有条件跳过、零失败。两套模拟器系统中的实际桌面切换、重开保留、恢复默认和大字体显示也通过了。151 完成出包,当时尚未安装到实体手机。README 只剩井号,问题在清洗范围公开项目 12306-mcp 的 README 被 KanBox 解析后几乎为空,只剩几个标题符号。先读取原文并用当前解析器重跑,确认仓库有完整正文,丢失发生在 KanBox 的清洗阶段,而不是上游没有内容。原文使用 HTML 标题和图文混排。为了去掉图片、徽章,旧清洗逻辑把包含图片的 HTML 容器整块删除,连标题后面的介绍、功能表和安装说明一起吞掉了。这个例子说明,清理装饰和保留正文不能用同一个过宽的删除范围处理。152 改为去掉 HTML 标签而保留容器中的文字、表格与说明,并保护代码块和代码示例。进一步检查又补上缺少闭合标签、行内代码中的注释符号,以及 HTML 属性内出现注释起始符的边界,区分真实正文注释与需要展示的代码内容。真实 README 恢复为 15 个章节,功能、安装、Docker 命令和文档说明都能读到。新增 14 项回归测试纳入最终检查,全量执行 1644 项,2 项既有条件跳过、零失败,解析金样本没有修改。Release 构建和最终安装包校验也通过,形成 1.31.0/152。这次没有批量重写旧收藏。已经保留原始 README 的条目,安装后重新打开详情即可用新规则显示;若首页摘要仍是旧结果,再明确触发重新解析。后续覆盖安装了 152 并成功打开,未卸载 App,也未清理收藏。真机上随后确认了旧 GitHub 收藏的正文能够正常显示。真机能读到列表,不等于媒体预览完整152 安装后,验收先走不改收藏的路线,检查现有图片、普通视频和订阅入口。图片打开与按钮返回正常;一条已有小红书视频能实际播放,时间持续前进,暂停、拖到结尾后重播也能工作。浅色打开时看到的是白底封面加载,但这次观察不能排除极短的闪黑。小红书作者列表读到了首批 10 条,入口本身正常。然而,其中一条多图预览提示原帖尚未提供完整媒体,另一条视频只有标题和封面,没有取得可播放地址,重试后仍失败。这是两种不同的失败,尚不能统一归因于网络、登录或平台限制,也不能因为列表成功就把预览算作通过。小组件的三种尺寸在应用内预览都有内容,但真实桌面组件仍未验完。双指缩放、实际声音、快捷指令和其他系统级流程也留有缺口;镜像连接中断后没有继续冒称完成。镜像工具的一次滑动输入未带动页面,也没有直接认定为 App 滚动故障。这一轮真机记录保留了正常项、失败项和未完成项,没有删除收藏、退出账号或重新安装来掩盖问题。它带来的直接结果不是“全部验收通过”,而是明确了下一轮最需要复现的两个实际案例。诊断要能分环节,也不能串到另一条内容针对小红书两处失败,153 的工作先补诊断,而不是先猜一个原因再改代码。诊断区分缺图、动态照片缺视频、页面流缺失和原文件检查失败等环节,不记录账号或原帖链接。下一次复现时,应能知道失败发生在哪里。交叉检查发现诊断结果还可能串到另一条内容,于是增加操作编号隔离。取消、切换条目或并发读取后,旧任务的结果不能被当成本次读取结果展示。只有诊断本身可信,后面的原因判断才有依据。代码检查还定位到一个独立的微博播放缺口:视频已经进入播放器后若持续缓冲,原有超时换源逻辑不会介入,可能一直转圈。先让新回归测试在旧逻辑上失败,确认确实能抓住问题,再写入修复。相关 124 项单测已通过,覆盖诊断、延迟补齐、取消与并发隔离、原文件检查和缓冲恢复。原生界面验收继续检查“读取失败、补齐媒体、重新读取、逐张查看”的路径,同时要求预览不增加收藏。到本次记录时,16 项媒体界面测试和五个主页面底栏的 7 项测试已通过;另一轮 26 项界面测试中 25 项通过,剩余一项未找到第一张图的识别标记,调整测试标记后正在复跑,仍需确认 18 张图顺序完整且没有自动入库。出包脚本也发现了表述与行为不一致:写着完整重编译,实际使用增量构建。修正它已列入这轮工作,但当时仍在收尾,不能说最终干净构建和安装包验收已经完成。153 尚未交付,小红书真实失败案例也还没有用新版本复验通过。清理开发环境,先分清实例和系统运行时今天还讨论了 Xcode Device Hub 中大量测试环境是否占空间。关键区别是模拟器实例与 Simulator Runtime:前者有各自的应用数据、缓存和测试状态,多个实例可以共用同一套系统运行时,因此删除多个实例不等于删除同样数量的系统镜像。对已经不用的测试实例,可以先核实是否仍被测试依赖,再选择清理;项目源码与模拟器数据也不是同一种东西。但今天的记录只有解释、建议和后续删除请求,没有可核实的实际清理结果,不能写成已删除,也不能给出已经释放多少空间的数字。当前还有测试运行,更不应根据列表名称直接判断所有实例都无用。完成状态比一个“通过”更具体今天有三点认识值得保留。素材编译成功、功能接入和系统实际切换是三个不同步骤;README 清洗应删除装饰而不删除承载正文的容器;诊断需要与本次操作绑定,否则错误信息本身就可能误导修复方向。接下来先完成 153 的剩余界面、系统功能和全量发布检查,再用诊断版复查真机上的两处小红书失败。连续加载、关闭重开、二次收录、声音、双指手势和桌面组件仍需实际验收。平台受限订阅、正式会员支付、公开文档入口、跨设备同步及上架准备也各有未完条件,不会因这一轮出包而自动完成。隐私说明本文只整理当天有活动且能够核实的对话,排除自动化、日记生成与发布聊天。保留公开项目名、技术名称、版本与必要测试数量;删除个人身份、账户、设备名称、私人媒体、内部地址、绝对路径和可定位个人基础设施的信息,不包含凭据、完整代码或原始日志。
2026-10-06|自然语言编程日记
今天的 KanBox 工作从新图标开始,后来被一个 README 正文丢失的问题打断,最后进入真机验收。几件事看起来分散,却都在回答同一个问题:产物已经生成、代码已经通过测试之后,实际使用是不是仍与预期一致?
版本按这个过程推进。1.31.0/151 更新桌面图标目录,152 修复 GitHub README 清洗并完成覆盖安装;到记录整理时,153 诊断版还在验证,没有作为最终安装包交付。前两个构建的完成不能替后一个构建背书,模拟器通过也不能替真机上的失败开脱。
真机验收尤其有价值。它确认了部分既有功能正常,也复现了小红书订阅预览的两处媒体读取失败。接下来的工作因此从泛泛地“再测一下”,变成了区分失败环节、补诊断、再针对证据修复。
小动物素材接入后,旧图标也要有明确去向
今天按已经认可的简洁大轮廓、小表情、轻微层次与纯色背景方向,扩展了 20 种小动物,包括狐狸、小熊猫、考拉、浣熊、水豚、水獭、海豹和小象。原生 1254×1254 图像全部保留,另外导出 1024×1024、sRGB、不透明 PNG,并为每款附上通过资源编译核验的 Xcode 图标集。这一步交付的是可导入素材,不是自动更换软件图标。
随后按新的取舍更新 App:加入这 20 款小动物,只保留此前第二批 16 款质感换皮,其他旧款从软件打包目录移除,原素材留在可恢复归档中。151 最终提供 36 款替换图标,另有恢复默认的入口。
小动物也有了名称,例如“杏仁狐”“晚安浣熊”“慢慢水豚”,并补齐英日显示名称。升级后如果原来选中的图标已经下架,设置页不能继续给出含糊状态,所以这轮补了相应提示与恢复默认测试。安装包中的图标注册、预览与源文件逐项核对,避免旧资源又混进新包。
完整检查曾遇到 WebKit 脚本超时。图标专项测试已通过,但这不足以让整包直接放行;重启测试环境后仍有超时,于是换独立模拟器交叉检查,未修改源码、断言或超时时间,失败记录也保留。最终完整单测执行 1630 项,2 项按既有条件跳过、零失败。两套模拟器系统中的实际桌面切换、重开保留、恢复默认和大字体显示也通过了。151 完成出包,当时尚未安装到实体手机。
README 只剩井号,问题在清洗范围
公开项目 12306-mcp 的 README 被 KanBox 解析后几乎为空,只剩几个标题符号。先读取原文并用当前解析器重跑,确认仓库有完整正文,丢失发生在 KanBox 的清洗阶段,而不是上游没有内容。
原文使用 HTML 标题和图文混排。为了去掉图片、徽章,旧清洗逻辑把包含图片的 HTML 容器整块删除,连标题后面的介绍、功能表和安装说明一起吞掉了。这个例子说明,清理装饰和保留正文不能用同一个过宽的删除范围处理。
152 改为去掉 HTML 标签而保留容器中的文字、表格与说明,并保护代码块和代码示例。进一步检查又补上缺少闭合标签、行内代码中的注释符号,以及 HTML 属性内出现注释起始符的边界,区分真实正文注释与需要展示的代码内容。
真实 README 恢复为 15 个章节,功能、安装、Docker 命令和文档说明都能读到。新增 14 项回归测试纳入最终检查,全量执行 1644 项,2 项既有条件跳过、零失败,解析金样本没有修改。Release 构建和最终安装包校验也通过,形成 1.31.0/152。
这次没有批量重写旧收藏。已经保留原始 README 的条目,安装后重新打开详情即可用新规则显示;若首页摘要仍是旧结果,再明确触发重新解析。后续覆盖安装了 152 并成功打开,未卸载 App,也未清理收藏。真机上随后确认了旧 GitHub 收藏的正文能够正常显示。
真机能读到列表,不等于媒体预览完整
152 安装后,验收先走不改收藏的路线,检查现有图片、普通视频和订阅入口。图片打开与按钮返回正常;一条已有小红书视频能实际播放,时间持续前进,暂停、拖到结尾后重播也能工作。浅色打开时看到的是白底封面加载,但这次观察不能排除极短的闪黑。
小红书作者列表读到了首批 10 条,入口本身正常。然而,其中一条多图预览提示原帖尚未提供完整媒体,另一条视频只有标题和封面,没有取得可播放地址,重试后仍失败。这是两种不同的失败,尚不能统一归因于网络、登录或平台限制,也不能因为列表成功就把预览算作通过。
小组件的三种尺寸在应用内预览都有内容,但真实桌面组件仍未验完。双指缩放、实际声音、快捷指令和其他系统级流程也留有缺口;镜像连接中断后没有继续冒称完成。镜像工具的一次滑动输入未带动页面,也没有直接认定为 App 滚动故障。
这一轮真机记录保留了正常项、失败项和未完成项,没有删除收藏、退出账号或重新安装来掩盖问题。它带来的直接结果不是“全部验收通过”,而是明确了下一轮最需要复现的两个实际案例。
诊断要能分环节,也不能串到另一条内容
针对小红书两处失败,153 的工作先补诊断,而不是先猜一个原因再改代码。诊断区分缺图、动态照片缺视频、页面流缺失和原文件检查失败等环节,不记录账号或原帖链接。下一次复现时,应能知道失败发生在哪里。
交叉检查发现诊断结果还可能串到另一条内容,于是增加操作编号隔离。取消、切换条目或并发读取后,旧任务的结果不能被当成本次读取结果展示。只有诊断本身可信,后面的原因判断才有依据。
代码检查还定位到一个独立的微博播放缺口:视频已经进入播放器后若持续缓冲,原有超时换源逻辑不会介入,可能一直转圈。先让新回归测试在旧逻辑上失败,确认确实能抓住问题,再写入修复。相关 124 项单测已通过,覆盖诊断、延迟补齐、取消与并发隔离、原文件检查和缓冲恢复。
原生界面验收继续检查“读取失败、补齐媒体、重新读取、逐张查看”的路径,同时要求预览不增加收藏。到本次记录时,16 项媒体界面测试和五个主页面底栏的 7 项测试已通过;另一轮 26 项界面测试中 25 项通过,剩余一项未找到第一张图的识别标记,调整测试标记后正在复跑,仍需确认 18 张图顺序完整且没有自动入库。
出包脚本也发现了表述与行为不一致:写着完整重编译,实际使用增量构建。修正它已列入这轮工作,但当时仍在收尾,不能说最终干净构建和安装包验收已经完成。153 尚未交付,小红书真实失败案例也还没有用新版本复验通过。
清理开发环境,先分清实例和系统运行时
今天还讨论了 Xcode Device Hub 中大量测试环境是否占空间。关键区别是模拟器实例与 Simulator Runtime:前者有各自的应用数据、缓存和测试状态,多个实例可以共用同一套系统运行时,因此删除多个实例不等于删除同样数量的系统镜像。
对已经不用的测试实例,可以先核实是否仍被测试依赖,再选择清理;项目源码与模拟器数据也不是同一种东西。但今天的记录只有解释、建议和后续删除请求,没有可核实的实际清理结果,不能写成已删除,也不能给出已经释放多少空间的数字。当前还有测试运行,更不应根据列表名称直接判断所有实例都无用。
完成状态比一个“通过”更具体
今天有三点认识值得保留。素材编译成功、功能接入和系统实际切换是三个不同步骤;README 清洗应删除装饰而不删除承载正文的容器;诊断需要与本次操作绑定,否则错误信息本身就可能误导修复方向。
接下来先完成 153 的剩余界面、系统功能和全量发布检查,再用诊断版复查真机上的两处小红书失败。连续加载、关闭重开、二次收录、声音、双指手势和桌面组件仍需实际验收。平台受限订阅、正式会员支付、公开文档入口、跨设备同步及上架准备也各有未完条件,不会因这一轮出包而自动完成。
隐私说明
本文只整理当天有活动且能够核实的对话,排除自动化、日记生成与发布聊天。保留公开项目名、技术名称、版本与必要测试数量;删除个人身份、账户、设备名称、私人媒体、内部地址、绝对路径和可定位个人基础设施的信息,不包含凭据、完整代码或原始日志。