From 72dee09aa73afc115b2695ebfe20da4fd0a54f34 Mon Sep 17 00:00:00 2001 From: Omkar Tripathi <38633467+triggeredcode@users.noreply.github.com> Date: Mon, 12 Oct 2026 04:37:08 +0530 Subject: [PATCH] chore(release): 0.2.0 The version number is one: the workspace, the app and the agent server (a test keeps them equal and checks that the changelog has an entry for it). The changelog tells what is new: Windows and Linux, the clearer panels and file icons, the website, and the AltGr fix. Co-Authored-By: Claude Sonnet 5.5 --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- CHANGELOG.md | 28 +++++++++++++++++++++++++++ apps/desktop/electron/version.test.ts | 27 ++++++++++++++++++++++++++ apps/desktop/package.json | 2 +- package.json | 2 +- packages/mcp/src/server.ts | 2 +- 6 files changed, 59 insertions(+), 4 deletions(-) create mode 100644 apps/desktop/electron/version.test.ts diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 1321a56..81538e2 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -27,7 +27,7 @@ body: attributes: label: Lucid version description: Lucid menu → About Lucid - placeholder: "0.1.0" + placeholder: "0.2.0" validations: required: true - type: input diff --git a/CHANGELOG.md b/CHANGELOG.md index f4ce613..91eb9bd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,33 @@ All notable changes to Lucid are listed here. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and Lucid uses [semantic versioning](https://semver.org). +## [0.2.0] - 2026-10-12 + +Lucid now runs on Windows and Linux as well as the Mac, has clearer panels and a new look for the list of pages, and has a website. + +### Added + +- **Windows and Linux.** Windows 10 or newer (64-bit): an installer that needs no administrator, and a portable `.zip`. Linux (64-bit): a `.deb` for Debian and Ubuntu and an AppImage for other distributions. The PDF engine comes with each, so nothing else has to be installed. Shortcut hints say Ctrl, Shift and Alt on these systems; the connection for AI agents is a named pipe on Windows. Every build is tested on GitHub's own macOS, Windows and Ubuntu machines before it is released. +- **A website** at https://triggeredcode.github.io/lucid/ with the downloads for each system (it picks out yours), the idea in pictures, the note formats and the first-time steps for each system. + +### Changed + +- The pages list and the History panel stand clearly apart from the page in both themes, and small text is darker (the contrast is checked against WCAG ratios by a test). +- Pages in the list are small file icons with the name, the kind of note and when it last changed; the open page is bold. History entries are cards. +- The top bar is taller, and stays on one line at the default window size (the buttons show only their pictures when the window is narrow). +- The Mac files are named `Lucid--mac-arm64.dmg` and `.zip`, like the files for the other systems. + +### Fixed + +- AltGr (the right Alt key on many European keyboards) no longer starts Command mode when you type `@`, `{` or `€`. + +### Known limits + +- The apps are not signed: macOS asks once (Open Anyway), and Windows SmartScreen may ask (More info, Run anyway). On Ubuntu 24.04 and newer an AppImage may need `--no-sandbox`; the `.deb` does not. +- No Intel Mac build, and no Windows or Linux build for ARM yet. +- The Mac version has had the most everyday use. Please report what is off on Windows or Linux. +- The first PDF on a computer downloads Tectonic's typesetting files (about five minutes, once). Only `qwen/qwen3.8-27b` has been evaluated. + ## [0.1.0] - 2026-10-12 The first public release. @@ -33,4 +60,5 @@ The first public release. - The first PDF on a computer downloads Tectonic's typesetting files (about five minutes, once). - Only `qwen/qwen3.8-27b` has been evaluated. A request takes 10 to 25 seconds on a laptop. +[0.2.0]: https://github.com/triggeredcode/lucid/releases/tag/v0.2.0 [0.1.0]: https://github.com/triggeredcode/lucid/releases/tag/v0.1.0 diff --git a/apps/desktop/electron/version.test.ts b/apps/desktop/electron/version.test.ts new file mode 100644 index 0000000..e0417d4 --- /dev/null +++ b/apps/desktop/electron/version.test.ts @@ -0,0 +1,27 @@ +import { readFileSync } from "node:fs"; +import { join } from "node:path"; +import { SERVER_VERSION } from "@lucid/mcp"; +import { describe, expect, it } from "vitest"; + +/** One version for the whole product: a release is one number, and the changelog tells what is in it. */ +const root = join(__dirname, "../../.."); +const read = (file: string): string => readFileSync(join(root, file), "utf8"); +const version = (file: string): string => (JSON.parse(read(file)) as { version: string }).version; + +describe("the version", () => { + it("is the same in the workspace, in the app and in the agent server", () => { + const v = version("package.json"); + expect(v).toMatch(/^\d+\.\d+\.\d+$/); + expect(version("apps/desktop/package.json")).toBe(v); + expect(SERVER_VERSION).toBe(v); + }); + + it("has an entry in the changelog, newest first, with its link", () => { + const v = version("package.json"); + const log = read("CHANGELOG.md"); + expect(log).toContain(`## [${v}] - `); + expect(log).toContain(`[${v}]: https://github.com/triggeredcode/lucid/releases/tag/v${v}`); + const headings = [...log.matchAll(/^## \[(\d+\.\d+\.\d+)\]/gm)].map((m) => m[1]); + expect(headings[0]).toBe(v); + }); +}); diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 8a46e0b..c696ade 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -1,7 +1,7 @@ { "name": "@lucid/desktop", "productName": "Lucid", - "version": "0.1.0", + "version": "0.2.0", "private": true, "description": "Lucid: structured notes (headings, lists, tables, diagrams) built while you think, with a local model", "main": "./out/main/index.js", diff --git a/package.json b/package.json index 430c7b6..242bad3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "lucid", - "version": "0.1.0", + "version": "0.2.0", "private": true, "description": "A structured document built while you think: headings, lists, tables and diagrams from speech or typing, with a local model. A toolbox for AI agents.", "type": "module", diff --git a/packages/mcp/src/server.ts b/packages/mcp/src/server.ts index 0afac9d..9f9efdf 100644 --- a/packages/mcp/src/server.ts +++ b/packages/mcp/src/server.ts @@ -3,7 +3,7 @@ import type { Backend } from "./backend"; import { TOOLS } from "./tools"; export const SERVER_NAME = "lucid"; -export const SERVER_VERSION = "0.1.0"; +export const SERVER_VERSION = "0.2.0"; const INSTRUCTIONS = `Lucid is a local note editor for learning notes (system design, inference engineering, benchmarks). A page is a list of typed blocks: headings, paragraphs, bullets, callouts, tables, diagrams, math, charts, code. Start with get_outline (and describe_kit once). Add notes with insert_notes (Lucid Markdown); change what is there with apply_ops, using the [bN] references from the outline. Never write LaTeX or Mermaid: Lucid draws diagrams and PDFs itself.