
feat(itab): align desktop visuals and apps center
书签语义搜索(带备注)- Chrome / Edge 扩展(工程化:Vite + TypeScript)
一个 MV3 浏览器扩展:
- 一键索引你的书签(标题 / URL / 文件夹路径)
- 为每个 URL 维护备注(持久化到本地 IndexedDB)
- 支持向量检索:完全本地语义 embedding(MiniLM 384d)+ cosine similarity
- 安装依赖:
npm i
- 下载本地模型(一次):
npm run download-model
- 若无法直连 Hugging Face,可用镜像:
HF_BASE_URL=https://hf-mirror.com npm run download-model
- 构建产物:
npm run build
- 打开 Chrome/Edge:
chrome://extensions
- 开启「开发者模式」
- 点击「加载已解压的扩展程序」
- 选择
dist/ 目录(里面有 manifest.json)
- 点扩展图标打开搜索框
- 点击「重建索引」抓取书签并建立向量索引
- 输入关键词/句子进行搜索
- 在结果中直接编辑「备注」(对同 URL 的书签共享备注)
- 可在「选项」页调整“向量/关键词”权重并重建索引
- 本扩展会通过
chrome_url_overrides 替代浏览器的新标签页。
- 默认形态:iTab 风格桌面(壁纸 + 搜索中心 + 桌面图标/文件夹 + 右键菜单 + 设置抽屉 + Dock)。
- 搜索:本地语义检索(书签标题/URL/路径/备注),↑/↓ 选择,Enter 打开;支持“置顶”把结果加到桌面图标。
- 书签:Dock/应用中心打开「书签列表」抽屉,支持标签筛选(OR)与编辑标签/备注、置顶。
- 热榜:应用中心打开「热榜」,支持预设/自定义 JSON 源;启用时会请求对应域名授权(默认不联网)。
- 桌面:编辑模式下可拖拽排序、拖拽合并成文件夹、拖拽移入文件夹;文件夹弹层支持排序/重命名/解散。
- 设置:壁纸上传/清除、遮罩/模糊、主题、搜索结果条数与权重、重建索引、重置桌面布局。
- 旧版 Widget 仪表盘页面仍保留(可在「应用中心」打开
旧版仪表盘):newtab/newtab.html
- 支持
lg/md/sm 断点布局、组件开关/拖拽/缩放;包含书签列表(标签筛选)与远程列表(可选)。
- 完全本地运行:embedding 使用
@xenova/transformers + Xenova/all-MiniLM-L6-v2(mean pooling,normalize=true,384 维)。
- 数据都存本地(IndexedDB + chrome.storage.local),默认不上传、不联网;仅当你在旧版仪表盘启用「远程列表」并授权域名时,才会对该域名发起 HTTP(S) 拉取(模型下载仅发生在你运行
npm run download-model 时)。
- 书签规模 1k~5k:直接全量遍历计算 cosine similarity,并与关键词分数做加权重排。
- embedding 计算在 MV3
offscreen document 中完成,避免 service worker 被回收导致模型反复加载。
background/background.ts:MV3 service worker
popup/:弹窗页面(popup.html + popup.ts)
options/:选项页(options.html + options.ts)
src/:索引/向量/存储核心逻辑