Commit Graph

  • 53c25697a6 feat(lookup): 用户前缀查找放宽至单字符——中文姓氏单字搜索(全链路) main 浅念 2026-09-29 15:37:41 +08:00
  • b0a3515bf2 feat(api): 用户前缀查找并入 displayName——成员添加可按姓名搜人(方案 A) 浅念 2026-09-29 15:20:09 +08:00
  • 8c47a88c79 fix(viewer): 环回瞬时回位强制重排——同帧恢复过渡导致可见反向长滚 浅念 2026-09-29 15:00:50 +08:00
  • 38b913b429 style(viewer): 广告轮播无缝环回——首尾克隆帧 + 到位瞬时回位 浅念 2026-09-29 14:45:40 +08:00
  • 048732dfef style(viewer): 广告轮播改从右往左滑动切换(translateX 轨道,替代淡入淡出) 浅念 2026-09-29 14:26:41 +08:00
  • f88c1c170a feat(app): 选图拦截 v2——硬封锁+仅本机判定,治点选卡顿与连点强穿 浅念 2026-09-29 14:24:53 +08:00
  • d0755aa466 style(viewer): 广告轮播去固定比例——活跃帧撑自然高度(运营上传统一高度图) 浅念 2026-09-29 14:22:46 +08:00
  • 07f81ff59b style(viewer): 广告轮播切换柔化——全帧堆叠淡入淡出 浅念 2026-09-29 14:18:39 +08:00
  • 29204bc08a docs(plan): 选图拦截 v2 设计——硬封锁+仅本机判定 浅念 2026-09-29 14:14:06 +08:00
  • a90cb9953e style(viewer): 广告徽标/关闭钮缩小淡化 + 信息区去底部分隔线(用户调整) 浅念 2026-09-29 14:09:29 +08:00
  • 3728eb93d9 feat(app): 服务端历史行首缩略图 + 上传中心空态引导至服务端历史 浅念 2026-09-29 12:04:06 +08:00
  • f1912998a8 feat(api): listUploads 会话条目内嵌照片预览(现签 thumb/browse) 浅念 2026-09-29 12:04:06 +08:00
  • 3833bc3bc6 docs(plan): 服务端历史缩略图 + 上传中心空态引导设计方案 浅念 2026-09-29 11:38:23 +08:00
  • 744d45cc61 fix(ads): 轮播图裂图修复——广告现签 TTL 24h + 失败节流重拉 浅念 2026-09-29 11:27:06 +08:00
  • 8741bded7f fix(app): 海报下载反馈改弹层内呈现——SnackBar 被模态弹层遮挡不可见 浅念 2026-09-29 11:25:49 +08:00
  • a02d7a5e98 feat(app): 海报弹层内中/English 切换——二维码海报支持英文版 浅念 2026-09-29 11:04:13 +08:00
  • c68e7115e4 docs(plan): 海报语言切换设计方案(弹层内中/English 切换) 浅念 2026-09-29 10:57:17 +08:00
  • 0673f394d5 fix(app): picker dup gate — 2s server-check timeout, single snackbar, fileSize-throw allow 浅念 2026-09-29 10:35:04 +08:00
  • 7f8cda1cd3 fix(viewer): 去除头部下方残留的旧广告位实例(位置迁移漏删) 浅念 2026-09-29 10:14:55 +08:00
  • 7e5c550fb3 feat(app): block selecting already-uploaded photos at picker tap (double-tap to force) 浅念 2026-09-29 10:10:49 +08:00
  • 2261b8aebc style(viewer): 广告轮播移至宣传图与标题之间(after-banner 插槽) 浅念 2026-09-29 10:03:15 +08:00
  • 328140494f docs(plan): picker tap-time duplicate gate (option A) — incremental plan 浅念 2026-09-29 09:51:41 +08:00
  • c64db3c53a docs: 广告位轮播验收记录与实施计划 Task 13 勾选(线上部署完成) 浅念 2026-09-29 09:35:37 +08:00
  • 19d4fd143a feat(app): banner crop ratio 3:1 -> 16:9 (output <=1920x1080, preview height aligned with cover) 浅念 2026-09-29 09:32:28 +08:00
  • bfba76b5e6 fix(ads): 终审修复——staging 前缀+运行时上限核验/失效绑定编辑/白名单去 heic/杂项 浅念 2026-09-29 02:20:21 +08:00
  • 041cfc77b7 docs: 广告位实施计划 Task 5-12 勾选 浅念 2026-09-29 01:59:57 +08:00
  • b3e89f7efb fix(admin): 广告位排序并列簇修正——create 追加 max+1/move 纯逻辑抽取/相册下拉预载 浅念 2026-09-29 01:35:09 +08:00
  • 239ef5648f feat(admin): 广告位管理页——上传/链接/绑定相册/开关/排序 浅念 2026-09-29 01:21:33 +08:00
  • 7f9789eb46 polish(viewer): 广告轮播 a11y 补全——aria-current/focus-visible/touch-action/键名对齐 浅念 2026-09-29 01:08:13 +08:00
  • f1c13bff7c feat(viewer): 相册页广告轮播——4s 自动/暂停/滑动/徽标/会话级关闭 浅念 2026-09-29 00:58:48 +08:00
  • 80405cfcc1 chore(api): 公开广告端点补 enabled 投影不变量注释(Task 9 评审建议) 浅念 2026-09-29 00:50:46 +08:00
  • 373f0fc533 feat(api): GET /v1/public/albums/{token}/ads 公开广告(全局+定向/现签) 浅念 2026-09-29 00:44:23 +08:00
  • 9ec8226577 fix(sync): reconciler 清扫环补 ad——错过的 ad.* 推送恢复自愈通道 浅念 2026-09-29 00:26:21 +08:00
  • 60b675a908 feat(sync): 对账清单 ad 实体当前态清扫 浅念 2026-09-29 00:22:13 +08:00
  • 4979091d2c feat(api): 广告位 CRUD——outbox ad.* 事件/audit/停用高优先级/版本化换图 浅念 2026-09-28 23:57:43 +08:00
  • 121afadf1e feat(api): /admin/ads/uploads 广告图 staging 预签名(2MB/白名单/admin-only) 浅念 2026-09-28 23:34:11 +08:00
  • 4db90b0e9e feat(sync): ov inbox ad 分支与 sender adId 推导(disabled/墓碑=删投影行) 浅念 2026-09-28 23:18:37 +08:00
  • d86f452bed docs: 广告位设计 404 码 ALBUM_NOT_PUBLIC 纠正入档 + 实施计划 Task 1-4 勾选 浅念 2026-09-28 23:03:32 +08:00
  • 539597e9f0 feat(storage): 广告对象键布局(staging + 版本化终键) 浅念 2026-09-28 23:01:09 +08:00
  • 318f69dae7 fix(db): photos 查重索引补 schema 声明——消除 migrate dev 误提议 DROP 漂移 浅念 2026-09-28 22:49:43 +08:00
  • 726f6a1be8 feat(db): ads 写权威表与 ads_ov 投影表(含迁移) 浅念 2026-09-28 22:43:25 +08:00
  • 001d3aaf73 fix(contracts): 广告位 404 码对齐 NOT_FOUND/title 必填/空 PATCH 语义/上限漂移守护 浅念 2026-09-28 22:29:45 +08:00
  • ec55d5718b feat(contracts): 广告位 openapi 端点/schema 与 AD_UPLOAD_MAX_BYTES,类型再生 浅念 2026-09-28 22:16:12 +08:00
  • af8f3b78dd feat(contracts): ad.updated/ad.deleted 事件类型与 ad 实体映射 浅念 2026-09-28 21:58:32 +08:00
  • ac37794d43 fix(app): path-precise duplicate matching; shared file stat; union test 浅念 2026-09-28 20:22:37 +08:00
  • 0fa23e015e feat(app): server-side duplicate pre-check at enqueue moment 浅念 2026-09-28 19:17:35 +08:00
  • 64e1be09d3 test(api): pin earliest-uploadedAt + uploadEnabled-agnostic pre-check; fix comment 浅念 2026-09-28 19:06:47 +08:00
  • 805f77be76 feat(api): upload duplicate pre-check endpoint (checkUploadDuplicates) 浅念 2026-09-28 18:56:07 +08:00
  • 7d744da56e docs: 广告位实施计划——评审修订(inbox 依赖暂存豁免 ad 关键补丁/常量指针纠正/组件测试补齐/compose 全路径) 浅念 2026-09-28 18:41:54 +08:00
  • 4b5940c0d8 test(api): 修复 uploads e2e 与服务端查重(90dcc58)的字节数冲突 浅念 2026-09-28 18:38:36 +08:00
  • 3b7d37110a docs: 广告位设计补轮播图左上角「广告」可见小标签(合规可识别性) 浅念 2026-09-28 18:25:49 +08:00
  • 678225e8b5 docs(plan): upload duplicate pre-check at enqueue moment — incremental plan 浅念 2026-09-28 18:25:24 +08:00
  • 8453167b39 docs: 广告位设计补部署顺序硬约束(ov 先 cn 后,DTO IsIn 整批拒收已核实)、广告图 2MB 上限、量级假设登记 浅念 2026-09-28 18:24:00 +08:00
  • ab412a3630 docs: 广告位设计补 enabled 翻转的 sync inbox 直测用例(评审建议) 浅念 2026-09-28 18:16:15 +08:00
  • 0220a9cc05 docs: 广告位设计评审修订——createdAt 进投影/载荷、inbox disabled=删行、albumId 恒空串、head 校验补 contentType 浅念 2026-09-28 18:14:00 +08:00
  • 573a559e4a docs: 广告位轮播设计方案(全局+定向投放/两步上传/outbox 同步投影/sessionStorage 关闭) 浅念 2026-09-28 18:09:35 +08:00
  • 46f9d93fd3 fix(app): guard force-column migration against downgrade-then-reupgrade 浅念 2026-09-28 17:27:52 +08:00
  • 29f3bde9c2 feat(app): wire server dedup - force passthrough + PHOTO_DUPLICATE classification & l10n 浅念 2026-09-28 17:06:19 +08:00
  • 4f89c25bad fix(app): lock capture page portrait; gate zoom badge on 2 pointers; drop dead getter 浅念 2026-09-28 16:33:15 +08:00
  • ac602acf47 feat(app): camera preview WYSIWYG aspect + pinch zoom with double-tap reset 浅念 2026-09-28 16:17:07 +08:00
  • 65cd6849cc docs(plan): Task 9 checklist — GIF/truncated source cases for crop 浅念 2026-09-28 16:02:57 +08:00
  • 683e19bdc1 feat(app): crop cover & banner before upload (crop_your_image, 16:9 / 3:1) 浅念 2026-09-28 15:39:39 +08:00
  • 97db504e25 docs(plan): fix manifest snippet (VISUAL_USER_SELECTED has no maxSdkVersion) + expand Task 9 checklist 浅念 2026-09-28 15:04:42 +08:00
  • 2e5fc40636 feat(app): in-app asset picker (wechat_assets_picker) - unlimited multi-select with range selection 浅念 2026-09-28 14:43:59 +08:00
  • aea797c7c7 docs+test(app): correct okhttp version comments; harden throttle test assertions 浅念 2026-09-28 14:22:24 +08:00
  • 45dbde3719 perf(app): throttle upload progress callbacks to 256KB steps 浅念 2026-09-28 14:10:29 +08:00
  • 203f62e7cb test(app): align mockwebserver with resolved okhttp 5.2.1 浅念 2026-09-28 14:10:14 +08:00
  • 93e7046332 feat(app): enqueue gallery batch concurrently via Future.wait 浅念 2026-09-28 13:53:42 +08:00
  • b79edf447b feat(app): bounded-parallel prepare (default 3) replaces serial queue 浅念 2026-09-28 13:43:07 +08:00
  • dc5ae4a24a feat(app): raise default upload parallelism 2 -> 4 浅念 2026-09-28 13:34:48 +08:00
  • cc47278f50 docs: upload speedup plan v2 — 9 tasks after full re-review 浅念 2026-09-28 13:34:03 +08:00
  • 441a24a54c docs: upload speed optimization plan draft 浅念 2026-09-28 11:33:04 +08:00
  • 90dcc58c33 feat(uploads): P0-1 batch 4 — server-side duplicate photo detection (409 + force + index) 浅念 2026-09-28 11:29:29 +08:00
  • 33f347cdea feat(app): P0 batch 3 — offline detection with engine pause/resume + UI banner 浅念 2026-09-28 11:23:51 +08:00
  • 638dd9b45d feat(app): P0 batch 2+2.5 — local upload dedup with batch dialog, album switch check, file size guard 浅念 2026-09-28 11:06:40 +08:00
  • 9edcb3f2b1 feat(app): P0 batch 1 — photo viewer zoom, camera lifecycle, image memory management 浅念 2026-09-28 10:35:14 +08:00
  • 98e073d8c8 docs: App potential issues v2 — full analysis with server-side dedup (confirmed, ready to execute) 浅念 2026-09-28 10:24:46 +08:00
  • 984fe8981c docs(viewer): prod verification — share sheet copy-only (native share button removed) 浅念 2026-09-28 09:15:30 +08:00
  • a5d71686ff feat(viewer): remove native share button from share sheet (user request) — copy link only 浅念 2026-09-28 09:08:39 +08:00
  • dc8d3ff967 feat(app): launcher icon — brand logo 1024px + adaptive (blue #1A73E8 background) 浅念 2026-09-24 17:07:14 +08:00
  • 2ce529dd5b docs(viewer): prod verification — share sheet without link text 浅念 2026-09-24 16:55:07 +08:00
  • d279cefd71 feat(viewer): hide link text under QR in share sheet (user request) — QR + copy button remain 浅念 2026-09-24 16:51:36 +08:00
  • 643f837bca feat(viewer): hide view count in album header (user request) — counting/reporting unaffected 浅念 2026-09-24 16:24:05 +08:00
  • cf490c7892 feat(app): all album date displays date-only — formatAlbumDateTime drops HH:mm 浅念 2026-09-24 16:20:47 +08:00
  • 07761b1b26 fix(app): camera preview distortion — swap sensor W/H for portrait 浅念 2026-09-24 16:07:44 +08:00
  • c199d0630c feat(embed): photo click opens album page in a new tab (user decision 2026-09-24) 浅念 2026-09-24 15:25:41 +08:00
  • bd4db7b458 style(viewer): 相册 banner 限高 320px + cover 裁切(PC 端观感修正) 浅念 2026-09-24 15:00:12 +08:00
  • 32eb4ceb8e docs: 观众链接统一境外源定稿(后台分享/嵌入/App二维码均 ov 域名) 浅念 2026-09-24 14:46:54 +08:00
  • 76380477a0 docs: 验收记录补嵌入组件 EMBED_ORIGIN 修正(cn 后台嵌入代码改指 ov 域名) 浅念 2026-09-24 14:01:12 +08:00
  • e5302e3929 docs: 正式环境双地域部署计划与验收记录 浅念 2026-09-24 13:41:47 +08:00
  • 30a3520669 fix(deploy): formalize nginx entrypoint ipv6 script removal in web.Dockerfile 浅念 2026-09-24 11:53:11 +08:00
  • d331d55880 chore: remove temporary freeze-debug spec 浅念 2026-09-23 19:03:21 +08:00
  • 17d510ccd5 fix(embed): scroll freeze final layer — Chrome fires a queued pointerenter after pointercancel when dragging outside, permanently trapping hover pause 浅念 2026-09-23 18:59:47 +08:00
  • 5efb89a252 fix(deploy): remove orphaned proxy directives from template cleanup 浅念 2026-09-23 18:41:31 +08:00
  • 57394387cc fix(deploy): proxy_pass double http:// prefix — API was down 浅念 2026-09-23 18:39:12 +08:00
  • 222c44c1f7 fix(deploy): disable gzip on /v1/ API paths — Flutter release AOT gzip decompression failure 浅念 2026-09-23 18:36:11 +08:00
  • fa06193a12 fix(embed): scroll freeze complete fix — remove pointer capture (broke photo clicks), keep watchdog 浅念 2026-09-23 18:25:59 +08:00
  • 65581b7920 fix(android): usesCleartextTraffic=true — release APK blocked HTTP APIs (Android 9+ default) 浅念 2026-09-23 18:10:46 +08:00
  • f7f24b0a0b build(android): release signing config — key.properties based, debug fallback 浅念 2026-09-23 17:15:51 +08:00
  • 1cad7823e2 fix(embed): watchdog also clears hover + releases capture (third freeze layer — capture suspends pointerleave, lost release never frees it) 浅念 2026-09-23 17:13:49 +08:00