]>
acesimba.cloud Git - codebuddy-web.git/log
summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
Codebuddy [Wed, 12 Aug 2026 12:21:02 +0000 (20:21 +0800)]
feat(console): 每个会话注入"修改前先确认"行为准则(软约束)
- 新增 backend/agent_guidelines.md:收到问题/需求先总结、确认要点、给方案、等用户确认后才动手,未确认不改代码/不提交
- _launch_process 在拉起每个 codebuddy 会话时追加 --append-system-prompt 注入该准则
- 不覆盖 codebuddy 内置系统提示,仅追加;准则文件缺失时优雅跳过
- 适用所有会话(words/study-mountion/Codebuddy-web 等),从启动起自带确认纪律
Codebuddy [Wed, 12 Aug 2026 09:35:01 +0000 (17:35 +0800)]
feat(console): 删除任务时可选一并删除历史会话与工作目录
- 删除确认弹窗新增两个复选框:同时删除历史会话(对话记录)、同时删除工作目录
- 后端 /api/tasks/{id} DELETE 新增 delete_session / delete_cwd 查询参数
- 按 session_id 删除 ~/.codebuddy/projects/*/*.jsonl 会话文件(含锁文件)
- 按 cwd 删除工作目录,带安全护栏:仅允许 TASK_HOME_ROOT 下的子目录,拒绝删除根目录或越界路径
- 返回 removed_session / removed_cwd / cwd_error 供前端提示
Codebuddy [Wed, 12 Aug 2026 09:21:13 +0000 (17:21 +0800)]
feat(console): 断线保活 + 四态实时状态 + 重连聚焦修复
- 浏览器关闭不再杀死任务:/ws 断开只解绑 ws,进程组保留后台运行
- 新增 RUNNING 注册表与 _drain 异步读取,缓冲 PTY 输出供重连回放
- /api/tasks 返回四态 live_status:前台已登录 / 后台运行中 / 后台任务待确认 / 空闲
- 后台跑完且无人观看时显示「后台任务待确认(退出码 N)」提示用户回来确认
- 重连发送 reattach 消息(运行时长/回放/当前任务),并自动聚焦终端,去除冗余分隔行
Codebuddy [Tue, 11 Aug 2026 22:26:10 +0000 (06:26 +0800)]
fix(frontend): lock page scroll on iOS and pin top-bar for iPad
- Use body{position:fixed; inset:0; overflow:hidden} to reliably lock the
page on iOS Safari (overflow:hidden on body is ignored by iOS).
- Remove ineffective position:sticky from .top-bar; with body fixed the
top-bar is a flex-shrink:0 flex item pinned at the top naturally.
- Fixes two iPad issues: title bar scrolling away, and page not
auto-scrolling to newest terminal output (xterm handles internal scroll).
Codebuddy [Tue, 28 Jul 2026 10:30:27 +0000 (18:30 +0800)]
新增控制台模型切换能力(默认最新 GLM,每日扫描)
Codebuddy [Thu, 18 Jun 2026 08:57:20 +0000 (16:57 +0800)]
任务清单:暂停/恢复 + 受限删除
后端 (backend/app.py):
- GET /api/tasks 返回 status (active/paused) 和 paused_at 字段
- POST /api/tasks/{id}/pause: 标记暂停,记录 paused_at
- POST /api/tasks/{id}/resume: 恢复启用,清除 paused_at
- DELETE /api/tasks/{id}: 仅允许删除已暂停超 24 小时的任务
前端 (frontend/index.html):
- 任务卡片:删除按钮改为暂停(⏸)/恢复(▶)按钮
- 默认仅列出启用状态任务,勾选"显示全部任务"查看暂停的
- 暂停超 24 小时的任务才显示删除按钮(✕)
- 删除确认 modal:3 次确认,每次需等待 10 秒才能点击
- 暂停状态任务卡片半透明显示,标注已暂停时长
- ESC/点击遮罩/取消按钮 关闭删除 modal
Codebuddy [Thu, 18 Jun 2026 08:46:35 +0000 (16:46 +0800)]
修复粘贴框关闭与终端复制
问题1: 粘贴框无法关闭
- ESC 监听提升到 document 级(避免焦点不在 pasteInput 时失效)
- 点击遮罩层(modal 外部)关闭 modal
- 移除 pasteInput 上的重复 ESC 处理
问题2: 终端选区无法复制
- 加 attachCustomKeyEventHandler: 有选区时 Ctrl+C 复制到剪贴板(不发中断)
- 优先用 navigator.clipboard.writeText,HTTP 下用临时 textarea + execCommand 兜底
- 无选区时 Ctrl+C 正常发中断信号
Codebuddy [Thu, 18 Jun 2026 08:39:34 +0000 (16:39 +0800)]
粘贴改为右上角弹窗模式(避免发送自动提交问题)
变更:
- 移除下方独立输入框,恢复 xterm 原生输入(两条绿线之间)
- 右上角"列表"后加回"📋 粘贴"按钮
- 点击弹出 modal:textarea + 📎 + ✕ + 发送,样式复用豆包式输入框
- modal 支持文字/图片粘贴、图片拖拽、📎 选文件
- Ctrl+Enter 或点发送:内容进 xterm 输入行(不自动提交),modal 自动关闭
- ESC 关闭 modal
- 发送逻辑只发内容字符流,不带 \r,用户自行回车提交
原因: 之前自动提交方案(\n / \r / bracketed paste 包裹)均无法让 codebuddy
CLI 正确触发提交。改为"内容进输入行 + 用户回车"最可靠,符合终端交互本质。
Codebuddy [Thu, 18 Jun 2026 08:07:46 +0000 (16:07 +0800)]
方案B: xterm输出区 + 独立输入框(豆包式)
重构终端页为上下两区:
- 上: xterm 区保留 codebuddy TUI 输出(流式/工具调用/交互确认)
- 下: 独立多行 textarea 输入区 + 发送/📎/✕ 按钮
输入区能力:
- 文字粘贴: 浏览器原生 textarea paste,可靠不失效
- 图片粘贴: Ctrl+V 截图自动上传到 /api/upload-image,显示绿色 chip
- 图片拖拽: 拖文件到输入框上传
- 📎 按钮: 选择图片文件
- 发送: Ctrl+Enter 或点发送按钮,文字+图片标签一起进 PTY
移除:
- 旧的 xterm paste 监听(与 xterm 内部冲突导致粘贴失效)
- 旧的 📋 粘贴 modal(被独立输入区取代)
保留: backend /api/upload-image 端点不变
Codebuddy [Thu, 18 Jun 2026 07:58:56 +0000 (15:58 +0800)]
支持终端粘贴文字与截图(未完成,待方案B重构)
新增:
- backend: /api/upload-image 端点,接收 base64 图片存到 data/pastes/
- frontend: paste 事件检测图片/文字,上传后以 <image_local_path> 标签发 CLI
- frontend: 顶部栏 📋 粘贴按钮 + modal(多行 textarea 输入)
- frontend: extractPasteText/htmlToText(HTML 转 TSV/纯文本)
- .gitignore: 排除 data/pastes/
已知问题: 自定义 paste 监听与 xterm 内部冲突,文字粘贴失效。
下一步: 按方案 B 重构——xterm 区保留 TUI 输出,下方加独立 textarea 输入框。
Codebuddy [Thu, 18 Jun 2026 03:56:19 +0000 (11:56 +0800)]
Initial commit: Codebuddy Web Console
前后端分离结构:
- backend/app.py: FastAPI 后端 (PTY 终端 + 任务注册表 + JWT 鉴权)
- frontend/index.html: xterm.js 前端页面
- data/: 任务注册表运行时状态 (tasks.json 已 gitignore)
- logs/: 运行时日志 (已 gitignore)
原单文件 /root/codebuddy-web.py 拆分为前后端分离,
systemd 服务指向 /home/Codebuddy-web/backend/app.py