v0.18.0 Warning-expected DMG Preview
Pre-releaseHazakura Editor 0.18.0 Warning-expected DMG Preview
v0.18 UX Polish / App Store-lane Prep Checkpoint
Status: Published as a warning-expected GitHub prerelease on
2026-06-12. Local and remote asset verification passed.
v0.18.0 is a bounded Safe Editor polish checkpoint after the v0.17
App Store-quality closeout. It focuses on release-facing reliability:
workspace restore, direct-open save / image preview behaviour, keyboard
and accessibility risk reduction, version-surface alignment, and
helper-free App Store-lane packaging hygiene.
The release boundary stays unchanged: Markdown source remains
canonical, Safe Editor remains primary, Agent Workbench remains a
separate Developer / GitHub-lane trust boundary, and the App Store lane
does not include arbitrary command execution, Git, LSP, terminal,
plugins, workspace-wide indexing, auto-apply, or auto-commit behavior.
This is a warning-expected macOS DMG preview. The app is ad-hoc signed
and not notarized, so Gatekeeper warnings are expected.
This is not an App Store, TestFlight, Developer ID signed, notarized,
or production-ready distribution.
Download
The Apple Silicon preview asset is:
hazakura-editor-dev_0.18.0_aarch64-warning-expected.dmgIt packages the Developer / GitHub lane bundle:
Hazakura Editor Dev.appThe Developer / GitHub lane keeps Agent Workbench available and uses
bundle identifier lab.hazakura.note.dev. The normal App Store
preview / local build lane remains Hazakura Editor.app with bundle
identifier dev.hazakura.editor.
What Changed Since 0.17.0
Safe Editor Reliability
- Preserves the last good persisted workspace state when a restore
attempt returns an empty live result, so a sandbox-loss / moved-folder
/ missing-file path does not erase the saved workspace root bookmark. - Pins standalone direct-open save behaviour when no workspace is open.
- Keeps the normal atomic temp-file replace path, then falls back to
direct existing-file write only when creating the sibling temp file
fails withPermissionDenied. - Routes directly opened PNG/JPEG/GIF/WebP files to bounded read-only
image preview even when there is no active workspace. - Narrows L Mode table Backspace / Delete behaviour so ordinary
in-cell text selection falls through to CodeMirror, while explicit
whole-row selections still use the row-delete shortcut.
Accessibility And UX Polish
- Renders
MoveToTrashConfirmDialogthrough the shared modal focus
pattern: initial focus lands on Cancel, Tab / Shift+Tab stay inside
the dialog, and Escape cancels the pending trash action. - Keeps encoding-only changes visible through the shared dirty-state
contract and includes encoding in the auto-backup signature. - Renders Markdown preview task checkboxes as inert display-only
glyphs without changing saved Markdown. - Keeps the normal Safe Editor left workspace sidebar collapsible and
restorable without changing the file-tree model or L Mode drawer. - Cleans up WorkspaceTree rename markup so the rename input is not
nested inside a row button.
App Store-lane Prep
- Keeps the helper-free App Store preview packaging shape explicit by
preservingfrontendDist: "../dist"in the App Store configs and
keeping the sandbox entitlement needed by the Tauri / WebKit runtime. - Defines the App Store submission build number separately from the
user-visible version; the v0.18 App Store submit config carries
bundle.macOS.bundleVersion = "4". - Bundles repository-root
LICENSEandTHIRD_PARTY_NOTICES.mdinto
generated macOS app bundles and verifies those resources in the
macOS distribution probe. - Keeps App Store-lane Settings free of Apple Local Assist-specific
preference rows while the Developer / GitHub lane can still expose
those assist controls.
Release Boundary
v0.18.0 does not add:
- App Store or TestFlight submission.
- Apple Developer / App Store signing, provisioning, upload
validation, or review approval. - Developer ID signing, notarization, installer packaging, updater, or
a trusted distribution channel. - New Agent Workbench capability, provider plugins, command execution
beyond the existing explicit Developer / GitHub lane, terminal, LSP,
Git integration, or workspace-wide indexing. - Preview DOM editing,
contenteditable, HTML as the saved canonical
model, hidden save-time rewriting, network fallback, tool calling,
auto-apply, or auto-save.
Known Limitations
- The DMG is Apple Silicon /
aarch64only. - The packaged app is ad-hoc signed only and is not Developer ID signed
or notarized. macOS may show security warnings and may require the
user to explicitly allow opening the app. - VoiceOver tab-bar smoke, full keyboard-only traversal, Help
readability smoke, and Increase Contrast visual smoke still require
real-app human confirmation before App Store submission. - Help copy overlap cleanup and
data:imagesize wording alignment
remain follow-up items indocs/current-work.md. - App Store Connect upload, TestFlight validation, official App Store
signing/provisioning, screenshots, metadata, and final reviewer notes
remain outside this warning-expected Developer / GitHub release lane. - In this release-prep session,
open -non the helper-free App Store
preview bundle failed withRBSRequestErrorDomain Code=5/
Launchd job spawn failed. The Developer / GitHub lane app and the
mounted DMG app both launched successfully. Treat App Store-lane
launch as a separate submission-prep follow-up, not as proven by this
warning-expected DMG release. - Apple Local Assist remains alpha / experimental and depends on macOS
26+ Apple Foundation Models availability, local Apple Intelligence
state, and supported language / locale. - GitHub may report existing moderate dependency notices that require
the current release-readiness triage before publication.
Local Verification Before Publication
Required gates for this warning-expected DMG preview:
npm run test
npm run build:vite
cargo fmt --manifest-path src-tauri/Cargo.toml -- --check
cargo test --manifest-path src-tauri/Cargo.toml -- --test-threads=1
npm run build:apple-assist-helper:live
npm run build:dmg-preview
git diff --check
npm audit
cargo audit --file src-tauri/Cargo.lockThe built normal app must report version 0.18.0, bundle identifier
dev.hazakura.editor, product name Hazakura Editor, and executable
hazakura-editor.
The built Developer / GitHub DMG app must report version 0.18.0,
bundle identifier lab.hazakura.note.dev, product name
Hazakura Editor Dev, and executable hazakura-editor.
The local and mounted apps must pass:
codesign --verify --deep --strict --verbose=2 "<app>"Expected warning for the ad-hoc, not-notarized app:
spctl -a -vv -t open "<app>"Gatekeeper may reject the app with insufficient-context /
not-notarized style output.
Local Verification Result
Passed on 2026-06-12.
npm cipassed; 0 npm vulnerabilities.npm run testpassed after the clean install: 88 files / 739 tests.npm run build:vitepassed with the existing
INEFFECTIVE_DYNAMIC_IMPORTand chunk-size warnings.cargo fmt --manifest-path src-tauri/Cargo.toml -- --checkpassed
after formatting two long lines in an existing security test.cargo test --manifest-path src-tauri/Cargo.toml -- --test-threads=1
passed: 274 tests.npm run build:apple-assist-helper:livepassed; Swift helper build
completed and availability probe returnedavailable.npm run build:dmg-previewpassed. It built both macOS lanes,
generated the Developer / GitHub lane DMG, ranhdiutil verify, and
verified the checksum file.npm run buildpassed after the DMG build, rebuilding the helper-free
App Store preview lane with the expected Vite warnings and ad-hoc
notarization-skip warning.npm auditpassed: 0 vulnerabilities.cargo audit --file src-tauri/Cargo.lockexited 0 with 17 allowed
warnings, primarily existing Tauri / GTK stack warnings,
proc-macro-error,unic-*, andglibunsoundness warnings. No
release-blocking failure was reported by the command.npm outdatedreported newer@types/reactanddompurify
versions. These are freshness signals only and were not folded into
this release.cargo update --manifest-path src-tauri/Cargo.toml --dry-run
reported compatible update candidates and did not update the
lockfile.- Local normal app metadata matched: version
0.18.0, bundle
identifierdev.hazakura.editor, product nameHazakura Editor,
executablehazakura-editor. - Local Developer / GitHub app metadata matched: version
0.18.0,
bundle identifierlab.hazakura.note.dev, product name
Hazakura Editor Dev, executablehazakura-editor. - Local normal and Developer / GitHub apps passed
codesign --verify --deep --strict --verbose=2. spctl -a -vv -t openrejected both local apps with
source=Insufficient Context, the expected ad-hoc / not-notarized
warning-expected result.- Mounted DMG app metadata matched the intended Developer / GitHub
lane and passedcodesign --verify --deep --strict --verbose=2. open -n "src-tauri/target/release/bundle/macos/Hazakura Editor Dev.app"
launched the local Developer / GitHub app;pgrepobserved the
hazakura-editorprocess and the app was quit afterward.- Mounting the DMG and opening
Hazakura Editor Dev.appfrom the
mounted volume also launched successfully;pgrepobserved the
hazakura-editorprocess and the app was quit during cleanup. open -n "src-tauri/target/release/bundle/macos/Hazakura Editor.app"
failed withRBSRequestErrorDomain Code=5/
Launchd job spawn failedin this ad-hoc App Store preview build
session. This was not the DMG release lane app.npm run probe:macos-distribution -- "src-tauri/target/release/bundle/macos/Hazakura Editor.app"
passed; bundledLICENSEandTHIRD_PARTY_NOTICES.mdwere present,
the helper was absent from the App Store preview lane, required
sandbox entitlements were present, and broad network server /
Apple-events entitlements were absent.git diff --checkpassed.- Release pre-check grep hits were reviewed. Local-path hits were
test fixtures or normalization code, GitHub hits were public release
URLs, and security-word hits were diagnostics / sanitizer wording or
tests rather than credentials.
Local artifact:
src-tauri/target/release/bundle/dmg/hazakura-editor-dev_0.18.0_aarch64-warning-expected.dmgSHA-256:
fed350e809f8c95d399d1cb544eb445c72b7b24307972e817b1a899456deaf06Publication State
- Tag:
v0.18.0. - GitHub Release:
https://github.com/lero003/hazakura-editor/releases/tag/v0.18.0. - DMG asset:
hazakura-editor-dev_0.18.0_aarch64-warning-expected.dmg. - Checksum asset:
hazakura-editor-dev_0.18.0_aarch64-warning-expected.dmg.sha256.
Remote Verification Result
Published and verified on 2026-06-12.
- Assets were downloaded into a fresh
src-tauri/target/release/remote-verify-v0.18.0-*directory with
gh release download v0.18.0 -R lero003/hazakura-editor. - Downloaded checksum verification passed:
shasum -c hazakura-editor-dev_0.18.0_aarch64-warning-expected.dmg.sha256. - Downloaded DMG image verification passed:
hdiutil verify hazakura-editor-dev_0.18.0_aarch64-warning-expected.dmg. - Mounted downloaded DMG app metadata matched the intended
Developer / GitHub lane: version0.18.0, bundle identifier
lab.hazakura.note.dev, product nameHazakura Editor Dev, and
executablehazakura-editor. - Mounted downloaded DMG app passed
codesign --verify --deep --strict --verbose=2. - Mounted downloaded DMG app launched successfully;
pgrepobserved
thehazakura-editorprocess and the app was quit during cleanup.