The list item tooltip taught multi-select on every hover and sat over
the sidebar New Note button. Drop it; selection still works without the
hint, and action-button tooltips stay.
Drive light and dark from one token table so Tailwind utilities follow
:root.dark assignments. Drop the leftover dark: color variants and the
[class~="…"] inversion layer, and keep PDF paper as a white surface.
Introduce DIAGRAM_READABLE_MIN_SCALE and use it after auto layout instead of shrinking the whole graph. Architecture diagrams pin to the top of the canvas so the extra headroom is gone.
Add a bulk Markdown ZIP action for selected notes, reuse the existing
readable export layout, and keep the desktop bulk action card visible
when a diagram note is open.
Lay out each architecture boundary independently, place ungrouped terminals in the group-level graph, stack groups when a left-to-right row would overflow, and route architecture edges orthogonally.
NAS/GUI upgrades often reuse the v1.62 command
`bun scripts/self-hosted-server.mjs`. Keep that path as an alias of the
bundled runtime so those containers start after v1.63.
Fixes#381
Identify the workspace inbox by stable id, restore it when missing, and apply notebooks before memos so a renamed or deleted inbox cannot abort the whole pull.
Fixes#378
Selecting a tag kept showing every note because json_each on the full memo blob could fail or stall. Match tags from parsed memo data and paginate after filtering.
Refs #366
Read the latest Release through the instance (cached 5 minutes),
then the public latest/download URL and raw.githubusercontent.com.
Do not treat one plugin's 403 as a total update-check failure.
Phone viewers no longer shrink a whole diagram into an unreadable overview. The canvas fills the remaining viewport, pinch-zooms, and focuses a topic on tap, without zoom chrome.
Prefer the GitHub API asset-id route after the public release URL fails, and skip re-downloading official plugin packages when the live version already matches.
Sidecar memo.list ignored the tag parameter, so choosing a tag showed every note. Match json_each tag values case-insensitively and keep prefix-overlapping names out of the result.
Official plugins already update silently in the background. Drop the blocking "got it" notice so a successful auto-update does not steal focus from the workspace.
Official marketplace plugins already show the official auto-update badge, but the first-enable confirmation still used community-plugin copy. Skip that confirmation for publisher EdgeEver plugins; community plugins still get the one-time warning.
Desktop install was failing with Failed to fetch because the renderer
fetched GitHub metadata directly. Resolve live official releases and
download Release assets via the current EdgeEver instance, so daily
plugin updates still work without a client-side GitHub API round trip.
NAS GUI upgrades that drop container environment variables could leave
login working while AI and object-storage credentials could no longer be
encrypted. Persist the encryption root on /data, generate one when an
existing instance has no secret, and stop the add-service form from
looking fillable when encryption is still unavailable.
Fixes#370
Treat absent provider names, base URLs, and tag-suggestion prompts as empty
strings so the settings pane can render instead of throwing during trim.
Related: #375
v1.63.0 moved the packaged renderer from file:// (Origin null) to
edgeever-app://app. Instance CORS still only allowed local Vite and
null, so desktop login failed as network_unreachable.
First-party canvases, including public share, parse diagram IR and draw
with read-only X6. Embedded Mermaid fences in ordinary notes stay on
Mermaid. Native viewers no longer inject a hidden Mermaid document when
the IR is valid.