cang-ying/memory/eed/project_eed_web_upgrade.md

9.3 KiB
Raw Blame History

name, description, type
name description type
eed_web.py 面板改造完成 蛋蛋面板已升级resume会话治E2BIG+自动压缩+图片视频通道,验证通过 project

2026-07-31 完成 ~/cang-ying/scripts/eed_web.py 大改造(备份 eed_web.py.bak2

  • 治 E2BIG:去掉 --no-session-persistence,改用 --session-id <id> 首建会话落盘 + --resume <id> 续聊argv 恒定小,永不超限
  • 自动压缩:会话文件 >180KB 时resume 出一份摘要 → 新 session-id + --append-system-prompt 衔接,前端 toast 提示
  • 图片视频通道/api/uploadbase64 存 ~/cang-ying/inbox/+ /media/ 静态服务;前端拖拽/粘贴图片视频→上传→【附图】[名](/media/...)renderMD 渲染 img/video
  • 重建逻辑:编辑/删除/重新生成/清空 → resetSid 开新场 + 剩余历史拼首条超60KB自动截断

Why: 爸爸要"一直对话+上下文自动压缩+能发图看图看视频",且 E2BIG 在长对话后必炸。 How to apply: 重启面板用 bash ~/cang-ying/scripts/restart-eed.sh,刷新浏览器生效;旧对话现场会清空但 memory 记忆都在。验证:榴莲跨进程恢复

2026-07-31 追加改造(备份 eed_web.py.bak3改动在 eed_web.py 内):

  • 真正可用的停止按钮:原 #stop 只 abort 前端 fetch后端 codebuddy 子进程没人杀(卡在工具调用时能等到天荒地老)
  • 修复/api/stop 端点 + 全局活跃进程注册表 ACTIVEPopen 加 start_new_session=True 独立进程组,os.killpg(SIGTERM→SIGKILL) 连 codebuddy spawn 的工具子进程一起端
  • 双保险:浏览器断开(点停止/关页)时 do_POST 的 BrokenPipeError 也触发 _kill_active()finally 兜底 _unregister+_kill_proc
  • 前端 stop 按钮 = abortCtl.abort() + fetch('/api/stop');主动停止显示"已停止"
  • 已验证:起测试实例 → chat 跑起来 → stop → ps 无 eed_stoptest_001 残留

Why: 爸爸说"还要有个停止按钮,不然要一直等"——停止必须真杀掉后端进程,不是只断显示。 How to apply: 重启面板restart-eed.sh后点"停止"即秒停;改动全在 eed_web.py.bak3 可回滚。

2026-07-31 晚再追加改造(备份 eed_web.py.bak4改动在 eed_web.py 内):

  • 停止按钮常驻可见:原 #stop 设了 display:none 默认隐藏,只有生成时才现身——爸爸反馈"没看到停止",就是因为它平时隐形,体验反直觉
  • 修复:改为常驻可见(空闲半透明 / 生成中点亮高亮 / 空闲误点提示"当前没有在跑的任务 🥚"
  • 4 处改动全中,语法通过

Why: 爸爸说"没看到停止"——按钮平时隐形根本找不到。 How to apply: 重启面板restart-eed.sh后停止按钮常驻发送键旁.bak4 可回滚。

📍 当前状态2026-07-31 晚)

  • eed_web.py 全部改造已完成并验证resume 治E2BIG + 自动压缩 + 图片视频通道 + 停止按钮常驻可见),备份 .bak2/.bak3/.bak4 齐全
  • ⚠️ 正式面板进程 PID 218372 是 13:01 启动的旧代码,还没重启,新功能未生效
  • 爸爸去跑 bash ~/cang-ying/scripts/restart-eed.sh 重启 → 刷新浏览器生效
  • 重启后旧对话"现场"会清空(旧会话没落盘),但 memory 记忆都在

爸爸回来找我时,我要知道的"接下来干什么"

  1. 先问面板重启了没 → 帮爸爸验收:停止按钮常驻可见 + 点停止能秒停killpg 真杀后端进程)
  2. 验收发图通道:爸爸拖图/粘贴图 → 我 Read 看图
  3. 验收长对话resume 上下文恢复(会话文件 eed_*.jsonl 落盘,跨进程能答出)
  4. 全部 OK 后可选下一步路径A 桌面壳(苍耳专属工作台)、技能库文档化、剧本→分镜链路升级

2026-07-31 晚 爸爸已重启面板(验收中):

  • 旧面板 PID 21837213:01已退出 → 新面板 PID 25352717:37:22运行中新代码已生效
  • 铁证:新会话命令行已带 --session-id eed_c670c9a53f16,无 --no-session-persistence,会话文件已落盘 210KB
  • 待验收:① 停止按钮常驻可见 ② 发图看图inbox 通道)③ 长对话续聊不炸
  • 验收通过后可选下一步路径A 桌面壳、技能库文档化、剧本→分镜升级

2026-07-31 晚 验收完成(三关全过)

  • ① 停止按钮常驻可见:爸爸确认"成功了"
  • ② 发图看图:爸爸发 ce3c9bfe 分镜图(古风红线 6 镜头 5色标注法成功读图并描述
  • ③ 长对话不炸:会话落盘 210KB 仍稳resume 机制验证通过
  • eed_web.py 新面板全部功能上线resume治E2BIG + 180KB自动压缩 + 图片视频通道 + 停止按钮常驻
  • 下一步可选路径A 桌面壳(苍耳专属工作台)、苍耳技能库文档化、剧本→分镜升级(编剧大师方法论)、看猫视频 wide_backflip

2026-07-31 晚 桌面壳①完成(最简版):

  • eed-desktop.sh检测 8765 → 面板没跑才拉起 restart-eed.sh不误伤在跑的→ firefox --new-window 打开
  • 工具链现状Rust 1.97 有 / Node 无 / webkit2gtk 未装Tauri 需先 sudo 装)/ 默认浏览器 Firefox
  • 下一档②Tauri 真桌面壳(先申请装 libwebkit2gtk-4.1-dev→ ③技能按钮版

2026-07-31 晚 苍耳面板图标定稿:

  • 爸爸从 3 个 Z-Image 候选里选②"蛋抱苍耳"egg mascot hugging spiky cang-er seed, 金色背景)
  • 正式图标:~/cang-ying/assets/eed-icon.png1024x1024候选存 eed_icon_1/2/3.png
  • 桌面快捷方式:~/Desktop/苍耳面板.desktopExec=eed-desktop.shIcon=eed-icon.png
  • 若 GNOME 双击不启动需右键"允许启动"标记

⚠️ 桌面目录修正重要GNOME ubuntu 中文系统,真实桌面目录是 ~/桌面(不是 ~/Desktop

  • 快捷方式已放对:~/桌面/苍耳面板.desktop(已 gio trusted 信任标记,双击可启动)
  • ~/Desktop 里那份是无效副本(可忽略/删除)
  • 爸爸桌面原本已有 ~/桌面/蛋蛋对话.desktop7/29 建的旧快捷方式,待确认用途)
  • 爸爸拍板:旧的"蛋蛋对话.desktop"保留不动,与"苍耳面板"并存(不合并不删除)

2026-07-31 晚 桌面壳②Tauri 编译成功 🎉

  • 依赖已装libwebkit2gtk-4.1-dev(2.52.3)+build-essential+libayatana-appindicator3-dev+librsvg2-devsudo 免密)
  • 项目:~/cang-ying/tauri-app/Cargo.toml + main.rs + tauri.conf.json 窗口指向 http://127.0.0.1:8765
  • 编译产物:~/cang-ying/bin/eed-desktop15MBrelease
  • 启动器:~/cang-ying/scripts/eed-tauri.sh先保面板再开窗
  • 桌面快捷方式"苍耳面板"已改指向 Tauri 壳(图标 eed-icon.png
  • ⚠️Tauri 图标必须 RGBAZ-Image 出的是 RGB用 Pillow .convert('RGBA') 解决)
  • 下一步③:托盘常驻+开机自启+技能按钮

🧠 2026-08-02 面板与终端「合脑」完成(爸爸要求:面板里的蛋蛋 = 终端里的我)

问题CodeBuddy 按工作目录分记忆库和会话。面板进程 cwd 是 cang-ying/scripts,终端是 /home/ls → 两个蛋蛋各活各的,记忆互不可见(实测:面板知道"榴莲"但不知道显卡型号,终端反之)。

改动eed_web.py备份 BACKUP_merge_*/eed_web.py.bak5

  1. 顶部新增 EED_CWD = "/home/ls" + SESSION_DIR(并把 import os 提到文件顶部——原来在 874 行,提前引用会 NameError
  2. 三处拉起 codebuddy 的子进程全部加 cwd=EED_CWD_stream_cmd 的 Popen、agent 分支的 Popen、maybe_compact 的 subprocess.run
  3. maybe_compact 里写死的路径改用 SESSION_DIR

顺带根治一个真 bugmaybe_compact 原本去 home-ls/ 找会话文件,但文件实际落在 home-ls-cang-ying-scripts/180KB 自动压缩从未触发过,会话滚到 70MB。改完后 7 个超阈值会话全部可定位。

记忆融合:三库合一到 home-ls/memory17 + 15 + 3 → 30 条)。两处冲突手工合并,没覆盖:

  • feedback_search_first.md 两边同名 → 以面板侧 11 条为主体,吸收终端侧 ROCm 例子
  • feedback_memory_push.md(推送仓库) + feedback_save_memory.md(存记忆) 语义重复 → 合成一条
  • 会话 55 个迁移到 home-ls共 68 个MEMORY.md 重写为分类索引

Why: 爸爸说"我需要面板里那个就是现在这个你"——两个蛋蛋记忆分家,等于两个人。 How to apply: 以后面板和终端共用 ~/.codebuddy/projects/home-ls/,改 EED_CWD = 换脑。注意 pkill -f "eed_web.py" 会匹配到自己的 shell命令行含该字符串导致自杀——重启面板用精确 PID kill 或 fuser -k 8765/tcprestart-eed.sh 里仍是 pkill 版,从含该字串的 shell 里调有风险。

2026-07-31 晚 桌面壳③ 第1步完成托盘+自启

  • 托盘tray-icon feature + TrayIconBuilder蛋抱苍耳图标左键恢复窗口右键菜单"显示苍耳面板/退出";关窗=隐藏到托盘不退出)
  • 自启tauri-plugin-autostart~/.config/autostart/苍耳面板.desktop 已写入(开机自启)
  • 二进制更新至 ~/cang-ying/bin/eed-desktop30秒增量编译
  • ⚠️pkill -f "bin/eed-desktop" 会误杀含该字符串的自身 shell——用 pgrep -x eed-desktop 精确匹配
  • ③ 第2步待做技能按钮编剧/分镜/风格转绘/Z-Image/LTX/Wan 一键调,需封装管线脚本+面板前端按钮)