# MD DOCS Changelog

## Version 1.2.85 — 2026-09-22

### Added
- **The Refresh button turns orange when the file has changed on disk.** Whenever a document gets focus — you switch to its tab, or you come back to MD DOCS from another app — MD DOCS compares the open file with the copy on disk. If something else wrote a newer version (an AI agent, another editor, a git checkout), the toolbar's **Refresh** button goes brand orange and its tooltip says so. Nothing is reloaded and nothing interrupts you; click Refresh when you want the newer text.

### Changed
- **Backlot image choices are bigger.** Image options in a Toolmaker-Noir review page lay out about two across a full content column (and one across on a narrow column) instead of packing four tiny thumbnails per row, so candidates can be judged without opening each one. Clicking still zooms to full size.

### Fixed
- **The recent-files list no longer offers files that are gone.** Right-clicking **Open** (and the Welcome screen's Recent Files) now shows only documents that still exist — entries deleted, renamed, moved, or sitting on a drive that isn't mounted are dropped from the list for good.

## Version 1.2.84 — 2026-09-16

### Changed
- **The web version of the High Contrast theme now matches the app's.** Published pages open on the same sidebar-and-card shell as the app's exports: a Contents panel on the left, the document in a card on the right, and a **Toggle Theme** button in the header that flips the whole page to white on black. `[brand-header]`, `[home-header]` and `[theme:dark]` work like the other sidebar themes, and on a phone the Contents panel stacks above the document instead of shrinking to fit.

## Version 1.2.83 — 2026-09-16

### Added
- **Backlot images enlarge in a lightbox.** Click any document image to fit it to the viewport; click the dark field outside it or press Escape to close. Image clicks no longer change the checkbox or radio choice around a thumbnail.

## Version 1.2.82 — 2026-09-16

### Changed
- **Backlot choices can carry a stable identifier beside their caption and media.** When a checkbox or radio item starts with inline code, Save records only that code value. The rest of the item can explain the option and show its image, audio, or video without polluting the answer consumed by the pipeline.

### Fixed
- **Backlot list choices now survive MD DOCS sync anchors and media paragraphs.** The exporter recognizes the real rendered list structure, so generated image and video picks become live controls instead of remaining literal `( )` / `[ ]` text.

## Version 1.2.81 — 2026-09-16

### Added
- **`[backlot-header]` tag — publish a document as a review page.** A numbered rail of stages appears in the header, read from a small manifest (`backlot.js`) beside the page each time it opens, so a stage's state updates everywhere without republishing. In the body, `- [ ]` items become checkboxes, `- ( )` items become one-per-list radios, `[backlot-decision]` adds Approve / Request fix / Accept failing with a reason box, and `[backlot-note]` adds a comment box. A **Save answers** button writes `<page>.answers.json` beside the page (the browser asks once for the folder; a browser that cannot write downloads it). Drafts survive moving between stages. TOC-layout themes only; nothing is written but the answers file.

## Version 1.2.80 — 2026-09-13

### Changed
- **High Contrast theme now has the sidebar Contents panel.** Exported pages get the same collapsible table of contents on the left as the Altuit-TOC themes, drawn in the same pure black and white with solid borders and larger type. The header's Toggle Theme button flips the whole page, sidebar included, to white on black for readers who find that easier. Works with `[brand-header]`, `[home-header]` and `[gate:...]` like the other sidebar themes.

### Fixed
- **Sidebar themes with a light background now export light.** Only Altuit-TOC-Light was treated as light; any other light sidebar theme opened in the browser in dark mode until you pressed Toggle Theme. The export now reads the theme's declared background colour, so a light theme opens light. `[theme:light]` and `[theme:dark]` still override it.

## Version 1.2.79 — 2026-09-13

### Added
- **High Contrast theme** — a reading theme for low vision. Every word is pure black on pure white, the highest contrast a screen can show. Type is large (20px) and set in Atkinson Hyperlegible with extra line, letter and word spacing, and lines stop at about seventy characters so the eye can find the next one. Nothing relies on colour: links are always underlined and turn white-on-black under the mouse or keyboard, quotes carry a heavy black rule, code and tables sit inside solid black borders, and emphasis is bold instead of italic. Mermaid diagrams are redrawn as black lines and text on white. Works in the preview, in Export to Browser, and in the web version.

## Version 1.2.78 — 2026-08-22

### Added
- **A list of every open document, for when the tabs stop fitting.** Once the tabs no longer fit across the bar, a **⌄** button appears at its right end showing how many documents are open. It drops down a list of all of them — click one to go to it, or close it from the list without going there first. Each row carries its folder, so two files with the same name are finally distinguishable. Closing several in a row leaves the list open; closing one with unsaved changes closes the list so the save prompt has the screen to itself. The button is not there at all while every tab fits.
- **Clean Format** (⋮ menu) — turns copy pasted out of an AI chat into plain readable prose. Chat copy arrives wrapped at whatever width the window happened to be, carrying markdown, curly quotes, and often a pair of quotes around the whole thing. Clean Format strips the formatting, drops comments and rules, straightens curly punctuation, removes quotes that wrap a whole paragraph, and — the part Clear Formatting never did — rejoins the wrapped lines so each paragraph is one line again. Separate list items stay separate, and a quoted phrase inside a sentence keeps its quotes. Select the text first; it works on the selection.
- **Site menu from a single file.** Drop a `site-menu.html` beside your published pages — just a list of `<a href="...">` links — and every page grows a collapsible **Site Pages** group at the bottom of its Contents panel, loaded when the page opens. Add a page to the site by editing that one file; nothing gets republished. No file, no group. (Pages opened straight from disk skip it — browsers only fetch the menu from a server.)
- **A heading that is entirely a link carries that link into the Contents panel.** `## [Status](Status.html)` used to appear in the TOC as plain text pointing at its own in-page anchor; now the TOC entry goes where the link goes. Wrap such headings in `<div style="display:none">` (blank lines around the headings) and a page gets a site menu in its Contents panel with nothing visible in the body — each document lists exactly the pages it wants, in plain markdown, no header or theme changes. Headings that merely contain a link among other words keep their in-page anchor.
- **A page can carry several `[gate:...]` tags — any one of the passwords opens it.** Each password's unlock is remembered separately, so a shared page (a site's table of contents, say) can open for two audiences while each audience's private pages stay behind their own password.
- **`[gate:password]` tag — publish a page behind a password.** Type the password in plain text at the top of the document; at publish time MD DOCS hashes it and builds a password curtain into the page with **only the hash** embedded — the published HTML never contains the password. Change the password by editing the tag and publishing again. Each gated page remembers being opened in that browser (per-site, so one client's site never unlocks another's). Honest limits: it is a curtain, not a lock — the page content ships in the HTML behind the curtain, and the source `.md` beside the published page contains the password in plain text, so deny web access to `*.md` on the host (one `.htaccess` rule). TOC-layout themes only.
- **`[home-header]` tag** — the per-site counterpart of `[brand-header]`. Put it at the top of a document and its published page grows a **⌂ Home** button in the header that links to the site's own home page — `index.html` in the same folder by default, so the same tag works on every ".md site" you build, for any client, without configuration. An optional target overrides the destination: `[home-header:landing.html]` or a full URL. Composes with `[brand-header]` (logo on the left, Home button on the right). TOC-layout themes only, same as `[brand-header]`.

### Fixed
- **Open enough documents and you can reach their tabs again.** Past about nine open documents the tabs run off the right of the bar, and the tab bar never scrolled to follow — so opening a tenth document put its own tab out of sight along with its close button, and the app looked frozen because nothing you clicked up there did anything. The bar now scrolls the document you are on into view, whether you just opened it or switched to it. Hovering a tab also shows its full path, which tells two same-named files apart.
- **A `[home-header]` target can no longer inject markup into a published page.** The target text went into the Home link exactly as written, so a stray quote in it broke the link open and anything after the quote became part of the page — on a site already live. Targets are now limited to ordinary web and mail addresses, and the text is escaped before it goes in.

## Version 1.2.77 — 2026-08-14

### Fixed
- **Ctrl+click on a preview image opens the annotation editor again** — the first Ctrl+click built the DocuMark window but never showed it, and because MD DOCS still counted that invisible window as open, every click after it was turned away with "Editor already open" and nothing at all happened on screen. The window is now shown whichever way it becomes ready, and if an editor really is open on another file, MD DOCS brings it to the front and says so in the status bar instead of failing in silence.

### Added
- **Right-click an image in the preview → Annotate image** — the same annotation editor, without holding Ctrl. Works on SVGs and on ordinary images (PNG, JPG, GIF, WebP, BMP), which are traced into an SVG beside the original.
- **Replace Image in DocuMark** — when the screen you documented changes, re-shoot it and swap the picture underneath your annotations instead of marking the whole thing up again. Every dot, arrow, rectangle and label survives. A same-size replacement leaves them exactly where they were; a different-size one scales them onto the new picture, so none are stranded past the edge where you could neither see nor drag them. The status line says which happened, and nothing is ever dropped.

### Changed
- **The `click` control tool can hold modifiers and right-click** — it only ever sent a plain left click, so anything behind Ctrl+click or a right-click menu could not be driven or tested from outside. It now takes `ctrl`, `meta`, `shift`, `alt`, and `button: "right"`.

## Version 1.2.76 — 2026-08-11

### Fixed
- **Open reopens where you left it** — the Open dialog started somewhere arbitrary every time instead of the folder you last used, because MD DOCS never told it where to go. It now remembers, and remembers separately for each kind of dialog: opening a CSV or picking an image no longer moves where your documents open from. A remembered folder that has since been deleted is ignored rather than sending the dialog somewhere random.

### Added
- **The agent knows what "this doc" means** — it used to receive your message with no idea it was running inside an editor, so "rewrite this doc" made it guess, and it sometimes answered about the wrong file. Each conversation now opens by telling it which document is on screen, its full path, the project folder, and that "this doc", "this file", or "it" all mean that document. If the document has unsaved edits it is told the file on disk is behind what you see. The context is restated when you switch tabs, not on every message.
- **Clear button in the AI panel** — the eraser at the top right empties the conversation and starts the agent on a fresh session, so it stops carrying over a conversation you can no longer see. It also re-introduces the open document to the agent on your next message.

### Changed
- **You can see when the agent is working** — the AI panel header now shows a pulsing badge with what the agent is doing and how long it has been going, so a quiet stretch no longer looks like a stall. The reply itself shows animated dots instead of a static "…".
- **The agent's steps no longer bury the answer** — each step used to print as its own grey line, and Codex prints a whole command line per step, so a dozen shell commands pushed the reply off screen. Steps now collapse to a single "⚙ 12 steps" line you can click to expand, with each one shortened to something readable.

### Added
- **Agent permissions setting** — Settings → **AI Agents** now shows what your agent is allowed to do, and lets you pull it back. **Full access** (the default) lets the agent read and edit files, run commands, and control MD DOCS — switching themes, opening files, exporting. **No document tools** keeps file editing and commands but stops the agent driving the app. There is deliberately no sandboxed option: a sandboxed agent cannot stop to ask your permission, so it declines silently and a request looks like it worked when nothing happened.

## Version 1.2.75 — 2026-08-10

### Changed
- **Codex runs with one clear permission setting** — it was launched with two contradictory sandbox options at once. The stricter-looking one never applied, so nothing changes about what Codex can do; the setting now matches the "runs with full tool access" notice you confirm before chatting.

### Fixed
- **Re-check now shows it is working** — clicking **Re-check** on a connected agent looked like it did nothing, because a check that finds no change has nothing to update. The button now spins and reads "Checking…" while it runs, and leaves a brief "Checked just now" when it finishes, so a no-change result still reads as a result.
- **A clear message when Codex can't open a folder** — Codex refuses to start when the document lives on a WebDAV or rclone mounted drive, and it reported this as a raw "volume does not contain a recognized file system (os error 1005)". MD DOCS now explains what happened, names the folder, and points you at the two ways forward: save the document to a local disk, or switch to Claude Code, which handles those folders.

## Version 1.2.74 — 2026-08-09

### Changed
- **Settings now has tabs** — General and AI Agents. Editor and preview options stay on General; Claude Code, Codex, and Grok Build move to their own tab, so neither list buries the other. Settings opens on General, and unsaved edits survive switching tabs.
- **Pick one AI agent, from one list** — the AI Agents tab is now a single set of choices: Claude Code, Codex, Grok Build, or None. Choosing one sets it up and makes it your chat agent in a single click; the separate "enable" checkboxes and the "Active chat agent" dropdown are gone. Your binary path and model for an agent are kept, so going back to one you used before restores its setup.

### Fixed
- **Corrected the AI chat location in Settings** — the help text still pointed at the old bottom dock; AI chat now lives in the sidebar's AI tab.

## Version 1.2.73 — 2026-08-09

### Added
- **Drag and drop SVG files** — SVGs now drop into a document exactly like PNGs and JPGs: the file is copied into the document's images folder and the Markdown reference is written for you. The Insert Image button accepts SVGs too. Ctrl+click a dropped SVG to open it in DocuMark, as before.

## Version 1.2.72 — 2026-08-09

### Changed
- **Rebuilt on a current Electron** — MD DOCS now runs on Electron 43 instead of Electron 28, which had gone two years without security fixes. This brings a modern browser engine to the preview pane, so images, fonts, and diagrams in documents you open are handled by an up-to-date renderer.

### Fixed
- **Crash logging covers every process** — GPU, renderer, and utility process failures are now recorded in one place instead of only GPU crashes.

## [1.2.71] - 2026-08-09

### Changed
- **AI chat moved to the left sidebar** — Connected agents now appear in an AI tab instead of a bottom dock, leaving the editor and preview at full height.
- **Cleaner sidebar controls** — The chat prompt opens blank, and the TOC, Files, DIR, and AI labels now match the toolbar text size.

## Version 1.2.70 (Current Build) — 2026-08-09

### Added
- **Docs publishing tools** — Added batch tools to scan links, update document tags, copy manuals, build a docs index, and verify the published set.
- **Project docs source** — Added the user manual, setup guides, AI-agent reference, and a dated archive of old project notes under the repo's `docs` folder.

### Changed
- **Manual publishing location** — The MD DOCS manual now publishes beside the app download on the live widgetgadget host, with the repo copy as its source of truth and `https://cw1.me/mddocs-docs` as its short link.
- **Project reference docs** — Rebuilt the main architecture guide and moved old standalone reports into a dated archive.

## Version 1.2.69 — 2026-08-09

### Added
- **Codex and Grok Build in AI chat** — Settings → **AI Agents** now has three cards: Claude Code, **Codex** (ChatGPT subscription via the local Codex CLI), and **Grok Build** (grok.com subscription via the local Windows `grok` CLI). Enable each, detect install/sign-in status, set a binary path and model, and pick the **Active chat agent**. The bottom dock works with whichever agent is active (switch from Settings or the dock header). Same full-agent posture as Claude: can edit the open document and run tools on your machine using your subscription — no API-key path required.

### Changed
- **Settings section renamed** — “AI / Claude” is now **AI Agents** (Claude remains; Codex and Grok Build sit beside it).
- **Toolbar chat button** — appears when *any* connected agent is ready (not only Claude).

### Fixed
- **Welcome recent files open again** — clicking a recent file on the startup screen no longer races with “create Untitled” (welcome closed before the file finished loading). The file loads and the welcome screen dismisses correctly.
- **Codex chat config error** — session MCP injection no longer passes a broken `mcp_servers.md-docs.args` string on Windows (`expected a sequence`). Args use shell-safe single-quoted TOML so Codex can start.

## Version 1.2.68 — 2026-07-23

### Added
- **Chat with Claude inside MD DOCS** — when you have Claude Code installed and signed in, a new chat panel docks across the bottom of the editor and preview (open or close it from the toolbar, and drag its top edge to resize). Ask Claude to edit the open document — convert a diagram, tighten a section, fix tables — and it makes the change in place. It runs on your Claude subscription through the Claude Code app on your machine: **no API key and no API credits are used.** Turn it on under Settings → AI / Claude, which detects Claude, walks you through signing in, and shows a live connection status.

### Changed
- **"Preferences" is now "Settings"** — the same window, renamed, with the new AI / Claude section added.

## Version 1.2.67 — 2026-07-23

### Added
- **Convert a text diagram to Mermaid** — a new command turns a hand-drawn ASCII/box-drawing diagram (the kind made from `│ ▼ ┌ ┐` characters and arrows) into a rendered Mermaid flowchart. It reads the connector-line text as edge labels, keeps a title line above the chart, and drops the result straight into the open document so the preview renders it.
- **Surgical in-place edits (`replace_range`)** — the app's control bridge can now replace just one span of the open document instead of rewriting the whole file. The rest of the document keeps its exact characters and line endings, the change can be undone, and the tab is marked unsaved so you can preview before saving. This is what lets the diagram command swap one block cleanly without disturbing the rest of a large file.

## Version 1.2.66 — 2026-07-23

### Fixed
- **"Paste as Markdown" now builds tables** — pasting a block of tab-separated rows (copied from a spreadsheet or a tab-delimited list) turns into a real Markdown table instead of dropping in as plain text. A leading title line with no tabs is left alone above the table. Tables copied as HTML (from a web page, Word, or Excel) also convert to Markdown tables now.

## Version 1.2.65 — 2026-07-18

### Changed
- **Theme renamed: Alt-Brand-Dark is now "Toolmaker-Noir"** — the CHIPPWALTERS-branded documentation theme has a name that matches the brand's "Toolmaker Noir" design language. Everything else about the theme is unchanged (same look, same `[brand-header]` and `[theme:light]`/`[theme:dark]` tags, same TOC export layout). If you had Alt-Brand-Dark selected, your saved theme choice migrates to Toolmaker-Noir automatically; automation that sets the theme by name should use `Toolmaker-Noir` (id `toolmaker-noir`) going forward.

## Version 1.2.64 — 2026-07-08

### Changed
- **Developer documentation rewritten** — the repo's `CLAUDE.md` (AI-assistant guidance) was rebuilt from scratch to match the current codebase: real dev/test/build commands, the three-process architecture and MCP bridge, document/image conventions, and known dev-environment gotchas. No app behavior changed.

## Version 1.2.63 — 2026-07-06

### Added
- **Open `.txt` files** — MD DOCS now opens plain-text `.txt` files (via the Open dialog, drag-and-drop onto the editor, or the Files tree) alongside Markdown. Because MD DOCS is a Markdown editor, **saving a `.txt` writes it out as a sibling `.md`** (non-destructive — the original `.txt` is left on disk) and repoints the tab at the new `.md`, so continued editing and later saves stay in Markdown.

## Version 1.2.62 — 2026-07-01

### Changed
- **New app icon** — the application icon has been regenerated in the updated monochrome style and standardized across the Windows (`.ico`), macOS (`.icns`), and Linux (`.png`) builds, so every platform ships the same current mark.

## Version 1.2.61
 — 2026-06-30

### Fixed
- **Editor no longer opens blank when launching via double-click / file association** — opening a `.md` by double-clicking it (or through a Windows file association) could leave the editor pane blank while the preview rendered fine. The editor measured its size only once at construction, and on a cold launch it could be built against a container that hadn't finished laying out, then never re-measure. It now forces a layout pass right after mount so it always paints. The editor engine is also bundled with the app instead of being fetched from a CDN at runtime — this removes the startup timing variability behind the race and lets the editor work offline.

## Version 1.2.60
 — 2026-06-29

### Fixed
- **App icon restored in builds** — the icon files had been relocated out of `public/` in v1.2.57, but the packaging config still looked for them there, so the last build shipped with no app icon (and a broken `.md` file-association icon). The icons are back in `public/`, so Windows/macOS/Linux builds and the file-association icon render correctly again.

## Version 1.2.59
 — 2026-06-28

### Changed
- **Landing `theme:` paths can be relative to the document** — a relative `theme:` value (e.g. `_themes/chippwalters-product`) now resolves against the document's own folder first, then falls back to a bundled theme name. This lets a site folder be fully self-contained and portable: drop it anywhere and landing pages still re-render against their in-folder theme. Absolute paths and bundled theme names work exactly as before.
- **Looser heading line spacing in the Alt-Brand-Dark theme** — h2–h5 headings that wrap to multiple lines no longer crowd together; the h1 title stays tight.

### Fixed
- **"Add as local link" now works for filenames with spaces** — links (and images) inserted from the file-tree right-click menu are percent-encoded, so a target like `KIT OPS PRO vs FREE.md` produces a working link instead of plain text. This also fixes preview navigation and publish-time asset copying for such paths.
- **Last image in a document always loads** — a trailing image at the very bottom of the preview no longer gets stranded by lazy-loading and failing to appear.

## Version 1.2.58
 — 2026-06-22

### Added
- **`[brand-header]` tag** — put `[brand-header]` at the top of a Markdown document and the exported page gets a header with the CHIPPWALTERS logo (linking to chippwalters.com) on the left and a **← Back** button on the right. Off by default, so pages stay unbranded unless you ask for it. Works with the Alt-Brand-Dark theme.

### Changed
- **Landing pages export flat** — exporting a `layout: landing` page now writes `<name>.html` right next to the source Markdown (sharing the project's `assets/` folder), instead of bundling a self-contained `<name>_site/` folder. Cleaner for multi-page sites that share one theme.

## Version 1.2.57
 — 2026-06-22

### Added
- **New theme: Alt-Brand-Dark** — A generic dark documentation theme that pairs the Altuit-TOC sidebar/card layout with a neutral, brandable look (charcoal canvas, orange-red accent, restrained teal, Space Grotesk / Jost / Hanken Grotesk / IBM Plex Mono). No logos or product branding — drop in any Markdown and it exports as a clean themed webpage with a table-of-contents sidebar and light/dark toggle.

### Changed
- **TOC-layout themes are now opt-in via metadata** — A theme can request the table-of-contents export layout (header + sidebar + card) by adding `@layout toc` to its CSS header, instead of relying on a hardcoded `altuit-toc` name check. Existing Altuit-TOC themes are unaffected.

## Version 1.2.56
 — 2026-06-18

### Added
- **Link between documents in the same folder** — You can now link from one `.md` file to another sibling document. Right-click a `.md` file in the DIR tab and choose **Add as local link** to drop in a link (labeled with the target document's first heading); clicking such a link in the preview opens that document in a tab, and a `file.md#heading` link also scrolls to that heading.
- **Document links survive publishing** — Export to Browser now rewrites same-folder `.md` links to the matching `.html` files (keeping any `#heading`), so your published pages link to each other. If you export a document whose linked targets haven't been published yet, MD DOCS warns you which ones still need exporting so you don't ship dead links.

### Changed
- **User manual** — Added a "Linking Between Documents" section covering local document links, the DIR-tab right-click action, in-preview navigation, and publishing a linked set.

## Version 1.2.55
 — 2026-06-17

### Fixed
- **Theme headings show their accent color in the preview again** — In the Altuit-TOC and Altuit-TOC-LG themes, H1/H2/H3 now render in orange in the in-app preview regardless of the app's light/dark UI setting. (The black-heading rule was only ever meant for the light-mode browser export and was leaking into the preview.)
- **Switching preview themes no longer changes the app's font** — A theme's styles are now confined to the preview pane, so picking a different theme no longer alters the toolbar/editor font, link colors, or scrollbars. Browser export is unaffected.

## Version 1.2.54
 — 2026-06-17

### Fixed
- **Scroll sync survives Marp documents** — Opening a Marp slide deck no longer breaks synchronized scrolling for your other open Markdown tabs. (Sync is intentionally inactive on a Marp deck itself, since slides aren't line-mapped — but switching back to a normal document now keeps sync working, with no need to toggle the lock off and on.)

## Version 1.2.53
 — 2026-06-17

### Added
- **Marp decks are navigable on touch screens** — In an exported presentation, tap (or click) the right half of a slide to go forward and the left half to go back, so phones and tablets can drive a deck without a keyboard. The Exit button still exits, and tap delay/double-tap zoom are suppressed for instant response.

### Fixed
- **No welcome-screen flash when opening a file** — Double-clicking a `.md` file (or opening one via file association) now goes straight to the document instead of briefly showing the clickable welcome screen over the loading file. The document also appears immediately rather than after a fixed delay, and the welcome screen only reappears if the file can't be opened.

### Changed
- **Documentation refresh** — Updated the user manual: refreshed the Preferences screenshot to include the App Theme row (callouts renumbered), added Welcome-screen, Mermaid, and Marp example images, and corrected the web theme count to 10.

## Version 1.2.52
 — 2026-06-16

### Changed
- **Updated app icon artwork** — Refreshed the MD DOCS logo again with the latest "MD" design, regenerated for every platform (Windows `.ico`, macOS `.icns`, and PNG) with transparent rounded corners.

## Version 1.2.51
 — 2026-06-16

### Changed
- **New app icon** — Refreshed the MD DOCS logo (the orange "MD" code-card) and regenerated the app icon for every platform — the Windows icon (`.ico`), macOS icon (`.icns`), and PNG. The icon now has transparent rounded corners so it no longer shows as a hard square.

## Version 1.2.50
 — 2026-06-16

### Changed
- **User manual brought up to date** — The manual now documents *Insert CSV as Table* (import a `.csv`/`.tsv` file or paste clipboard data to drop in a clean markdown table), *double-click a word in the preview to jump to its source* in the editor, and the *App Theme* preference (System/Dark/Light/Third) that styles the application chrome. The manual's version stamp was also corrected to match the current build.

## Version 1.2.49
 — 2026-06-15

### Changed
- **Cleaner bundled MCP config** — The download now includes an `.mcp.json.template` (a clean, customizable Model Context Protocol config) instead of a developer-machine config, so connecting Claude Code to MD DOCS just needs your install path filled in. Build/publish docs also document stopping the app safely without disconnecting the MD DOCS MCP server.

## Version 1.2.48
 — 2026-06-14

### Fixed
- **Save As via automation now collects images** — When a document is saved to a new location through the MCP bridge (e.g. the publishing workflow), referenced images — including SVGs — are now copied and consolidated into the destination's image folder with their links rewritten, exactly like the in-app Save As. Previously the automated path wrote only the text, leaving broken image references.

## Version 1.2.47
 — 2026-06-14

### Added
- **Toolbar test coverage** — Added tests for the main toolbar (new/open/save/save-as/refresh enablement, recent-files menu, layout cycling), the markdown formatting toolbar (bold/heading/table/link inserts, overflow menu, line-numbers toggle), and the left sidebar (TOC generation, file tabs, DIR tree). The suite is now 423 tests and overall line coverage is ~22%.

## Version 1.2.46
 — 2026-06-14

### Added
- **More component test coverage** — Added tests for the log viewer, file tree (open/expand/context-menu), and preferences modal (save/cancel/reset/browse). The suite is now 399 tests and overall line coverage is ~17%.

## Version 1.2.45
 — 2026-06-14

### Added
- **Component test coverage** — Added a React component test layer (Vitest + jsdom + Testing Library) covering the status bar, tab bar, dialog system, About modal, Welcome modal, and drop zone. The suite is now 380 tests.
- **Coverage reporting** — `npm test -- --coverage` now produces a line/branch/function coverage report (v8), giving a measurable baseline to track over time.

## Version 1.2.44
 — 2026-06-10

### Added
- **Automated test suites** — A unit suite (Vitest, 339 tests) now covers the CSV→table converter, anchor-link slugging, the markdown block parser, frontmatter/Marp detection, the app store, the spell-checker's word extraction, and the main-process security helpers. A new end-to-end suite (Playwright, `npm run test:e2e`) boots the real app and verifies startup, editor content round-trips, panel switching, live preview rendering, and opening a file.

### Changed
- **Hardened security checks** — The main process's HTML sanitizer, external-link protocol check, theme-preference validation, and local-server directory-traversal guard were consolidated into one tested module. The traversal guard is now boundary-aware, so a served folder no longer matches a sibling folder that merely shares its name prefix.

### Fixed
- **Preview HTML could come back empty** — The control bridge's "get preview HTML" / HTML-export paths looked for a preview container that no longer carried the expected marker, so they returned nothing; the preview pane is tagged correctly again.

## Version 1.2.43
 — 2026-06-09

### Changed
- **Altuit-TOC-Sketchnote theme: tighter, cleaner spacing** — Line height is now a consistent 1.2 across body text, headings, paragraphs, lists, and blockquotes. Paragraph and bullet spacing was collapsed so content reads tighter, and the gap between headings and the following paragraph was reduced.
- **Altuit-TOC-Sketchnote theme: bolder dividers** — Heading underlines and horizontal rules are now thicker dashed gray lines for a stronger, more obvious sketchnote look.

## Version 1.2.42
 — 2026-05-30

### Fixed
- **Save As: images with cache-buster URLs skipped** — When the "Consolidate on Save As" pass walked external image refs, it failed to copy any image whose markdown URL carried a `?t=...` (or `#fragment`) suffix. The query string was being treated as part of the on-disk path, so `fileExists` returned false and the image was silently skipped (and even if it had matched, `?` is invalid in a Windows filename). The consolidate loop now strips `?` and `#` before resolving to disk; the new destination ref drops the stale cache-buster.

## Version 1.2.41
 — 2026-05-28

### Added
- **Theme preference (app chrome)** — New Theme picker in Preferences with options *System*, *Dark*, *Light*, and *Third*. The choice is persisted across launches, drives the native title bar and window background, and is applied before the first paint so there's no flash on startup. *Reset to Defaults* restores Dark.
- **Tokenized color system** — Internal refactor: all panel/card/border/text/accent colors now flow through CSS variables and Tailwind tokens (`bg-app`, `bg-panel`, `bg-card`, `border-line`, `text-ink`, `text-accent`, etc.), making future theme variants a single-file change.

### Changed
- **Welcome dialog cleaner header** — Removed the redundant "MD DOCS" heading next to the logo and stacked the *Edit Markdown Easily* tagline below the logo.
- **Updated app logo** — Refreshed `md-docs-logo.png` (now used by the Welcome dialog header).

## Version 1.2.40
 — 2026-05-19

### Added
- **Insert CSV as Table** — Two new commands in the toolbar's More menu: *Insert CSV from File...* opens a file dialog (`.csv` / `.tsv` / `.txt`) and inserts a markdown table at the cursor; *Insert CSV from Clipboard* does the same from clipboard text. Handles RFC 4180 quoting (embedded commas, quotes, and newlines), auto-detects comma-vs-tab delimiters, and escapes pipes/newlines so the table renders cleanly.
- **Double-click preview → jump to source** — Double-clicking any word in the preview now scrolls the editor to that word, selects it, and briefly flashes the line in blue. Uses the existing block-level source map plus within-block occurrence counting to disambiguate when the same word appears multiple times in one block.

## Version 1.2.39
 — 2026-05-18

### Added
- **In-document anchor links** — Every heading now automatically gets a stable slug ID (GitHub-style: lowercase, hyphens, punctuation stripped). Clicking a `[Jump](#heading)` link in the preview smooth-scrolls to that heading. Custom `<a id="..."></a>` anchors are also supported for stable targets that survive heading renames.
- **Link button picker** — With text selected, the toolbar's Link button now opens a dropdown showing every heading in the current document (indented by level) plus any custom anchors. Pick one to insert an in-document link, or paste a URL into the field at the top. Clicking Link with no selection keeps the legacy `[link text](url)` placeholder behavior.
- **Table of contents in the user manual** — Top of `docs/MD-DOCS_manual.md` now has a clickable H1/H2 outline that scrolls to each section.

## Version 1.2.38
 — 2026-04-25

### Fixed
- **Sketchnote blockquote box too tall** — Inner `<p>` margins were inflating the dashed border-left on single-line quotes; zeroed `blockquote > p` margins so the border matches the quote text height.
- **Sketchnote list items smaller than body text** — `<li>` now uses `1.25em / line-height 1.6` to match `<p>`, with nested `<li>` reset to `1em` so deeper levels don't compound larger.

## Version 1.2.37
 — 2026-04-25

### Fixed
- **Rapid Leroy font not rendering in preview** — CSP `font-src` directive in `index.html` was blocking the externally hosted Rapid Leroy font files. Whitelisted `https://www.widgetgadget.com` so the Sketchnote theme can load its custom fonts.

## Version 1.2.36
 — 2026-04-12

### Changed
- **Altuit-TOC-Sketchnote custom font** — Added Rapid Leroy as preferred font family (Regular for body, Bold for headings, Italic for emphasis) with Comic Neue and Fredoka One as fallbacks
- **Sketchnote font weights** — Body text now uses weight 400 (Regular) and headings use weight 700 (Bold)

## Version 1.2.35
 — 2026-04-12

### Fixed
- **Marp background images not displaying** — Marp `![bg]` images use HTML-encoded `url(&quot;...&quot;)` which wasn't matched by the image path resolver; now converts relative paths to `local-image://` absolute URLs for both `<img>` tags and background-image styles
- **Marp slide backgrounds bleeding outside slides** — Marp CSS sets SVG to `width:100vw` (full window) but preview panel is smaller; override with `width:100% !important` to constrain SVGs to the panel

## Version 1.2.33
 — 2026-04-12

### Fixed
- **Altuit-TOC-Sketchnote theme colors** — White/black color scheme with gray body background
- **Altuit-TOC-Light preview colors** — Preview was showing orange headings instead of black

### Changed
- **Image lazy loading** — Off-screen images in preview now use lazy loading to reduce memory pressure
- **Image cache optimization** — Strip cache-buster query strings to enable browser image caching

## Version 1.2.32
 — 2026-04-11

### Changed
- **User manual moved to docs/** — Manual and images relocated from repo root to `docs/` folder
- **Marp documentation added** — User manual now includes full Marp slide presentation section covering frontmatter, directives, themes, math, backgrounds, and export modes
- **Version displayed in manual** — Version number shown under the logo at the top of the manual
- **Altuit-TOC-Light theme listed** — Added missing theme entry to the theme selector documentation

## Version 1.2.31
 — 2026-04-11

### Added
- **Marp slide presentation export modes** — Exported Marp HTML now has Fullscreen (F5) and Window (F6) present modes, plus a scrollable overview
- **Click-to-select starting slide** — Click any slide in scroll mode to select it; presentation starts from that slide
- **Slide selection highlight** — Blue outline on hover and selected slides in exported HTML scroll view

## Version 1.2.30
 — 2026-04-11

### Added
- **Marp slide presentation support** — Documents with `marp: true` frontmatter render as slide decks in the preview pane using @marp-team/marp-core
- **Marp export to HTML** — Export Marp documents as self-contained HTML presentations with keyboard navigation
- **Frontmatter detection** — New `src/utils/frontmatter.js` utility for parsing YAML frontmatter
- **Web version Marp support** — Web editor also renders Marp slides in preview

## Version 1.2.28
 — 2026-04-06

### Added
- **Altuit-TOC-Light theme** — New light variant of the Altuit-TOC theme for both desktop and web

### Fixed
- **Files at drive root wouldn't open** — Opening a file directly on a drive root (e.g., `E:\file.md`) failed because the directory scanner choked on system folders like `$RECYCLE.BIN`
- **Directory scanner resilience** — System folders (`$RECYCLE.BIN`, `System Volume Information`) are now skipped, and permission errors on individual subdirectories no longer abort the entire scan
- **Path utilities used consistently** — File open logic now uses shared `getDirname`/`getFilename` from pathUtils instead of inline string manipulation

### Changed
- **Build docs updated** — `.mcp.json` added to distribution checklist alongside `CHANGES.md`
- **MCP server bundled** — `mcp-server/` directory included as extra resource via forge config
- **Altuit-TOC-Light dark-mode detection** — Both desktop and web correctly treat this theme as light

## Version 1.2.27
 — 2026-03-29

### Added
- **Screenshot capture MCP tool** — New `capture_window` tool captures the full app window as a PNG screenshot for automated documentation workflows
- **UI element query MCP tool** — New `query_ui` tool finds UI elements by text label or CSS selector and returns bounding rectangles for cursor targeting
- **Element rect discovery** — New `get_element_rect` bridge action returns positions of key UI elements (toolbar, tabs, editor, preview, sidebar, status bar)

## Version 1.2.25
 — 2026-02-24

### Changed
- **Updated user manual** — Added documentation for Linux installation, welcome screen, Mermaid diagrams, keyboard shortcuts (Ctrl+N, Ctrl+O, Ctrl+Alt+V), theme tag for browser export, expanded recent files list (now 10), and additional theme listings (Altuit-TOC, Altuit-TOC-LG, Altuit-TOC-Sketchnote)
- **Updated manual images** — Added new screenshots for DocuMark, preferences, MCP architecture, web editor, and theme light tag

## Version 1.2.24
 — 2026-02-22

### Added
- **Linux desktop integration** — Linux builds now include `install.sh`, `README_LINUX.txt`, and the app icon (`md-logo.png`). Running `bash install.sh` sets execute permissions, creates a launcher script, and adds MD DOCS to the application menu with its icon
- **Linux user guide** — `README_LINUX.txt` included in the ZIP with getting started instructions, troubleshooting, and uninstall steps

### Changed
- **Updated build documentation** — Added Linux support file distribution steps (`install.sh`, `README_LINUX.txt`, `md-logo.png`) to BUILD.md

## Version 1.2.23
 — 2026-02-22

### Changed
- **Version number visible on mobile** — The app version in the web editor toolbar is now shown on all screen sizes, not just desktop
- **Updated build documentation** — Clarified macOS build output, added Linux distribution-from-Windows instructions, updated resource folder references to include docubot
- **Updated DocuMark README** — Instructions now cover rects, resizing, double-click renaming, and PNG export

## Version 1.2.22
 — 2026-02-21

### DocuMark Improvements
- **Drag-to-move rects** — Click and drag any annotation rectangle to reposition it on the image. Rects are clamped to stay within image bounds.
- **Resize rects** — A small handle appears at the bottom-right corner of each rect. Drag it to resize the rectangle (minimum 20×20px). The resize cursor changes to indicate the handle.

## Version 1.2.21
 — 2026-02-19

### Fixed
- **Mobile hamburger menu positioning** in web editor

## Version 1.2.20
 — 2026-02-18

### Added
- **YouTube playback in web preview** — Clicking a YouTube thumbnail in the preview panel now replaces it with an embedded player (with autoplay)
- **Version number in web toolbar** — App version displayed in the header next to "MD DOCS", sourced from `web/package.json` via Vite define

## Version 1.2.19
 — 2026-02-18

### Fixed
- **Web preview theme colors** — Preview panel now applies the correct background and text colors from each theme's metadata, fixing invisible headings when using light themes on the dark app shell
- **Web deployment path fix** — Asset paths changed from absolute (`/assets/...`) to relative (`./assets/...`) so the app works when hosted in any subdirectory, not just the server root

## Version 1.2.18
 — 2026-02-18

### Added
- **MD DOCS Web** — Lightweight web version of the markdown editor, deployable to any static server. Features: CodeMirror 6 editor, live preview with markdown-it, 9 preview themes, Mermaid diagram support, YouTube embeds, file open/save, open from URL, responsive layout (mobile/tablet/desktop), localStorage persistence

## Version 1.2.17
 — 2026-02-18

### Added
- **Line Numbers toggle** — New option in the three-dot toolbar menu to show/hide editor line numbers, persisted across sessions

### Changed
- **Vite dev server** — `strictPort` set to `false` so the dev server auto-increments port if 5174 is already in use
- **Build docs** — Updated Windows and Linux distribution steps with versioned ZIP commands

## Version 1.2.16
 — 2026-02-18

### Added
- **MCP dismiss_modal tool** — Programmatically dismiss the welcome screen and log viewer modals that block MCP automation
- **MCP set_theme / list_themes tools** — Change the HTML preview theme by name or ID, and list all available themes
- **MCP publish tool** — Export the active file to HTML+CSS and open in the browser, same as the "Export to Browser" UI button
- Updated MCP documentation to reflect 33 total tools

## Version 1.2.14
 — 2026-02-16

### Bug Fixes
- **Preview scroll freeze fix** — Fixed preview panel getting permanently stuck with `overflow: hidden` when editing tables. A safety timer now guarantees overflow is restored even when rapid content changes cancel the normal restore path.

### DocuMark Improvements
- **Delete dot auto-renumber** — Deleting an annotation dot now automatically renumbers all remaining dots sequentially
- **Configurable start number** — Inline number input next to the Renumber button lets you set the starting number (e.g., start from 3 → dots become 3, 4, 5, 6)

## Version 1.2.08
 — 2026-02-08

### New Features
- **Bold/Italic keyboard shortcuts** - Ctrl+B (Cmd+B on Mac) toggles **bold** and Ctrl+I (Cmd+I on Mac) toggles *italic* on selected text in the editor

### Bug Fixes
- **Preview panel scroll lock fix** - Fixed preview panel getting permanently stuck with scrolling disabled due to a race condition in the scroll-sync lock/unlock mechanism

## Version 1.2.07
 — 2026-02-08

## Version 1.2.06
 — 2026-02-08

### Bug Fixes
- **Find widget close button fix** - Disabled Monaco tooltip overlays that were blocking clicks on the Find/Replace close (X) button
- **Image preview with query strings** - Fixed broken images in preview when paths contain cache-busting query parameters (e.g., `?t=123`)

### New Features
- **Altuit-TOC-LG theme** - New large-format variant of Altuit-TOC with increased paragraph font size, heavier font weight, and double line-height for improved blog readability
- **Altuit-TOC theme variants** - Any theme with an ID starting with `altuit-toc` now gets full TOC sidebar and export support (not just the original)
- **Flexible [theme: light] tag** - The `[theme:light]` markdown tag now allows optional whitespace after the colon (e.g., `[theme: light]`)

### Documentation
- **Updated user manual** - Added documentation for new Preferences settings: Enable Spell Check and Consolidate Files on Save As

## Version 1.2.03
 — 2026-02-06

### New Features
- **Spell check preference** - New "Enable spell check" checkbox in Preferences (defaults to ON). Toggles red underline spell checking in the editor in real-time.
- **Consolidate files on Save As** - When using Save As, all locally-referenced files (images, links, HTML refs) outside the `_images` folder are automatically copied into the new document's image folder with updated references
- **Consolidation preference** - New "Consolidate files on Save As" checkbox in Preferences (defaults to ON)
- **Filename collision handling** - Duplicate filenames during consolidation are auto-renamed with `_1`, `_2` suffixes
- **Code block awareness** - File references inside fenced code blocks and inline code are excluded from consolidation
- **Same-file Save As detection** - Skips consolidation when saving to the same file (acts as a plain save)

## Version 1.1.88
 — 2026-01-18

### Bug Fixes
- **Initial load scroll sync** - Fixed scroll sync not working on initial document load until panel is resized. Offsets now recompute after Mermaid diagrams render.

## Version 1.1.87
 — 2026-01-18

### Bug Fixes
- **TOC click now syncs preview** - Clicking a heading in the TOC now properly syncs the preview panel to match the editor position
- **Preview scroll stability** - Fixed preview panel jumping to bottom when typing/deleting. Preview is now locked during content re-renders to prevent visible scroll jumps
- **Mermaid render scroll fix** - Scroll position is preserved across Mermaid diagram re-rendering

## Version 1.1.86
 — 2026-01-18

### Bug Fixes
- **Scroll sync timing fix** - Increased content change blocking delay from 300ms to 500ms to ensure preview fully settles before re-enabling scroll sync

## Version 1.1.85
 — 2026-01-18

### Maintenance
- **Fixed Node.js module warnings** - Converted postcss.config.js and tailwind.config.js to CommonJS syntax to eliminate startup warnings

## Version 1.1.84
 — 2026-01-18

### Bug Fixes
- **Split pane scroll sync fix** - Fixed view jumping when typing in the middle of a document. Race condition caused scroll sync to trigger prematurely during rapid keystrokes.

## Version 1.1.83
 — 2026-01-14

### Performance
- **Monaco Editor optimizations** - Disabled cursor animations for improved responsiveness

## Version 1.1.82
 — 2026-01-14

### New Features
- **Welcome screen on startup** - Visual welcome modal with app logo, recent files list, and New/Open buttons
- **Keyboard shortcuts** - Ctrl+N (new file), Ctrl+O (open file), Ctrl+W (close tab)
- **Auto-create Untitled.md** - When closing the last tab, automatically creates a new Untitled document
- **Toolbar wrapping** - Toolbar buttons wrap to second row when panel is narrow instead of scrolling off-screen

### Bug Fixes
- **Image caching fix** - Fixed wrong image showing when drag-dropping images with same filename
- **Duplicate filename handling** - Images with duplicate names are auto-renamed (screenshot-1.png, screenshot-2.png, etc.)
- **Skip copy for existing images** - Images already in the _images folder are referenced directly without copying

### Build & Documentation
- **Linux AppImage support** - Added AppImage maker for Linux builds (requires building on Linux)
- **macOS xattr fix** - Updated quarantine removal command in BUILD.md
- **README_LINUX.txt** - Added instructions file for Linux portable distribution

## Version 1.1.79
 — 2026-01-13

### Bug Fixes
- **Recent files not updating** - Fixed saved files not appearing in recent files list
- **Recent files list expanded** - Increased from 5 to 10 items

## Version 1.1.78
 — 2026-01-13

### New Features
- **Theme option for Altuit-TOC** - Add `[theme:light]` in markdown to default browser export to light theme

### Bug Fixes
- **Performance fix for large files** - Skip long lines (>5000 chars) and base64 data in spell checker
- **Skip mermaid regex for non-mermaid files** - Prevents hang with large embedded images

## Version 1.1.77
 — 2026-01-13

### Bug Fixes
- **Performance fix for large files** - Skip expensive mermaid regex when no mermaid content present (fixes hang with large base64 images)

## Version 1.1.76
 — 2026-01-13

### New Features

#### Mermaid Diagram Support
- **md_include.html mermaid support** - External template now renders mermaid diagrams with theme-aware colors

## Version 1.1.75
 — 2026-01-13

### New Features

#### Mermaid Diagram Support
- **Mermaid diagrams in preview** - Render flowcharts, sequence diagrams, etc. in the preview panel
- **Mermaid diagrams in browser export** - All themes support mermaid rendering
- **Mermaid toolbar button** - Wrap selected text in mermaid code block (dropdown menu)
- **Auto-convert `\n` to `<br>`** - Line breaks in mermaid nodes work automatically
- **Theme-aware mermaid colors** - Diagrams automatically use dark/light colors based on selected theme
- **Altuit-TOC theme toggle** - Mermaid diagrams re-render with correct colors when toggling theme

#### Image Handling
- **Image drag/drop support** - Drag images from File Explorer directly into the editor
- **Save As copies image folder** - When using Save As, the `{filename}_images` folder is automatically copied to the new location
- **Image folder renaming** - If filename changes during Save As, image folder is renamed and all markdown references are updated
- **Paste image from clipboard** (Ctrl+Shift+V) - Paste screenshots directly, prompts for filename
- **Image picker dialog** - Add images via toolbar button with file browser
- **Right-click "Insert in Document"** - Insert images from Files panel into editor

#### Editor Improvements
- **Find/Replace paste fix** - Paste now works correctly in Find/Replace dialog input boxes
- **Find/Replace tooltips** - Added tooltips to Replace, Replace All, and toggle buttons
- **Strip formatting on paste** - Pasting text strips HTML/RTF formatting, pastes plain text only
- **Paste as Markdown** (Ctrl+Alt+V) - Converts HTML/RTF clipboard content to Markdown
- **Highlight button** - Toolbar button for ==highlighted text==
- **Clear formatting button** - Remove markdown formatting from selected text
- **H1/H2/H3 buttons** - Insert heading markers at cursor

#### Multi-Tab Support
- **Tabbed document editing** - Open multiple markdown files in tabs
- **Tab state preservation** - Scroll position and cursor preserved when switching tabs
- **Files tab** - Shows list of open documents in left sidebar
- **Unsaved changes detection** - Prompt to save when closing dirty tabs

#### Preview & Export
- **Panel mode toggle** - Show/hide editor or preview panels independently
- **Browser preview** - Preview in external browser with full styling
- **HTML export** - Export to standalone HTML file
- **YouTube embeds** - Click thumbnail to play in browser export
- **Collapsible TOC** - Table of contents with expand/collapse all toggle
- **TOC click navigation** - Click heading in TOC to scroll to that section
- **TOC drag feedback** - Status bar shows feedback when dragging TOC headings, explains when no valid drop targets exist

#### Themes
- **Altuit-TOC theme** - Responsive collapsible TOC for browser export
- **Multiple preview themes** - Modern Dark (default), plus several light/dark options
- **Theme file system** - Themes stored as CSS files in public/themes/

#### Spell Checking
- **US English spell check** - Powered by typo-js
- **Custom dictionary** - Add words to personal dictionary
- **Ignore spelling** - Right-click to ignore individual words
- **Red wavy underlines** - Visual indicator for misspelled words

#### Local Server
- **Built-in web server** - Serve current folder for testing
- **Shift+click toggle** - Start/stop server from toolbar
- **Directory listing** - Browse files with sort options

#### File Management
- **Recent files menu** - Quick access to recently opened files
- **Folder browser** - Independent file tree in left panel
- **File associations** - Double-click .md files to open in MD DOCS (installer version)
- **Refresh file** (F5) - Reload current file from disk

### Platform Support
- **Linux builds** - Portable ZIP for Linux x64
- **macOS development** - Dev mode works on macOS
- **Cross-platform menus** - Menu bar on macOS/Linux, hidden on Windows

### Bug Fixes
- Fix local-image:// protocol for paths with spaces
- Fix scroll jumping while typing with multiple tabs
- Fix Save button for new untitled documents
- Fix Monaco editor resize and scrollbar issues
- Fix electron-store packaging for portable builds
- Fix browser image paths in HTML export
- Fix list rendering with explicit bullet/number styles
- Fix table styling in all themes

### Security
- DOMPurify for HTML sanitization
- Proper encoding for file paths with special characters
- Fixed XSS vulnerabilities in preview rendering

---

## Version 1.1.6 (Previous Build)

Base version with core markdown editing functionality.
