Releases: ut-issl/procnote
Release list
v0.0.5
Fixes and Improvements
Fix terminal launcher packaging across desktop platforms
Packaged releases now ship one Tauri desktop executable alongside a small,
Tauri-free console launcher. Running procnote [WORKSPACE] starts the desktop
application in the requested workspace, immediately returns control to the
terminal, and safely preserves workspace paths containing spaces. Help, version,
and argument errors are handled directly in the terminal without starting the
GUI.
The new launcher is included in the Windows, macOS, and Linux packages. The
Windows NSIS installer also removes the legacy v0.0.4 CLI location, updates the
user PATH without risking truncation of long values, and cleans up both old and
new entries during uninstall.
Contributed by @shunichironomura in #354.
Internal Changes
Full Changelog: v0.0.4...v0.0.5
v0.0.4
Breaking Changes
Move execution logs to schema v2 and simplify step state
Procnote no longer models starting and completing each individual step. Steps are now either present or skipped, and captured data can be recorded directly in any present step. Selecting the current step remains a UI concern rather than an event-sourced state transition.
Generic event reverts have also been replaced by explicit domain actions such as clearing an input, removing an attachment or note, unskipping a step, and reopening an execution. Each action appends its own typed event, making the audit trail and state-machine rules clearer.
These changes advance the event log format from schema v1 to schema v2. v0.0.4 cannot open schema-v1 execution logs created by v0.0.3, and no in-place migration is provided. Keep v0.0.3 available if you need to view those executions.
by @shunichironomura in #282, #287
New Features
Attach multiple files to one attachment input
Attachment inputs now support selecting and recording multiple files at once, adding more files later, removing individual files, or clearing the entire input. Batch additions and per-file removals are represented explicitly in the event log.
by @shunichironomura in #294
Upload attachments from another device with DropPoint
A configured DropPoint instance can now provide short-lived, encrypted QR-code uploads for attachment inputs. The sender uploads from another device, such as a phone; the relay stores ciphertext, and Procnote decrypts and imports the files locally as normal attachments.
The integration supports multi-file bundles, duplicate filenames, human-readable drop names for sender verification, persisted sessions, expiry handling, and retrying local imports after a transfer succeeds.
by @shunichironomura in #295, #299, #302, #305, #308
Maintain a human-readable Markdown snapshot for each execution
Each execution directory now contains a generated README.md projection of its current state. The snapshot includes execution metadata, steps, checkboxes, inputs, notes, attachment links, and previews for supported image attachments. It is refreshed after recorded actions while events.jsonl remains the source of truth.
by @shunichironomura in #314
Install a terminal-friendly CLI on Windows
The Windows NSIS installer now bundles a console-enabled procnote executable and adds its directory to the user PATH. Commands such as procnote --help and procnote --version therefore work in Windows terminals without suppressing their output.
by @shunichironomura in #154
Preserve nested checkbox structure
Nested Markdown task-list items now retain their nesting level and render with matching indentation in the execution UI and generated execution snapshots.
by @shunichironomura in #315
Security and Reliability
Strengthen append-only event log durability
Event-log writes now flush and sync file contents before returning, sync new directory entries, and serialize each read/replay/validate/append transaction with an advisory lock. New executions are assembled in a durable staging directory and atomically renamed into place. Attachments are copied, verified, and synced before their events are committed.
by @shunichironomura in #283
Harden parsing, state validation, filesystem access, and DropPoint transfers
Core template, event-log, and execution state-machine validation has been tightened. The Tauri shell now applies stricter CSP and IPC path validation, limits attachment access through explicit grants, resolves executions more safely, and improves filesystem durability. DropPoint cryptography, session handling, transfer limits, and imported bundle validation have also been hardened.
by @shunichironomura in #303, #304, #305, #307
Fixes and Improvements
- Show thumbnails for recorded image attachments and rename the remote-upload action to Upload via QR Code (by @shunichironomura in #300)
- Prevent Enter presses during IME composition from triggering actions prematurely (by @shunichironomura in #289)
- Prevent stale async actions from overwriting newer frontend state and make navigation safer (by @shunichironomura in #306)
- Fix the DropPoint button regression caused by attachment preview caching and harden attachment interactions (by @shunichironomura in #311, #312)
- Report the actual packaged application version from the CLI (by @shunichironomura in #351)
Documentation
- Update installation instructions and fix README examples (by @shunichironomura in #150, #249, #250)
- Build documentation on pull requests and deploy it from
main(by @shunichironomura in #155) - Document execution state machines and typed reversal events (by @shunichironomura in #277, #285, #286)
- Document DropPoint setup, security properties, configuration, and upload workflow (by @shunichironomura in #313)
- Add a table-rendering example procedure and fix documentation card rendering (by @shunichironomura in #274, #323)
Internal Changes
- Replace Biome with Vite+ formatting and linting through
oxfmtandoxlint(by @shunichironomura in #152) - Apply correctness fixes, consolidate CLI entry points, deduplicate frontend logic, and introduce shared modal and styling components (by @shunichironomura in #160, #161, #162, #163, #164, #309)
- Add CODEOWNERS and record code-review resolution evidence (by @shunichironomura in #252, #310)
- Freeze pre-commit hook revisions, pin the Rust toolchain, deny Rust warnings, and standardize
just lintandjust test(by @shunichironomura in #319, #326, #338, #339) - Harden GitHub Actions and update Homebrew tap integration (by @shunichironomura in #349, #350)
- Update the frontend toolchain and dependencies, including Vite 8, Node.js 24, TypeScript 6, pnpm 11, Svelte 5.56, SvelteKit 2.70, Tauri 2.11.5, and Rust 1.97 (by @renovate[bot] in multiple pull requests)
- Update GitHub Actions, Rust and JavaScript dependencies, and lock files (by @renovate[bot] in multiple pull requests)
- Bump version to v0.0.4 (by @shunichironomura in #352)
Full Changelog: v0.0.3...v0.0.4
v0.0.3
See the assets to download and install this version.
What's Changed
- Rename binary from procnote-tauri to procnote by @shunichironomura in #146
- Bump version to 0.0.3 by @shunichironomura in #147
Full Changelog: v0.0.2...v0.0.3
v0.0.2
See the assets to download and install this version.
What's Changed
- Add
update-homebrewworkflow by @shunichironomura in #142 - Add workflow_dispatch trigger to update-homebrew workflow by @shunichironomura in #143
- Fix update-homebrew workflow when no changes by @shunichironomura in #144
- Bump version to 0.0.2 by @shunichironomura in #145
Full Changelog: v0.0.1...v0.0.2
v0.0.1
See the assets to download and install this version.
What's Changed
- initial setup by @shunichironomura in #1
- remove deviation by @shunichironomura in #2
- Added EventReverted action by @shunichironomura in #3
- show timestamps by @shunichironomura in #4
- Add CLAUDE.md by @shunichironomura in #5
- Add markdownlint config by @shunichironomura in #6
- Add execution name by @shunichironomura in #7
- Display procedure title in executions by @shunichironomura in #8
- Rename directory name of an execution by @shunichironomura in #9
- Fix attachment UI by @shunichironomura in #10
- Synchronize types between Rust and Typescript by @shunichironomura in #11
- Set up CI by @shunichironomura in #12
- Add renovate config by @shunichironomura in #13
- Update CLAUDE.md by @shunichironomura in #26
- Fix type error by @shunichironomura in #27
- Modify button opacity when step is pending by @shunichironomura in #28
- setup verbose log by @shunichironomura in #29
- Highlight ongoing executions by @shunichironomura in #30
- Display the attachment hash by @shunichironomura in #31
- (Partially) Fix markdown rendering by @shunichironomura in #35
- Update CLAUDE.md on pnpm by @shunichironomura in #36
- Show execution directory by @shunichironomura in #37
- Support ordering of markdown contents by @shunichironomura in #38
- Fix nested checkboxes by @shunichironomura in #40
- Add syntax highlighting by @shunichironomura in #41
- Filtering of executions by @shunichironomura in #42
- Set up release workflow by @shunichironomura in #44
- Stable element IDs by @shunichironomura in #50
- Update Rust crate clap to v4.5.60 by @renovate[bot] in #54
- Update Rust crate pulldown-cmark to v0.13.1 by @renovate[bot] in #55
- Update dependency @biomejs/biome to v2.4.4 by @renovate[bot] in #56
- Update dependency @sveltejs/kit to v2.53.4 by @renovate[bot] in #57
- Update dependency svelte to v5.53.6 by @renovate[bot] in #58
- Update dependency svelte-check to v4.4.4 by @renovate[bot] in #59
- Update dependency @biomejs/biome to v2.4.5 by @renovate[bot] in #60
- Update tauri monorepo by @renovate[bot] in #64
- Update Rust crate uuid to v1.21.0 - autoclosed by @renovate[bot] in #63
- Update pnpm to v10.30.3 by @renovate[bot] in #61
- Update Rust crate tempfile to v3.26.0 by @renovate[bot] in #62
- Update dependency svelte to v5.53.7 by @renovate[bot] in #65
- Update dependency marked to v17.0.4 by @renovate[bot] in #51
- Update tauri monorepo by @renovate[bot] in #66
- Update dependency dompurify to v3.3.2 by @renovate[bot] in #67
- Update dependency @biomejs/biome to v2.4.6 by @renovate[bot] in #68
- Update Rust crate uuid to v1.22.0 by @renovate[bot] in #69
- Update dependency svelte-check to v4.4.5 by @renovate[bot] in #70
- Update pnpm to v10.31.0 by @renovate[bot] in #71
- Lock file maintenance by @renovate[bot] in #72
- Update dependency svelte to v5.53.8 by @renovate[bot] in #73
- Update pnpm to v10.32.0 by @renovate[bot] in #74
- Update dependency svelte to v5.53.9 by @renovate[bot] in #75
- Update dependency svelte to v5.53.10 by @renovate[bot] in #76
- Update pnpm to v10.32.1 by @renovate[bot] in #77
- Update Rust crate tempfile to v3.27.0 by @renovate[bot] in #78
- Update dependency dompurify to v3.3.3 by @renovate[bot] in #79
- Update dependency @sveltejs/kit to v2.54.0 by @renovate[bot] in #80
- Update dependency svelte to v5.53.11 by @renovate[bot] in #81
- Update dependency @sveltejs/vite-plugin-svelte to v7 by @renovate[bot] in #83
- Update dependency @sveltejs/kit to v2.55.0 by @renovate[bot] in #85
- Update Rust crate clap to v4.6.0 by @renovate[bot] in #82
- Update dependency vite to v8 by @renovate[bot] in #84
- Update dependency @biomejs/biome to v2.4.7 by @renovate[bot] in #86
- Update dependency svelte to v5.53.12 by @renovate[bot] in #87
- Lock file maintenance by @renovate[bot] in #88
- Update dependency svelte to v5.53.13 by @renovate[bot] in #89
- Update dependency svelte to v5.54.0 by @renovate[bot] in #91
- Update pnpm/action-setup action to v5 by @renovate[bot] in #90
- Update dependency @biomejs/biome to v2.4.8 by @renovate[bot] in #92
- Update dependency vite to v8.0.1 by @renovate[bot] in #93
- Update dependency marked to v17.0.5 by @renovate[bot] in #94
- Update dependency svelte to v5.54.1 by @renovate[bot] in #95
- Update Rust crate pulldown-cmark to v0.13.2 by @renovate[bot] in #96
- Lock file maintenance by @renovate[bot] in #98
- Update Rust crate pulldown-cmark to v0.13.3 by @renovate[bot] in #97
- Update dependency vite to v8.0.2 by @renovate[bot] in #99
- Update dependency typescript to v6 by @renovate[bot] in #101
- Update dependency svelte to v5.55.0 by @renovate[bot] in #100
- Update pnpm to v10.33.0 by @renovate[bot] in #102
- Update dependency @biomejs/biome to v2.4.9 by @renovate[bot] in #103
- Update dependency vite to v8.0.3 by @renovate[bot] in #105
- Update Rust crate sha2 to 0.11.0 by @renovate[bot] in #104
- Update Rust crate uuid to v1.23.0 by @renovate[bot] in #106
- Update dependency svelte to v5.55.1 by @renovate[bot] in #107
- Lock file maintenance by @renovate[bot] in #108
- Update dependency @biomejs/biome to v2.4.10 by @renovate[bot] in #109
- Update dependency svelte-check to v4.4.6 by @renovate[bot] in #110
- Co-locate procedures and executions in the same directory by @shunichironomura in #111
- Add event log future-compatibility: LogEntry, LogMeta, and fixture tests by @shunichironomura in #112
- Update dependency @sveltejs/kit to v2.56.1 by @renovate[bot] in #113
- Add cooldown period of 7 days by @Shunichiro...