fbcd73468805e95b8055395654ca1014e0d6c13c
v0.4.0 发布 checklist 第 2 步:既有三份回归脚本(M1 7/7、M2 11/11、M3 14/14) 对 compose 六容器全绿后,补上 M3.5 新增对外面的验证,与前三份并列于仓库根目录。 覆盖 10 场景 / 95 断言(冻结契约 openapi v1.4.0,32 路径 45 操作 75 schema): - GET /me 初始形态:nickname/avatarUrl 键恒在且双 null,不外露 avatarAssetId - PATCH /me 三态:键缺省不改 / 显式 null 清空 / 给值设置;空 patch、纯空白、 空串、只带未声明字段、非法 UUID、坏 JSON 六格 400/40000;同 body 重放幂等 - 昵称边界按码点计:1 与 32 CJK 可、32 emoji 可(UTF-16 长度 64 却过关)、 33 两种字符集均拒、btrim 对齐 - 用户头像端到端:两步上传 user_avatar → 挂载 → 预签名 GET 逐字节一致 → 去签名直访 403(桶私有) - 宠物头像:PATCH /pets 挂 pet_avatar → 详情与列表两处 avatarUrl 均可下载 → 显式 null 清除;version 仍必填 - 两域 asset 校验矩阵:幽灵/他人/错用途(含 user_avatar↔pet_avatar 跨域) → 404/40405 且防枚举响应体一致;本人用途相符但 uploading → 422/42203; 失败路径零副作用 - GET /me/community-stats:无 token 401、空数据 0/0 永不 404、自赞计入、 草稿不计、他人帖不串号、软删后获赞归零、与帖详情 likeCount 对账 - media purpose 白名单三值放行,白名单外 id_card → 400/40000 结果:10/10 全绿,契约偏差 0,无需放宽任何断言(错 purpose 实测 404/40405, 与契约一致)。三份既有脚本逐字未改。 脱敏:token 截断、预签名 URL 签名 query 整体抹为 <SIGNATURE_REDACTED>、 Idempotency-Key 占位。 门禁:flutter analyze 0 issue;dart format --set-exit-if-changed lib test 0 changed (四份根目录脚本另跑显式检查亦 0 changed);flutter test 597 passed 与基线一致。 patbond-api 与 patbond-doc 代码/契约零改动。 报告:patbond-doc iteration-3.5/08-release-e2e-regression.md Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Patbond Flutter
Patbond
可运行在 Android、iOS、Web 和桌面平台。
功能
- 社区动态搜索、点赞、收藏与评论
- 模拟 AI 图片/视频创作和社区发布
- 宠物资料、疫苗记录及健康档案管理
- 医院、美容和个人服务搜索、筛选与模拟预约
- 使用
shared_preferences持久化宠物、疫苗和帖子数据
AI 创作、预约、账号和部分菜单目前仍为本地演示交互。
运行
flutter clean
flutter pub get
flutter run
Web 调试:
flutter run -d chrome
验证
dart format --output=none --set-exit-if-changed lib test
flutter analyze
flutter test
flutter build apk --debug
Description
Languages
Dart
87.9%
HTML
8.8%
C++
1.6%
CMake
1.2%
Shell
0.3%
Other
0.1%