mirror of
https://github.com/longwind1984/galaxy-view.git
synced 2026-07-22 07:47:52 +00:00
推翻上一版的产品判断。上一版把 #11 提出者的**机制**(`-file:"Index"` 语法)当成了 **目的**,做了个文本框——在一个主张「看见你的库」的 3D 星图里,让用户背 `-file:` 语法是最反视觉的答案。而 PR #8 的 Tag Lens 早就把对的范式递过来了:点 chip、不打字。 改为: - **主:可点的文件夹图例**。列出顶层文件夹(真实节点色+笔记数),点击切显隐、 hover 出「只看」、标题右侧「全部显示」还原。节点一直按顶层文件夹上色,但面板 从来没暴露过图例——用户看见一团团彩色,既不知道什么意思也没法对它做任何事。 图例做成可点的,一个东西同时回答「这个颜色什么意思」和「只给我看这块」,零语法。 - **次:文本查询降级为折叠的逃生口**(+按名字过滤)。只留给图例表达不了的横切 模式——散落在所有文件夹里的 Index,正是提出者的原始场景。解析器与测试原样保留。 - 三个开关(未解析/孤儿/标签)仍与图例同住:它们回答的是同一个问题。 顺带修掉一个既有缺陷(Rick 拍板随图例一起修): 回退色相原本是 `HUES[hash32(folder) % 9]`——与文件夹大小无关且乱序。实测 Rick 的库 (14 个顶层文件夹 / 9 个导入配色组):99Archive(545) / 90故纸堆(86) / Readwise(68) 撞成同一个蓝,合计 1184 篇=全库 37% 落在读不出区别的颜色上。图例会把这个缺陷直接 摆到用户眼前,故一起修:① 色相按笔记数排名发;② 只发给没被 colorGroups 吃掉的文件夹 (Rick 的 9 个导入组不占槽位 → 剩 5 个正好各拿一个独立色相)。>9 个待发时仍回收色轮, 但撞的是最小的几个而非最大的。 实现要点: - `noteFilter` 扩成 NoteFilter{hiddenFolders, query},图例与文本框是 AND - `folderStats` 由**未过滤**的全量文件算——否则点灭一个文件夹会让其他 chip 数字跳 - 图例顺序=笔记数降序,同数按名字定序(不稳定的话每次重建 chip 会跳) - `assignFolderHues` 必须在 colorFn 生效前跑完;6 处 setColorFn 收口成 applyColorFn - 图例取色走 colorFn 探针而非自己算——图例跟图对不上就不是图例是装饰 验证:77 测试通过(新增 palette 9 个含真实库回归、noteFilter 图例 6 个);tsc 通过; lint 0 error;已部署 dev-vault。 ⚠️ 面板渲染仍未眼验(computer-use 授权被拒),需 Rick 手动确认。 ⚠️ 修正:demo 里先前标的 hash 回退色值是我用 python 朴素 HSL→RGB 算的,与 three 实际 不符(setHSL 在线性空间算再转 sRGB)。撞色结论不变,色值已按 three 实测更正。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| adjacency.test.ts | ||
| buildGraph.test.ts | ||
| graphTransform.test.ts | ||
| linkCurves.test.ts | ||
| noteFilter.test.ts | ||
| palette.test.ts | ||
| settingsMerge.test.ts | ||
| tour.test.ts | ||