Skip to content

1.0.0

Latest

Choose a tag to compare

@github-actions github-actions released this 17 Aug 04:41

One point zero. Nothing new to press — this release is about what holds the plugin up.

What 1.0 means here

Two promises, and both of them are about not losing your work.

The data files will not break. data.json (settings, and the API keys of every
provider in them) and history.json (your conversations) carry a schemaVersion, and the
format is written down in docs/data-format.md. A file from a newer version of the plugin is
recognised as such instead of being overwritten; a file that will not parse is copied aside
under a timestamped name and you are told where it went, rather than being silently replaced
with defaults.

The paths that spend your money are covered by tests. 510 of them, up from 455 in the
previous release and 385 five releases ago. What used to be checked by hand is now checked on
every build.

What changed under the hood

Nothing you press behaves differently. The panel's submit() — the method that sends a
question — was 339 lines holding four separate concerns, and seven of the nine defects fixed
across the last five releases lived inside it. Two of those concerns moved out:

  • request.ts decides what travels to the model. Which fragment and which attachments go
    with the question; whether the note is included; whether the model may use tools; what is
    cleared from the chip afterwards; how the system prompt is assembled; which past messages
    fit the context budget and whose pictures go with them. Every one of those decisions has
    been wrong at least once, and none of them could be checked without launching Obsidian.
    Now they are a function with fifty-three tests.

  • turn.ts decides whose feed this is. While the model answers, the feed can be taken out
    from under the reply — by clearing the chat, by starting a new conversation, by the undo
    notice, by removing the question itself. A reply appended after any of those lands in the
    middle of someone else's conversation, in the feed and in the context of the next request.
    That rule was written in three places in three different ways, and in a fourth it was simply
    forgotten. Now there is one of it.

The behaviour is unchanged on purpose: the old method was compared to the new one rule by
rule, and the tool loop, the streaming and the error handling were not touched at all.

Two differences worth naming

Both are invisible in use, but they are differences:

  • The active note is now read on every turn, and the plan decides whether it travels — where
    before it was not read at all in a private chat. It is a read with no side effects.
  • If the pictures of the current question and those of an earlier message both go missing at
    once, the two notices about it now appear in the opposite order.

Where it stands

Desktop and mobile, isDesktopOnly: false. Providers reachable from Russia without a VPN:
DeepSeek, Polza.ai, ChadGPT, GPTunnel, Perplexity, and local models through Ollama or
LM Studio. Images, PDFs and documents travel with a question; the selected text is rewritten
in place, with the edit log and an undo button; the conversation saves to a note.

Still unproven: the mobile pass over attachments — pasting a picture from the clipboard and
the file dialog have not been exercised on a phone since they arrived in 0.7.0.