Skip to content

hazakura editor 0.9.0 Warning-expected DMG Preview

Pre-release
Pre-release

Choose a tag to compare

@lero003 lero003 released this 03 Jun 23:08
· 392 commits to main since this release

hazakura editor 0.9.0 Warning-expected DMG Preview

L Mode Experiment And Product Preview Hardening

v0.9.0 ships the first えるモード / L Mode experiment, bounded workspace file operations, Agent provider-availability polish, and a large structure/test hardening pass.

This release keeps hazakura editor as a Markdown-first Safe Editor. It does not turn the app into a full WYSIWYG editor, IDE, Git client, general terminal, agent platform, or automatic edit-apply system.

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.8.0

えるモード / L Mode

  • Adds an experimental one-pane writing surface for prose-like Markdown editing.
  • Keeps Markdown source as the only saved document model; L Mode uses CodeMirror display decorations and does not mutate saved text.
  • Hides surrounding chrome and reduces file tree, tabs, status details, side panes, Review Desk, and Agent surfaces while L Mode is active.
  • Tunes document width, rhythm, headings, blockquotes, lists, code blocks, and inline image rendering for calmer rereading.
  • Suppresses Markdown marker glyphs outside the active block and reveals the editing context around the cursor.
  • Adds a Preference toggle, Command Palette command, Cmd+Shift+L shortcut, and a quiet visible exit pill.

Workspace File Operations

  • Adds bounded in-app workspace file operations for daily editing:
    • New File / New Folder at workspace root
    • New File Here / New Folder Here from folder context menus
    • inline Rename for file and folder rows
    • Move to Trash with explicit confirmation
  • Keeps operations inside the selected workspace root and rejects outside-root, overwrite, symlink-escape, and missing-parent cases in Rust tests.
  • Rekeys open file tabs, recents, drafts, and compare anchors for exact-path rename / move operations.
  • Preserves tree expansion by reloading affected parents instead of refreshing the whole workspace tree.

Agent Workbench Polish

  • Adds provider availability detection using the same search path as the backend launch gate.
  • Marks missing providers as not installed in Preferences and the detached Agent Window.
  • Disables unavailable provider choices and the detached Agent Window Start button when the selected CLI is missing.
  • Hides the main-window Agent button when Agent Workbench is not available for the current session.

Structure And Test Hardening

  • Splits the app shell controller into named composition hooks while preserving behavior.
  • Splits Tauri, locale, and Rust test surfaces by feature area.
  • Adds focused Vitest coverage for app-shell composers, Agent provider availability, L Mode copy and display behavior, workspace file operations, tab path rekeying, and tab/context interactions.
  • Keeps the Safe Editor / Agent Workbench / Review Desk boundaries unchanged.

Boundary

v0.9.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 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.9.0_aarch64-warning-expected.dmg

Platform:

macOS Apple Silicon / aarch64

SHA-256:

8fffb2284c07b430e9fa76515ae31f8ac8ef9999e6615ce1c22a099795c2b75d

Checksum file:

hazakura-editor_0.9.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.9.0_aarch64-warning-expected.dmg.sha256

Known Limitations

  • This release does not add Git integration, LSP, broad project-wide indexing, arbitrary command execution, auto-apply, or auto-commit behavior.
  • えるモード is an experiment. Markdown source remains the truth, and display bugs should be resolved by returning to normal mode rather than by trusting a visual transformation.
  • Workspace-internal drag/drop Move is implemented but remains experimental; recent built-app feedback says it is still unreliable. Use New File, New Folder, Rename, and Move to Trash as the dependable bounded workspace operations in this preview.
  • Folder descendant rekey is deferred: renaming a folder does not yet rewrite already-open descendant tab paths.
  • Auto-backup path rekey after rename/move is deferred; stale backup entries are not user-visible and remain subject to retention pruning.
  • create_text_file and save_text_file_as still rely on the native dialog path boundary and have not yet been retrofitted to the new workspace-root containment helper.
  • 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 ci
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.9.0_aarch64-warning-expected.dmg.sha256

The built and mounted apps must report version 0.9.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.9.0 -R lero003/hazakura-editor --dir .release-verify/v0.9.0
cd .release-verify/v0.9.0
shasum -c hazakura-editor_0.9.0_aarch64-warning-expected.dmg.sha256
hdiutil verify hazakura-editor_0.9.0_aarch64-warning-expected.dmg

The downloaded assets must pass checksum verification and DMG verification, and the mounted app must report version 0.9.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.9.0

Beyond the v0.8.0 smoke surface, v0.9.0 should confirm:

  • Cmd+Shift+L toggles L Mode, the exit pill exits it, and saved Markdown text is unchanged.
  • L Mode hides surrounding chrome, centers the document, suppresses inactive Markdown markers, reveals the active editing block, and returns cleanly to normal mode.
  • Workspace + creates files/folders at root, folder context menus create files/folders inside that folder, and inline Rename commits/cancels as expected.
  • Move to Trash asks for confirmation and removes the selected file/folder only after explicit confirmation.
  • Missing Agent providers show as not installed and cannot be selected; missing selected providers disable Start in the detached Agent Window.
  • 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 verification passed on 2026-06-04:

  • npm ci
  • npm run typecheck
  • npm test — 123 tests passed
  • cargo fmt --manifest-path src-tauri/Cargo.toml -- --check
  • cargo test --manifest-path src-tauri/Cargo.toml — 160 tests passed
  • npm run build:vite
  • npm run build
  • 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.9.0_aarch64-warning-expected.dmg.sha256
  • hdiutil verify hazakura-editor_0.9.0_aarch64-warning-expected.dmg
  • built-app and mounted-app metadata checks for version 0.9.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
  • git diff --check

Remote Verification Result

Remote release verification passed on 2026-06-04 after publishing the GitHub Release:

  • gh release download v0.9.0 -R lero003/hazakura-editor
  • shasum -c hazakura-editor_0.9.0_aarch64-warning-expected.dmg.sha256
  • hdiutil verify hazakura-editor_0.9.0_aarch64-warning-expected.dmg
  • mounted-app metadata checks for version 0.9.0, bundle identifier lab.hazakura.note, product name hazakura editor, and executable hazakura-editor
  • codesign --verify --deep --strict --verbose=2 on the mounted app

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.