浅念
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
浅念
85146be7ef
fix(viewer): restore lightbox close button styles orphaned by menu removal (transparent bg, white X icon, hover/focus)
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 13:48:03 +08:00
浅念
f2cd26e523
docs: register embed-slot soft-delete acceptance
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 13:41:27 +08:00
浅念
bdad433dae
fix(viewer): remove lightbox top-bar settings menu (user request) — close button + counter only; Esc closes directly
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 13:39:53 +08:00
浅念
903962a46b
feat(embed-slots): soft-delete slots — admin entry, ov shutdown via enabled=false snapshot
...
- 契约 deleteEmbedSlot(DELETE /admin/embed-slots/{id} → 204 幂等;admin 专属)
- cn schema:embed_slots.deletedAt(迁移 20260923120000,本地已应用)
- softDelete:乐观锁 claim + outbox slot.updated(payload enabled 强制 false
——ov 副本无墓碑,enabled=false 快照即公开端 404 下线;priority=high)+ audit
- 列表/加载/更新过滤 deletedAt → 同码 404
- Admin 列表操作「删除」(确认:已接入网站将停止展示、不可恢复)
- API 56/56、admin 87/87 + build 全绿
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 13:37:39 +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
浅念
20321f1b93
fix(app): account-switch data residue + empty-albums pull-to-refresh
...
- 换账号数据残留(用户报告):albumListProvider 非 autoDispose 且首页
IndexedStack 常驻——登出与登录成功两处显式 invalidate(任务库本就按账号
隔离键隔离,不受影响)
- 空相册无法下拉刷新(用户报告):空态原本直接 return EmptyState 无
RefreshIndicator——被拉进相册后无法手动刷新;空态改入可滚动容器承载
下拉刷新(保留新建入口)
- 397/397 全绿、analyze 0
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 12:05:25 +08:00
浅念
c1869d7314
feat(admin): photo upload in album photos tab (same staging pipeline as app)
...
- 照片页签工具栏加「上传照片」(多选 jpeg/png/heic)→ /v1/uploads
init → PUT staging → complete(clientTaskId 幂等;categoryId 随当前分类筛选)
- 逐张结果:部分成功语义(成功 N 张 toast + 失败明细前 3 条);完成后 reload
- 类型 UploadInitPayload/UploadSession/UploadCompleteResponse + api/uploads.ts
- 问题1 修复说明:详情页 404 系并行部署把 2618ad3 server 覆盖回 8e674a9,
已重滚双栈至 ui06-2618ad3(assets 端点恢复 200,详情页零失败请求)
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 11:54:26 +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
浅念
f667842e9c
style(embed): ambient hearts denser and lower (user feedback — spawn 160-320ms, band 140-244px)
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 11:38:55 +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
浅念
4d31eaf184
fix(app): poster sheet close button — header row with explicit close (drag-down not obvious on long sheet)
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 11:32:02 +08:00
浅念
d11ca16d1d
feat(embed): ambient heart bubbles — always floating in the right band (user request 2026-09-23)
...
- ReactionLayer ambient prop: self-scheduled spawn every 400-800ms (jitter), band 56-232px avoiding the 44px action zone, stops on hidden page/unmount, shares MAX_ACTIVE=8 with real bursts
- EmbedStream mounts layer with ambient = reactions && !reducedMotion — persistent decoration independent of real likes (no burst frames, no count inflation; §5.2 anti-fake semantics unaffected)
- viewer 244 green
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 11:30: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
浅念
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
浅念
9761eea591
fix(embed): collapsed handle positioned correctly on first creation (v2 parity with v1 applyWrapperBox call)
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 11:24:47 +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
浅念
3d45350711
feat(viewer): share sheet with QR code + link + copy (replaces inline toast, App-style)
...
- ShareSheet.vue: bottom sheet (mobile) / centered card (desktop) — QR canvas (qrcode dep), selectable deep link, copy with on-button feedback (2.5s), optional navigator.share button, Esc/scrim/close dismiss, focus on open
- AlbumHeader + PhotoLightbox: share buttons open the sheet (album URL / photo deep link); page-level copied strips removed
- tests rewritten for sheet behavior — viewer 244 green
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 11:04:11 +08:00
浅念
e3f40c696d
docs(ui06): dedupe task table rows
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 10:56:33 +08:00
浅念
63b3e539fd
docs: register asset status acceptance — admin branding tab shows current banner/cover/logo
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 10:56:14 +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
浅念
d678c8d38d
style(viewer): banner-wrap drops fixed aspect-ratio and placeholder bg (user edit)
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 10:42:03 +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
浅念
fd35c712a5
fix(viewer): remove topbar settings menu, keep locale switcher only (user request)
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 10:38:23 +08:00
浅念
2409beb7c2
docs: register album soft-delete acceptance — full-chain verified on test server
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 10:20:57 +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
浅念
8e674a902e
feat(albums): soft-delete albums (admin+owner, hidden & irreversible, both app entries)
...
契约 deleteAlbum(DELETE /albums/{albumId} → 204 幂等)+ status enum 'deleted':
- 服务端:softDelete(canView 404→canManage 403 防枚举;乐观锁 claim +
outbox album.updated priority=high + audit album.delete);列表/详情/更新/
成员/资产/分类/水印/照片/展示位绑定全部 deleted→404;公开端 cn
(status!=='active')与 ov(isAlbumVisibleOv)天然屏蔽;ov 副本经
album.updated 载荷 status 直投自动下线
- Admin:列表表格操作「删除」+ 详情页头「删除相册」(确认含不可恢复说明)
- App:操作面板「删除相册」(红字、二次确认、成功退回列表并刷新)
- 验证:API 56/56、App 397/397(analyze 0)、admin typecheck/lint/test/build 绿
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 10:13:08 +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
浅念
aa78855657
fix(viewer): remove tap-more like hint from photo action bar (user request)
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 09:31:26 +08:00
浅念
452cdf496c
style(ui06): full-width pages — hand padding back to Art/ElMain container (user adjustment)
...
用户将全局 .ui06-page 的 30px 边距/1660 限宽注释(内容铺满,边距交还
ElMain 默认 20px);manage 页 scoped 同名类同步、清理媒体查询死引用。
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 09:26:16 +08:00
浅念
d08d8f5a6d
fix(ui06): embed-slots menu icon — invalid remix name (picture-carousel-line) 404s on iconify; use slideshow-line
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 09:21:12 +08:00
浅念
5982e13996
docs(ui06): register sidebar nav regression fix — click-verified all 5 menu items
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 09:17:30 +08:00
浅念
1a52d0a028
fix(ui06): grouped sidebar menu items missing click navigation
...
B1 分组展平渲染的 ElMenuItem 只渲染了标题插槽,未绑定跳转——点击无反应。
补 onGroupedItemClick:handleMenuJump(外链/iframe/普通路由统一语义,同
SidebarSubmenu.goPage)+ 移动端关闭抽屉。
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 09:15:14 +08:00
浅念
6074fc8ed3
feat(ui06): App line A0-A7 — nav pill removal, light segments, bare summary, token alignment to app-preview
...
- tokens:次文字 #69778E、soft/card-border/seg 色组、输入圆角 10(kRadiusField)
- theme:导航 indicatorColor 透明+显式选中蓝;卡片去阴影改 1px #EDF0F5 边框;输入边框同步
- 新组件 SegmentTabs(#EDF1F6 轨道/选中实蓝/light 浅蓝变体/null 无高亮)替换 M3 SegmentedButton
- 上传中心:摘要去白卡直排+主数字 32/40;completed 次级筛选无高亮语义保留
- 相册卡 scrim 30% 起 #0C1728E8;导航角标红底白字白边;登录主标题 27/700
- theme_test 三处旧规格断言随 UI06 值更新;397/397 全绿、analyze 0 issues
- 真机证据:MuMu + 测试服务器 API,登录/相册/详情/上传 4 页截图确认达标
- 登记偏差:语义色保持对比度合规深色版;视口矩阵随 G2;详见验收记录 §6
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 08:09:20 +08:00
浅念
8dc0073597
docs(ui06): B4 acceptance — full record for B3b-e batches, README index, final 20-page evidence
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 07:07:15 +08:00
浅念
f76fd9c55d
chore(ui06): remove intermediate batch screenshots (keep before/ + after-final/ evidence)
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 07:06:40 +08:00
浅念
9471562f67
feat(ui06): B3d governance + B3e closing — page headings, stat cards, info strip, embed slots
...
- 治理页通用层(ui06.scss):.ui06-page 工作区 / .ui06-page-heading 27px 页头 / .ui06-stats
三列统计卡 / .ui06-info-strip 提示条 / .ui06-card-title 17px 卡头
- 10 账号:页头(查看同步入口)+ 来源提示条;分页/同步档案列/G4 功能零改动
- 11 同步:页头(手动补拉上移);状态卡/历史/失败明细抽屉保留
- 12 用量:页头(阈值设置上移)+ 统计卡对齐示例(数字 27px + 注脚 10px)
- 13 展示位:页头 + 卡片标题(配置对话框沿用 UI-04 真实组件)
- 17-19 异常页:沿用 ArtException(大数字+文案+回退,语义等同示例;登记偏差)
- i18n zh/en;typecheck/lint/vitest/build 全绿
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 07:04:18 +08:00
浅念
352d7405c2
feat(ui06): B3c form batch — full-page create/edit form + assets tab
...
- 新增 /albums/form/create 与 /albums/form/:albumId 整页表单路由(隐藏路由,父菜单高亮)
- 编辑模式资料/访问页签(访问=开关行卡:标题+说明+开关);创建模式契约约束下载开关+解释提示
- 校验/提交逻辑与原对话框一致(契约镜像校验;translations 全量替换;创建仅 download 开关)
- 保存成功跳相册详情;manage/detail 两处入口改路由跳转,删除 AlbumFormDialog
- banner 上传收进详情「品牌资产」独立页签(15)
- e2e 适配:整页表单流程(form-page/goback/访问页签)、详情锚点改 summary、banner 页签
- typecheck/lint/vitest/build 全绿
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 06:58:01 +08:00
浅念
d6d012b992
feat(ui06): B3b management tabs — members/categories/watermark/share aligned to preview
...
- 成员:卡片头(标题+说明+搜索邀请)+ 成员列(首字头像+姓名)+ 角色 pill + 权限范围
+ owner 行「交接相册」入口(父组件开确认);移除/邀请语义不变
- 分类:卡片头(双语提示+新增)+ 分类列(图标 avatar+默认语言名)+ 中英同屏列
+ 底部「已有照片的分类不能直接删除」提示
- 水印:双栏卡片(配置卡 v{version} pill / 预览卡)——预览改摄影底(相册 cover)+
白字水印叠加;生成任务独立卡片 + 重新生成入口;轮询/受理语义不变
- 分享:居中分享卡(封面/标题/日期地点/QR 160px/Copy link 全宽/小字链接);
QR 仍真实编码 viewer 链接
- i18n zh/en 补全;typecheck/lint/vitest/build 全绿
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 06:52:23 +08:00
浅念
f2002e1d21
docs(ui06): B2+B3a acceptance — card grid, photo grid w/ signed thumbs, viewer, summary header deployed
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-22 23:27:53 +08:00
浅念
1531d3d99b
fix(ui06): template single-expression for visibility segment (vite build parse)
...
教训登记:typecheck/vitest 不覆盖模板属性 parse——每批提交前本地 pnpm build 必须通过
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-22 23:24:00 +08:00
浅念
4f6790d630
feat(ui06): B2 shared components + B3a core pages — album cards, photo grid, viewer, summary header
...
- 类型补齐契约字段:Summary.cover / AdminPhoto.preview(SignedUrl;服务端已返回,B0 核对)
- AlbumCoverCard:封面卡(公开/状态/上传 pill,无封面中性占位,不显示 owner 名)
- 相册列表:默认封面卡片网格(3列/1700+4列)+ 表格切换 + 已加载内搜索 + 公开状态筛选 + 摘要行
- AlbumSummaryHeader:300×144 封面 + 两列紧凑资料 + 高级折叠(ownerId/统计时间收敛)
- 详情页壳:页头(编辑/分享固定主操作)替换 ElDescriptions 大区;banner 区 B3c 收纳
- PhotoGrid + PhotoPreviewDialog:照片网格默认(preview.thumb 签名 URL)+ 深色大图(browse URL、
行内隐藏/恢复/软删除复用表格状态机);网格勾选与表格 selection 合并批量目标
- e2e 适配默认网格视图(albums/governance 断言前切表格);batchHide fixture 补 preview
- typecheck/lint/vitest 87 项全绿
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-22 23:19:21 +08:00
浅念
cebe3d1e2e
docs(ui06): B1 acceptance — deploy ui06-fb3743d web image + after-b1 screenshots
...
- 服务器端构建(UI04 双补丁先例),cn web 滚动 healthy,server 栈未动
- 侧栏分组 DOM 实测:工作空间(相册管理/展示位管理)+组织与治理(账号管理/用户同步/用量统计)
- 登录页/布局壳对照通过;业务页内部留待 B2/B3
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-22 23:06:47 +08:00
浅念
fb3743d32c
feat(ui06): B1 theme tokens + layout shell + login redesign
...
- 主色 #1A73E8(systemMainColor 首位,运行时自动派生 Element 系列)
- 状态色对齐示例(success #15966d / warning #c78a27 / danger #df5366)
- 侧栏 216px、顶栏 64px(h-16)、内容 max-width 1660px(WIDE 枚举)、隐藏标签页条
- 菜单分组(工作空间/组织与治理):meta.menuGroup + 侧栏展平渲染 + i18n key;路由路径与权限不变
- ui06.scss 全局视觉层:字体栈 13px、卡片 12px 圆角+1px 边框、按钮/输入 38px、
表格浅底表头、对话框 16px、分段 #edf1f7、焦点可见
- 登录页重做:摄影底+深蓝叠层+品牌大标题(占位素材=概念图裁片,待正式品牌素材)、
右栏 350px 表单 29px 标题
- typecheck/lint/vitest 87 项全绿
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-22 23:00:36 +08:00
浅念
e27a602328
feat(ui06): B0 baseline — before screenshots (20 pages) + contract checks + acceptance skeleton
...
- capture-before.cjs: Playwright 脚本(env 注入凭据),对测试服务器 32005 后台 1440×1000 全页截图
- 契约核对四项全为纯前端工作:cover/preview 服务端已实现(签名 URL 900s),
CreatePayload 仅下载开关,embed v2 字段 E06 已落地
- 主题链路确认:systemMainColor[0] → 运行时 --el-color-primary 派生
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-22 22:48:47 +08:00
浅念
37d88da4bc
docs(ui05,ui06): admin analysis+HTML preview, app-preview evidence, UI06 unified visual plan
...
- admin-preview-2026-09-22/ 20页新版后台HTML原型+截图+validation(UI05 交付)
- app-preview-2026-09-22/ 截图/validation/check 脚本入库及小改
- admin-redesign-concept 概念图
- UI05 管理后台分析与新版设计说明、用户列表分页计划文档
- UI06 全端视觉统一实施方案(以两个 HTML 预览为唯一视觉基准)
- services/api g4-sync-once 手动同步脚本
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-22 22:42:00 +08:00
浅念
dbf958613f
docs(ui04): deployment section in acceptance record (amends fe2428e evidence)
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-22 19:45:01 +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