浅念
b6daa6fa0e
docs(embed): live title+modal verification — '2026届-广交会' overlay, coordinate click opens in-host detail modal with deep link, closes via button
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 16:47:27 +08:00
浅念
a5dcfffd37
docs(embed): refreshed evidence artifacts (modal screenshot, screenshots/recordings regenerated)
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 16:37:17 +08:00
浅念
985829fee8
fix(app): poster title truly left-aligned — Column crossAxisAlignment start (QR re-centered)
...
Text 的 textAlign 被 Column 默认 center 吞掉(文本行收缩包裹时对齐不生效);
文字区 Column 改 CrossAxisAlignment.start,二维码+扫码说明显式 Center 回居中。
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 16:30:14 +08:00
浅念
a16fa738f6
fix(app): poster — date-only text, left-aligned title/time/venue (QR stays centered)
...
用户反馈:海报日期仍带时间(表单已日期粒度,海报 formatAlbumDateTime 同步改
posterDate 只显 y/M/d);宣传图下标题/时间/地址居左;二维码保持居中。
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 16:26:32 +08:00
浅念
8834b1bbb9
feat(embed): album title overlay + in-host photo detail modal (replaces new-tab open)
...
- viewer: EmbedStream shows album title overlay top-left (ellipsis, avoids collapse zone); photo click posts open-photo {url} to host instead of window.open (direct-open still new tab)
- loader v2: open-photo message (origin+source whitelisted, URL must match widget origin) opens host overlay modal with embedded viewer deep-link iframe, close button/Esc/scrim dismiss, single instance, cleaned on destroy
- tests: click case asserts modal iframe deep link + no popup + close button dismiss; viewer 244 + loader 36 green
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 16:20:10 +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
浅念
77b1519209
docs(viewer): like-hidden live verification — feed badges/sort tabs gone, lightbox bar is share+download only
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 14:31:21 +08:00
浅念
d7ac9420be
docs(viewer): lightbox close button restored on server (transparent bg, white X, 44px circle)
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 13:51:59 +08:00
浅念
aa366c4268
docs(embed): ambient hearts restored on server (7 on screen) after parallel-session image rollback
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 13:35:23 +08:00
浅念
7adc1b0858
docs(embed): denser/lower ambient hearts verification (6 on screen, origin band 140-244px)
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 11:41:11 +08:00
浅念
c8a9727993
docs(embed): ambient hearts live verification — bubbles float with zero likes (steady ~3 on screen)
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 11:33:25 +08:00
浅念
8768a04a75
docs(embed): collapsed handle right-dock verification on server (right=16px, x=1324 @ 1440 viewport)
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 11:26:56 +08:00
浅念
257643934a
docs(viewer): share sheet live verification — album header & photo lightbox entries, QR 188px, on-button copy feedback, Esc close
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 11:15:55 +08:00
浅念
c2143e1f94
feat(app): album banner picker in edit form — show current banner, pick & upload on save
...
- api_client:uploadAlbumAssetFromFile 泛化(cover 为薄壳)+ fetchAlbumAssetUrl
(GET /albums/{id}/assets → 指定 kind 全局行 URL)
- 编辑页 Details:封面下方新增「宣传图」3:1 选择器——编辑模式异步加载现有
banner 预览(失败静默);保存成功后上传(同封面:失败不阻塞表单结果)
- 未保存变更判断纳入 banner;l10n zh/en
- 测试适配:编辑用例 pumpForm 后清空 banner 现状预检请求(397/397 全绿)
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 11:07:54 +08:00
浅念
2618ad3163
feat(assets): album asset status — show current banner/cover/logo in admin branding tab
...
- 契约 listAlbumAssetStatus(GET /albums/{albumId}/assets):每 (kind,locale)
最新 effective 行 + 现签 URL;权限同详情(可见即读);deleted → 404
- 服务端 AssetsService.status(createdAt,id DESC 组内取首;presignGet 现签)
- Admin 品牌资产页签改造:进入即加载现状——三种 kind 卡片(预览图/未设置
空态/设置时间),banner 分全局/zh/en 槽位;上传成功自动刷新(替换语义)
- API 56/56、admin 87/87 + build 全绿
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 10:51:53 +08:00
浅念
3cd9dafd1b
docs(viewer): server verification — topbar locale-only (settings menu removed)
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 10:40:28 +08:00
浅念
2b2ae7a083
docs: banner/cover fallback live verification — cover-only album renders banner atop viewer (server 8e674a9 images, migration applied)
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 10:19:36 +08:00
浅念
9cb960c27a
docs(viewer): banner live verification — uploaded via admin asset API, renders atop album page
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 09:41:51 +08:00
浅念
c481aeeeb7
docs(viewer): server verification screenshot — tap-more hint removed on live lightbox
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 09:35:25 +08:00
浅念
fe2428e290
docs(ui04): test-server deployment and live verification — both stacks on 1cf12be images, 5/5 real-environment checks incl. WS-via-OpenResty hearts
...
- server image 1cf12be-20260922 + web ui04-1cf12be-20260922 (server-side builds, entrypoint/syntax adaptations), cn+ov rolled, webs restarted
- v2 slot created via real admin API (vertical-stream/16px/s/reactions), bound to album with real photos (live-album OSS)
- live e2e 5/5: entries, 195x280 + real OSS rendering + auto scroll, collapse/expand, deep-link popup, real like -> WS through 32006 proxy -> heart
- screenshots + reusable server-verify spec archived; acceptance record section added
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-22 19:44:18 +08:00
浅念
8c4906c2f2
feat(embed,ui04): E07 acceptance — matrix completion, hostile-CSS hardening, measurements and record closure
...
- E07 e2e (7 cases): 4-viewport fixed size, narrow shrink + dual-slot 12px stack, single/static + empty state + two-photo loop copies, broken-thumb drop, reducedMotion stop with manual arrows, forged postMessage rejected, hostile CSS (!important box-sizing/border) with inline-important countermeasures + duplicate script dedup
- loader v2: geometry-critical properties upgraded to inline !important (beats host stylesheet !important)
- pre-existing fixes: likes.spec view-count assertion vs concurrent session's AlbumHeader unicode icons (toContainText); embed-v2 host port moved to 3998 (3999 collides with embed-crossorigin under parallel full runs); prettier formatting of two concurrent-session files (formatting-only)
- evidence: matrix EMB-A01..A16 closed in acceptance record (mechanism-level items honestly marked), measurements (loader v2 9885B/gzip 3959B, first-load 1 GET + 1 WS, DOM<=16), refreshed screenshots/recordings, master plan UI-04 note
- regression: root lint/typecheck/test 12 packages green; embed suites 43/43; admin embed-slots 5/5; journey pre-existing env failure reproduced at clean HEAD (registered)
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-22 18:56:38 +08:00
浅念
91c85e196a
feat(viewer,ui04): E05 realtime hearts + effect-demo alignment (initial offset, heart params, decode gate, bidirectional manual scroll)
...
- reactions.ts pure fns: delta->hearts sampling, burstId dedupe (TTL/capacity), pending-visible cache (5s/50), 250ms emission throttle with merge
- useEmbedReactions: read-only RealtimeClient subscription on album.publicToken (no viewer-page side effects, A15), rebind teardown, 10s grace disconnect, no fake bubbles on WS failure
- ReactionLayer: demo-frozen heart effect (12/16/20 sizes, two colors, 110px rise, 1.6s ease-out, 300ms stagger, max 8, drop-shadow) in unscoped block (created elements lack scoped hash)
- demo alignment: initial offset 32px, decode+500ms startup gate, 1:1 drag, arrows +-40, focus-tip, bidirectional manual scroll (manualScroll), loader handle 100x44 exact styles, <=599px offset default 12
- tests: +8 reactions unit (244 viewer), e2e E05: real cross-context like -> heart on correct photo (EMB-A09), zero likes/visits submission (EMB-A15), 16s hearts recording
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-22 17:38:02 +08:00
浅念
b353a3de06
fix(viewer): replace text arrow share icon with SVG share glyph
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-22 13:55:37 +08:00
浅念
998565e439
feat(viewer,ui04): E03 continuous scroll engine — pure state machine, rAF orchestration, boundary continuity
...
- stream.ts: advanceStream (per-frame, dt cap 50ms), loop generation keys, window math (DOM<=16, queue<=30, 480px buffer), anchorRebuild (photo-position preserving), removePhoto, single-photo static
- useVerticalPhotoStream: rAF integration, direct transform writes (no per-frame Vue reactivity), low-frequency item sync, ResizeObserver re-anchor, stepForTest hook
- EmbedStream wired to engine; cycle copies aria-hidden; img error -> controlled drop
- tests: 14 unit cases (236 viewer total), e2e: 32px/2s speed, boundary continuity <2.5px, DOM<=16 over 20s, 32s recording with loop boundaries
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-22 13:19:21 +08:00
浅念
1d1979f540
feat(viewer,ui04): E02 static fidelity — real photo fixtures, measured shell/photo/collapse specs, edge fade
...
- fixtures: 8 picsum-seeded real photos (mixed ratios); seedPhoto thumbBytes/browseBytes injection
- e2e E02 block: wrapper shell (195x280/radius/border/#10161E), photo strip (193w, ratio-height, 3px gap), collapse (44/44 hit, 24 visual, sole button), desktop+mobile screenshots
- EmbedStream: top/bottom 12px dark fade (0.12, §2.3 optional item)
- fix(admin): pre-existing eslint globals gap for ElNotification (template drift, blocks lint gate)
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-22 13:01:34 +08:00
浅念
f8dbc3ab9b
docs(ui04): E00 baseline — design refs, plan, v1 measurements and record skeleton
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-22 12:08:40 +08:00