Skip to content

Releases

0.2.0

Choose a tag to compare

@github-actions github-actions released this 13 Nov 16:08
a2cb109

中文

0.2.0 是功能版本:MCP 现在能读计算列,另外修了几处会让编辑丢失或读到旧内容的问题。.layer 数据格式没有变化,仍是版本 1。需要 Obsidian 1.13.0 或更高。

新增

  • MCP 的 read_table 现在能读派生列:公式、汇总、查找、反向关联、自增编号、笔记属性都返回单元格在界面上显示的值。跨表读到的值会带上 computedFrom,说明它来自哪张表的哪一列、是算出来的而不是存下来的。
  • read_table 的每个字段现在标明 readable / writable,有上限的值带 readLimit / writeLimit;行级 notes 会说明公式错误,以及指向嵌套 frontmatter 的笔记属性为什么读不了。这样 AI 不会把「读不到」报成「空的」。
  • 关联、反向关联、汇总、查找指向的表被移动后仍能按文件名解析到;回答里给的是解析后的路径,文件里存的 linkPath 不会被改写。

修复

  • 另一个进程(MCP、同步客户端)写入文件后,已经打开的表格会自动刷新;本地有未保存的编辑时,会把本地版本另存为冲突副本,而不是覆盖掉。副本写失败会在 30 秒后重试一次。
  • MCP 写入改为先比对读到的原文:文件在读取之后被改过,这次写入就拒绝并提示重新读取,不会盖掉别人的修改。
  • 编辑期间遇到的保存、外部清空文件、旧读取晚到,都不再丢内容:保存过程中落下的编辑会再保存一次;空文件也算外部改动;过期的读取结果会被丢弃。
  • 笔记属性指向嵌套 frontmatter 时,格子会显示「读不了」的本地化提示,而不是看起来像空值。

内部

  • 删除 7 个没有调用方的导出和一段死代码。

升级:用新版的 main.js、manifest.json、styles.css 覆盖插件目录里的同名文件。.layer 数据不需要迁移。Release 另外提供 layer-base-0.2.0.zip,里面就是这三个文件、不含外层目录。用 MCP server 的话,把它指向的 mcp-server.cjs 换成新版并重启客户端,客户端里显示的版本会变成 0.2.0。

English

0.2.0 is a feature release: the MCP server can read computed columns, and several ways an edit could be lost or a stale value could reach the screen are fixed. The .layer format is unchanged (still version 1). Requires Obsidian 1.13.0 or later.

Added

  • read_table now reads derived columns: formula, rollup, lookup, backlinks, auto number and note property cells come back as the value the screen shows. A value read from another table carries computedFrom, naming the table and column it is computed from.
  • Every field now reports readable / writable, with readLimit / writeLimit where a value has a boundary; row-level notes explain a formula error and why a note property over nested frontmatter cannot be read, so an assistant does not report "unreadable" as "empty".
  • A relation, backlink, rollup or lookup still resolves after its table is moved: the answer names the path that opens, and the stored linkPath is left alone.

Fixed

  • An open table reloads when another process (the MCP server, a sync client) writes the file. Unsaved edits are kept as a conflict copy instead of being overwritten, and a failed copy is retried once after 30 seconds.
  • An MCP write now compares the file it read first: if the file changed since, nothing is written and the call asks to read it again.
  • An edit that lands during a save, an empty file written by a sync client, and a read that arrives late can no longer drop or replace content: the edit is saved again, the empty file counts as an outside change, and the stale read is discarded.
  • A note property over nested frontmatter says it cannot be read, in the interface language, instead of looking empty.

Behind the scenes

  • Seven exports with no caller and a dead wrapper are gone; the whole repository's comments were rewritten (5855 → 1585 lines). No behaviour change.

Upgrading: replace main.js, manifest.json and styles.css in the plugin folder. No data migration. The release also carries layer-base-0.2.0.zip, which holds exactly those three files with no wrapping folder. If you use the MCP server, replace the mcp-server.cjs you point it at and restart the client — the version it reports becomes 0.2.0.

Full Changelog: 0.1.2...0.2.0

0.1.2

Choose a tag to compare

@github-actions github-actions released this 08 Nov 11:37
09d12e8

Full Changelog: 0.1.1...0.1.2

中文

维护版:没有新增功能,.layer 数据格式没有变化。

修复

  • 弹出面板(新建字段、筛选、排序、行高、颜色规则、列可见性、看板字段)改用自己的类名标记容器,不再依赖 :has()。表格每次重绘时,浏览器不必再重新匹配文档里所有弹窗容器。
  • 输入法拦截不再读取已废弃的 KeyboardEvent.keyCode,改用 isComposing 和 Process 键值。中文输入法里按回车选词的行为与之前完全一致。

内部

  • MCP server 用到的 Node 接口(node:fs、node:path、process)集中到 mcp/node-api.ts,并写明了确切签名。在没有加载 Node 类型声明的检查环境里,这些调用不会再被逐条判成 unsafe 值——社区目录的自动扫描曾因此报了 76 条。
  • MCP server 一直在向客户端自报 0.1.0;现在跟随 manifest.json,并且 npm run check:version 会把这一处一起校验,漏改就会失败。

升级:覆盖 main.js、manifest.json、styles.css(目录 layer-base)。数据不需要迁移。Release 另外附 layer-base-0.1.2.zip,里面就是这三个文件、不含外层目录。用 MCP server 的话,把它指向的 mcp-server.cjs 换成新版并重启客户端——客户端里显示的版本会从 0.1.0 变成 0.1.2。

English

A maintenance release: nothing new to use, and the .layer format is unchanged.

Fixed

  • The anchored panels (new field, filter, sort, row height, colour rules, column visibility, board fields) mark their own container with a class instead of matching it with :has(), so a table redraw no longer makes the browser re-match every modal container in the document.
  • The IME guard reads isComposing and the Process key instead of the deprecated KeyboardEvent.keyCode. Typing Chinese and pressing Enter to commit a candidate behaves exactly as it did.

Behind the scenes

  • The Node surface the MCP server uses (node:fs, node:path, process) now lives in one module with its signatures written out, mcp/node-api.ts. A checker that runs without Node's own declarations no longer reads every one of those calls as an unsafe value — the community directory's automated scan reported 76 of them.
  • The MCP server announced 0.1.0 to every client. It now follows manifest.json, and npm run check:version fails when the two drift.

Upgrading: replace main.js, manifest.json and styles.css in the layer-base folder. No data migration. The release also carries layer-base-0.1.2.zip, which holds exactly those three files with no wrapping folder. If you use the MCP server, replace the mcp-server.cjs you point it at and restart the client — the version it reports goes from 0.1.0 to 0.1.2.

0.1.1

Choose a tag to compare

@github-actions github-actions released this 08 Nov 09:23
1168049

Full Changelog: 0.1.0...0.1.1

中文

修复

  • 编辑完一个格子后,撤销(Ctrl/Cmd+Z)要先把光标点回表格才生效——现在编辑一结束就能撤销;Ctrl/Cmd+Shift+Z、Ctrl/Cmd+Y 同样修好。
  • 底部状态栏的行号按"文件里的记录顺序"计算,和左侧行号列对不上,排序或筛选后差得更远;现在改按当前视图的行号。

调整

  • 安装目录改名为 layer-base:插件 id 从 obsidian-layer-base 改成 layer-base,因为 Obsidian 目录不允许 id 里含 "obsidian"。装过 0.1.0 的请先删掉 .obsidian/plugins/obsidian-layer-base/ 再装 0.1.1。
  • 新建入口三处统一为新建多维看板:功能区、命令面板、右键文件夹(0.1.0 里是三种不同写法)。
  • 新建文件的默认名跟随界面语言:中文下是「未命名看板」,不再固定英文 Untitled board;设置里留空即跟随语言,旧的默认值会自动迁移,手动填过的名字不受影响。
  • README 增加了表格视图和看板视图两张截图。

升级:用新版的 main.js、manifest.json、styles.css 覆盖即可(目录换成 layer-base)。.layer 数据格式没有变化,不需要迁移。Release 页面另外提供 layer-base-0.1.1.zip,里面就是这三个文件,不含外层目录。

English

Fixed

  • Undo (Ctrl/Cmd+Z) did nothing after an edit until the table was clicked again; it now works the moment the edit ends. Same for Ctrl/Cmd+Shift+Z and Ctrl/Cmd+Y.
  • The status bar counted rows in file order rather than the order the view draws them, so it disagreed with the row numbers — and drifted further under a sort or filter. It now counts the way the view shows.

Changed

  • The install folder is now layer-base: the plugin id changed from obsidian-layer-base to layer-base, because the community directory does not allow an id containing "obsidian". If you installed 0.1.0, delete .obsidian/plugins/obsidian-layer-base/ before installing 0.1.1.
  • All three ways in now say New board: the ribbon, the command palette and the folder menu (0.1.0 used three different names).
  • A new file is named in the reader's language (中文:未命名看板) instead of always Untitled board. The previously stored default is migrated; a name you typed is kept.
  • The README shows the table and board views.

Upgrading: replace main.js, manifest.json and styles.css, in the layer-base folder. The .layer format is unchanged. The release also carries layer-base-0.1.1.zip, which holds exactly those three files with no wrapping folder.

0.1.0

0.1.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 07 Nov 14:46
2a0167c

Full Changelog: https://github.com/CryingObsidian-CO/obsidian-layer-base/commits/0.1.0

Layer Base brings Airtable-style tables and boards to Obsidian. A .layer file
is a self-contained database — columns, records and views — that renders as a table
or a board, independent of the folder it sits in.

This is the first release.

Highlights

  • Table view — edit in place, paste from a spreadsheet, drag and resize columns,
    filter, sort, and total a column in the footer.
  • Board view — group by any column, drag cards between columns, choose what a card
    shows; several boards per file.
  • 16 column types — text, long text, number, date, date and time, select,
    multi-select, checkbox, relation, lookup, rollup, backlinks, auto number, formula,
    note, note property.
  • Computed columns read each other — a formula, lookup or rollup can take a
    relation's names, another column's total, or a note's frontmatter value.
  • Undo and redo for everything that changes data (view settings stay out of the
    undo stack on purpose).
  • Optional MCP server — an assistant can read and edit tables through tool calls.
    Desktop only.

Install

Not in the community catalog yet, so install it by hand:

  1. From this release, download main.js, manifest.json and styles.css.
  2. Put them in <Vault>/.obsidian/plugins/obsidian-layer-base/ (create the folder if
    it does not exist).
  3. Restart Obsidian, then enable Layer Base in Settings → Community plugins.

mcp-server.cjs is only needed if you want the MCP server — Obsidian never loads it.
Requires Obsidian 1.13.0 or later. Works on desktop and mobile; the MCP server is
desktop only.

Notes

  • Licensed under the GNU GPL v3.0 or later.
  • Much of the code was written with heavy AI assistance, under human direction — see
    the README for the full statement.

中文

Layer Base 多维表格给 Obsidian 带来 Airtable 式的表格与看板。一个 .layer 文件就是
一份自包含的数据库——字段定义、记录和多个视图——既可以当表格用,也可以当看板用,与仓库
的目录结构无关。这是首个版本。

能做什么

  • 表格视图 — 就地编辑、从电子表格粘贴、拖动列、调整行高列宽、筛选排序。
  • 看板视图 — 任意列分组、拖动卡片换列、选卡片显示哪些列,一个文件可放多个看板。
  • 16 种字段类型 — 文本、长文本、数字、日期、日期时间、单选、多选、勾选、关联、
    查找、反向关联、汇总、公式、自增编号、笔记、笔记属性。
  • 派生列能互相读 — 公式、查找、汇总都能取到关联行的名字、别的列的合计、笔记
    frontmatter 里的值。
  • 撤销与重做 — 覆盖所有改数据的操作;视图设置(列宽、筛选、排序、合计、隐藏列)
    刻意不进撤销栈。
  • 可选的 MCP 服务器 — 让 AI 通过结构化调用读写表格,仅桌面端。

安装

插件还没进社区目录,需要手动装:

  1. 在本页下载 main.js、manifest.json、styles.css。
  2. 放进 <仓库>/.obsidian/plugins/obsidian-layer-base/(目录不存在就新建)。
  3. 重启 Obsidian,在 设置 → 第三方插件 里启用 Layer Base。

要用 AI 接入才需要另外下载 mcp-server.cjs,Obsidian 不会加载它。需要 Obsidian
1.13.0 或更高;桌面端和移动端都能用,MCP 服务器仅桌面端。

说明

  • 许可:GNU GPL v3.0 或更高版本。
  • 本插件的大量代码在人工指导下、由 AI 大量辅助编写,详见 README。

Full Changelog: https://github.com/CryingObsidian-CO/obsidian-layer-base/commits/0.1.0