Skip to content

Releases

1.2.1

Choose a tag to compare

@EdwinZhanCN EdwinZhanCN released this 11 Nov 19:39
54a334d

1.2.0

Choose a tag to compare

@EdwinZhanCN EdwinZhanCN released this 11 Nov 05:25
ca267a2
  • Mobile support. ICAP now runs on Obsidian for iPhone, iPad and Android (Obsidian 1.11.4 or later). Phones use an API key or a custom endpoint, kept in Obsidian's secret storage. The selection mark sits above the mobile toolbar, and the activity opens from the ribbon.

  • Activity as a Base. Turn on Record tasks as notes (off by default) to record note tasks and substantial requests as notes in ICAP/Tasks/. ICAP/Activity.base lists them in the new activity view: state, model, files, time, cost, and a strip of steps. Each task shows what it cost under its reply.

  • Diagrams, canvases and bases. The agent can draw Mermaid diagrams and create .canvas and .base files. A canvas or base that would not open is refused, with the reason.

  • New notes: the agent chooses the folder from your vault's AGENTS.md and where related notes are. The folder setting is now an optional default.

  • Nothing in the vault unasked. The document cache moves to the plugin's own folder. Existing .icap/docs/ and icap/docs/ caches are adopted.

  • Settings follow the layout of Obsidian's own tabs. One ICAP style toggle decides how the output looks.

  • On Obsidian installers 1.8.9 and earlier (Node earlier than 22.18), the settings say to reinstall Obsidian, instead of failing with a TypeError (#1).

  • The first-run guide is shorter. The documentation site is at https://icap.edwinzhan.space.

  • Fixes: titles never cut a [[link]]; a focused question no longer looks chosen after Mod+Enter.

  • 支持移动端。 ICAP 现在可以在 iPhone、iPad 和 Android 版 Obsidian(1.11.4 及以上)上运行。手机使用 API Key 或自定义端点,保存在 Obsidian 的密钥存储中。选区标记位于移动工具栏上方,活动从侧边栏按钮打开。

  • 活动成为 Base。 打开把任务记录成笔记(默认关闭)后,笔记任务和较完整的请求会记录为 ICAP/Tasks/ 中的笔记。ICAP/Activity.base 在新的活动视图中列出它们:状态、模型、文件、时间、费用,以及步骤条。每个任务的回复下方显示其费用。

  • 图表、白板和 Base。 智能体可以绘制 Mermaid 图,并创建 .canvas 和 .base 文件。无法打开的白板或 Base 会被拒绝,并说明原因。

  • 新笔记: 智能体根据仓库的 AGENTS.md 和相关笔记的位置选择文件夹。文件夹设置现在是可选的默认值。

  • 不经允许不写入仓库。 文档缓存移到插件自己的文件夹。已有的 .icap/docs/ 和 icap/docs/ 缓存会被沿用。

  • 设置采用 Obsidian 自带设置页的布局。一个 ICAP 样式开关决定输出的外观。

  • 在 1.8.9 及更早的 Obsidian 安装包上(Node 低于 22.18),设置会提示重新安装 Obsidian,而不是报 TypeError (#1)。

  • 首次使用指南更短。文档站点:https://icap.edwinzhan.space。

  • 修复:标题不再截断 [[链接]];按 Mod+Enter 后,获得焦点的问题不再看起来像已选中。

1.1.4

Choose a tag to compare

@EdwinZhanCN EdwinZhanCN released this 10 Nov 04:09
92ba05e
  • Custom model endpoints in the settings. Settings → ICAP Learning Agent → Model providers → Custom endpoint… adds Ollama, LM Studio, vLLM, a proxy or any OpenAI-compatible service (name, base URL, key, model ids). It is saved in Pi's ~/.pi/agent/models.json, shared with the Pi CLI; the rest of that file is left as it was.

  • README: install from the Obsidian community directory.

  • 设置里可以添加自定义模型端点。 设置 → ICAP Learning Agent → 模型服务商 → 自定义端点…:添加 Ollama、LM Studio、vLLM、中转站或任何兼容 OpenAI 的服务(名称、Base URL、Key、模型 ID)。保存在 Pi 的 ~/.pi/agent/models.json,与 Pi 命令行共用,文件里的其他内容不受影响。

  • README:改为从社区插件市场安装。

1.1.3

Choose a tag to compare

@EdwinZhanCN EdwinZhanCN released this 07 Nov 07:24
ac8b53d

1.1.3: blocks fold what is finished; provider retries are shown

  • Earlier rounds of a block fold to one line each; the round before the
    one being answered stays open. A decided change folds to its outcome
    (accepted · +7 −0). More than three touched files fold to their counts.
  • A proposed change is a real line diff: changed lines with two lines of
    context, longer unchanged stretches folded.
  • A whole block folds to its header line, kept across reloads; it opens
    itself when it needs the learner.
  • When the provider returns an error and Pi retries, the block says so
    instead of looking stuck.

1.1.2

Choose a tag to compare

@EdwinZhanCN EdwinZhanCN released this 07 Nov 06:04
785095e

1.1.2: record comments hidden in Live Preview

The line above a kept record is for tools. Reading view
already hides it; Live Preview now hides it too, except while the cursor
or a selection touches the line. The file is unchanged.

1.1.1

Choose a tag to compare

@EdwinZhanCN EdwinZhanCN released this 07 Nov 05:59
8122aec

1.1.1: builds on Node 22; shorter README with screenshots

  • The build marks every node: specifier external, so prefix-only modules
    (node:sqlite) that Node 22's builtinModules omits no longer break it.
  • Styles are set through setCssStyles / setCssProps instead of direct
    assignment; notices use messageEl instead of the deprecated noticeEl.
  • fflate 0.8.3 (advisory GHSA-px8p-9vwx-vf98).
  • README (en, zh): features in one line each, two screenshots, and the
    network, accounts and outside-the-vault disclosure.

1.1.0

Choose a tag to compare

@EdwinZhanCN EdwinZhanCN released this 07 Nov 05:19
f058869

1.1.0: documents as trees; every record names its topic; FORMAT v2

Documents (PDF, EPUB, Word), read like a person reads them:

  • read_document gives a document's structure as a tree of numbered parts
    with page or section ranges (after PageIndex), then one part or a page
    range; documents lists every readable document with its chapters and
    searches across their text. The prompts teach structure first, and
    citations as [[book.pdf#page=12]], never invented pages.
  • Structure comes from PDF bookmarks, the EPUB table of contents (split
    where it points inside a file) or Word heading styles. Without them it
    is detected from the layout, no model: size, weight, capitals and
    numbering, two columns read in order, running headers and TOC entries
    skipped. On PageIndex's sample PDFs it matches their LLM-built trees.
  • The vault's icap/docs/ caches structure and text by content hash, so a
    document is parsed once across renames, tasks and devices; documents are
    prepared in the background (setting, on). FORMAT.md documents the cache.
  • Summaries per part are a setting, off by default: the learner's model
    writes one sentence per node and a few for the document, once.

Records:

  • The comment of a kept recall, check and quiz carries
    topic="…": the selection, else the section heading, else the note name,
    chosen by the plugin, never by an LLM. Quoted values escape \ " and >,
    so a topic can never end the comment.
  • A multi-paragraph recall answer records paragraphs=N, so readers pair
    the whole answer, not just its last paragraph.
  • A kept gloss gets a comment: when
    it was kept, the full term, and whether the learner asked for Plainly or
    Deeper.
  • src/dsl/records.ts is the reference reader of FORMAT.md; test/fixtures/
    format/ pairs sample notes (v2, v1, pre-v1, agent notes, edited titles)
    with the JSON a reader must produce, for other implementations to reuse.

Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com

1.0.2

Choose a tag to compare

@EdwinZhanCN EdwinZhanCN released this 07 Nov 01:06
362f1df

New

  • A kept recall, check or quiz now says when it was kept and how it went: the callout title ends with the date and the verdict mark (✓ held, ≈ partly, ? reconsider), and a one-line <!-- icap … --> comment above it records the same for other tools. The agent uses these dates to weigh recent evidence above old evidence.
  • FORMAT.md (version 1) documents everything ICAP writes into notes, for anyone building tools that read an ICAP vault.

Fixed

  • The agent can no longer propose an edit that adds an interactive visual to one of your existing notes, or that changes one of ICAP's blocks. Such an edit is refused before you see it.
  • Pasting something that isn't an API key (with spaces, or non-ASCII text) into the login dialog is rejected right away, instead of being saved and failing on the first request with "Failed to execute 'append' on 'Headers'".
  • The "from [[…]]" line under an explanation now has working links: click to open, hover to preview.
  • In Live Preview, the veil toggle no longer sits under Obsidian's </> button.
  • The last few English-only labels (veiled, accepted, declined, …) are translated in the Chinese interface.

Install or update

Download main.js, manifest.json and styles.css below into <your vault>/.obsidian/plugins/icap-agent/, replacing the old files, then restart Obsidian or turn ICAP Learning Agent off and on in Settings → Community plugins. See the README for a first install.

1.0.1

Choose a tag to compare

@EdwinZhanCN EdwinZhanCN released this 05 Nov 23:51
27cad1c

Fixed

  • Answering a multiple-choice question (in a quiz, a check, or a question the agent asks) no longer stops the block with "Failed to execute 'structuredClone' on 'Window': [object Array] could not be cloned." Text answers were not affected.

Install or update

Download main.js, manifest.json and styles.css below into <your vault>/.obsidian/plugins/icap-agent/, replacing the old files, then restart Obsidian or turn ICAP Learning Agent off and on in Settings → Community plugins. See the README for a first install.

1.0.0

Choose a tag to compare

@EdwinZhanCN EdwinZhanCN released this 05 Nov 22:14
fe11692

The first stable release. ICAP is an Obsidian plugin for learning inside your notes: explanations under the paragraph, recall from memory with feedback, checks and quizzes in the note, and requests to your agent from where you are. Whatever you keep is plain Markdown.

What's new since 0.1.0

  • Pi now ships inside the plugin. You don't need the Pi CLI or Node.js; log in to a model provider from Settings → ICAP Learning Agent → Model providers, or use a key from your shell profile.
  • Request blocks take [[ and @ file links and / commands: your Pi skills, prompt templates and extension commands, plus /model, /thinking and /compact.
  • Interactive visuals in replies and agent-created notes, sandboxed.
  • A wizard for writing your vault's AGENTS.md.
  • Shortcuts are shown for your platform: ⌘ ↵ on macOS, Ctrl ↵ on Windows and Linux.
  • Requires desktop Obsidian 1.8.7 or later.

Install

ICAP is not in the community plugin directory yet. Download main.js, manifest.json and styles.css below into <your vault>/.obsidian/plugins/icap-agent/, then enable ICAP Learning Agent in Settings → Community plugins.

Upgrading from ICPA 0.1.0

Install into the new icap-agent folder and enable it; on its first start it imports the old folder's settings, activity and sessions. Then disable the old plugin and delete .obsidian/plugins/icpa-agent/. Existing icpa-ask blocks keep working.

See the README for everything else.