Releases: neopostmodern/structure
Structure 0.25.1
This release greatly improves performance for users with thousands of notes in many (but not all) interactions. It also merged the "links" and "texts" distinction into a unified "note" where a URL can be added and removed at any time. Behind the scenes many packages were updated.
Detailed changes
- feat: improve performance of NotePage and TagPage with fragments and deferred component renders (50d719a)
- feat: merge links and texts into unified notes (dec6416)
- feat(client): directly modify cache after creating note (78c04bb)
- feat(client): logging and performance measurement infrastructure (fcd0b72)
- feat(client): migrate
@apollo/clientto v4 (e5703fb) - feat(client): reworked cache writes (6fcc66c)
- feat(client): use new logging and performance measurements (0402fa5)
- feat(server): script for generting testing data (notes, tags) (b38975d)
- fix: correctly show initial loading state on notes page (7152a14)
- fix(client): don't require URL on notes in form validation (c1b9e1a)
- fix(client): force remount of note page when note ID changes (75e460b)
- fix(client): in useDataState honor 'no-cache' policy explicitly (fa256c5)
- fix(client): increase debounce time of search field (ed7c092)
- fix(client): remove dev logging (2bea15b)
- fix(client): replace deprecated
onCompletedoption inuseQuery/useLazyQuery(399b231) - fix(client): replace deprecated
variablesoption inuseLazyQuery(4a637aa) - fix(client): show "loading note first time" indicator again (d15038f)
- fix(client): update apollo client initialization (1c65243)
- fix(client): update in-app outbound docs URL (b43127e)
- fix(server): CWD-independent path in utility script (ed9a34c)
- fix(server): update version info (02b6de7)
- chore: generate both schema and types on server with root npm script (3e1beaa)
- chore: re-configure prettier (2438dbb)
- chore(android): bump TWA app version after 0.24.2 release (5da39ca)
- chore(client): reformat with prettier (48440dd)
- chore(client): remove unused code (7786568)
- chore(client): update eslint config (49f4b6b)
- chore(server): update to slightly more maintained
passport-github2package (5e263ae) - deps(client): bump electron to v39 and @apollo/client to v4.1 (1a7fc7e)
- deps(client): switch to own fork of
apollo3-cache-persistwith build fixes (3632de4) - deps(client): temporarily switch to fork of
apollo3-cache-persistwith support for apollo v4 (0f9e3a0) - deps(client): update package-lock.json (a850080)
- docs: update release info in README (d485beb)
Full Changelog: v0.24.2...v0.25.1
Structure 0.24.2
This is a patch release mostly addressing regressions introduced with 0.24 – but to get a build out a lot of infrastructure/build changes were necessary.
Changes
Bug fixes
- fix: fetch noteCount explicitly when possibly creating new tag (c48b631)
- fix(client): balance spacing of error page in mobile layout (8ece913)
- fix(client): correct application of markdown styling (eb96e6f)
- fix(client): correct naming for comparing to injected variable (f004776)
- fix(client): log errors for unavailable developer extensions instead of throwing errors (ce7c8f3)
- fix(client): show children of ComplexLayout even when profile query fails (6e7f06f)
Build and infrastructure changes
- fix: downgrade node to v22.20 (3d6e809) d'oh – see below
- build: bump node verison to v25 (ce9720c)
- build: convert config to regular JS package (no direct JSON export) (02d5ea9)
- build: update lerna to v9, drop explicit versioning script (b6c5ee1)
- build(client): correct TWA signing keystore path for prod (bbb03a6)
- build(client): forge config explicit ESM extension (729b377)
- build(client): switch to ESM entirely (d602a57)
- chore: treat top-level package as module too, bump typescript (a103bd9)
- chore: update all package-lock.json (0490e4b)
- chore(client): bump deps (electron 38) (803090f)
- chore(client): update dependencies, electron 38 (1da8c8e)
- chore(client): update package-lock.json (c461cc2)
- chore(client): upgrade electron-forge packages to v7.10.2 (6f3abaa)
- ci: don't fail-fast on os-matrix build tasks (360b6a1)
- ci: don't suppress sub-package npm ci errors anymore (98694f4)
Full Changelog
Structure 0.24.1
(Release notes pending)
Full Changelog: v0.23.1...v0.24.1
0.23.1
Patch release with bug fixes for Alcoholism 0.23.0, check the original release notes for user-facing info.
Changes
Bug Fixes
- client: actually calculate notes count for tag sorting (71a35b6)
- client: actually run client-side migrations, fixes #215 (3f15603)
- client: add new tag reference directly to query cache, fixes #221 (d6a8538)
- client: pass autocomplete InputProps to input on LinkNameField, fixes #216 (a98751a)
- client: reduce pollution of cache by ephemeral queries (3c08433)
- client: show actual tag name in color picker, fixes #217 (c21b71e)
- client: show add tag form input while tags load, fixes #220 (8990198)
- client: text ellipsis for note menu buttons, fixes #218 (5fe5e18)
- server: only send back minimum version when not fulfilled (45fe6e7)
- sort notes by createdAt for server cache stability (30460cf)
Alcoholism 0.23.0
alcohoism (noun) continued excessive or compulsive use of alcoholic drinks
Shared tags (and notes)! What sounded simple ended up requiring significant rewrites.
Hints to get started with sharing:
- Click on a tag which you want to share, enter the other person's username in the Sharing section and ta-da.
- A shared tag by default only makes the tag and the notes you tagged with it visible to the other person. You can grant them four granular permissions:
- Editing all notes with this tag
- Adding this tag to notes (and removing it)
- Sharing the tag with other people
- Editing the tag itself
- If something doesn't show up immediately you can manually refresh (on the main / notes page) by hitting
r - Sharing works only via tags, you can't share an individual note.
Also: quite some UI and UX updates, especially an overhauled and extended keyboard/shortcut experience (a quick switcher!) and performance improvements. Bonus: a color picker for tags, based on your existing tag colors!
Breaking changes
- The signature of the
entitiesUpdatedSincequery has changed and is not backwards compatible (the old approach doesn't work with shared tags)
Known issues
- If you have thousands of notes and tags some actions, such as opening the tag search but also loading the app unfortunately, sometimes take a while despite a variety of new optimizations. Maybe the future will bring even more performance tweaks.
- Opening the tag search for the first time on a device can be really slow, be patient.
Next up
v0.24 a maintenance release (refactoring, rewriting)
Changes
Bug Fixes
- always allow users to unshare another user's tag from themselves (490c1c0)
- client: accept quick submit shortcut from within other input fields (make "global") (cc0c0e9)
- client: check
sortBywhen reading extended filtered notes cache (bc795ee) - client: clear localStorage on logout (b549b1f)
- client: correct select-all logic for notes list (c5e69d2)
- client: don't treat everything with a colon as a URL, fixes #208 (6b3f589)
- client: ensure
ErrorSnackbaris visible (d385bae) - client: ensure light text color in light-mode shortcuts (76ab641)
- client: ensure proper cache-removal of deleted note (4cabfb9)
- client: ensure tag autocomplete renders on top of other elements (d2f6071)
- client: filter out tags without 'use' permission for add tag form (1a41e06)
- client: focus and shortcut management for
ctrl+tab(0d5eb6b) - client: hide internal tags from tags page (a39d112)
- client: increase space between text notes and secondary actions on mobile, fixes #211 (66b1643)
- client: prevent visual content jumps (159aa3d)
- client: proper read-only form field props and styles (8b0c4ff)
- client: remove
electron-store(87c7c82) - client: remove unshared tag from cached notes (87df758)
- client: run visibility check and note list length expansion also when 5-10 notes are to be displayed, closes #210 (023e342)
- client: show errors in UI when deleting tag (c68a6c0)
- client: wait for apollo cache to mount react app (9a30b43)
- server: add ownership tag to created URL notes (links) (3f4d280)
- server: pass redirect as callback to
.logout, fixes #209 (298b58d) - server: retain local GraphQL playground (74454d8)
- server: simplify data export, also making it compatible with new data structure (b0c4014)
Features
- client: (re-)add shortcut 'r' to refresh notes (de5c45d)
- client: add web shortcut for last visited notes + show in tooltip (e3d73ba)
- client: color picker for tags, closes #188 (0656820)
- client: copy URL button and menu item for note, closes #189 (a0e1354)
- client: design improvements for tag sharing (4526c1f)
- client: don't show search tooltip when focused (8d00531)
- client: intersection observer for infinite scroll and decreased initial rendering (b4d68ac)
- client: memoize sorted and filtered notes across (un)mounts (c30b8a5)
- client: more manual cache mappings for apollo (b9d1dd6)
- client: more manual cache mappings for apollo (0a48f7d)
- client: only save forms if the value was changed (76b61bb)
- client: pass keyboard event to bindShortcut / useShortcut (4253d2f)
- client: persist last visited notes locally across page (re)loads (0257197)
- client: read-only UI for notes without write permissions (e7cf204)
- client: replace custom TextField with MUI TextField (c69932d)
- client: shortcut for accessing last visited notes, closes #205 (760e477)
- client: shortcut for adding URL from clipboard, closes #185 (83b4223)
- client: shortcut to open first through ninth note in list (cb3ff54)
- client: shortcuts for title suggestions, closes #206 (b6003ae)
- client: show basic metadata for notes and tags on their page (3c53b79)
- client: show indicators if tags and notes are shared (97a0b6c)
- client: some note typogr...
Albinism 0.22.1
albinism (noun) the condition of an albino
A new logo! Minor UI update, especially for mobile. Improved tagging experience and search performance. Some bug fixes.
Heads up: notes are now sorted by last edited instead of last created – but there's a new switch to change the behavior, too.
Known issues
- the new tag sorting might take some usage before it 'warms up'
Next up
v0.23 new features, but still evaluating which. Maybe #43 or #49 finally.
Changes
0.22.1 (2022-12-16)
Bug Fixes
- client: don't treat key presses on textarea as shortcuts (1380e07)
0.22.0 (2022-12-13)
Bug Fixes
- client: completely close app even on macOS when window is closed, workaround for #182 (28c3256)
- client: fetch notes on tag when untagging, updates cache (7967881)
- client: workaround to fit notes menu in a single line on even smaller displays (8673f05)
- ensure migrations pass on a new/clean database (f24cab4)
- include a smaller icon for macOS, fixes #132 (62551d0)
- prevent crash on accounts with no notes or tags (8865d8d)
Features
- add browser-compatible hotkeys/keyboard shortcuts, remove refresh shortcut (68b56d0)
- client: compact notes page menu on mobile (535e7e9)
- client: option to change 'sort by', closes #125 (dcecb4e)
- client: secondary sort tags by usage (09f0e7c)
- delete tags, closes #136 (0e78333)
- display nicer pages when there is no content to show, closes #147 (39c5e79)
- new logo, closes #46 (a752f6b)
- proper error handling when single entities are not found (2e613ba)
- replace custom tag search with @mui's autocomplete, closes #141 (166bf32)
- rudimentary importer (f8c25fb)
- server: log apollo errors on server (8cd7bf1)
- sort tags with
match-sorter(7cdad45) - user data-export self-service, closes #47 (7f1ed24)
Alarmism (0.21.0)
alarmism (noun) the often unwarranted exciting of fears or warning of danger
Mostly bug fixes, TWA support.
Known issues
None
Next up
v0.22 new features
Changes
- feat: add links and text by sharing to PWA, closes #57 (54e03e6)
- feat: redesign add note page clipboard & url input, closes #171 (3f43e8d)
- deps: bump top-level dependencies (lerna, prettier, typescript) (4bfcbd1)
- deps: update dependencies (3d7d7c0)
- fix(client): add migration to new backend URL for electron app (009831e)
- fix(client): base cache reconciliation in
useEntitiesUpdatedSinceon received entity (119c00f) - fix(client): correct checklist rendering in markdown, fixes #165 (5ab4775)
- fix(client): correct merging of incoming newly created notes and tags, fixes #170 (cf3e6e9)
- fix(client): disable sandboxing for preload script (78c6e72)
- fix(client): fetch
updatedAton note when adding tag, fixes #164 (c39fc4a) - fix(client): fetch entire tag fragment on added tags, fixes #161 (f4e885e)
- fix(client): include 512px icon in web build (67a8fbb)
- fix(client): re-allow tag, fixes #167 (5d1a405)
- fix(config): correct config entry key (f67ad7d)
- fix(server): read config with arrays as field values for deploy (7b2796c)
- fix(server): trim title suggestions, fixes #162 (a8a6402)
- chore: add assetlinks.json files (a907467)
- chore: change domains, closes #163 (6e091ee)
- chore: fix config reading in backup script (9514edd)
- ci: drop collections before restoring (staging only) (15d12a3)
Agrarianism (0.20.2)
agrarianism (noun) a social or political movement designed to bring about land reforms or to improve the economic status of the farmer
Mostly performance improvements, some UI/UX polishing and minor bug fixes.
Known issues
#161 Sometimes: Searching tags to add crashes app
#164 Can't edit note after adding a tag
#165 Markdown checklists render incorrectly
Next up
v0.21 with bug fixes & finalized TWA support
v0.22 with new features
Changes
- v0.20.2 (cb6d2e2)
- chore(client): add short_name and larger icon to webmanifest (35cf39f)
- chore(client): bump @apollo/client (ef220fa)
- chore(client): dynamic allowed hosts & web socket URL from config for webpack dev server (349da48)
- feat: only fetch data since last fetch, closes #122 (882fa52)
- feat: reject saves when updatedAt is stale, closes #155 (b1cd50c)
- feat(client):
useIsOfflinehook with reactive network status (ba3ba27) - feat(client): add advanced setting to change network mode (88d5936)
- feat(client): add error color to 'Save failed!' warning (88d6d73)
- feat(client): adjust theme color with dark-mode preference, closes #139 (12e7930)
- feat(client): advanced settings section, ability to clear cache (c1e2b7e)
- feat(client): replace
markedwithreact-markdown, closes #142 (7fe51f7) - feat(client): respect
env(safe-area-inset-bottom), closes #127 (1964018) - fix: use cached tags in AddTagForm (95531e3)
- fix(client): adapt to new media query structure in MUI theme object (f6b8ba7)
- fix(client): always close notes list action menu after any action, closes #149 (2ef6ccf)
- fix(client): ensure spinner displays properly under load, fixes #144 (43c882e)
- fix(client): fit apollo error message on small screen (e7675aa)
- fix(client): forgiving access to
navigator.permissionsAPI, closes #153 (a9fb8b9) - fix(client): only used cached profile data in ComplexLayout (maybe related to #138) (e98568e)
- fix(client): prevent double submission and display of notes added through bookmarklet to web or desk (9723ae2)
- fix(client): show errors in UI on
TagPage(a846b33) - fix(client): sync all forms when receiving prop (e.g. after mutation), fixes #160 (19fb53c)
- fix(client): use default export of package.json (689b4c4)
- refactor(client): improve shared fragments (62479e9)
- refactor(client): migrate from
apollo client:codegentographql-codegen, closes #159 (76ee424) - deps(client): update react to v18 and misc other packages, closes #143 (39dc907)
Full Changelog: v0.20.1...v0.20.2
Agnosticism (0.20.1)
Full Changelog: v0.20.0...v0.20.1
Ageism (0.20.0)
ageism / agism (noun) prejudice or discrimination against a particular age-group and especially the elderly
Major update on several levels:
- overhauled user interface
- layout, much more responsive
- look-and-feel (based on Material UI)
- dark mode
- usability improvements
- error handling
- reflect network state in UI (offline, saving, background fetching)
- server-side title suggestion generation (works in browser now too!)
- repository restructure
Tech changes:
- rely on mongoDB 4.2+
- prefer volta
- electron 18
Up next
0.20.1 performance and stability improvements, bug fixes
0.21.0 new features