Nyxdoc v0.25.18
What changed
- Made collaboration writes durable before broadcast, rechecked authorization
for every live mutation, and preserved shared drafts across Strict Mode,
reconnects, and document-tree moves. - Unified document moves behind the canonical collaboration command boundary,
including same-parent reorder idempotency and conflict-safe cross-parent
moves without implicitly committing a dirty body. - Closed media, OAuth consent, archive, trash, workspace, and agent lifecycle
authorization races with live mutation barriers and fail-closed scope checks. - Added verified media-history and backup-checkpoint migrations, stronger
offline migration rehearsals, and a one-time v0.25.17 update bridge that
drains accepted editor writes before the legacy updater creates its backup. - Expanded real Chrome and Edge collaboration coverage, release-candidate
browser verticals, migration/restore checks, and lifecycle interruption tests. - Reworked release publication around an immutable qualified image digest,
source provenance, serialized aliases, idempotent recovery, and readable
changelog-derived GitHub Release notes. - Kept block-insertion patches retry-safe across lost MCP responses by checking
idempotency before reapplying operations, while preserving the separate page
title and leading-heading validation rule on the first write. - Updated the supported runtime dependencies and removed known production npm
audit findings. - Made first-install and disaster-recovery paths portable across Docker hosts
by accepting image-seeded empty media directories and normalizing data,
media, and backup ownership before offline migrations. - Made linked text consistently show a hand cursor, including links whose
visible label is rendered by nested editor elements. - Made historical release qualification portable to non-root baseline images
by staging its temporary fixture driver under the container-writable/tmp
directory instead of the read-only application tree. - Made CI fetch release tags needed by lifecycle tests and exercise table-cell
focus through real browser input so collaboration stress coverage reflects
user behavior instead of synthetic DOM selection.
Container image
ghcr.io/getnyxdoc/nyxdoc@sha256:bc5dc60ad8e057694ede3fde7d10221b959afc3aae20cdc9cf253132c276475e
Full Changelog: v0.25.17...v0.25.18