lixi fbcd734688
CI / flutter-gates (push) Successful in 3m46s
CI / flutter-gates (pull_request) Successful in 3m44s
新增:M3.5 E2E 烟囱脚本——资料读写/双头像/获赞聚合十场景(v0.4.0 发布门禁)
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>
2026-09-14 09:53:35 +08:00
2026-07-21 17:41:01 +08:00
2026-07-15 12:01:04 +08:00
2026-07-15 12:01:04 +08:00
2026-07-15 12:01:04 +08:00
2026-07-21 17:41:01 +08:00
2026-07-15 12:01:04 +08:00

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
S
Description
Patbond flutter
Readme 1.4 MiB
Languages
Dart 87.9%
HTML 8.8%
C++ 1.6%
CMake 1.2%
Shell 0.3%
Other 0.1%