浅念
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
浅念
1cf12be904
docs(g4): build-env incidents (Hub outage → server-side build; nginx:alpine entrypoint hang patch)
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-22 19:10:27 +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
浅念
80a7658f81
feat(admin): users list page-size options [15,20,50,100] with default 15
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-22 18:36:16 +08:00
浅念
40ec6aad40
docs(g4): pagination+profile iteration & 12h sync interval record
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-22 18:31:44 +08:00
浅念
f3cbf2465f
docs(env): register SYNC_USERS_INTERVAL_MS (prod 12h, dev default 5m)
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-22 18:31:30 +08:00
浅念
3bba8d1dc5
feat(admin,viewer,ui04): E06 management preview and v2 integration — real-component preview page, form mode fields, README
...
- viewer /embed-preview route: real EmbedStream with sample photography (picsum seeds), zero requests/WS (preview mode), postMessage config + simulated bursts through the real validation pipeline
- EmbedStream: preview prop (disables real WS subscription per §8.2 isolation) + exposed simulateBurst
- admin form: displayMode radio (new default), fixed 195x280 readonly, speed slider, reactions switch; v1 layout fields hidden in v2 (not silently effective)
- admin preview: v2 branch embeds the real preview iframe, white v2 handle, simulate-like tool button with sample-data note
- README-embed: v2 section (integration, hard sizing/docking, interactions/limits, artifact/version caching)
- tests: admin vitest 83 (+1 v2 placement), admin e2e 5 (v1 pinned carousel regression + full v2 chain incl. preview WYSIWYG heart and ov settings projection), viewer 244, v2 e2e 16
Note: part of the admin-side E06 changes (form/preview/utils/locales, mid-state of e2e spec) was swept into parallel commit eebf3b3 by a concurrent session's git add; this commit carries the final state of the remaining files and completes the set.
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-22 18:20:50 +08:00
浅念
eebf3b3334
feat(admin): standard pagination + synced profile columns on users list
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-22 18:10:53 +08:00
浅念
2f6b6afc92
feat(contracts,api): page-mode pagination + synced profile on admin users list
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-22 18:06:12 +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
浅念
f6ff1d44f2
feat(api,db-cn): persist synced source profile snapshot on mappings
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-22 17:33:27 +08:00
浅念
ccf0c29659
docs(g4): test-server deployment evidence (230 users synced, ops notes)
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-22 17:14:31 +08:00
浅念
3a8a1cf69e
docs(g4): real-key live sync evidence (230 users, idempotent, V1.1 credentials verified)
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-22 16:58:09 +08:00
浅念
e583575702
docs(g4): acceptance record for uniservice user source integration
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-22 16:51:58 +08:00
浅念
8c255eb747
feat(api): USER_SYNC_SOURCE switch wires mock/http user source (G4)
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-22 16:28:55 +08:00
浅念
d732caa739
feat(api): HttpUserSource adapter for uniservice open/v1/users (G4)
...
全量拉取+phone 全局去重(一人多档跨页)、水位游标不当页码回归守护、
分块续翻缓存;对齐 UserSourcePort 类型。
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-22 16:27:43 +08:00
浅念
52cd31679a
refactor(api): per-source sourceSystem on user source port, retire pending-activation dead code
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-22 16:24:37 +08:00
浅念
b7754d52d1
test(api): user-sync e2e aligned to V1.1 initial credentials
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-22 16:22:38 +08:00
浅念
42878f115b
docs(g4): uniservice open/v1/users API contract + implementation plan
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-22 16:21:26 +08:00
浅念
f193e4f085
fix(viewer): remove extra closing brace in AlbumHeader CSS
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-22 13:59:14 +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