hazakura editor v0.11.0 Warning-expected DMG Preview
Pre-releasehazakura editor 0.11.0 Warning-expected DMG Preview
L Mode WYSIWYG-tier Polish
v0.11.0 turns えるモード / L Mode from an alpha focus surface into a more deliberate WYSIWYG-tier writing surface. The saved model remains Markdown, but the editing view now aims for a custom writing-app feel: magazine-style typography, rendered inline emphasis, quieter block structure, task checkbox widgets, image figures, table treatment, typewriter mode, and stable no-shift source-marker handling.
This release also adds practical safety polish around authoring and recovery: auto-backup restore through an explicit diff/apply flow, hash-based pasted-image deduplication, HTML export CSS parity with Preview, and bounded workspace path rekey behavior for rename/move cases.
This is a warning-expected macOS DMG preview. The app is ad-hoc signed and not notarized, so Gatekeeper warnings are expected.
Only use this preview if you are comfortable evaluating unsigned and not-notarized macOS preview binaries.
What Changed Since 0.10.0
えるモード / L Mode WYSIWYG-tier Polish
- Moves L Mode toward a document-like writing surface while keeping Markdown source as the saved truth.
- Renders emphasis, strong, strike, links, inline code, task checkboxes, horizontal rules, tables, blockquotes, code blocks, ordered/bullet lists, and images with display-only CodeMirror decorations.
- Adds magazine-feel typography: serif body text, stronger heading hierarchy, centered first H1, quieter H2/H3 rhythm, constrained reading width, and soft paper treatment.
- Keeps Markdown markers hidden without horizontal layout shift; active structural context appears as margin chips instead of reflowing prose.
- Adds optional typewriter mode that keeps the active line vertically centered.
- Adds a compact L Mode action rail for returning to workspace view and reviewing unsaved changes without mixing commands into status text.
- Adds a native View menu toggle for L Mode.
Authoring, Export, And Recovery
- Adds auto-backup restore UI: list backups for the active file, compare a selected backup against the live buffer, then explicitly apply the selected backup without saving to disk.
- Keeps backup application scoped to the compared document path, so switching tabs after opening the diff cannot restore into the wrong tab.
- Exits L Mode when a backup is selected for review, so the backup-vs-buffer Compare pane is visible before Apply.
- Uses hash-based pasted-image names so repeated pastes of the same image reuse the existing asset.
- Aligns Export HTML and Print to PDF styling with the live Markdown Preview CSS.
- Improves workspace rename/move path rekey behavior for tabs, drafts, recents, compare anchors, and backup directories.
- Adds a clear affordance for file-compare source/target selection.
- Expands save dialog filters for common text extensions.
Boundary And Release Posture
- Keeps the Safe Editor / Agent Workbench / Review Desk boundaries unchanged from v0.10.0.
- Keeps L Mode as CodeMirror display decoration, not Preview DOM editing,
contenteditable, AI generation, or automatic formatting. - Keeps auto-backup restore manual: compare explicitly, apply explicitly, save explicitly.
- Defers Apple Local Assist / Foundation Models product behavior to a later lane.
Boundary
v0.11.0 does not add:
- Git integration, merge editing, staging, commit, push, pull, or repository status.
- LSP, debugger, plugin system, package-manager UI, or broad project-wide indexing.
- General shell prompt, arbitrary command input UI, arbitrary path input UI, provider-add UI, or arbitrary provider configuration.
- Agent auto-apply, auto-commit, auto-push, session restore, multiple sessions, background agent execution, or persistent terminal history.
- Foundation Models-backed behavior, Apple Local Assist behavior, generic chat, automatic candidate generation, or automatic file application.
- Full structural WYSIWYG editing, direct Preview DOM editing, visual table editing, Mermaid/math/image-layout editing, irreversible Markdown conversion, or save-time auto-formatting.
- Developer ID signing, notarization, installer packaging, updater, or distribution-grade Gatekeeper approval.
Artifact
hazakura-editor_0.11.0_aarch64-warning-expected.dmgPlatform:
macOS Apple Silicon / aarch64SHA-256:
09194d22ed6a61164fbf72b7a1b17301e530bca289f42a104d3bb6c4305767e8Checksum file:
hazakura-editor_0.11.0_aarch64-warning-expected.dmg.sha256Verify The Download
Download both the .dmg and .dmg.sha256 assets into the same directory, then run:
shasum -c hazakura-editor_0.11.0_aarch64-warning-expected.dmg.sha256Known Limitations
- L Mode is WYSIWYG-tier presentation, not structural WYSIWYG editing. Markdown source remains the truth, and toggling L Mode off remains the source-inspection escape hatch.
- Auto-backup restore applies to the in-memory buffer and marks the tab dirty; saving remains explicit.
- Workspace-internal drag/drop Move remains experimental; use New File, New Folder, Rename, and Move to Trash as the dependable bounded workspace operations in this preview.
- Agent Workbench provider behavior remains outside hazakura's safety boundary.
- The JavaScript bundle remains large; code splitting is still a future hardening task.
- The bundled macOS binary is ad-hoc signed only and is not Developer ID signed or notarized.
Local Verification Before Publication
Required gates to rerun before publishing this preview:
npm run typecheck
npm test
cargo fmt --manifest-path src-tauri/Cargo.toml -- --check
cargo test --manifest-path src-tauri/Cargo.toml
npm run build:vite
npm run build
git diff --check
npm audit
cargo audit --file src-tauri/Cargo.lock
npm run build:dmg-preview
cd src-tauri/target/release/bundle/dmg
shasum -c hazakura-editor_0.11.0_aarch64-warning-expected.dmg.sha256
hdiutil verify hazakura-editor_0.11.0_aarch64-warning-expected.dmgThe built and mounted apps must report version 0.11.0, bundle identifier lab.hazakura.note, product name hazakura editor, and executable hazakura-editor.
The built app must still pass:
codesign --verify --deep --strict --verbose=2 "src-tauri/target/release/bundle/macos/hazakura editor.app"Expected warning:
spctl -a -vv -t open "src-tauri/target/release/bundle/macos/hazakura editor.app"The app is expected to be rejected by Gatekeeper with source=Insufficient Context, because this preview is ad-hoc signed and not notarized.
Remote Verification After Publication
After publishing the GitHub Release:
gh release download v0.11.0 -R lero003/hazakura-editor --dir .release-verify/v0.11.0
cd .release-verify/v0.11.0
shasum -c hazakura-editor_0.11.0_aarch64-warning-expected.dmg.sha256
hdiutil verify hazakura-editor_0.11.0_aarch64-warning-expected.dmgThe downloaded assets must pass checksum verification and DMG verification, and the mounted app must report version 0.11.0, bundle identifier lab.hazakura.note, product name hazakura editor, and executable hazakura-editor, with codesign --verify --deep --strict --verbose=2 passing.
Built-app Smoke Focus For v0.11.0
Beyond the v0.10.0 smoke surface, v0.11.0 should confirm:
Cmd+Shift+Land the View menu toggle enter/exit L Mode, and saved Markdown text is unchanged.- Inline emphasis, strong, strike, links, inline code, task checkboxes, HR, table delimiter rows, blockquotes, code blocks, ordered/bullet lists, and images render as document-like display without mutating source.
- The document layout does not shift horizontally as the cursor moves; structural chips appear in the margin only.
- Optional typewriter mode recenters the active line and can be toggled from Preferences.
- L Mode action-rail escape hatches return to workspace view and open change review for dirty buffers.
- Auto-backup restore lists entries for the active file, opens a backup-vs-buffer diff, applies only to the compared document, marks the tab dirty, and still requires Save.
- Export HTML and Print to PDF share the same preview CSS posture.
- The app still respects Safe Editor boundaries: no Git UI, no terminal prompt in Safe Editor Mode, no arbitrary command/path fields, and no auto-apply.
Built-app Smoke Result
Local release-candidate verification passed on 2026-06-05:
npm run typechecknpm test— 188 tests passedcargo fmt --manifest-path src-tauri/Cargo.toml -- --checkcargo test --manifest-path src-tauri/Cargo.toml— 178 tests passednpm run build:vitenpm run buildgit diff --checknpm audit— 0 vulnerabilitiescargo audit --file src-tauri/Cargo.lock— exit 0 with already-allowed Tauri/Linux GTK andunicwarningsnpm run build:dmg-previewshasum -c hazakura-editor_0.11.0_aarch64-warning-expected.dmg.sha256hdiutil verify hazakura-editor_0.11.0_aarch64-warning-expected.dmg- built-app and mounted-app metadata checks for version
0.11.0, bundle identifierlab.hazakura.note, product namehazakura editor, and executablehazakura-editor codesign --verify --deep --strict --verbose=2on the built and mounted appsspctl -a -vv -t openrejected the ad-hoc signed app withsource=Insufficient Context, as expected- built-app launch smoke via
open -n "src-tauri/target/release/bundle/macos/hazakura editor.app", followed by app quit - focused built-app L Mode smoke:
Cmd+Shift+Lentered L Mode on a mixed Markdown document, rendered the visible headings/inline emphasis/link/code, blockquote, tasks, lists, and table as document-like display, and did not mutate saved Markdown source - focused built-app auto-backup restore smoke: command-palette restore listed a scoped backup, opened backup-vs-buffer Compare, exited L Mode to keep Compare visible, applied the backup to the compared
smoke.mdafter switching toother.md, markedsmoke.mddirty without auto-saving, and persisted onlysmoke.mdafter explicit Save - expanded built-app L Mode smoke after action-rail polish: View menu
えるモードentered/exited L Mode, the separated変更を確認andワークスペースへbuttons were exposed as distinct accessibility actions,ワークスペースへexited to normal workspace view, and変更を確認exited L Mode then opened the right-pane disk-vs-editor diff for a dirty buffer - expanded built-app long-document smoke: PageDown/ArrowDown keyboard navigation moved through the long L Mode document without source mutation; real trackpad/mouse-wheel scrolling was separately confirmed by user-operated smoke. Direct mouse-wheel automation could not be used as evidence because the WebView scroll area exposes
AXScrollToVisiblebut notAXScrollDown - expanded built-app Preferences smoke: the Typewriter mode toggle was visible under the L Mode preference and could be toggled from the dialog
- expanded built-app export/print smoke: Export HTML wrote a UTF-8 standalone file with
.markdown-previewCSS, print CSS, inlined workspace image data, and the rendered document body; Print to PDF generatedhazakura-note-print/long-lmode.html, opened Safari's print dialog, and showed a 15-page print preview - README screenshot rendering fix: Markdown preview/export/print now resolve workspace-relative local images such as
docs/images/...through the existingopen_workspace_imagevalidation path, while external and out-of-workspace image references remain blocked - Typewriter mode follow-up: typing now recenters the collapsed caret, while range selection no longer triggers viewport recentering; the L Mode empty-document placeholder now uses localized L Mode copy
Post-fix typewriter smoke on 2026-06-05 verified the L Mode typewriter extension in a real browser CodeMirror fixture loaded from the Vite dev server: moving the collapsed caret to line 90 centered within 0.31px of the viewport center, while the document end stayed bounded by the natural scroll limit. A quick human-operated built-app re-smoke after relaunch is still recommended before publication.
Remote Verification Result
Pending publication. Do not fill this section until GitHub Release assets have been re-downloaded into a fresh temp directory and verified.
Boundary Reminder
Do not treat this as a signed, notarized, trusted, installer-grade, stable, or production-ready distribution.
Older public tags and releases remain immutable.