Commit History
2 days ago
-
shan chu tupian yuchong xiazai, chidu gengxin an zhen he bing
xiaolongmr36b3bb0
3 days ago
-
Revert "失败卡片补兜底「查看官网」入口"
xiaolongmrThis reverts commit 0075c950d9b85b912a12531beb709356550fab2a.c03796c -
失败卡片补兜底「查看官网」入口
xiaolongmr请求在创建上游会话之前就被上游挡掉时(如伪装 404 "Model not found"), 卡片上没有 conversationId,原有的「查看官网对话」取证按钮不渲染。 现在这种卡片会在「重新生成这一张」左边显示一个直达 chatgpt.com 的 「查看官网」链接,方便用户自己去官网核对账号状态;后端明确 canViewOfficial=false(账号配额耗尽)时仍然不渲染。画图页与批量页同步。0075c95 -
撤回提示词编辑器「图N 引用参考图」与 @ 唤出缩略图功能
xiaolongmr该功能几轮修复后仍无法稳定使用(@ 选图后立刻用输入法打字时空格丢失、 缩略图与光标行为异常),按用户要求整体撤掉,输入框恢复为普通 textarea。 - prompt-composer.tsx 回到 1b90ec42(功能引入前)的 textarea 版本, 移除 contentEditable chip 编辑器、序列化/光标偏移换算、@ 候选菜单、 缩略图渲染与自动补空格等全部相关代码 - 画图页 / 批量生图页 / 聊天页 / 产品图页 4 个调用方同步移除 referenceTokens 传参与 PromptComposerEditorHandle 类型标注 - 移除画图页的「写『图1』『图片1』或按 @ 都能引用参考图」提示文案 tsc 与 eslint 均通过。ce96411
4 days ago
-
提示词编辑器对齐 infinite-canvas 的 chip 输入架构,修「@选图/手打标签后空格丢失」
xiaolongmr换掉「每次输入都重建 DOM」的做法,迁移 infinite-canvas 的核心机制: - 输入时只在「DOM 序列化结果 != 目标字符串」才重建 DOM 并按字符串偏移还原光标, 普通打字(含 IME 组字)完全不碰 DOM,输入法不再被冲掉 - 空格以 DOM 为准:chip 集合相同但 DOM 缺空格时(如「的」顶掉空格的那次输入) 也会重建,杜绝「空格只在字符串里、界面看不到」的脱节 - @ 选中插入后光标落进空格文本节点内部(原先悬在节点边界,caret 矩形是 0x0) - domPointAtOffset 落 chip 边界时优先落进相邻文本节点内部,不再悬空 - 迁移 infinite-canvas 的原子删除:keydown 拦截紧贴 chip 的退格/Delete 并 preventDefault 后整块删除,避免与浏览器原生删除重复执行 真机验证(agent-browser 真实按键):@选图后立刻打字、手打标签、逐字输入、 中文混排、chip 原子边界(左右键/退格/Delete)、双 chip 相邻删除共 14 例全过。11d4116 -
提示词引用参考图:同时支持「图片1」写法
xiaolongmr用户要求除「图1」外也认「图片1」。实现为同义别名,命中任一都渲染同一张缩略图, 插入提示词时仍写主标签「图1」,不改变既有输出。 - PromptReferenceToken 新增可选 aliases;referenceIndexByLabel 与 referenceLabels 都把 label + aliases 一起收录,referenceLabels 继续按长度倒序。 倒序很关键:「图片12」必须先于「图片1」匹配,否则会被拆成「图片1」+「2」。 - 两个 image-composer(画图页 / 批量页)都传 aliases: [`图片${index + 1}`]。 - mentionCandidates 的搜索串也拼上别名,「@图片」能筛出候选。 - 缩略图角标的取号正则放宽成 /^@?图(?:片)?/,否则「图片1」会显示成「片1」。 验证: - 断言 artifacts/prompt-refs/verify-alias.mjs,23 条全绿:两种写法命中同一张图、 混用不串、越界 图片9 不命中、图片12 优先于图片1、别名在退格/左右键/补空格 四条路径上与主标签完全等价。另回归 verify-cursor.mjs 18 条仍全绿。 - 特别确认「图片1」里的「图1」子串不会被当成独立标签误匹配 (图1 要求「图」紧跟「1」,图片1 中不成立)。 - 真机 artifacts/prompt-refs/alias-check.sh,7 用例全绿:图片1/图片2 各渲染对应 缩略图、与图1 混用正确、越界图片9 不渲染、caret=4 按← 一下跳到 1、 退格整块删成「用 换」、@图片 能筛出候选、@ 回车仍插入「图1」。98186ab -
画图页提示词支持「图N」引用参考图:输入框内直接显示缩略图、可点开大图、可用 @ 唤出候选
xiaolongmr- PromptComposerTextarea 新增 referenceTokens:高亮层把命中的「图1」「图2」原地画成缩略图。 外层 inline-block 用 visibility:hidden 的文字占位、内层绝对定位铺满那一格,所以缩略图 不改变文本流里的宽高,多行混排时光标也不会错位(复用 $技能 已有的镜像层机制)。 - 缩略图可点击看大图(复用 ImageLightbox);mousedown 阻止默认行为,点击不抢输入框焦点与光标。 - 新增 @ 唤出候选:输入 @ 后在光标处弹出列表(缩略图 + 图N + 文件名),上下键选择、 回车插入、Esc 或点击外部关闭;光标坐标用镜像 div 量算,菜单会按空间自动向上翻。 - 退格 / 删除把「图N」按整体删掉(含可选的 @ 和尾随空格),不会删一半留下孤零零的「图」。 - 输入法组字期间临时关掉高亮层:高亮生效时 textarea 文字是透明的,不关掉中文打字会看不见。 - mention 与选中项的真值放在 ref:textarea 光标一动 React 会补发 onSelect, 只认 state 会让键盘选中的项在与按键同一批事件里被打回第一项。 - 画图页与批量生图页的输入框都接上了(批量页是画图页的副本,保持同步)。0d06d34 -
批量生图页:图池默认带到每一条、每条可自传参考图、行级模型与比例改用输入框同款菜单
xiaolongmr- 输入框上传的参考图进「图池」,提交时默认带到每一条提示词;参考图条上方加一句说明。 - 每条提示词可以单独上传自己的参考图(与图池合并,单条合计上限 16 张), 行内显示缩略图 + 常显的删除角标;列表行用角标显示本条自带几张。 - 行级「模型 / 比例」不再用原生 select,抽出 BatchParamMenu 复用输入框工具栏 那套「胶囊 + ChevronDown + fixed 浮层菜单」的样式与定位逻辑: 第一项固定是「默认 · 全局值」,未覆盖时值用浅色、覆盖后用深色加粗; 同一时刻只开一个菜单,外部点击关闭。 - 换模型时清掉该条的比例覆盖(第三方模型各自支持的比例不同,旧值可能不适用)。 - 每条自己的参考图用 ref 记录上传目标,避免点按钮与 change 之间拿到陈旧 state。06d53b6 -
批量生图页改版:提示词列表移到输入框上方、支持分隔符与 xlsx 导入
xiaolongmr- 布局重构:不再把多行编辑器塞进输入框,改成「列表在上、原输入框编辑选中项」—— 点列表里任意一条,输入框就显示并编辑那一条(原来输入框的内容会在进入批量模式时带进第 1 条) - 每条独立设置平铺出来:参考图、张数、模型、比例直接可见可改(不再藏在「参数」展开里); 改过之后旁边出现「恢复跟全局」用来清掉行级覆盖 - 分隔符:默认 ----,可在批量区自定义;「拆分输入框」把当前这条按分隔符拆成多条; 批量模式下粘贴含分隔符的内容也会自动拆 - 导入 xlsx / xls / csv(SheetJS):读各工作表第一列的非空单元格,跳过「提示词 / prompt」 这类表头,单元格内还能再按分隔符拆;导入结果追加进列表 - 修两个 bug: ① 追加条目改用函数式 setState —— 否则拆分时会把同一批次里刚改好的那条顶回原文; ② 导入时不能提前把 input.value = "" —— 会让已拿到的 File 变成不可读(NotReadableError) - 依赖:新增 xlsx(SheetJS)db2e2ca -
新增批量生图页:画图页副本 + 多条目编辑器 + 并发 10 一起生成
xiaolongmr- web/src/app/batch/:整页复制画图页(page.tsx + 5 个组件),批量能力只做在副本上, 不动画图页本身 - 输入卡工具条新增「批量」入口(batch-toggle),点开后同一张卡原地展开为多行编辑器: 每行一条提示词,行内独立选参考图(不选 = 纯文生图)、独立张数、按需覆盖参数; 右侧显示「预计 X 积分 / N 条 · 共 M 张 · 同时 10 条」 - 队列由「会话级串行」改为「条目级并发池」:单条执行逻辑抽成 executeTurn, runConversationQueue 改为调度器,按 BATCH_TURN_CONCURRENCY(10) 同时拉起多条; 单条提交时只拉起一个 worker,行为与改造前一致 - 额度预检仍按总张数走原有逻辑;提交后清空编辑器并退出批量模式,结果排进同一会话消息流 - 导航:config.py 默认导航 + top-nav 图标加「批量生图」;app-shell 让 /batch 复用画图页布局 - 并发数先硬编码为 10,后台配置项留待后续d7f06c8