Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ body:
attributes:
label: Toril version
description: Help → About, or the release you installed. If you built from source, give the commit.
placeholder: "v1.0.0"
placeholder: "v1.1.0"
validations:
required: true

Expand Down
21 changes: 19 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,13 @@ GitHub Release notes plus the commits that shipped in it.

## [Unreleased]

## [v1.1.0] — 2026-10-15

Toril can now organize your notes, not only edit them, and it can update itself.
**This is the first release with an update path.** A copy of `v1.0.0` has no updater,
so it will not offer this version; install `v1.1.0` by hand once. Every release after
this one is offered from inside the app.

### Added
- **Manage your notes from the files pane.** New note, new folder, rename and delete,
from a right-click on any file or folder — or the `+` button beside the folder name.
Expand Down Expand Up @@ -68,10 +75,20 @@ GitHub Release notes plus the commits that shipped in it.
nothing to restore — the two used to be the same two-line stub. With no folder open,
the files pane now offers to open one instead of only saying that none is.

### Security
- **DOMPurify 3.4.13 → 3.4.16**, the sanitizer behind every piece of HTML Toril renders
(CLAUDE.md §3.3). It brings upstream fixes for bypasses when risky tags are
allow-listed, and hardening against clobbering in XML content.
- **smol-toml 1.8.0 → 1.9.0**, the TOML front-matter parser. Its fix for a
denial-of-service path (GHSA-r4xh-jqrq-34v2) is included; a hostile `+++` block could
otherwise stall the properties strip.

### Changed
- Test runner moved to vitest 5 (development only, no effect on the app).

### Notes
- Updates are cryptographically signed, and an installed Toril refuses one that does not
verify. Setting that up is a one-time step for whoever cuts releases — see
`docs/RELEASE-SIGNING.md`.
verify. See `docs/RELEASE-SIGNING.md`.
- Windows installers are still unsigned, so SmartScreen still warns on first run. The
wiring for Azure Trusted Signing is in place but inert until an account exists.

Expand Down
10 changes: 5 additions & 5 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -126,11 +126,11 @@ HTML/RTF always serialize via `docToMarkdown`).
(ROADMAP Movement I.5).** `v1.0.0` shipped with no update path, so every installed copy
was stranded on the version it was installed with; that is now closed. Details and the
two-signatures distinction are in §5 (Self-update) and `docs/RELEASE-SIGNING.md`.
**One manual step remains before it does anything:** generate the minisign keypair, paste
the public half into `plugins.updater.pubkey`, and add the private half as a repository
secret. Until then `plugins.updater.pubkey` is empty, so a check degrades to a reported
error rather than a crash, and `release.yml` refuses to cut a tag with a one-line
explanation instead of failing deep in a Rust build.
**The minisign keypair exists (2026-10-15, for `v1.1.0`):** the public half is in
`plugins.updater.pubkey`, the private half and its password are the repository secrets
`TAURI_SIGNING_PRIVATE_KEY` / `TAURI_SIGNING_PRIVATE_KEY_PASSWORD`. `v1.1.0` is the
first release an installed copy can update *from*; `v1.0.0` has no updater and must be
upgraded by hand once. `release.yml` still refuses a tag if either half goes missing.

The **QoL half of the same branch** has also landed: editor zoom, open-links-in-browser,
drag-and-drop open, a recent-files list in File → Open Recent, and a real first-run
Expand Down
24 changes: 12 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ It is built on Tauri 2, TypeScript, and Milkdown. The primary platform is

> **Status: 1.0.** The editor and the workflow around it work, and your notes stay
> plain files you can walk away with. Installers:
> **[v1.0.0](https://github.com/kovirlabs/toril/releases/latest)**.
> **[v1.1.0](https://github.com/kovirlabs/toril/releases/latest)**.
>
> Keep backups of anything important, as with any editor. See
> [CHANGELOG.md](./CHANGELOG.md) for what each release changed.
Expand Down Expand Up @@ -70,18 +70,18 @@ Installers are on the

| Platform | Download |
|---|---|
| **Windows** | [`Toril_1.0.0_x64-setup.exe`](https://github.com/kovirlabs/toril/releases/download/v1.0.0/Toril_1.0.0_x64-setup.exe) |
| **Windows** (MSI, for IT deployment) | [`Toril_1.0.0_x64_en-US.msi`](https://github.com/kovirlabs/toril/releases/download/v1.0.0/Toril_1.0.0_x64_en-US.msi) |
| **macOS** (Apple Silicon) | [`Toril_1.0.0_aarch64.dmg`](https://github.com/kovirlabs/toril/releases/download/v1.0.0/Toril_1.0.0_aarch64.dmg) |
| **macOS** (Intel) | [`Toril_1.0.0_x64.dmg`](https://github.com/kovirlabs/toril/releases/download/v1.0.0/Toril_1.0.0_x64.dmg) |
| **Linux** (AppImage) | [`Toril_1.0.0_amd64.AppImage`](https://github.com/kovirlabs/toril/releases/download/v1.0.0/Toril_1.0.0_amd64.AppImage) |
| **Linux** (Debian/Ubuntu) | [`Toril_1.0.0_amd64.deb`](https://github.com/kovirlabs/toril/releases/download/v1.0.0/Toril_1.0.0_amd64.deb) |
| **Linux** (Fedora/RHEL) | [`Toril-1.0.0-1.x86_64.rpm`](https://github.com/kovirlabs/toril/releases/download/v1.0.0/Toril-1.0.0-1.x86_64.rpm) |
| **Windows** | [`Toril_1.1.0_x64-setup.exe`](https://github.com/kovirlabs/toril/releases/download/v1.1.0/Toril_1.1.0_x64-setup.exe) |
| **Windows** (MSI, for IT deployment) | [`Toril_1.1.0_x64_en-US.msi`](https://github.com/kovirlabs/toril/releases/download/v1.1.0/Toril_1.1.0_x64_en-US.msi) |
| **macOS** (Apple Silicon) | [`Toril_1.1.0_aarch64.dmg`](https://github.com/kovirlabs/toril/releases/download/v1.1.0/Toril_1.1.0_aarch64.dmg) |
| **macOS** (Intel) | [`Toril_1.1.0_x64.dmg`](https://github.com/kovirlabs/toril/releases/download/v1.1.0/Toril_1.1.0_x64.dmg) |
| **Linux** (AppImage) | [`Toril_1.1.0_amd64.AppImage`](https://github.com/kovirlabs/toril/releases/download/v1.1.0/Toril_1.1.0_amd64.AppImage) |
| **Linux** (Debian/Ubuntu) | [`Toril_1.1.0_amd64.deb`](https://github.com/kovirlabs/toril/releases/download/v1.1.0/Toril_1.1.0_amd64.deb) |
| **Linux** (Fedora/RHEL) | [`Toril-1.1.0-1.x86_64.rpm`](https://github.com/kovirlabs/toril/releases/download/v1.1.0/Toril-1.1.0-1.x86_64.rpm) |

<details>
<summary><b>Installing on Windows</b></summary>

**1. Download** `Toril_1.0.0_x64-setup.exe` from the table above.
**1. Download** `Toril_1.1.0_x64-setup.exe` from the table above.

**2. Unblock it if Windows marked it.** Files downloaded from the internet carry
a "mark of the web". If the installer refuses to start, right-click it →
Expand Down Expand Up @@ -133,9 +133,9 @@ so the first launch needs **right-click → Open** (or *System Settings → Priv
Security → Open Anyway*).

**Linux:** the AppImage is portable —
`chmod +x Toril_1.0.0_amd64.AppImage` and run it. Or install the `.deb`
(`sudo apt install ./Toril_1.0.0_amd64.deb`) or `.rpm`
(`sudo dnf install ./Toril-1.0.0-1.x86_64.rpm`).
`chmod +x Toril_1.1.0_amd64.AppImage` and run it. Or install the `.deb`
(`sudo apt install ./Toril_1.1.0_amd64.deb`) or `.rpm`
(`sudo dnf install ./Toril-1.1.0-1.x86_64.rpm`).

</details>

Expand Down
2 changes: 1 addition & 1 deletion SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ notes are plain files on your own disk. That shapes the threat model below.

## Supported Versions

Toril is at **`v1.0.0`**. Security fixes land on the latest release and `main`
Toril is at **`v1.1.0`**. Security fixes land on the latest release and `main`
only; there are no maintained back-release branches.

| Version | Supported |
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "toril",
"private": true,
"version": "1.0.0",
"version": "1.1.0",
"type": "module",
"scripts": {
"dev": "vite",
Expand Down
2 changes: 1 addition & 1 deletion src-tauri/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ exclude = ["third-party/glib"]

[package]
name = "toril-app"
version = "1.0.0"
version = "1.1.0"
description = "Toril — a WYSIWYG markdown editor"
authors = ["Toril contributors"]
edition = "2024"
Expand Down
4 changes: 2 additions & 2 deletions src-tauri/tauri.conf.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "https://schema.tauri.app/config/2",
"productName": "Toril",
"version": "1.0.0",
"version": "1.1.0",
"identifier": "com.toril.app",
"build": {
"beforeDevCommand": "pnpm dev",
Expand Down Expand Up @@ -29,7 +29,7 @@
"https://github.com/kovirlabs/toril/releases/latest/download/latest.json"
],
"windows": { "installMode": "passive" },
"pubkey": ""
"pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IDUxNzBFQzE0Mzg5MTVCQQpSV1M2RllsRHdRNFhCYkNDdHFYY1FMWWhld2dYN3A3R1RDSWsxU3YzRXY4dmVMWFdWNHBpRnZuUQo="
}
},
"bundle": {
Expand Down
Loading