剪贴板历史增长得比很多人预想更快。一天研究工作可以增加几十个链接。一次设计工作可以增加截图和 SVG 片段。 一次支持工作可以增加姓名、错误信息和命令。
只有能把材料和噪声分开,历史才会保持有用。Syzygy 用标签补充语义,用回收站提供可恢复删除,再用保留策略完成永久清理。
三项工作保持独立。
标签是共享记录
标签有名称,可以有颜色,并显示已关联条目的数量。剪贴板元数据头会关联到标签。
颜色属于标签记录,不属于某一个标签片组件,也不应该在每次刷新后由随机颜色函数重新计算。为 引用 选择蓝色。
每个 引用 标签片都应该显示蓝色。把 引用 改名为 research。
已关联的剪贴板条目应该保持关系。把颜色改成绿色。
下一次读取应该返回绿色。这套行为把颜色变成真正的用户配置。
四类操作覆盖标签管理
创建操作建立标签记录;查询操作读取标签和数量;更新操作修改名称、颜色或两者;删除操作移除选中的标签和条目关联。
把标签关联到条目,属于条目元数据头更新。公开产品模型可以保持简洁,请求入参仍然可以很精确。 改名请求需要当前名称和新名称。
颜色更新需要标签和新颜色。组合更新可以同时发送两个字段。接口不需要为每个字段建立一套公开权限,服务端仍然会校验每个字段。
服务端仍然会返回受影响条目,界面仍然会刷新变化的行。
改名时发生什么
更新从源标签开始。新名称会先规范化,空名称会被拒绝,两侧多出空白的名称会收敛成一个值。
颜色也会规范化,非法颜色字符串会被拒绝。更新会找到所有关联的剪贴板元数据头。 它会把关系迁移到目标名称。
目标已经关联该条目时,重复关系会被删除。目标标签会保留已经配置的颜色;目标没有颜色时,源标签颜色可以随改名迁移。显式的新颜色优先于两个旧颜色。
关系迁移完成后,源标签会被删除。操作返回更新后的标签和受影响条目标识,界面使用这些标识刷新可见列表。
用户只会看到一次完整改名。他们不会看到一半新名称、一半旧名称的历史。
为什么更新需要一个事务
一次改名会触及多个数据对象:标签记录、条目关联和数量都会变化。
读取视图需要刷新。拆开这些写入会产生中间状态:一个条目可能显示旧名称,另一个条目显示新名称。
源标签颜色可能消失。事务把这些写入放在一起,提交后再发布事件,界面随后读取最终记录。
所以用户选择的颜色可以在应用重启后保持。
给等待中的同步条目加标签
P2P 同步可以先送达元数据头,再送达内容块(blob)。元数据头已经拥有条目标识,可以携带标签和内容家族。
所以内容仍在等待时,条目也能接收标签。加标签、改颜色和改名都不会启动内容块(blob)下载。
元数据更新保持很小。内容传输继续遵守同步策略,移动流量和大文件集合都需要这条边界。
标签编辑器工作流
打开一个条目,选择编辑标签,搜索已有标签并选择一个或多个标签。
列表没有合适名称时创建标签,颜色能补充语义时再选择颜色。保存选择,条目元数据头更新。
可见标签片更新,标签数量更新,关闭编辑器后条目保持选中。
内容本身没有变化时,预览不需要重新加载。
建议和 AI 自动加标签
标签编辑器可以显示建议。建议可以来自最近使用、条目文本或 AI 配置。
建议不是已保存标签。用户选择最终值,普通校验路径负责保存,同一套颜色规则继续生效。
同一套改名和数量规则继续生效。AI 不会拥有绕过持久化的私有写入路径。
在紧凑条目中显示标签
剪贴板卡片的宽度有限。显示所有标签会把内容挤出视图。Syzygy 会显示有限数量的标签片,多出的标签收进 +N 入口。
入口可以打开完整列表。用户选择的标签颜色保持可见,文字仍然需要足够对比度。颜色不能代替标签名称。
键盘用户可以访问展开列表,屏幕阅读器用户可以读取标签文本,紧凑视图在窄宽度下仍然可用。
回收站是状态,不是隐藏列表
移到回收站会把条目标记为已移入回收站。条目离开活跃剪贴板范围,进入回收站范围。 内容仍然可以恢复。
标签仍然保持关联,条目标识仍然已知。恢复会清除回收站状态,条目返回活跃历史记录。
搜索和列表会刷新,用户可以继续使用条目。回收站因此提供可恢复的清理步骤。
永久删除是另一项操作
永久删除会移除条目、属于条目的本地内容和搜索文档,并为同步记录删除证据。
这份记录防止旧对端设备把条目重新带回。这项操作需要比移到回收站更强的确认,确认信息需要写明条目数量,并说明恢复不再可用。
默认焦点应该停留在更安全的选项。操作失败时要报告原因,完成后刷新回收站列表。
保留策略执行计划内清理
有些用户只保留很短的历史,有些用户保留数周参考内容,有些设备存储空间有限。保留策略可以按时间执行。
也可以按条目数量执行,或组合两个限制。清理先选择符合条件的已移入回收站条目,再领取有限批次。
它删除内容、更新搜索索引并保留同步所需的删除证据,不会因为内容块(blob)很大就删除活跃条目。
活跃历史记录和回收站保持不同范围。
保持离线、置顶、收藏和回收站
保持离线控制内容块(blob)保留策略,置顶控制列表位置或突出程度,收藏表示用户偏好,回收站表示从活跃历史记录移除。
这些状态回答不同问题:设备可以清理本地内容块(blob)吗?条目应该留在列表顶部吗?用户是否把它标成有价值?
条目应该出现在活跃历史记录吗?一个状态不能冒充另一个状态。置顶条目仍然可以进入回收站,已移入回收站的条目在删除前仍然保留标签。
收藏可以按需保留,保持离线的条目可以没有标签。
一套实用标签系统
从十个以内的标签开始。进行中的工作使用项目名称,预计会复用的材料使用 引用,对应后续动作的内容使用
follow-up。
允许离开设备的内容使用 share。只有团队对含义有共识时才使用 private。颜色只分配给需要快速扫描的类别,不要为每个标签选择独有颜色。
名称承担语义,颜色缩短识别时间。每月检查一次未使用的标签,合并含义重叠的术语。
删除不再描述任何条目的标签。
真实流程:研究笔记
从论文复制一段引用。给它加 research,再加项目名称并选择一致的项目颜色。
复制第二段引用,复用同一组标签,稍后搜索项目标签并打开引用预览。
复制准确源文本,把无关引用放进回收站。项目方向变化时恢复它,保留策略窗口到期后永久删除。
真实流程:支持片段
复制一条诊断命令,给它加 support 和平台名称,为平台标签选择不同颜色。
复制一个客户专属值。不要用暗示“可以分享”的公共标签,使用明确的私密数据策略。 会话结束后把临时值放进回收站。
保留期结束后永久删除,可复用命令留在活跃历史记录。
标签颜色排查
重启后颜色变化
读取保存后的标签记录,确认颜色到达更新请求,确认更新已完成,并确认界面使用返回记录。
不要让随机显示颜色成为主真源,只有用户未配置颜色时才使用后备路径。
标签页和预览显示不同颜色
两个界面应读取同一标签记录。检查过期的本地状态、保存后的事件送达,以及预览是否缓存旧记录。
刷新受影响的条目。
改名后颜色丢失
检查目标标签是否已有颜色。显式更新颜色应该优先,已存在的目标颜色应该保留,只有目标没有颜色时才迁移源标签颜色。
结果应该返回最终颜色。
最后一个条目移除后标签还存在
检查关联数量和其他条目是否仍使用标签,再检查替换条目标签设置后的清理。没有引用的标签可以删除。
回收站排查
恢复后条目没有出现
检查活跃范围筛选、恢复结果、历史记录变化事件和活跃列表刷新。
检查当前搜索查询。条目可能已经恢复,只是被筛选条件隐藏。
永久删除后仍有搜索结果
检查索引删除任务、搜索视图是否过期,以及删除事件的条目标识。通过历史记录打开结果,让缺失条目显示明确状态。
旧对端设备把删除条目带回来
检查同步删除证据和对端设备追赶顺序,确认永久删除是否在对端设备重连前完成。系统应该让删除记录胜过旧元数据头。
常见问题
不改名可以只改颜色吗?
可以。更新发送标签和颜色,保存后的标签记录返回最终值。
可以同时改名和改颜色吗?
可以。更新可以同时携带两个字段,事务会一起应用。
两个标签可以使用同一种颜色吗?
可以。颜色只是视觉辅助,名称仍然是身份。
没下载的文件可以加标签吗?
可以。标签属于元数据头中的元数据。
删除标签会删除剪贴板条目吗?
不会。删除标签只会移除关联和标签记录,历史记录条目仍然存在。
移到回收站会删除内容吗?
不会。它改变条目范围,并保留恢复能力。
永久删除会保留备份吗?
应用不会承诺永久删除后的不可恢复删除。策略要求备份时,请使用外部备份。
保留策略可以删除活跃条目吗?
回收站保留策略只处理符合条件的已移入回收站条目。活跃历史记录策略应保持显式并独立。
为什么显示 +N 标签片?
紧凑卡片需要给内容留空间。完整标签设置仍然只需一次操作即可打开。
AI 可以不经确认直接分配标签吗?
AI 可以建议标签。普通保存路径仍然负责校验和持久化最终选择。
用户应该能够验证的行为
选择的颜色在重启后保持。标签页和条目标签片显示同一种颜色。改名会更新每个已关联条目,改名到已有标签不会创建重复关联。
等待中条目可以在不下载内容的情况下加标签。移到回收站会从活跃历史记录移除条目,恢复会把条目带回来,永久删除会从回收站和搜索移除条目。
保留策略遵守配置规则,保持离线与回收站保持独立。
颜色为什么必须持久化
标签颜色是用户选择,不是装饰函数的输出。用户在标签页选择颜色后,条目卡片、预览列和同步到另一台设备的标签片都应该读取同一份已保存记录。 如果界面每次刷新都根据标签名称计算随机颜色,重启后颜色会变化,用户无法再依靠颜色快速识别项目。后备颜色只能用于尚未配置颜色的标签, 一旦用户做出选择,后备路径必须停止生效。
用一条记录贯穿三个界面
标签页负责浏览和批量管理,条目卡片负责快速识别,预览列负责在查看内容时提供上下文。三个界面都读取保存后的标签记录,而不是各自生成颜色。 标签名称变化后,已关联的条目会收到同一条更新事件;颜色变化后,三个界面会刷新同一个最终值。用户因此可以在任意位置完成修改,再在另一个位置确认结果。
批量操作也遵守这个边界。选择多个条目后添加标签,系统先检查每个条目的状态,再一次提交关联变化;如果其中一个条目已经在回收站,界面会明确显示是否包含它。 失败的批次不会悄悄留下部分关联,用户可以根据错误信息缩小范围后重试。
处理重复与冲突
两个用户可能同时给同一标签改名,或在离线设备上修改颜色。名称冲突需要依据保存时间和当前版本提示用户选择,不能让最后到达的请求静默覆盖另一方。 颜色冲突则保留显式选择,并在界面显示最终记录。同步完成前,设备可以继续使用本地旧颜色;同步完成后,标签页和条目卡片一起刷新。
如果目标名称已经存在,改名流程会把关联迁移到已有标签,再依据颜色优先级保留显式选择。重复关联会被去重,历史条目不会因此复制。用户看到的是一次完整的整理结果, 而不是几个中间标签。
回收站清理前的确认
执行保留策略前,先查看将要处理的条目数量、最早时间和是否存在保持离线的内容。回收站清理只处理符合条件的已移入回收站条目,活跃历史记录不应被一并删除。 永久删除完成后,搜索索引和同步删除证据需要跟上;如果设备暂时离线,界面应显示等待传播状态。
对重要资料,先导出或建立组织规定的备份,再执行永久删除。应用提供恢复和范围提示,但不能替代你的备份政策。删除前后都保留一次诊断摘要,方便在多设备环境中核对结果。
改名和改色可以在一次更新中完成。服务端先校验名称和颜色,再在同一个事务中更新标签记录及关联条目;事务提交后发布事件,界面重新读取最终记录。 这样,标签页和预览列不会出现一个显示旧颜色、另一个显示新颜色的短暂分裂状态。更新失败时保留旧记录,并把原因显示给用户。
回收站与同步删除
移入回收站只改变条目范围,恢复仍然可用;永久删除才会移除本地内容、搜索投影和同步所需的删除证据。对端设备离线时,删除证据可以等待它下次连接, 旧元数据不能因为晚到而复活已经删除的条目。同步状态应显示“删除等待传播”,而不是假装所有副本已经同时消失。
这套区分也适用于标签。删除标签只移除标签记录和关联,不删除剪贴板条目;删除条目则保留它在回收站中的标签,直到用户恢复或永久删除。用户每次操作前都能看见范围, 因此不需要依靠猜测来判断数据是否还能恢复。
给团队的整理约定
先用名称表达项目、来源和状态,再用颜色帮助快速扫描。一个标签只承担一个含义,避免把“项目名称”“客户名称”和“是否可以分享”混在一起。
需要分享的数据使用明确的 share 标签,暂时不应离开设备的数据使用 private 标签;颜色保持稳定,名称负责最终判断。
每月检查一次没有关联条目的标签,合并含义重复的名称,确认回收站保留策略符合团队要求。整理规则写在工作区说明里,应用负责保存和执行, 但最终的数据分类仍由使用者确认。
颜色从选择到显示的完整路径
颜色问题通常不是色板本身的问题,而是界面没有使用同一份已保存记录。标签页、条目卡片和第三列预览都应该把标签标识交给同一个查询,再由查询返回名称、颜色和关联数量。用户在任意位置改色后,保存结果通过事件刷新其他位置;应用重启时重新读取这条记录,而不是再次调用随机颜色函数。
sequenceDiagram
participant U as 用户
participant V as 标签页或预览列
participant R as 标签记录
participant E as 更新事件
participant C as 条目卡片
U->>V: 选择新的颜色
V->>R: 提交标签标识和颜色
R-->>V: 返回规范化后的最终记录
R->>E: 发布标签已更新
E->>C: 刷新关联条目
E->>V: 刷新其他标签视图如果用户只选择颜色,名称和关联不应该被重置;如果用户同时改名和改色,服务端在一个事务中校验两个字段,再返回完整记录。颜色格式错误时,系统保留旧值并说明原因。前备颜色只适用于从未配置过颜色的旧标签,一旦用户保存选择,后备值就不再参与显示。这个规则能直接防止重启后颜色变化,也能阻止第三列预览继续显示旧的随机结果。
| 验证点 | 通过标准 | 失败时先查什么 |
|---|---|---|
| 保存 | 更新响应包含最终颜色 | 请求字段和颜色格式 |
| 列表刷新 | 标签页立即显示新颜色 | 是否读取了旧缓存 |
| 条目刷新 | 所有关联标签片颜色一致 | 更新事件和关联数量 |
| 重启恢复 | 重启后颜色保持不变 | 是否重新生成了后备颜色 |
| 跨设备同步 | 对端显示同一已保存颜色 | 元数据头版本和冲突记录 |
这条路径还给批量操作提供了明确边界。批量添加标签时,系统可以一次提交多个条目标识,但每个条目仍然引用同一个标签记录;批量改色只更新标签本身,不复制出一组“看起来相同”的标签。用户需要合并名称时,迁移关联和颜色冲突会在同一结果中显示,避免列表出现半旧半新的中间状态。
继续阅读
阅读剪贴板内容类型,了解内容块(blob)到达前有哪些元数据可用。阅读索引器和搜索,把标签和全文检索结合起来。阅读P2P 配对和同步,了解标签更新如何到达可信设备。好的整理方式会把标签、内容和删除状态分开。