浅念
f2cd26e523
docs: register embed-slot soft-delete acceptance
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-23 13:41:27 +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
浅念
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
浅念
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
浅念
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
浅念
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
浅念
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
浅念
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
浅念
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
浅念
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
浅念
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
浅念
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
浅念
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
浅念
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
浅念
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
浅念
9dbdb0084e
docs(ui04): E04 acceptance record entry
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-22 13:28:26 +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
浅念
66d1eb3e9f
feat(embed,ui04): E01 v2 contract skeleton — displayMode/scrollSpeed/reactionsEnabled, v2 loader entry and fixed 195x280 shell
...
- contracts: EmbedSlotSettings optional v2 fields (carousel default) + SlotSettingsPayload; gen + redocly green
- api: DTO validation + normalization full-set (cn manage + ov public projection share normalizeStoredSettings)
- embed-loader: params v2 parse/merge/url family, loader-v2.js fixed shell (border/radius/#10161E/safe-area, resize ignored, stack gap 12), dual-artifact build+sync; v1 source frozen
- viewer: EmbedPage v=2 branch, EmbedStream (viewport/track/real anchors/collapse/empty), stream.ts pure fns, i18n zh/en
- admin: types + utils (create default vertical-stream, clampScrollSpeed, v1/v2 snippet selection)
- tests: loader 36 (+9 v2), viewer 222, admin 82, api unit 51, v1 embed e2e 20, v2 E01 gate 2 (195x280 desktop+mobile cross-origin, no footer)
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-22 12:50:28 +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
浅念
f435d7bfc3
docs: UI-03 acceptance record
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-22 03:16:21 +08:00
浅念
9d521ff9da
docs(ui03): baseline screenshots and acceptance skeleton
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-22 00:10:50 +08:00
浅念
18c4c3cfbc
docs(plan): UI-03 app redesign implementation plan
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-21 23:45:34 +08:00
浅念
2a489aa16a
docs: UI-02 acceptance record and visual verification
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-21 23:10:58 +08:00
浅念
2cbd167cc0
docs(ui02): baseline screenshots and acceptance skeleton
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-21 21:09:03 +08:00
浅念
3327551f6b
docs(plan): UI-02 viewer redesign implementation plan
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-21 21:01:59 +08:00
浅念
f31388c0c1
docs: UI-01 acceptance record and visual verification
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-21 20:15:36 +08:00
浅念
3b5f8d2d77
docs(ui01): baseline screenshots and acceptance record skeleton
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-21 13:08:57 +08:00
浅念
6754cd4d44
docs(plan): UI-01 implementation plan from spec analysis
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-21 12:56:35 +08:00
浅念
52d8a57751
docs(deploy): single-server dual-stack test deployment plan
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-21 10:27:02 +08:00
浅念
5cdf828ff5
docs: G1 gate closure recorded in master plan and P5 draft
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-21 10:17:16 +08:00
浅念
d01cecd2f6
docs: p5 preparation complete and implementation draft
...
- docs/plans/2026-09-21-P5-真实环境接入.md 草案(头部标注待 G5 凭证评审
转正):T1-T12 任务序(每任务 产出/依赖用户输入/关口)——G1 OSS 冒烟→
国内起栈→ov 部署+bootstrap 对账→域名证书→CDN(含图片加速三选一)→
跨境 MySQL 通道定案(白名单+SSL/隧道/HTTP 化三选项,含改造量评估)→
G4 用户源→故障演练→压测 D05→G2 真机→G6 试运行→发布交接;用户输入
汇总表 + 决策 D03-D13 状态速查 + 风险表(跨境链路/双层签名/MySQL
8.0.30 门槛/镜像仓库通道等)
- 总纲 P5 行注记:准备件完成 2026-09-21,实装待 G5 + G4
- P5-prep 计划全项勾选回填(评审项注明自审已修 + 独立 reviewer 由编排方追加)
- 自审修正:monitoring 统计副本表名(无 stat_snapshots 表,副本位在
albums/photos 行)与 outbox_events.occurredAt/photo_jobs.updatedAt 列名、
jq 管道括号;cdn 失效多 URL 换行分隔;k6 helpers 请求体用 ArrayBuffer
原生形态、read-feed 身份串延迟生成(init 上下文 VU 编号恒 0)
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-21 01:56:56 +08:00
浅念
12059d9a0e
docs(plan): p5 preparation plan
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-21 01:00:52 +08:00
浅念
22188ce3ee
docs: p4b acceptance record
...
- P4b 验收记录(A11/A22 简化级/A23 组件/A12+T15 证据、偏差 16 项、
P5 移交清单、测试统计 web 655 +66 / mobile 280 零漂移)
- 总纲 P4b 进度注记:P1-P4b 全部本地阶段完成,仅余 P5 真实环境接入
(G5/G6 + D03/D05/D08/D09/D10/D13)
- P4b 计划勾选回填 + 完成头注
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-20 23:59:21 +08:00
浅念
e9a7dc8740
docs(plan): p4b review fixes (etag recipe, sandbox origin, narrow screen)
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-20 21:41:19 +08:00
浅念
ec7837ebb0
docs(plan): p4b implementation plan (pending review)
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-20 21:38:37 +08:00
浅念
17d09bbb01
docs: p4a acceptance record
...
P4a Task 10 收口:回归门全绿(web lint/typecheck/build 9/9 包任务,
单测 271 + e2e 318 = 589;mobile analyze 0 issue + 280/280 零漂移)。
验收记录含 A16/A17/A18/A20/A23/A29 证据、D06 工作默认登记、契约
增补汇总(36→51 operations + DOWNLOAD_DISABLED)、偏差 14 项、
G4 待真实接口清单(UserSourcePort 替换点 + D08 字段确认)。
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-20 21:21:08 +08:00
浅念
6723a0ce88
docs(plan): p4a implementation plan (approved)
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-20 16:39:03 +08:00
浅念
45d46518b1
docs(plan): p3 completion header note
...
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-20 15:23:45 +08:00
浅念
e484aa5427
docs: p3 acceptance record
...
P3 收口(Task 12):回归门全绿实测数字、MuMu 设备集成证据(阶段 1
十二腿 + 阶段 2 双场景,引用 it-logs 存档原文)、29+3 轮排障 13 根因
展开表、契约增补(password-change + sourceDeviceId)登记、G2 真机
清单(计划全量 + 集成期新增 5 项)、G3 引用 README-ios、偏差表(计划
内 13 + 计划外 5);总纲 P3 行进度注记(G2 待用户真机执行、D03 待确
认);P3 计划 Task 11/12 勾选。
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-20 15:21:49 +08:00
浅念
42e1c2e34b
feat(mobile): ios background upload bridge (compile-gated at G3)
...
Swift 侧(协议与 Android UploadPlugin.kt 逐字一致,编译/真机留 G3):
- UploadBridge.swift:通道/方法/事件/失败码常量 + registerTask 参数解析
(镜像 UploadProtocol.kt)
- UploadEventBus.swift:单调 seq + 终态 ack 缓存重放(镜像
UploadEventBus.kt),iOS 增强——未 ack 终态落盘(系统后台拉起投递的
回调在进程重启后同样重放,技术方案 §6.2 持久化原生回调)
- UploadTaskStore.swift:taskId→URLSession taskIdentifier 映射 plist 持久化
(Application Support;对应 Android WorkManager 自持映射)
- UploadPlugin.swift:URLSession background
(com.photolive.photo_live.uploads)+ delegate 失败分类(2xx→completed+etag
/ 403→needsRenew / 4xx→HTTP_4XX / 网络→重试上限后 NETWORK,镜像
UploadPutExecutor/UploadWorker)、原生重试(5 次上限、10s 指数退避)、
进度 500ms 节流、queryTask/cancelTask/ackEvents、静默取消
- AppDelegate.swift:implicit engine 通道注册 + 启动重建会话 +
handleEventsForBackgroundURLSession completionHandler 暂存
- Info.plist:UIBackgroundModes 有意不声明(background URLSession 无需;
计划措辞按技术方案 §6.2 修正,见 README-ios.md)
- project.pbxproj 登记新 Swift 文件;README-ios.md(Xcode 步骤 + G3 验证
清单:实际文件上传/持久化回调窗口/服务端补偿/重启重联校准/强制退出/
低电量延迟/100 张批量)
Dart:NativeTransport 选择矩阵并入 iOS(Platform.isAndroid || isIOS,
FORCE_DART_TRANSPORT 覆盖不变)——协议两侧一致,无新通道代码。
flutter analyze 0 issue;flutter test 219 全绿。
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-19 03:42:49 +08:00
浅念
d96e56f653
feat(mobile): drift upload task store with state machine
...
- upload_tasks 表(accountId 隔离 + 三个复合索引)、状态列枚举转换器、
datetime 文本落库(UTC 归一,亚秒精度)
- 纯状态机(task_state.dart):合法迁移表 + canTransition/assertTransition,
completed/cancelled 终态
- TaskStore 仓储:create(clientTaskId 同账号同相册应用侧唯一)、
updateState(迁移守护+旁路字段)、账号隔离读路径(硬守护)、
countsByState 徽章、cleanupCandidates/markCleanable(仅终态可清理——
评审缺口 1 硬守护,未完成源文件永不清理)
- 测试 26 例(状态机表驱动全边 + 守护/隔离/筛选/保留策略);
sqlite3 3.x build hooks 在 flutter test 宿主与 Android APK 构建均验证
(libsqlite3.so 已打包全 ABI,运行时验证留 Task 11)
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-19 02:12:39 +08:00