Skip to content

Scientific Figure Library v0.9.2

Latest

Choose a tag to compare

@github-actions github-actions released this 26 Oct 13:34

Scientific Figure Library v0.9.2

Add figure_library_list_catalog so host Agents can choose templates from a compact catalog listing by meaning, with canonical figure-type groups, session-level catalog reuse and optional SFL_TOOL_PROFILE tool subsets. Fix keyword ranking defects and the proxied GitHub Host header, cut local gallery latency, and ship plugin packages with catalog metadata only (27.6 MB to 2.7 MB). Compare the full source range: v0.9.1...v0.9.2.

SFL still does not execute plotting code. It manages, reviews, searches, previews, and materializes the exact assets you confirm. The standard MCP server now exposes 62 tools (61 in v0.9.1).

Choose a download

Pick the row that matches what you want to install. Every installer and plugin has a matching .sha256 sidecar in the asset list below.

I want to... Download
Run SFL as a local app on this computer Local client for your OS and CPU in the next table
Use SFL inside Wisp, Codex, Claude Code, or Cursor That host's plugin ZIP
Install the MCP CLI from a tarball scientific-figure-library-0.9.2.tgz

Bundled Node packages include a private Node.js 22 runtime (larger). no-node packages require an already installed Node.js 22+ and are much smaller. Local clients omit gallery images and download previews on demand; plugin ZIPs still include catalog thumbnails.

Local clients

System Bundled Node (no extra runtime) Use installed Node.js 22+ How to install
macOS Apple Silicon (M1-M4) macos-arm64.dmg - 44 MB macos-arm64-no-node.dmg - 4 MB Drag the App into Applications. macOS 13+.
macOS Intel macos-x64.dmg - 46 MB macos-x64-no-node.dmg - 4 MB Same as above. Do not mix arm64 and x64.
Windows x64 windows-x64.zip - 35 MB windows-x64-no-node.zip - 3 MB Unzip the whole folder, then run Start SFL.cmd.
Linux x64 linux-x64.zip - 45 MB linux-x64-no-node.zip - 3 MB Unzip the whole folder, then run ./start-sfl.sh.
Linux arm64 linux-arm64.zip - 45 MB linux-arm64-no-node.zip - 3 MB Same as Linux x64.

macOS DMGs are preview builds: ad-hoc signed, not Developer ID signed, and not notarized. After verifying the checksum, allow the app under System Settings -> Privacy & Security if macOS blocks the first open.

Host plugins (Node.js 22+ required)

Host Download Size Install
Wisp Science scientific-figure-library-wisp-0.9.2.zip 3 MB Settings -> Plugins
Codex scientific-figure-library-codex-0.9.2.zip 3 MB Install the host plugin from the ZIP
Claude Code scientific-figure-library-claude-0.9.2.zip 3 MB Install the host plugin from the ZIP
Cursor scientific-figure-library-cursor-0.9.2.zip 3 MB Unzip to ~/.cursor/plugins/local/figure-library/
npm tarball scientific-figure-library-0.9.2.tgz 3 MB npm install --global ./scientific-figure-library-0.9.2.tgz
Wisp update feed scientific-figure-library-wisp-update.json - Machine-readable feed for a future Wisp Update action

Do not register a raw figure-library MCP server and a host plugin at the same time; that duplicates tools. Plugin install steps: Quickstart.

Changes since v0.9.1

External MCP, Skill, and host plugins

  • Add the read-only figure_library_list_catalog tool, increasing the standard MCP tool set from 61 to 62. It reuses the browse result set (same Provider filters, catalog revision and Library binding checks), returns per-Provider counts and plotFamily/language/assetKind facets, and lists one line per template; listed candidateIds work with figure_library_get_candidate_images and the headless exact preview. It returns no images, selectors or receipts.
  • Make catalog selection the default retrieval path for described needs. limit: 0 returns counts and facets only; the default detail: "compact" groups entries by Provider with a 60-character summary (about 29% fewer tokens than "full"). Keyword search with no match now points the Agent to catalog selection instead of concluding that a figure type is missing.
  • Add canonical figure-type groups: a read-only projection maps Open Figure Modules' 71 plotFamily spellings and FigureYa modules without one to 29 groups, exposed as a familyGroup facet, entry field and filter. Stored metadata, selectors and the keyword-search plotFamily filter are unchanged.
  • Let Agents read the catalog once per session: the listing returns catalogRevision (also as a CATALOG_REVISION: text line), a limit: 0 call checks whether an earlier read is still current, and a new templates filter (1–12 providerId/templateId pairs) re-lists chosen entries under a fresh resultSetId.
  • Add SFL_TOOL_PROFILE for MCP configuration: use registers 28 tools (about 24 KB of schemas instead of about 72 KB), author adds intake, review and the Local Published lifecycle (46 tools), and full (default, unchanged) registers every tool. Unknown values stop startup, and a reduced profile is named in the server instructions so the Agent asks the user to switch instead of imitating a hidden tool.
  • Fix keyword ranking: two-letter terms such as KM/HR match whole words instead of substrings (FPKM no longer matches KM), hits made only of generic words (plot, figure, gene) score zero, domain families such as single-cell no longer outrank chart forms, and a UMAP/tSNE embedding family was added.
  • Fix proxied HTTPS through the loopback CONNECT proxy sending Host: api.github.com:80, which GitHub answered with HTTP 400 and which broke update checks, the network diagnostic and proxied archive/manifest downloads.
  • Wisp, Claude, Codex and Cursor plugin ZIPs no longer bundle gallery images; like npm and local packages they ship pinned preview-download manifests and fetch previews on demand through the same proxy settings. Each plugin ZIP drops from 27.6 MB to 2.7 MB. Without GitHub access, search still returns candidates and images report preview_unavailable.
  • Update the Skill, workflow reference, PROTOCOL, user guides and packaged tool inventories for these behaviors.

Local clients

  • The Windows/Linux local web client loads gallery and 我的图库 card thumbnails (≤480 px) lazily from authenticated, immutable-cached URLs instead of inlining full-resolution base64 images in the gallery JSON. Exact preview and local confirmation still hash the exact displayed bytes; MCP tools, the MCP App and the macOS client keep inline data URLs.

Gallery, cache, and library browsing

  • Cut local gallery and reference-status latency: memoize Local Published listing entries per exact Published Head identity (revalidated against series files and file signatures on each call), build local search candidates from the listing instead of a full history resolve per match, hash the large FigureYa catalog revision once per revision, and check reference-cache status once per request with per-candidate checks in parallel.
  • Preserve exact asset identities, preview confirmation and plan/apply boundaries. SFL does not execute plotting code; automated tests and smoke do not replace manual acceptance on a user's device or external host.

Documentation

  • Record the 2026-10 optimization review, its decisions and the retrieval rounds, including the decision to stop semantic-card work; add a design-only proposal for a shorter materialization path (not implemented); remove completed worktree specs and one-off QA notes.

Getting started

  1. Download the matching file and its .sha256. Verify with shasum -a 256 <file> (Windows: certutil -hashfile <file> SHA256).
  2. Local app: follow the installation tutorial. On first launch, bind a global Library and a Local workspace - SFL does not infer them from the current project.
  3. Plugin: install for one host, start a new host session, then call figure_library_get_skill or figure_library_source_status. If setup is required, bind the two directories with plan/apply after you confirm the paths.
  4. Keep the whole install directory together (runtime, dist, assets, Skill files). Do not move those folders on their own.

Limits and Node-path notes: INSTALL_LOCAL.md. Protocol: PROTOCOL.md.

Upgrade

Quit the app and any MCP process using the old install. Replace only the program directory or plugin; keep the Library and workspace directories. Reopen, check the Node path and Connect external tools page, and back up the Library before upgrading. Deleting the program does not delete your library.

Release provenance

  • Tag v0.9.2 points to 313dd16b387719b1863edd14af668ce8f75db632.
  • Plugin ZIPs, the npm tarball, local-client installers, SHA-256 sidecars, and the Wisp update feed were published from that commit.
  • Packaging smoke and isolated tests are not a substitute for installing a real host plugin or completing desktop/provider acceptance.

Scientific Figure Library v0.9.2

新增 figure_library_list_catalog,让宿主 Agent 从紧凑的目录清单中按语义挑选模板, 并提供规范图型分组、会话内目录复用和可选的 SFL_TOOL_PROFILE 工具子集。修复关键词 排序缺陷与经代理访问 GitHub 时的 Host 头错误,降低本地图库延迟,宿主插件包只携带 目录元数据(27.6 MB 降至 2.7 MB)。 源码对照:v0.9.1...v0.9.2。

SFL 仍不执行绘图代码,只管理、审阅、检索、预览,并材料化你确认的精确资产。标准 MCP 服务现为 62 个工具(v0.9.1 为 61 个)。

选择下载

先看要安装什么。每个安装包和插件在下方资源列表中都有同名 .sha256 校验文件。

我要... 下载
在本机作为独立应用管理图库 下一表中对应操作系统和 CPU 的本地客户端
在 Wisp、Codex、Claude Code 或 Cursor 中使用 该宿主的插件 ZIP
用 npm 安装 MCP 命令 scientific-figure-library-0.9.2.tgz

内置 Node 包带私有 Node.js 22(体积较大)。no-node 包要求本机已安装 Node.js 22+,体积小很多。本地客户端不含图库图片,预览按需下载;插件 ZIP 仍包含目录缩略图。

本地客户端

系统 内置 Node(无需另装) 使用已安装 Node.js 22+ 安装方式
macOS Apple Silicon(M 系列) macos-arm64.dmg - 44 MB macos-arm64-no-node.dmg - 4 MB 将 App 拖入“应用程序”。最低 macOS 13。
macOS Intel macos-x64.dmg - 46 MB macos-x64-no-node.dmg - 4 MB 同上。arm64 与 x64 不可混用。
Windows x64 windows-x64.zip - 35 MB windows-x64-no-node.zip - 3 MB 解压整个文件夹,运行 Start SFL.cmd。
Linux x64 linux-x64.zip - 45 MB linux-x64-no-node.zip - 3 MB 解压整个文件夹,运行 ./start-sfl.sh。
Linux arm64 linux-arm64.zip - 45 MB linux-arm64-no-node.zip - 3 MB 与 Linux x64 相同。

macOS DMG 是预览版:ad-hoc 签名,尚未 Developer ID 签名,也未公证。校验通过后,若系统拦截首次打开,在“系统设置 -> 隐私与安全性”中允许。

宿主插件(需要 Node.js 22+)

宿主 下载 大小 安装
Wisp Science scientific-figure-library-wisp-0.9.2.zip 3 MB 设置 -> 插件
Codex scientific-figure-library-codex-0.9.2.zip 3 MB 按宿主插件方式安装 ZIP
Claude Code scientific-figure-library-claude-0.9.2.zip 3 MB 按宿主插件方式安装 ZIP
Cursor scientific-figure-library-cursor-0.9.2.zip 3 MB 解压到 ~/.cursor/plugins/local/figure-library/
npm 包 scientific-figure-library-0.9.2.tgz 3 MB npm install --global ./scientific-figure-library-0.9.2.tgz
Wisp 更新 feed scientific-figure-library-wisp-update.json - 供后续 Wisp「更新」读取的机器可读清单

不要同时安装宿主插件和重复的原始 figure-library MCP 配置,否则工具会重复。插件步骤见 Quickstart。

相对 v0.9.1 的变化

外部 MCP、Skill 与宿主插件

  • 新增只读工具 figure_library_list_catalog,标准 MCP 工具从 61 个增加到 62 个。它复用浏览结果集(同样的 Provider 过滤、目录 revision 与图库绑定检查),返回各 Provider 计数及 plotFamily/language/assetKind 分面,每个模板一行;列出的 candidateId 可直接用于 figure_library_get_candidate_images 和 headless 精确预览。不返回图片、选择器或凭据。
  • 对描述性需求,目录选择成为默认检索路径。limit: 0 仅返回计数与分面;默认 detail: "compact" 按 Provider 分组并给出 60 字符摘要,比 "full" 少约 29% token。关键词搜索无结果时会引导 Agent 改用目录选择,而非断定图库缺少该图型。
  • 新增规范图型分组:只读投影将 Open Figure Modules 的 71 种 plotFamily 写法及缺少该字段的 FigureYa 模块映射到 29 个分组,以 familyGroup 分面、条目字段和过滤器提供。存储的元数据、选择器和关键词搜索的 plotFamily 过滤保持不变。
  • 支持会话内只读一次目录:清单返回 catalogRevision(同时输出 CATALOG_REVISION: 文本行),用 limit: 0 即可判断之前读取的结果是否仍然有效;新增 templates 过滤器(1–12 个 providerId/templateId),可在新的 resultSetId 下只重新列出选中的条目。
  • 新增 MCP 配置项 SFL_TOOL_PROFILE:use 注册 28 个工具(schema 约 24 KB,原约 72 KB),author 增加导入、审阅与 Local Published 生命周期(46 个工具),full(默认,行为不变)注册全部工具。未知取值会阻止启动;精简配置会写入服务端说明,Agent 应请用户切换,而不是模仿未注册的工具。
  • 修复关键词排序:KM/HR 等两字母词改为整词匹配(FPKM 不再命中 KM);仅由通用词(plot、figure、gene)构成的命中计为零分;单细胞等领域类不再压过图表形式,并新增 UMAP/tSNE 降维嵌入分组。
  • 修复经回环 CONNECT 代理访问时发送 Host: api.github.com:80,导致 GitHub 返回 HTTP 400,进而使更新检查、网络诊断和经代理的归档/清单下载失败的问题。
  • Wisp、Claude、Codex、Cursor 插件 ZIP 不再打包图库图片,与 npm 和本地安装包一样只携带固定版本的预览下载清单,按需并按相同代理设置下载预览。每个插件包从 27.6 MB 降至 2.7 MB;无法访问 GitHub 时搜索仍返回候选,图片报告 preview_unavailable。
  • 同步更新 Skill、工作流参考、PROTOCOL、用户手册与打包工具清单。

本地客户端

  • Windows/Linux 本地网页的图库和“我的图库”卡片缩略图(≤480 px)改为从经认证、可长期缓存的 URL 懒加载,不再在图库 JSON 中内联全分辨率 base64 图片。精确预览和本地确认仍对实际显示的字节计算哈希;MCP 工具、MCP App 与 macOS 客户端仍使用内联 data URL。

图库、缓存与本地浏览

  • 降低本地图库与引用状态延迟:按精确 Published Head 身份缓存 Local Published 列表条目(每次调用按 series 文件与文件签名重新校验);本地搜索从列表构建候选,不再对每个命中做完整历史解析;大型 FigureYa 目录 revision 每个版本只计算一次哈希;引用缓存状态每次请求只检查一次结果集,并行检查各候选。
  • 保留精确资产身份、预览确认与 plan/apply 边界。SFL 不执行绘图代码;自动化测试与 smoke 不替代用户设备或真实外部宿主上的人工验收。

文档

  • 记录 2026-10 优化评审的决策与两轮检索评估(包括停止语义卡片工作的决定);新增仅为设计稿的更短材料化路径方案(未实现);移除已完成的 worktree spec 和一次性 QA 记录。

开始使用

  1. 下载对应文件和同名 .sha256,用 shasum -a 256 文件名 校验(Windows 可用 certutil -hashfile 文件名 SHA256)。
  2. 本地客户端按 安装教程 操作。首次启动绑定全局 Library 和 Local workspace;SFL 不会从当前项目推断这两个目录。
  3. 插件:只装一个宿主,新开会话后调用 figure_library_get_skill 或 figure_library_source_status。若需要设置,确认路径后再 plan/apply 绑定。
  4. 保留完整安装目录(runtime、dist、assets、Skill),不要单独挪走这些文件夹。

限制与 Node 路径见 INSTALL_LOCAL.md。协议见 PROTOCOL.md。

升级

退出 App 以及仍在使用旧程序的 MCP 进程。只替换程序目录或插件,保留 Library 与 workspace。重新打开后检查 Node 路径和「连接外部工具」页。升级前备份 Library。删除程序不会删除图库。

发布来源

  • 标签 v0.9.2 指向 313dd16b387719b1863edd14af668ce8f75db632。
  • 四个插件 ZIP、npm 包、本地客户端安装包、SHA-256 校验文件和 Wisp 更新 feed 均来自该提交。
  • 打包 smoke 与隔离测试不能代替真实宿主插件安装或桌面端验收。