zellij overview
从blog移到这里 以后考虑给产品设计单开一个类型
agent时代,终端多路复用焕发第二春,我感觉就像外挂的记忆系统。
记忆分层:
weights -> system prompt -> skill -> chat-session -> shell session[here] -> ...
高强度使用zellij中,诉求是跨平台和开箱即用。
碰到复杂项目需要多开tab和pane,所以出现新的问题:如何快速跳转?
目标
拆分子问题
-
tab管理
-
显示所有tab缩略图
-
vim风格快捷键移动,quit:q
-
floating模式为主
[x] floating现在有bug,如果打开overview,hidden的floating pane也会出现
-
支持跳转到上一个tab:-
-
缩略图的tab操作
-
-
flash.nvim风格搜索
flash.nvim是nvim的杀手级跳转插件,符合人类的跳转逻辑。
- flash模式
- 类flash mask遮罩
-
pane管理
- 毙。pane管理用自带的alt风格快捷键。区分session之后tab内的pane大大减少
-
session管理
-
增加session跳转,进入session后需要二次跳转到tab。
多工作区开发有用,避免tab膨胀
-
-
pin模式
- 常用的tab pin。避免二次跳转
-
agent状态管理
overview频繁跳转的核心原因就是agent的并行化,当一个agent在跑,我可以跳到另一个已完成的agent继续作业。
agent运行信息没有在扩展表现出来。
类似现在流行的agent pane。zellij完全可以发展一套基于session,tab,pane的agent管理产品。现在已经有这样的产品。
涉及信息的聚合。因为我不可能将所有pane的agent运行状态平铺出来
需要设计一款新产品桥接过来?
-
session,tab的curd收编
基于位置的,vim风格的curd感觉比原生的curd要方便
-
产品设计
- 自己的icon
- 递归风格的命名?
-
ui问题
- focus框不够明显
- 匹配单个立即跳转
- 渲染会有跳转。从小变大一次渲染紧致文字ui,框ui
- 顺序问题。现在的block排列顺序是什么,针对顺序可以开发什么功能。
- 支持键鼠
-
性能问题
- 打开cpu飙升
-
嵌套session
sequenceDiagram
actor 用户
participant B as B 的 Overview
participant 共享信息 as 跨端跳转信息
participant 入口 as A 的约定连接 Pane
participant A as A 的控制器
participant 目标 as A / ww / Tab 2
用户->>B: 选择 A / ww / Tab 2
B->>共享信息: 保存目标位置
B->>入口: 自动执行 Ascend
入口->>A: 通知已经回到 Host
A->>共享信息: 读取目标位置
A->>目标: 切换到 ww / Tab 2
目标-->>用户: 完成跨 Host 跳转
sequenceDiagram
actor 用户
participant A as A 的 Overview
participant 共享信息 as 跨端跳转信息
participant 入口 as A 的约定连接 Pane
participant B as B 的控制器
participant 目标 as B / backend / logs
用户->>A: 选择 B / backend / logs
A->>共享信息: 保存目标位置
A->>入口: 切换到约定连接 Pane
入口->>B: 自动 Descend
B->>共享信息: 读取目标位置
B->>目标: 切换到 backend / logs
目标-->>用户: 完成跨 Host 跳转
测试
-
单测。单测现在都是生成式,不太可靠
-
e2e测试。做成lib式,同时提供tui和cli。e2e依赖真实的zellij,不允许随意编写。不引入回归问题
todo: review测试用例