forked from Qortal/Q-Manager
7.6 KiB
7.6 KiB
Changelog
All notable changes to this project will be documented in this file.
[Unreleased]
Added
- QDN filesystem backups now include both the filesystem snapshot and the private resource index so another node can restore the same local state.
- Startup now compares the local filesystem state against the published QDN backup and prompts to load the QDN version when they differ.
- Out-of-date QDN publish state now appears as a small notification badge instead of opening the publish diff immediately.
- Manual publish/import actions now clear stale publish notifications and keep the sync baseline aligned with the current filesystem state.
Changed
- The
Sync filesystem backuptoggle now controls publish reminders, not startup restore checks. - Auto-sync no longer interrupts the user as soon as a mismatch is detected; the diff is now opened from the notification badge.
- Private file display labels are kept separate from filesystem identity so private entries do not turn into phantom tree items.
- Filesystem size summaries continue to report the summed sizes of represented files, which can look large even though the QDN backup payload is metadata-only.
- Group mode now prefers the embedded/current group hint when Q-Manager loads inside Q-Chat, and the group picker shows per-group file counts sorted by the most-populated group first.
Fixed
- Deleted private files no longer reappear in sync prompts because publish baselines are normalized from the current filesystem tree plus private index.
- Restore and publish diffs now compare the filesystem snapshot and private resource index together, which keeps backup decisions accurate.
- Startup restore prompting now works consistently even when auto-sync is disabled.
- Large private media previews remain separate from the backup snapshot flow, so preview cost is not the same thing as backup publish size.
- Successful private previews now refresh the cached thumbnail in the private index, so a better preview can replace a stale image thumbnail.
- Group publish actions now normalize group IDs before encryption and publish, which avoids string/number mismatches when selecting a group.
- Public group publishes now stay unencrypted, while private groups use
ENCRYPT_QORTAL_GROUP_DATAand write matching entries into the private resource index. - Public group files are no longer treated like private resources just because they belong to a group, so previews, thumbnails, and deletes follow the correct path.
- Group embed links and published identifiers now follow the Q-Chat-compatible
grp-q-manager_0_group_.../grp-q-manager_1_group_...convention, which keeps private group embeds decryptable and public group files unencrypted. - Group embed links now also carry the selected
groupIdas a compatibility hint, since the current Q-Chat image embed path decrypts against the active group context. - Delete-from-QDN now batches multiple selected files through the multi-publish request instead of republishing tombstones one at a time.
- Discovery/import now prefers the group ID encoded in the identifier when reconstructing previously published group files, so they land in the correct group bucket instead of the first selected group.
- Private embed creation now prefers the file node's stored sharing key before querying resource properties, which keeps freshly published private image embeds consistent with the key used to encrypt them.
- Private and private-group publishes now encrypt the raw file bytes once and publish them as externally encrypted data, while file metadata continues to live in the private resource index.
- Right-click file menus now include a
copy embed linkaction that uses the file's default name and the same embed-link logic as the file details dialog. - The app shell now keeps its dark background filled in embedded Q-Chat layouts so the lower page area does not flash white while scrolling.
- Multi-file publish now updates the live filesystem tree incrementally, so all files in a batch stay visible after group/private publishes.
- The bulk-move modal now tolerates the group-map fallback state and always renders the active group's folder tree instead of assuming the tree is already an array.
Notes
- The QDN backup is still an encrypted metadata snapshot, not the raw contents of every file in the filesystem.
- Legacy QDN backups remain readable.
[0.2.0] - 2026-02-28
Added
- Filesystem persistence now supports IndexedDB with localStorage backup/fallback behavior.
- Versioned/timestamped storage records for safer persistence reconciliation.
- QDN filesystem structure sync actions.
- Option to publish filesystem structure to QDN.
- Option to import filesystem structure from QDN.
- Option to discover previously published Q-Manager resources and import them into the UI.
- Automatic import destination folder:
Recovered Imports. - Multi-select file workflow with per-item checkboxes in the grid.
- Bulk selected-file action mode in bottom controls:
Move,Remove,Delete from QDN. - Bulk move modal for selected files with target folder selection.
- QDN tombstone delete flow by republishing each selected file identifier with
data64for"d". - File preview support from the main grid.
- Right-click context menu action:
preview. - Double-click file behavior to open preview.
- Optional
Show thumbnailscheckbox above the main action controls. - Image thumbnails in file tiles when thumbnail mode is enabled.
- File
displayNamesupport for UI labels (separate from publishedname/identifier). - Right-click context menu action:
More infomodal with full known file metadata dump. - Optional live metadata fetch from QDN resource properties (
GET_QDN_RESOURCE_PROPERTIES) from theMore infomodal. - Automatic metadata hydration back into file nodes from fetched properties (size, mime, display filename when appropriate).
- Selected-files footer now shows aggregated file size with unknown-count fallback.
- Per-file size display in selected file details dialog.
- File pinning support (
pin file/unpin file) persisted in filesystem data. - Visual pin badge on pinned file tiles.
- Extension-based preview inference and text preview mode (
.txt,.md,.json, etc.).
Changed
- IndexedDB is treated as the primary storage source, with localStorage retained as backup.
- Storage load flow now heals missing/failed IndexedDB state from localStorage fallback data when needed.
- Storage save flow now writes through a combined helper to reduce drift between stores.
- Folder/file tile visuals were refreshed for stronger readability and hierarchy.
- File rename behavior now updates
displayNamefor files (folder rename behavior remains structural). - Selection is cleared when switching top-level mode tabs (
public/private/groups) or selected group. - Missing/discovered file imports now attempt property hydration and use resolved filename for display labels.
remove directorycontext action now uses a delete icon (pin icon reserved for pinning behavior).
Fixed
utils.tsTypeScript typing issues and Promise/file handling edge cases.- Publish service default selection precedence bug in single publish flow.
- Publish service dropdown menu rendering/opacity issues in modal context.
- Better error fallback behavior for preview/thumbnails when media cannot be loaded.
- Custom button component now honors the
disabledprop. - Discovery/import now ignores tombstoned QDN resources by filtering very small (delete marker) resource sizes.
- Preview fallback now handles text-like resources better when MIME metadata is missing by deriving from filename extension.
Notes
- QDN publish/import works with the in-memory filesystem state, not direct storage backend snapshots.