Skip to content

hazakura editor v0.11.0 Warning-expected DMG Preview

Pre-release
Pre-release

Choose a tag to compare

@lero003 lero003 released this 04 Jun 23:38
· 354 commits to main since this release

hazakura 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.dmg

Platform:

macOS Apple Silicon / aarch64

SHA-256:

09194d22ed6a61164fbf72b7a1b17301e530bca289f42a104d3bb6c4305767e8

Checksum file:

hazakura-editor_0.11.0_aarch64-warning-expected.dmg.sha256

Verify 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.sha256

Known 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.dmg

The 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.dmg

The 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+L and 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 typecheck
  • npm test — 188 tests passed
  • cargo fmt --manifest-path src-tauri/Cargo.toml -- --check
  • cargo test --manifest-path src-tauri/Cargo.toml — 178 tests passed
  • npm run build:vite
  • npm run build
  • git diff --check
  • npm audit — 0 vulnerabilities
  • cargo audit --file src-tauri/Cargo.lock — exit 0 with already-allowed Tauri/Linux GTK and unic warnings
  • npm run build:dmg-preview
  • shasum -c hazakura-editor_0.11.0_aarch64-warning-expected.dmg.sha256
  • hdiutil verify hazakura-editor_0.11.0_aarch64-warning-expected.dmg
  • built-app and mounted-app metadata checks for version 0.11.0, bundle identifier lab.hazakura.note, product name hazakura editor, and executable hazakura-editor
  • codesign --verify --deep --strict --verbose=2 on the built and mounted apps
  • spctl -a -vv -t open rejected the ad-hoc signed app with source=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+L entered 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.md after switching to other.md, marked smoke.md dirty without auto-saving, and persisted only smoke.md after 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 AXScrollToVisible but not AXScrollDown
  • 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-preview CSS, print CSS, inlined workspace image data, and the rendered document body; Print to PDF generated hazakura-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 existing open_workspace_image validation 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.