层级标签
使用父子标签树、自动规则和拖拽排序来组织会话。
标签(也称"标记")让你可以在项目目录之外对会话进行分类。Pi Session Manager 支持带父子关系的层级标签系统。
标签树
标签以树形结构组织:
📁 状态
├── 🟢 进行中
├── 🟡 处理中
└── 🔴 已归档
📁 优先级
├── 🔥 高
├── ⚡ 中
└── 💤 低
自定义标签 A
自定义标签 B创建标签
打开设置 → 标签来管理标签树。你可以:
- 创建根级标签
- 在任意父标签下添加子标签
- 重命名或删除标签
- 通过拖拽重新排序
分配标签
- 右键点击会话 → 分配标签
- 使用看板右键菜单中的标签选择器
- 在看板列之间拖拽会话
标签选择器
TagPicker 组件渲染完整的标签树,带展开/折叠控件。支持:
- 多选(为一个会话分配多个标签)
- 选择器内搜索
- 带缩进的视觉层级
标签过滤
LabelFilter 下拉菜单出现在侧边栏和看板头部。提供:
- 分组区块(状态 vs. 自定义)
- 后代过滤——选择父标签时自动包含其所有子标签
- 过滤器内搜索
自动规则
基于模式配置自动标签分配:
- 项目目录模式(如
~/work/下的所有会话自动标记为"工作") - 会话名称模式
标签存储在 SQLite 数据库(~/.pi/agent/session-manager.db)中,而非 JSONL 会话文件中。这意味着标签仅存在于你的 Pi Session Manager 实例本地。
后端实现
标签系统在 SQLite 标签表中使用 parent_id 列。前端提供以下工具函数:
getDescendantIds(tagId)— 递归获取所有子标签getRootTags()— 仅获取顶级标签getChildTags(parentId)— 获取直接子标签