浅念
|
33f347cdea
|
feat(app): P0 batch 3 — offline detection with engine pause/resume + UI banner
P0-4 离线感知:
- connectivity_plus → NetworkAvailability(online/offline/unknown)
- engine_scope 三重绑定:有账号+有网 → start;任一失去 → stop(在途不中断)
- 网络恢复 → start + onNetworkRestored(waitingNetwork 即时重试)
- HomePage 顶部离线黄条(wifi_off + i18n 双语)
P0-5 更正:EXIF 方向已由服务端 sharp .rotate() 自动转正——v2 分析误报
397/397 全绿、analyze 0
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-28 11:23:51 +08:00 |
|
浅念
|
dc8d3ff967
|
feat(app): launcher icon — brand logo 1024px + adaptive (blue #1A73E8 background)
flutter_launcher_icons 自动生成全尺寸 mipmap(48-192px + 自适应前景/背景)。
正式签名生产环境 APK 已打好。
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-24 17:07:14 +08:00 |
|
浅念
|
5a207b395e
|
feat(app,viewer): WeChat card share + 'Share to...' label + site og tags
- 按钮文字「分享到微信/其他应用」→「分享到...」(用户需求)
- 微信卡片分享(fluwx 6):WECHAT_APPID 经 --dart-define 注入;已配置且
装微信 → WXWebpage 卡片(标题=相册名、描述=日期·地点、缩略图=封面压缩
240px PNG ≤32KB、点击进观众链接);未配置/未装 → 回退系统分享面板
- viewer index.html 加站点级 og 标签(微信/QQ 抓取链接预览用;每相册动态
og 需服务端注入,登记后续增强)
- 397/397 全绿、analyze 0
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-23 16:05:53 +08:00 |
|
浅念
|
df0c318599
|
feat(app): share redesign — card share (system), QR poster (banner+title+time+venue+QR, downloadable), copy link
- 三方式(用户需求):①卡片模式默认=系统分享面板(share_plus SharePlus.
instance,微信/其他应用,文本=标题+链接)②生成二维码=海报弹层——顶部
宣传图(banner→cover→品牌占位回退)+ 活动标题 + 时间 + 地址 + 二维码,
「下载海报图」RepaintBoundary 3x 渲染 PNG → gal 存相册 ③复制链接
- 依赖 share_plus + gal;分享/保存均 Provider 注入(测试替身)
- 测试适配三方式结构 + 海报弹层断言(397/397 全绿、analyze 0)
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-23 11:27:32 +08:00 |
|
浅念
|
1f67b7c818
|
feat(mobile): UI-01 upload center, capture and auxiliary pages
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-21 17:20:43 +08:00 |
|
浅念
|
fb3c278e50
|
test(mobile): integration suite against real backend on mumu
P3 Task 11 (WRITE & COMPILE phase; device run pending MuMu availability).
- integration_test/p3_flow_test.dart: login -> album (zh+en) -> category
-> invite -> enqueue 3 real JPEGs -> queue completed -> server history
(sourceDeviceId) -> ov public API sees 3 -> hide via API + UI sync ->
DIO fault-gate offline (waitingNetwork -> retry -> 4 completed) ->
password change (session kept) -> relogin -> in-app locale smoke.
- integration_test/p3_background_test.dart: IT_PHASE=prepare/verify spec
for HOME-background continuation and force-stop kill-restart recovery
(2 x ~14MB noise JPEGs give a deterministic mid-flight window).
- helpers: dart-define config, fault-injecting DIO adapter, app harness
(picker/notification/locale provider overrides), UI step library with
live-binding polling (no pumpAndSettle).
- scripts/run-mobile-it.sh: device detect (exit 2), backend ensure
(compose + api/ov/worker/sync, exit 3), idempotent per-run user seed
(no DB reset), APK build/install + adb push of testdata, phase 1 /
--background phase 2 orchestration with server-side confirmed-count
truth via curl.
- services/api seed:it script (create-if-absent staff accounts).
- debug-only network security config: cleartext HTTP permitted to
10.0.2.2/127.0.0.1/localhost only (release unaffected).
- testdata: 3 x ~120KB + 2 x ~14MB generated JPEGs.
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-19 05:35:16 +08:00 |
|
浅念
|
3ddb0ea2d4
|
feat(mobile): upload engine with preparation, batching states and retries
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-19 02:50:40 +08:00 |
|
浅念
|
bbea1dd364
|
feat(mobile): album management pages with qr share
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-19 01:56:38 +08:00 |
|
浅念
|
8bc50e07ef
|
feat(mobile): flutter scaffold with env script and baseline nav
- scripts/flutter-env.sh: toolchain PATH/JAVA_HOME/ANDROID_HOME + pub 镜像 env
- apps/mobile: flutter create (com.photolive.photo_live, android+ios)
- Android minSdk 24 / targetSdk 36;INTERNET 权限(main manifest,debug+release)
- iOS Info.plist:本地网络 ATS 例外 + 相册/相机用途说明(zh+en)
- 依赖接入:riverpod / drift(+sqlite3_flutter_libs) / dio / secure_storage /
image_picker / camera / qr_flutter / path_provider / path / intl
- l10n:l10n.yaml + app_zh/app_en arb(20 键),gen-l10n(zh 模板,非空 getter)
- 基线:Material 3 主题、/login→/home 命名路由、底部导航(相册/队列/设置桩)、
locale provider 脚手架(Task 10 完成切换)
- flutter analyze 零问题;widget 测试通过;debug apk 构建成功
(MuMu 冒烟因宿主 commit 内存耗尽未完成,Task 2 重试)
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-19 00:22:04 +08:00 |
|