xsl
|
c9d13697a6
|
docs: 五轮多 Agent 评审迭代复盘 + 真机闭环自动化测试实践指南
- 复盘:编排设计、逐轮决策链、35 项修复全量清单、关键技术点、踩坑与复用流程
- 真机指南:闭环模型(注入/截图/dumpLayout/hilog 三通道)、命令手册、坐标库、
安全访问选择器等 7 条踩坑、成本红线、标准测试脚本骨架
|
2026-08-30 23:22:02 +08:00 |
|
xsl
|
0b5d151e50
|
feat(app): 五轮产品评审迭代 35 项修复(报告域/对话/试衣发型/照片链/合规)
报告域:
- 报告 Tab 列表接入 GET /reports(重启可找回);重新生成采纳新 report_id
- 任务状态前后端大小写归一——轮询完成检测与「导出 PDF」按钮首次真正可达
- FAILED 重试换新幂等键;导出→重生成→再导出幂等冲突死路修复
- PDF 下载前 unlink 可重入;预览页常驻挂载+失败态重试;分享/另存文案拆分
对话页:
- 「内容由 AI 生成」常驻标识(CR-05)+ 快捷问题 chips + 额度 0 置灰与恢复时间
- 发送失败回填输入+重试+request_key 幂等;40301 额度同步
试衣间/发型设计:
- 人脸照片知情同意弹窗(preferences 持久化+版本+「我的」撤回入口)
- 生成期防中断(keepScreenOn/返回挽留/取消出口/genSeq 防串扰)
- 结果转存 filesDir/results:杀 App 回看、飞行模式离线保存、保存三态文案
- R4N1 照片输入链修复:裁除 describe 挂起载体、选图/拍照超时兜底、
openSource URI 直建失败回退 fd 口径(R5N2)
- @Builder 改 $$ 对象传参修复槽位预览不刷新(R5N1);发型列表三态
全局:
- 会话过期四处「重新登录」出路;UTC 时间显示归正(差 8h)
- 10 处技术黑话清理;主色统一 Theme.ets;配额卡 4 张真实消耗集
- 登录页内测口径;f2 ErrorView/LoadingView 换用;调试入口 debug 守卫
门禁:App 构建 BUILD SUCCESSFUL;后端 576 单测绿(子仓 00ef56b);
28 项静态检查 PASS;真机 PDF 全链/照片送达/零崩溃验证通过
|
2026-08-30 23:17:11 +08:00 |
|
xsl
|
9e5ce14bce
|
feat(report): 报告 PDF 导出端侧链路 + 新页面路由注册
- ReportResultPage:「导出 PDF 报告」按钮(仅 succeeded 显示)→ POST /reports/{id}/export(request_key 幂等,失败重试沿用同键不重复扣 hd_export)→ 任务轮询 → 下载到 filesDir/reports/ → 跳预览页
- ReportPdfPage:PDF Kit PdfView 预览(LAYOUT_SINGLE)+ Share Kit systemShare 分享 + DocumentViewPicker 另存
- main_pages.json 注册 LlmTestPage/TryonPage/HairDesignPage/ReportPdfPage 四条路由
- 后端配套:meida_backend cd0ddb1(export 管线);E2E 已验证(导出→下载→渲染逐页目检)
|
2026-08-30 13:18:25 +08:00 |
|
xsl
|
d9868fb4f7
|
feat(tryon): 试衣间 + 发型设计(Phase A 直连线上 API)
- TryonApi.ets:直连 meida.xiangsilian.com——换装 /change_cloth_base64(JSON+Base64,超时 320s)、发型 /hair/api/*(multipart,实测 5~10s)
- ImageCodec.ets:相册选图→解码→缩放→Base64 的公共链路
- TryonPage(模特/服装双图换装)+ HairDesignPage(60 款发型试戴/换发色),首页两张入口卡
- docs/试衣间与发型设计-产品方案.md:Phase A 直连内测 / Phase B 服务端代理 + 合规纳管的分工结论
- 待补:真机实测耗时(T-P0-13/14 基线);Phase B 迁服务端时代码改动集中在 TryonApi 一处
|
2026-08-30 13:18:15 +08:00 |
|
xsl
|
b31c7490f2
|
spike(llm): T18 端侧小模型——MNN native 骨架 + 局域网模型服务
- cpp/:liblocalllm.so NAPI 骨架(loadModel/chat/benchmark/release),预置 libMNN.so 3.6.1 鸿蒙包(已验证含 createLLM 符号;.gitignore 挡预编译库与 models/,获取方式见任务文档)
- LocalLlm.ets:native 调用的 ets 封装;LlmTestPage:模型从局域网服务器下载→加载→首 token/速度 benchmark
- scripts/serve-models.mjs:开发期局域网模型文件服务器(Qwen3-0.6B-MNN 456MB,SHA256 与 ModelScope 官方清单逐文件核对)
- build-profile.json5 接 externalNativeOptions(arm64-v8a);ProfileContent 加「端侧LLM调试」入口(内部调试用)
- docs/开发任务包/T18-端侧小模型SPIKE.md:目标/验证项/回退线;真机 benchmark 数据回来后写 T18-REPORT 三问三答
|
2026-08-30 13:18:03 +08:00 |
|
xsl
|
120bbeceff
|
chore(env): 后端本机联调环境(WSL)+ meida_backend 子仓
- meida_backend 收为 git submodule(git.xiangsilian.com/xsl/meida_backend.git),含 PDF 导出管线提交
- WSL Ubuntu-22.04 镜像网络模式跑 PG(pgvector)@55432 + Redis@56379 + uvicorn@8666 + celery,Windows/Hyper-V 防火墙已放行
- app 默认后端地址 192.168.3.25→192.168.3.19:8666(宿主机)
- docs/本地联调指南.md 全面更新到本机拓扑;.gitignore 增补本地素材/调研产物与 graphify 本机文件
|
2026-08-30 13:17:49 +08:00 |
|
xsl
|
f5b167e4b6
|
添加 老项目的代码 参考
|
2026-08-19 21:48:12 +08:00 |
|
xsl
|
312ef2b716
|
chore(app): 真机调试配套——调试签名(.ohos 证书)/应用名美搭/新图标/默认地址改局域网 8666;构建门禁脚本 .build-gate.bat(签名打包需 JBR java,README 记录 spawn java ENOENT 系旧 hvigor 守护进程缓存坏 PATH 所致);.gitignore 收录 .hvigor 构建缓存
|
2026-08-16 11:41:06 +08:00 |
|
xsl
|
83fd48b910
|
feat(app): AI 对话语音输入(微信式)+ 回复语音朗读——ASR V2 引擎自采修复 1002200006 busy(recognitionMode 0 不再自建采集器)+ busy 自愈;TTS V2 长文分段串行朗读(单次 500 字符上限)+ 状态回调;按住说话/松开发送/上滑取消,麦克风权限运行时申请
|
2026-08-16 11:40:47 +08:00 |
|
xsl
|
db9c4da0e3
|
fix(app): 我的页 Tab 内嵌修复 + 身高体重改滚轮选择器——ProfileContent 组件化(占位+跳页方案把用户锁死在独立路由页,只能登出);身高 100-250/体重 25-300 滚轮选择(showTextPickerDialog),不再键盘输入
|
2026-08-16 11:40:42 +08:00 |
|
xsl
|
256f850a61
|
docs: 客户端开发交接文档(新机器开工自包含)
客户端开发将转移到另一台机器,本文沉淀本机全部实操经验:
- 环境搭建 + CLI 构建 + 首次自动签名(Account Kit 前置,signingConfigs 现为空)
- AGC 现状:App ID 6917613748100335131 已建、包名核对一致;待办三步
(自动签名→指纹录入→开 Account Kit 标准登录)
- 后端联调:后端在原开发机 WSL 8666 端口,两种连法(局域网直连/自建);
DEFAULT_BASE_URL(127.0.0.1:8000) 已过时的说明;dev-token 为主力调试通道
- ArkTS 铁律七条(新增 @Builder 按值传参不随 @State 刷新的 2488 教训)
- hdc/uitest 实测命令与坑(MSYS_NO_PATHCONV、相对路径、dumpLayout 解析法)
- 真机修过的五个坑清单 + 待办任务与开工验收基线
|
2026-08-15 22:00:12 +08:00 |
|
xsl
|
4125769457
|
docs: 办理记录——AGC 应用已建(App ID 6917613748100335131),待自动签名+指纹录入
|
2026-08-15 21:56:39 +08:00 |
|
xsl
|
67d906248b
|
docs: 前置开通清单 v2——个人开发者降级路线
需求变更(个人主体办不了短信签名、前期无 COS 必要):
- 登录兜底通道:短信验证码 → 邮箱验证码(个人邮箱 SMTP 授权码,
零成本零审核;防刷参数 FR-ACC-14 原样沿用,键前缀 sms:→email:)
- 主登录通道维持华为账号:查证 Account Kit 权限分级——个人开发者
可用标准登录(UnionID/昵称/头像),仅"一键登录取手机号"企业专属;
我们只需 UnionID,标准登录够用
- COS 四桶 → 服务器本地磁盘(meida_data/ 四目录,上传走后端 multipart,
下载走短期签名 URL;CosSigner Protocol 保留,回迁只换实现)
- 数据库:PG 已在 WSL 运行零费用,无需动作;明确不切 SQLite
(retrieval 依赖 pgvector,切换=重构+能力回退)
清单从"腾讯云全家桶"收缩为两件必办:华为 AGC + 发信邮箱授权码。
登记代码侧后续任务 E1~E4(邮箱登录/本地存储驱动/FE 登录 UI/文档同步)
|
2026-08-15 18:49:55 +08:00 |
|
 xslandCursor
|
33624a7650
|
提交 graphify 知识图谱,方便按图查询架构而不用重扫文档。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-08-15 18:15:56 +08:00 |
|
xsl
|
98a134c7a2
|
F3: 表单校验反馈修复——点名缺失字段+自动滚动+@Builder按引用传参
用户真机反馈"还有 2 项未完成,点击不了提交并生成报告",排查出两层问题:
1. 表层(可见性):汇总条只报数量不报字段名,缺失字段在视野外。
- 汇总条改为点名缺失字段:"请完成:核心诉求、心理风格"
- 校验失败自动滚动到第一个缺失字段(componentUtils.getRectangleById
取 windowOffset 相对 form_root 的内容坐标,Scroller.scrollTo 动画滚动)
- 汇总条本身可点击,点击重新跳到第一个缺失字段
- 必填项标签加红色 * 标记
2. 根因(@Builder 陷阱):字段级红字从未渲染过。FieldLabel 按值传参
(label/err/required),ArkUI 规定 @Builder 按值传参不随 @State 变化
刷新——err 停在初始空串。改为 $$ 按引用传参(FieldLabelParams),
真机 dumpLayout 验证红字已随校验结果出现。
真机验证(uitest 注入 + dumpLayout + 截图):
- 空表单提交:红字四项齐现、汇总条点名、自动滚到首个错误
- 完整表单提交:进 40920 对话框(本期已生成),链路正常
|
2026-08-15 13:35:06 +08:00 |
|
xsl
|
c24924fa43
|
fix(app): 真机首验三连修——信封解析/DatePicker 折叠/跳转兜底
真机+模拟器注入实测发现并修复:
1. ApiClient 把一切非 200 HTTP 吞成 50000「服务开小差了」——后端业务
错误(40920/40301/42910…)走非 200 状态码但 body 是统一信封,先验
信封形状再判成败。这是「提交不起作用」的直接原因(用户二次提交
=409,红字被布局挤在视野外)
2. 生日 DatePicker 默认展开高约半屏:九型必填项与提交按钮被推出视野、
滚动手势被选择器消费。改点击展开,表单一屏可见
3. 校验失败加顶部汇总红条(字段红字可能在视野外的可见性兜底)
4. 轮询完成不自动跳结果页:@Builder 传函数给子组件在真机调用无效
(手动按钮同一方法正常)——加「查看报告」兜底按钮 + replaceUrl
显式 catch + 完成态文案引导,回调保留 try/catch 与日志
验证:40920 对话框正常弹出;新用户提交→轮询→查看报告→32 维结果页
完整渲染(含降级黄条、报告编号)
|
2026-08-15 13:11:26 +08:00 |
|
xsl
|
dff8084bbb
|
fix(app): dev-token 登录改走无鉴权通道(自拦 40100 鸡生蛋)
真机首验即中:loginByDevToken 走了带鉴权的 post(),而 ApiClient 对
未登录一律 40100 短路——登录接口被自己的守卫拦死,UI 表现为
「请先登录」且无解。改走既有 postWithoutAuth。编译门禁无法发现
此类运行时逻辑环,真机验证首个战果。
|
2026-08-15 12:25:59 +08:00 |
|
xsl
|
e409ff08cc
|
merge: F3 报告流(问卷/轮询/32 维结果页)(FE 第一批)
|
2026-08-15 00:50:24 +08:00 |
|
xsl
|
995c18e7d5
|
feat(app): report flow with polling and 32-dimension result view(F3)
|
2026-08-15 00:49:47 +08:00 |
|
xsl
|
ef25fa70c9
|
merge: F1 登录页与个人中心(FE 第一批)
|
2026-08-15 00:44:09 +08:00 |
|
xsl
|
336b638a1f
|
feat(app): login page with dev-token flow and profile with quota cards(F1)
登录页(LoginPage):
- 品牌区 + 设备标识输入(随机生成一次并持久化到 preferences,可改可重生成)
- 高级设置折叠区:展示/编辑 baseUrl(AuthStore.setBaseUrl),带格式校验与恢复默认
- 登录闭环:loading 态 → AuthStore.loginByDevToken → 成功 router.replaceUrl 首页;
失败 catch ApiError 用 ErrorBanner 展示 message+hint;已登录态进入直接跳首页
个人页(ProfilePage):
- 用户 ID 脱敏(前 6 后 4)+ 登出(AlertDialog 确认 → AuthStore.logout → 回登录页)
- agent_chat/tryon/report_basic 三配额卡并行拉取,进度条 used/(limit+bonus),
剩余数大字;周期文案:日配额=明日恢复、report_basic=一次性额度、月度=日期
- 最近流水(limit=10):tx_type 中文映射(消耗/退还/奖励),status 徽标配色区分
- Refresh 下拉刷新(加分项)
共享组件 components/f1/:ErrorBanner、QuotaCard、LedgerItem
偏差说明:
- 设备标识在 @State 之外额外持久化(meida_login/device_key),保证跨启动稳定不重生
- Scroll 隐藏滚动条用 .scrollBar(BarState.Off)(本 SDK 无 scrollBarBarState 属性)
- router.replaceUrl / AlertDialog.show 有 deprecation WARN,属规程指定路由方式,构建门禁通过
|
2026-08-15 00:43:46 +08:00 |
|
xsl
|
45e4ba52b8
|
merge: F4 AI 穿搭对话页(FE 第一批)
|
2026-08-15 00:42:28 +08:00 |
|
xsl
|
1de70f31d6
|
feat(app): AI chat page with quota hint and error states(F4)
|
2026-08-15 00:41:55 +08:00 |
|
xsl
|
772283220a
|
merge: F2 应用壳四 Tab 与首页入口(FE 第一批)
|
2026-08-15 00:41:21 +08:00 |
|
xsl
|
198761677c
|
feat(app): app shell tabs with home entries and common loading/error views(F2)
|
2026-08-15 00:40:53 +08:00 |
|
xsl
|
0c3e07e660
|
新增本地联调指南(App↔后端;端口冲突提醒与真机 baseUrl 配置)
|
2026-08-15 00:40:05 +08:00 |
|
xsl
|
34d94ba8dd
|
FE 批次任务契约(F1~F4)与协作规程 v1.3
|
2026-08-15 00:36:09 +08:00 |
|
xsl
|
9503c6e259
|
feat(app): FE 骨架协调提交——core 网络层/路由注册/页面桩
- DevEco 6.1 模板工程(API 6.1.1(24),bundle com.xiangsilian.app)+ INTERNET 权限
- core/:ApiClient(统一信封解包+401 自动刷新重试)/AuthStore(双令牌持久化+
dev-token 通道+baseUrl 可配)/ContextHolder/ApiTypes —— 全部通过 ArkTS 严格编译
- 七页面注册 main_pages(桩态);Index 按登录态分流;页面间约定 router 路径跳转
零 import(并行冲突隔离)
- app/README:CLI 构建门禁命令与代码约定
|
2026-08-15 00:33:55 +08:00 |
|
xsl
|
26357756e2
|
补第四批任务契约文档(T15/T16/T17)
|
2026-08-15 00:33:55 +08:00 |
|
xsl
|
e511b6a66f
|
收尾两批并行开发的文档回写与任务包
- Sprint 执行计划 v1.1:§1.1 补第一批交付实据;T9 SPIKE 结论回写 Sprint 1 表
(T-P0-16 通过 2.8ms;T-P0-12 有条件;T-P0-10 原型 6/6 + 真实照片重验前置);
Sprint 2 表标注 T-P2-01~06 交付;新增 §9 两批交付记录
- 开发任务拆解 v1.5:交付回写 + 新风险登记(RTMPose 域差异、BiRefNet 异步化)
- 新增 开发任务包/:三批多 agent 并行的协作规程与 14 份任务契约
- 新增 前置开通清单-云资源与资质.md
- 清理已用毕的评审报告(文档评审 2026-08-13、项目整体评审 2026-08-14),
README 中相应引用改为留痕表述
|
2026-08-14 21:07:20 +08:00 |
|
 xslandCursor
|
2934954eb2
|
按交叉评审对齐文档与代码口径,并挡住 reference 下的密钥文件
表名、配额种子和字段名以产品方案与架构为准;文档仓库补 .gitignore,避免 git add -A 把 API Key 推进远端。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-08-14 11:28:35 +08:00 |
|
 xslandCursor
|
f4075f6827
|
收口文档评审冲突并补齐 Sprint 执行计划
统一性能、token、配额与成本口径,补齐短信登录等缺口任务,并回写脚手架实测暴露的思考模式与峰谷计价约束。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-08-14 09:40:50 +08:00 |
|
xsl
|
e31755e343
|
save
|
2026-08-13 23:10:49 +08:00 |
|
xsl
|
d784d4ae15
|
save
|
2026-08-11 23:42:30 +08:00 |
|
xsl
|
c3a8c60e6f
|
save
|
2026-08-11 22:15:23 +08:00 |
|
xsl
|
d603e49005
|
init
|
2026-08-09 15:46:24 +08:00 |
|