Unreleased
Added
- Plugin marketplace (client): Plugins > Browse lists the plugin registry with search, tag filters and sort (name, newest, downloads). Clicking a plugin opens a plugin page as a tab in the editor area (like an extension page): header with icon, name, publisher, version and the actions Install, Update, Disable/Enable and Uninstall; tabs Details (readme, rendered safely), Features (commands, settings, agent tools, formats, editors, toolbars), Permissions (plain language, with what each line means), Changelog and Versions (history, withdrawn versions, Install this version); a facts column with repository link, licence, size, last updated, id, type and minimum Manang. The Plugins sidebar is now a compact list with Installed and Browse tabs; an updates badge sits on the Plugins icon and "N updates available" with Update all on Installed, each update with its own consent (and a New mark when the permissions grew). Nothing installs without the consent window.
manang-registry(new crate, web-capable): fetchesindex.jsonandindex.json.sig, verifies the ed25519 signature over the exact bytes against embedded public keys (registry-keys, placeholder until the key is set), validates the index (schema 1, size and count limits; schema 2 gets a clear "update Manang" message), caches the last verified copy with its ETag (served offline with its date; a 304 costs nothing), and downloads archives with size and SHA-256 checks. The HTTP part is behind aTransporttrait; the defaultnativefeature uses ureq on rustls/ring.MANANG_REGISTRY_URL(build time, https only) and theplugins.registry-urlsetting choose the registry;plugins.browseand a policy gate switch it off.- Registry install and update checks:
plugins.browse,plugins.detail,plugins.install-from-registry,plugins.check-updates,plugins.registry-status,plugins.cancel-install,plugins.configure, andplugins.install-progress/plugins.updatesevents. The archive's own manifest must ask for exactly the permissions the signed index listed or nothing is installed; the source (registry, id, version) is recorded inplugins.toml. Updates are looked for when the view opens and at most once a day, never installed. See ADR 0016 anddocs/user/plugins.md. - Optional built-in LaTeX engine (consented download): with no TeX installed, the preview, Problems, Output and Settings > LaTeX offer "Download the built-in engine (about 14 MB)". A consent window names the server, size, SHA-256, install folder and the package server; progress has Cancel; the download resumes after a drop, is checked against a size and SHA-256 embedded in the app (
engines/manifest.json), is started once to prove it runs, and is installed atomically. Backendautouses system TeX first, then the installed engine, and the compile report says which ran. New commandslatex.engine-status,latex.engine-install,latex.engine-cancel,latex.engine-remove, thelatex.engine-progressevent, thelatex.fetch-packagessetting, arelease-engineCI workflow anddocs/ops/engine-release.md. The engine stays a separate process, never linked into the app. - Send feedback and Report a problem: Help > Send feedback opens a dialog with a message field and a diagnostics report (versions, plugins, the end of the log, home folders and key-like strings removed) that the person reads and copies; nothing is sent by Manang. About now shows the real version, commit, channel and system, and what is new from this changelog.
- Self-healing fixes: the new
manang-healplugin offers deterministic one-click fixes for small compile errors (a missing\usepackage, TikZ library,\end{document}, unbalanced braces; Typst@previewimports, keyword slips and unclosed delimiters; Markdown unclosed fences and table rows). A Fix button on Problems rows, an editor quick fix (Ctrl+.), Fix all as one undoable edit, an Undo notice that also reports a fix that did not help, andheal.enabled/heal.auto-applysettings. Seedocs/user/fixing-errors.md. - Visual editor (Markdown and Typst): an opt-in Source | Visual switch (
Ctrl+Alt+V, View > Visual editor;Ctrl+Shift+Vwas already taken by Cycle preview) shows headings, bold, italic, code, strike, links, lists, quotes, rules, front matter, formulas and images formatted over the real text, with the markers shown while the caret touches them and a formatting toolbar (bold, italic, code, strike, heading level, lists, quote, link, image or figure, formula, rule) whose every button is one undoable edit. Typst#set/#show/#let/#importstay as styled source. Copy gives the plain source. Works in live sessions. The neweditor.visual-defaultsetting lists the file types that open in Visual (empty by default). The extension is its own chunk, loaded on first use. Seedocs/user/visual-editor.mdand ADR 0015. - Visual editor foundation (Rust side):
manang-visual(adapter traits, a frozen binary span-table wire format, stateful session host with incremental updates, UTF-16 offsets, wasm32-capable), Markdown and Typst format adapters with toolbar edit plans (bold, italic, code, strike, heading, list, quote, link, image, figure, math, rule), the first-partyvisualplugin (visual.open/edit/blocks/outline/command-state/run-commandplus toolbar commands; span tables cross IPC as raw bytes), and theformat-adapters,editorsandtoolbarsmanifest contribution points with kernel registries andplugins.contributions. Keystroke p99 on a 1 MB document is 0.4 ms (Markdown) and 4.2 ms (Typst). See ADR 0015 anddocs/plugins.md. - Vector Figure Studio: In-house typed SVG scene graph (v2) supporting freehand ink (
perfect-freehand), geometric shapes (Rect, Ellipse, Diamond, Line), bound arrows with auto-snapping to shape anchors, container frames, selection scaling, and deterministic headless SVG export. - Mathematical Formulas in Figures: Dedicated Typst and LaTeX formula nodes in the Figure Studio with docked properties and custom color palette.
- Text Diagram Support: Integrated compilers for Mermaid (
.mmd), Pikchr, and ASCII art (svgbob) generating standalone SVGs; automatic diagram rendering in Markdown code fences. - Multi-Document Text Editor: CodeMirror 6 editor powered by
manang-buffer(ropey::Rope) with coordinate mapping, line indexing, and bounded transaction undo/redo history. - Multi-Engine Compilation & Live Preview: Incremental compilation and live streaming SVG preview for Typst, LaTeX (via system TeX or optional worker), and Markdown.
- Bidirectional SyncTeX Navigation: Double-click or
Ctrl-click (Cmd-click on macOS) in the preview jumps directly to the matching source line;Ctrl+Alt+J(Cmd+Alt+J) jumps forward from editor to preview. - PDF Preview Viewer: Native PDF viewer with text layer selection and copy (
Ctrl+C), find bar (Ctrl+F) with match counter, zoom presets and continuous wheel zoom, page box navigation, dark pages mode, and outline navigation. - Version History & Snapshots: "Save a version" (
Ctrl+Alt+S), commit history timeline, split and unified diffs, author identity setup, and dirty/clean file restoration. - Recoverable Home Trash: Safe project deletion via
project.trash,project.restore,project.purge(remove from list or move to OS trash), andproject.empty-trashalongside a dedicated Trash section in the Home sidebar. - Starter Templates Library: 11 built-in templates across Typst, LaTeX, and Markdown with
template.tomlmanifests and offline compilation verification. - Welcome Onboarding Template: Interactive onboarding starter project (
templates/welcome/) featuringmain.typ, modular chapter includes, bibliography, hand-crafted SVG illustration, Mermaid flowchart, and companion Markdown notes. - Plugin Manager & Plugins View: Plugin lifecycle management (
Ctrl+Shift+X) supporting installation from local directory or.manangpluginzip archive, capability consent auditing, enable/disable toggling, and uninstallation to trash. - Search & Replace Panel: Multi-mode search featuring fuzzy file name search (
search.files), regex and literal text content search with glob filters, line highlighting, and atomic replace preview/apply. - Source Control Panel: Git integration supporting staged/unstaged file groupings, unified/split diffs, commit with amend, branch switching, and remote repository sync.
- References & Citations Panel: Automated indexing of BibTeX and CSL-JSON bibliographies, ranked search, APA and numeric/IEEE citation formatting, cursor insertion, and online verification against Crossref, OpenAlex, and arXiv.
- Application Menu Bar: Standard desktop menu bar (File, Edit, View, Go, Build, Help) with
Alt+lettermnemonics,F10keyboard focusing, responsive narrow-window folding, and customizable keybindings in Settings. - AI Agent Foundations:
manang-agent-coreorchestration types, policy gates, OS keychain credential storage (manang-keystore), Anthropic and OpenAI-compatible streaming clients (DeepSeek preset), and Rig adapter evaluation. - Agent v2 (minimal, calm assistant): one constant system prompt (snapshot-tested, cache-stable) and eight tools with plain-text results capped at about 6,000 tokens (
list_files,read_file,search,outline,diagnostics,bib_search,edit_text,ask_user) plusverify_citationfrom the citations plugin; figure tools only inside the figure studio.edit_texttakes exact search/replace pairs that the host locates and validates (unique match with a closest-line hint, balanced braces and environments, citation keys that exist), a pending-proposal overlay so later reads and edits see earlier proposals, anddiagnosticswithwith_pendingthat compiles a Typst scratch copy (typst.check, the preview is untouched). Slash commands (/rewrite,/shorten,/translate,/explain,/fix,/cite, plus.manang/commands/*.md), a once-per-chat project header,MANANG.mdproject instructions, per-message selection and@mentions, stage 1 (clear old tool results at 60%) and stage 2 (summarise at 85%) context compaction inmanang-agent-core, DeepSeekreasoning_effortfixed per chat, and a nineteen-task golden eval suite (scripted in CI, live withMANANG_EVAL_LIVE=1). - Realistic Offline Test Corpus: 12 offline test projects under
testdata/corpus/covering Typst, LaTeX, and Markdown with an automated compiler test harness enforcing < 5.0 s compile SLA. - User Documentation: 10-page non-developer user guide under
docs/user/and complete menus reference. - Beta Documentation & Issue Forms: Tester guide (
docs/beta/tester-guide.md), living known issues list (docs/beta/known-issues.md), release notes template (docs/beta/release-notes-template.md), and GitHub issue forms (bug_report.yml,feature_request.yml,beta_feedback.yml). - Contributing Guide & Architecture Map: Comprehensive
CONTRIBUTING.mdwith build instructions, port conventions, quality gates, and an exhaustive map of all crates and frontend directories.
Changed
- Agent panel is calmer: one composer (Enter sends,
/commands,@mentions) with one quiet context line instead of a chip tray; consecutive tool calls fold into one row; reasoning is a single "Thinking" line; a proposal is one row ("Edit to main.typ, 2 changes") while the diff lives in the editor; the usage footer, chips, cards and preview button moved into one header menu. Events are consolidated toagent.text,agent.tool,agent.approval,agent.proposal,agent.usage,agent.errorandagent.done. - Agent settings:
agent.max-context-tokensbecameagent.context-window(default 100,000); addedagent.reasoning-effortandagent.use-agents-md;agent.include-thinkingis now a developer flag. The round cap per message is 12. - Minimum Supported Rust Version (MSRV): Elevated workspace MSRV to Rust 1.95 (
edition = "2024"). - Cargo Profiles: Optimized dependency compilation in dev profile (
opt-level = 3for external crates,opt-level = 1for local crates) to maintain realistic preview performance. - Light Theme Contrast Calibration: Calibrated light theme accent token to
color-mix(in srgb, #c6f135 35%, #1c1c1c)(#586725), achieving $\ge 5.02:1$ contrast ratio meeting WCAG 2.1 AA requirements. - Project Deletion Behavior: Converted immediate irreversible project removal into a recoverable two-step trash workflow.
Removed
- Agent v1 prompts and tools: the per-feature system prompts and
Featuremodes, per-feature tool filtering, the seven context chip kinds, pinned notes, the<manang_context>envelope, thedoc_read,doc_outline,doc_diagnostics,doc_propose_editandproject_searchtools, and offset-based edit proposals.
Fixed
- Linux Wayland + NVIDIA Stutter: Automatically set
WEBKIT_DISABLE_DMABUF_RENDERER=1at startup to eliminate WebKitGTK DMABUF rendering glitches under NVIDIA Wayland sessions. - SVG Float Jitter: Replaced floating-point output drift with stable 1-decimal coordinate formatting (
format_coord) in headless figure export. - Project Scaffolding Escaping: Added escaping for special characters in project titles to prevent markup parse failures during scaffolding in Typst and LaTeX.