maogeigei
|
82beea2ddc
|
R36: 榜单下载按钮移至 tab 组件右侧(重构 toolbar,tab 上移 page-toolbar)
- 用户反馈:下载按钮「靠近 tab 组件,不是筛选/搜索组件」
- 冲突排查:原 toolbar(s, false) 空态时 rank-toolbar 不渲染,若简单把按钮移进 rank-toolbar 会丢失 R33 设计的「空态也能看到更新按钮(首次抓取入口)」
- 重构 toolbar() 函数:
- tab 始终在 page-toolbar 渲染(含空态/错误态)
- rankUpdate 紧贴 tab 右侧(rank-tabs margin-left:auto 推右,按钮紧跟其后)
- rank-toolbar 仅放筛选+翻页(withFilters 时)
- 复用 CSS:.page-toolbar .rank-tabs 紧凑样式(L603-604 已就绪)
- CDP 验证:tab+rankUpdate 都在 page-toolbar ✓;筛选保留 ✓
- 版本:data-pages.js x→y(CSS 不动)
|
2026-09-03 17:41:24 +08:00 |
|
maogeigei
|
373710c325
|
R35: 更新数据按钮统一下载图标(榜单/账号列表)+ 榜单更新按钮加宽 5px
- #rankUpdate(榜单页纯图标):refresh → download 图标
- #accUpdate(账号列表「更新」):refresh → download 图标(保留文字「更新」)
- 语义统一:两处「重新抓取最新数据」按钮均用 download(向下箭头+托盘)表达「互联网下载最新数据」
- #rankUpdate 加宽 5px:CSS padding 9px→11.5px,渲染宽 35.3→40px(box-sizing border-box)
- 版本:style.css ?v=20260903v→x、data-pages.js w→x(app.js 不动)
- CDP 验证:download path 特征 (M21 15v4 / 7 10 12 15 17 10 / y1=15 y2=3) ✓,rankUpdate 宽 40px ✓
|
2026-09-03 17:35:26 +08:00 |
|
maogeigei
|
7f16eda57f
|
R34: 工作台脚本详情统一弹窗(三入口共用+右侧诊断/分镜tab默认诊断+tab文字变色+空态按钮统一btn-view)
- 三处入口(首页AI脚本卡/AI写脚本「N查看」/脚本诊断页标题)共用 openScriptModal 顶层组件
- 合并两套重复弹窗代码(openRewriteCompare/openScriptDetail)
- 右侧列头部两 tab「脚本诊断|分镜提示词」默认显示脚本诊断
- 后端数据装配:ref 走 video-script+video-detail;custom 走 custom-script(失败回退 rewrites 全表定位);诊断按 review-full(ai||compare);分镜按 rewrite_id 归属过滤
- 分镜边界:仅 ref 视频支持(custom 无视频载体);无源 → 独立分析复盘;三模式复盘(AI/源/对比)
- 报告完整复盘:reportFullReview 抽全局(跨页复用)
- 场次滚动联动:仅分镜态生效(AI列滚动 → 分镜列对齐场块)
- 样式打磨:tab 去掉深蓝底色(active 文字变色+加粗);空态开始复盘/生成分镜统一 btn btn-sm btn-view
- CDP 冒烟 tmp/cdp-r34-modal-smoke.mjs 16/16 PASS(JS=v/w 两次)
|
2026-09-03 17:27:20 +08:00 |
|
maogeigei
|
a3698faef5
|
R33: 工作台热点数据页更新按钮(纯图标+30min冷却防重+整页重建+CDP冒烟全绿)
|
2026-09-03 17:06:19 +08:00 |
|
maogeigei
|
7d3e5fe8c6
|
R32: index.html style.css 版本参数补漏 q→r(与 app.js/data-pages.js 同步)
|
2026-09-03 16:45:04 +08:00 |
|
maogeigei
|
bde1bbc44a
|
R32: 技能更名 短视频脚本创作→短视频工作台(对外统一名)
- frontmatter name:V1.0=短视频工作台、Lite1.0=短视频工作台 Lite(含标题/帮助文档/last_change)
- 工作台 JS:data-pages.js skills 参数 3 处+SKILL_HINT_CREATE 加载名+5 常量路径段、app.js SKILL_HINT_ACCOUNT、server.js 注释 → ~/.workbuddy/skills/短视频工作台/
- 文档一致性:dou-analysis SKILL.md L51/L60 主技能指称、浏览器操作规范 2 处、script-review Scope、docs 契约表+调度机制 skills 示例
- repo 目录 project/短视频脚本创作/ 保留原名(工程结构),仅改注册/显示名;流程术语与产品历史文档保留
- 版本 ?v=20260903r;注册 junction 已重建为 短视频工作台
|
2026-09-03 16:43:21 +08:00 |
|
maogeigei
|
439e856ce2
|
R29: 标签列宽度 40px→60px(留出更多标签字符显示)
- style.css: th-tag/td-tag 40→60px
- index.html: ?v=20260903p→q
- cdp-verify-r29.mjs: 断言 thTagW/tagTdW 40→60; navigate 改为带 ?v= 强制加载新 CSS
- CDP PASS: thTagW=60 / tagTdW=60 / 视觉截断仍生效
|
2026-09-03 16:22:01 +08:00 |
|
maogeigei
|
2aa13bf900
|
R29 列位移修正:账号详情视频列表标签列从「时长」前改为「点赞」左边
- 之前位置(时长前)按用户原话「时长前面」实现,忽略了三遍明确指示(标签在点赞左边)
- 新位置(点赞左边):data-pages.js 表头/data 行同步移动 td-tag
- 冒烟脚本 cdp-verify-r29.mjs 断言更新:thTagIdx 6→2、tagBeforeDur→tagBeforeLike、rowCells[6]→rowCells[2]
- 版本 ?v=20260903o→p;CDP PASS + 视觉截图确认
|
2026-09-03 16:17:33 +08:00 |
|
maogeigei
|
8d51df5809
|
R30: 列表页 toolbar 拆行 — 标题行只放返回+标题,tab/筛选/搜索/功能按钮一律放标题下一行
- renderAccounts:page-toolbar 内 toolbar-right(类型/赛道下拉 + 搜索 + 添加 + 更新)挪到独立 .acc-toolbar 行
- renderHot:page-toolbar 内 rank-tabs(3 tab) + toolbar-right(赛道/日期)挪到独立 .rank-toolbar 行
- 间距差异化:账号列表 4px(工具栏紧贴标题,功能性组合)/ 热点数据 16px(tab 区段独立感);微调自 -12px 一致间距后按用户反馈拆开
- 冒烟 cdp-verify-r30.mjs PASS:账号列表/热点数据/AI写脚本 三页 toolbar 结构正确(只含返回+标题,功能组件均下移)
- 版本 ?v=20260903o
审查结论合规页(标题行仅返回+标题):
- renderAccountDetail/VideoDetail/Rewrites(已在 R27 修)/Reviews(pager-info 是统计信息非功能)
|
2026-09-03 16:15:02 +08:00 |
|
maogeigei
|
7c98af6ecb
|
R29: 账号详情视频列表「时长」前新增标签列(40px固定+悬停完整标签)
- data-pages.js: renderAccountDetail 表头 收藏后加 th-tag;数据行加 td-tag(title=完整标签, CSS省略); colspan 8→9/batch 9→10
- style.css: th-tag/td-tag(40px min/max + ellipsis)
- 冒烟 cdp-verify-r29.mjs 全 PASS; 版本 ?v=20260903l
- MEMORY.md 二次压缩 11148→7213B(注入截断修复)
|
2026-09-03 16:01:50 +08:00 |
|
maogeigei
|
8fe246fb51
|
视频详情页:去掉视频分析tab;视频脚本/视频拆解未解析加解析按钮、已解析内容右上加刷新按钮(走技能F5 MCP解析任务)
|
2026-09-03 15:51:45 +08:00 |
|
maogeigei
|
1a68637de8
|
账号列表重置按钮改更新按钮(⭐已关注批量重抓,确认弹窗+逐账号串行任务);AI写脚本页tab与搜索筛选移至标题下同一行(还原R26误并入标题行);状态列已解析去图标改浅绿
|
2026-09-03 15:48:16 +08:00 |
|
maogeigei
|
997138544c
|
AI写脚本页:tab 组件并入 page-toolbar 与搜索/筛选同行(对齐热点数据页布局)
|
2026-09-03 15:34:14 +08:00 |
|
maogeigei
|
4f4e126e61
|
首页AI脚本卡片右下角显示脚本评分:listRecentScripts 关联最新 AI 复盘总分,无评分不显示徽章
|
2026-09-03 15:30:33 +08:00 |
|
maogeigei
|
b1205fe440
|
热点数据 tab 去掉信息图标:视频热榜/点赞榜改原生 title 悬停提示近7日数据
|
2026-09-03 15:23:43 +08:00 |
|
maogeigei
|
08b184e11f
|
脚本诊断入口改名:首页功能卡/面包屑/路由标题/页内标题 AI脚本诊断→脚本诊断(统计条保留与AI脚本评分齐整)
|
2026-09-03 15:19:36 +08:00 |
|
maogeigei
|
e9aec189ea
|
热点数据 tab 恢复信息图标版(hover提示近7日数据);首页数据预览统计项「热门账号」改「关注账号」
|
2026-09-03 15:17:09 +08:00 |
|
maogeigei
|
9c23653eae
|
热点数据:视频热榜/点赞榜 tab 悬停气泡提示近7日数据(停留2s浮现,纯CSS)
|
2026-09-03 15:14:10 +08:00 |
|
maogeigei
|
1b1af15cc8
|
热点数据 UI:首页入口改名+页内 tab 与赛道/时间筛选同行
- 首页入口卡「账号周榜」→「热点数据」(desc=账号周榜 · 视频热榜 · 点赞榜);CRUMB_TITLES ranking 同步
- #/ranking 页 rank-tabs 并入 page-toolbar 同一行(返回|标题|三榜tab|赛道下拉+期数切换),空/错误态仍可切 tab
- CSS .page-toolbar .rank-tabs 行内化;index.html 静态资源加 ?v=20260903 版本参数防缓存
|
2026-09-03 15:10:13 +08:00 |
|
maogeigei
|
250d51c8c2
|
热点三榜数据接入定稿:全品类单文件(不传赛道一次调用)+ 三子目录落盘
- fetch_week_ranks.py 重写:28 赛道循环→全品类不传 type 每榜每期 1 次调用;hotContentRank source 修正为生产名「抖音每日点赞飙升榜」(GitHub 后缀版返回空);API 单次上限 TOP50(limit/page/offset 实测均无效)固化防再探测;成本铁律「批量付费调用前须先经用户确认」
- 落盘契约:抖音榜单/ 三子目录(账号周榜/视频热榜/点赞榜),hot/likes 全品类单文件/期 抖音周榜_{视频热榜|点赞榜}_{周一}.json;旧 28 赛道 56 文件归档 _archive_旧28赛道结构_20260903
- dsh-data.js:RANK_SUB 子目录映射 + rankFilePath + listRankFiles(子目录优先+根目录旧平铺回退) + collectCategories(week=文件名赛道、hot/likes=条目 category 并集)+ getRanking 赛道筛选(week 文件名级/hot likes 条目级)
- 前端三榜渲染(data-pages.js/app.js/style.css 承接前段)+ 文档同步(主 SKILL.md 落盘表/抓取器说明段)+ dsh 副本 diff=0 + 记忆日志
|
2026-09-03 15:00:01 +08:00 |
|
maogeigei
|
2fc8b7b3f6
|
工作台删除「涨粉榜」tab(三榜变两榜,技能 douyin-rise-ranking 保留)
用户指令「删除涨粉榜功能」→ 范围=只删工作台 tab:
- app.js 首页 rank-tabs 删 fans 按钮 + 注释 3→2
- data-pages.js RANK_TABS 删 ['fans','涨粉榜'] 行
- 首页 tab handler 通用逻辑无特判,删除即收敛;cdp 验证脚本 fans=粉丝列保留
- node --check + 伺服零残留验证通过
|
2026-09-03 13:14:45 +08:00 |
|
maogeigei
|
6160ea1acb
|
工作台「账号周榜」入口改为「热点数据」多榜 tab 页:首页入口卡片/面包屑/路由标题同步改名;renderRanking 重构——RANK_TABS 四 tab(账号周榜/视频热榜/点赞榜/涨粉榜,与首页 rank-preview 一致),账号周榜 tab 保留完整列表(筛选/排序/分页/关注),其余榜暂占位(后端仅周榜 json,数据落盘后接入)
|
2026-09-03 12:20:37 +08:00 |
|
maogeigei
|
a11b68a03e
|
v25: AI写脚本页三tab脚本中心(参考选题/自定义选题/ABC占位)+UI创作写库闭环
- dsh-data: listCustomScripts/getCustomScript/saveScript(可写连接)/getRewriteStats
- server: /api/dsh/custom-scripts|custom-script|script-save|rewrite-stats
- data-pages: renderRewrites tab化重构(保留openRewriteCompare),徽标计数,账号级进入默认落有数据tab,chip清账号筛选,openCustomScriptView全文弹窗
- saveHintOf 追加全部UI创作prompt尾(参考选题带videoId/awemeId,自定义仅accountId)
- 修复: note/accChip 顶层const不随tab更新→移入load()重算
- style: rw-tabs/rw-tab-badge/rw-chip/cw-modal; app.js +copy图标
|
2026-09-02 19:32:19 +08:00 |
|
maogeigei
|
126ab46734
|
feat(workshop): 痛点/爽点 标签加空格(label+clarify模板同步);AI写脚本列表默认近三个月 v24
|
2026-09-02 19:07:15 +08:00 |
|
maogeigei
|
84e8f1e84e
|
feat(workshop): 账号列表 AI脚本列改为按钮展示(数量+条)v23
|
2026-09-02 19:02:16 +08:00 |
|
maogeigei
|
4a859e38c8
|
fix(workshop): rewrites 账号跳转 param 中文未解码——补 decodeURIComponent v22-fix
- #/rewrites/<编码账号名> 的 param 未经 decode,中文账号名(俊希等)以编码串进入搜索词匹配不到
- renderRewrites 开头 decodeURIComponent(initAccount)(try/catch 防坏 URI)
- 纯前端,无需重启
|
2026-09-02 19:00:29 +08:00 |
|
maogeigei
|
0cf59c2512
|
feat(workshop): 账号列表去地区列+加AI脚本列(数量/跳转该账号AI写脚本) v22
- dsh-data listAccounts 增 rewrite_count 子查询(口径同视频页:rewrite_log done 且有脚本)
- renderAccounts:删地区列,操作列左加「AI脚本」列——数量>0 显示为链接,0 显示 —
- 跳转 #/rewrites/<账号名>:parseHash param 传 renderRewrites(view, initAccount),预填搜索+note 提示该账号上下文
- app.js rewrites 路由透传 param;空行 colspan 13/12→12/11
|
2026-09-02 18:59:02 +08:00 |
|
maogeigei
|
022ed35d37
|
fix(workshop): 需求区展开挤出输入条——上限560回400/44vh+对话区让位+modal裁边 v21
- 根因:v17 为 8 卡把展开上限提到 560px,v20 已回 5 卡未回缩;窗口 92vh 较矮时 560+对话区(130)+输入条超出弹窗总高,输入条 flex:none 固定底被挤出
- .req-sheet / .req-sheet-box.open 展开上限 560→min(44vh,400px)(5 卡空卡约 330 全显,内容超高内部滚动,矮窗口自动让位)
- .req-dialog min-height 130→60 腾出弹性空间
- .req-modal 加 overflow:hidden 防残余溢出弹窗框
- 纯 CSS,无需重启服务
|
2026-09-02 18:56:04 +08:00 |
|
maogeigei
|
cbb0ea7eb1
|
refactor(workshop): 删需求字段『共鸣/共情』8→5 行,共鸣由 AI 依痛点爽点发挥 v20
- REQ_FIELDS 6→5:删 relate;idea→blow→pain→form→note
- w 初值同步删 relate;空态/注释同步(共鸣与情节结尾由 AI 依痛点爽点发挥)
- clarify 模板同步 5 行 + 提示共鸣/共情不收集由创作自然发挥
- 复盘评分维度「共鸣和共情」(1134/1232/1312)属复盘技能结构,不在需求表单,未动
|
2026-09-02 18:53:22 +08:00 |
|
maogeigei
|
a35cbd52e4
|
refactor(workshop): 爆点改名『创新 / 爆点』并移至一句话创意之后 v19
- REQ_FIELDS:blow 标签 爆点→创新 / 爆点,字段序 idea→blow→pain→relate→form→note
- clarify 服务端模板同步;空态/注释同步字段序
|
2026-09-02 18:51:02 +08:00 |
|
maogeigei
|
e154f14bf3
|
refactor(workshop): 需求表单 8→6 行——叙事形态改名叙事结构,删核心情节/结尾落点 v18
- REQ_FIELDS:删 plot/end,form 标签 叙事形态→叙事结构(idea/pain/relate/blow/form/note 6 字段)
- w 初值同步删 plot/end;情节与结尾由 AI 创作阶段按人设与选题自决,无需用户填写
- clarify 服务端模板同步 6 行 + 注释;提示补充情节/结尾/时长不由清单承载
- 空态/注释同步
|
2026-09-02 18:48:28 +08:00 |
|
maogeigei
|
05b9996661
|
feat(workshop): AI创作需求表单加入落点三字段(痛点爽点/共鸣共情/爆点) 共8行可空 v17
- REQ_FIELDS 5→8:idea/pain/relate/blow/form/plot/end/note,落点要素可选留空由 AI 补齐
- clarify 服务端模板同步 8 行,注释 5行→8行
- 需求区展开高度 400→560px 容纳 8 张卡片
|
2026-09-02 18:44:23 +08:00 |
|
maogeigei
|
19efd23ba5
|
style(workshop): 弹窗空态引导精简(去账号级设定说明与附件格式,只留支持上传附件)
|
2026-09-02 18:39:00 +08:00 |
|
maogeigei
|
69b17b60b6
|
style(workshop): 时长下拉宽度收窄 168→110px
|
2026-09-02 18:35:59 +08:00 |
|
maogeigei
|
3c864e4882
|
style(workshop): 需求卡空值文案改『待完善』(确认弹窗兜底同步)
|
2026-09-02 18:35:32 +08:00 |
|
maogeigei
|
10545fa4f5
|
style(workshop): 时长选项标签改『时长』/默认『自动』+ 修复秒数输入框 hidden 被 display 覆盖一直显示问题(选自定义才显示)
|
2026-09-02 18:34:23 +08:00 |
|
maogeigei
|
5aa9ef27f6
|
style(workshop): 需求栏字段卡片化——维度名作小标题置左上角+内容在下+padding 10px(展开高度340→400)
|
2026-09-02 18:30:40 +08:00 |
|
maogeigei
|
1d041455c2
|
chore(workshop): 修正折叠容器注释 n/10 → n/5(需求栏已收窄至5字段)
|
2026-09-02 18:29:59 +08:00 |
|
maogeigei
|
9a587d3b99
|
feat(workshop): AI创作弹窗时长改功能选项下拉(30/60/120/240/自定义,移出需求栏) + 一句话创意与选题改名一句话创意
|
2026-09-02 18:28:22 +08:00 |
|
maogeigei
|
d8b76d9cc7
|
feat(workshop): AI创作需求框收窄为选题侧6字段(删情绪/受众/结构性符号/广告植入4账号设定字段,人设卡已覆盖,保留其他约束兜底)
|
2026-09-02 18:22:28 +08:00 |
|
maogeigei
|
5032c583d0
|
refactor(workshop): AI创作弹窗去重引导文案(删顶部常驻req-head,保留对话空态引导并补快捷键/附件说明)
|
2026-09-02 18:17:06 +08:00 |
|
maogeigei
|
602e51171d
|
feat(workshop): AI创作弹窗需求区默认折叠可点击展开(标题行+已填计数+箭头动画)
|
2026-09-02 18:13:40 +08:00 |
|
maogeigei
|
e3c188e6ea
|
fix(workshop): AI创作弹窗需求区改单列清单(一行一维度) + 提交创作加确认弹窗
- style.css: .req-sheet 双列卡片网格→单列清单式(grid 1fr);.req-field 改 flex 维度名左标签+内容同行;max-height 290→340;新增 .req-confirm-* 确认弹窗样式
- data-pages.js: reqCreate 点击先 loadPersona 再弹确认弹窗(达人/S1-S11说明/已填需求 n/10/人设附件状态),确认后才 executeTask;取消/遮罩/X 均不提交
|
2026-09-02 18:08:24 +08:00 |
|
maogeigei
|
c16486d6e2
|
fix(workshop): 提炼账号设定/生成分镜/复盘三入口prompt统一加技能前缀(提示词与技能边界分离)
- 新增 SKILL_HINT_EXTRACT(mcn-dou-analysis功能三)/SKILL_HINT_STORYBOARD(mcn-video-prompt F4)/SKILL_HINT_REVIEW(脚本复盘) 三常量,与 SKILL_HINT_CREATE 同层管理
- 三处调用点(提炼confirmRun/生成分镜confirmRun/复盘startReview)改为前缀+业务正文拼接,技能声明不再混写进业务字符串
- 复盘按钮 desc/prompt 按有无源脚本动态分支,提示词仅保留用户可见摘要
- EXTRACT 文案规避 server.js BROWSER_HINT 正则命中(不执行数据抓取流程字样)
- 验证: node --check 通过; 四前缀均不命中 BROWSER_HINT 正则; 服务端 JS 已含全部常量
|
2026-09-02 17:32:18 +08:00 |
|
maogeigei
|
f6d2934ea0
|
fix(workshop): AI创作弹窗提交任务补拼SKILL_HINT_CREATE自动模式声明(防S1-S11跳步直出S9)
- 根因: 弹窗 reqCreate 提交(L386)只调 buildCreatePrompt() 裸需求 prompt, 漏拼 SKILL_HINT_CREATE 流程约束前缀(详情页入口 L711/L920 从 2719246 起都拼了, 弹窗 v2-v6 迭代漏跟)
- 导致: 创作指令任务收到无流程约束的 prompt → 模型按自动模式语义误读'后台静默=可跳步' → 只读 S9 规范一步直出, S5-S8 脑内带过
- 修复①: SKILL_HINT_CREATE 补'本任务以⚡自动模式执行: 严格按 S1-S11 步骤顺序逐步走完...禁止跳过或合并中间步骤一步直出成品'声明(对齐创作流程规范'后台静默≠跳步'P0)
- 修复②: 弹窗 reqCreate 提交拼 ${SKILL_HINT_CREATE}\n 前缀, 与详情页入口对齐
|
2026-09-02 17:14:57 +08:00 |
|
maogeigei
|
c25e56dee9
|
fix(workshop): AI创作弹窗v6.2 输入框默认两行空间(min-height 30→60+rows=2)
|
2026-09-02 16:50:59 +08:00 |
|
maogeigei
|
cd0f876785
|
fix(workshop): AI创作弹窗v6 确认按钮移入输入框工具栏 + 间距10px
|
2026-09-02 16:47:48 +08:00 |
|
maogeigei
|
3e0de85795
|
fix(workshop): AI创作弹窗v5输入框布局对齐WorkBuddy参考(输入区在上/工具栏在下/外框圆角)
* data-pages.js confirmAiScript HTML 重排:paperclip/textarea/send 横向→textarea 上+toolbar 下
(toolbar 内 paperclip + spacer + send)
* style.css:
- .req-input-box flex row→column;border-radius 12→14;padding 0(让内部块各自控)
- .req-input width:100%+box-sizing:border-box;padding 10/14/6
- 新增 .req-input-toolbar(.req-spacer flex:1 推开两钮)
- .req-send 34×34→32×32 圆角50%(贴合 WorkBuddy 圆形发送)
- .req-paper 28×32→32×32(与 send 视觉对齐)
* CDP 9224 验证:结构(列向/圆角/toolbar 位置/按钮分布)全绿+autoGrow 多行自然下移
* 设计:req-create 仍保留在 .req-bar 左侧独立(对应弹窗外功能,不入输入框)
|
2026-09-02 16:36:58 +08:00 |
|
maogeigei
|
50bbed30f7
|
feat(workshop): AI创作弹窗v4-上传需求附件(doc/docx/txt/pdf)→AI打磨携带+创作上下文
* attachment-parser.js 零依赖(node:zlib)txt/docx/pdf纯文本提取;.doc明确400报错
* server.js 新增 POST /api/req/parse-attachment(20MB/30MB/3万字符限);
/api/ai/clarify 入参增 attach 拼【附件素材】段(2万字符)
* data-pages.js confirmAiScript:req-input-box内左侧回形针(新ICON_PATHS paperclip)
+ 隐藏 file input + attach chip 行(paperclip+文件名+字数+×);
空输入但有附件自动发引导语;sendTurn 携带 attach;
buildCreatePrompt 增第5参 attachText→【附件素材】段并入创作 prompt
* style.css:req-attach-row/req-chip/chip-x/req-paper 系列样式;req-input-box padding-left 调
* 端到端 4 路径 API 验证 OK;CDP 9224 冒烟(纯Runtime+DataTransfer 注入 + 持久WS)全绿;
真实 Dify 一轮打磨确认附件诉求已吸收进需求清单
* 测试样例 tmp/attach-tests/{req.txt,req.docx,old.doc}.b64(make_samples.py)
9-02 16:31 已改中立内容,避免冒烟带真实账号名
|
2026-09-02 16:31:57 +08:00 |
|
maogeigei
|
4f79c9515e
|
AI创作弹窗 v3 补完:textarea auto-grow + placeholder 单行化 + req-head 换行提示
参考 WorkBuddy 输入框体验补完最后细节:
- textarea auto-grow(data-pages.js confirmAiScript):
- 新增 autoGrow() 闭包:style.height = auto + Math.min(scrollHeight, 100)px
- input 事件绑定 autoGrow,输入多行自动增高(上限 100px = CSS max-height)
- sendTurn 清空 + 错误恢复 input 后调 autoGrow 复位
- 验证 cdp-autogrow-check.mjs:before 32→after 100(5 行 116px cap 到 100px),清空回 32 ✅
- placeholder 单行化(去掉"(Enter 发送,Shift+Enter 换行)"——rows=1 只显示一行,第二行被截断)
- req-head 末尾补"Enter 直接发送,Shift+Enter 换行"提示,键盘说明从 placeholder 迁到头部更显眼
git status 仅 2 文件(+25/-5),按 2 小时节奏暂不 push。
|
2026-09-02 16:14:50 +08:00 |
|