Repository navigation
Releases: quiqr/quiqr-desktop
Releases · quiqr/quiqr-desktop
Release list
v0.22.7
v0.22.6
v0.22.5
v0.22.4
v0.22.2
What's Changed
- fix: replace backslashes with frontslashes for glob on windows by @bert-janzwanepol in #646
- Refactor SiteLibrary to Tanstack Query by @bert-janzwanepol in #647
- feat: improve preferences and add application settings views by @mipmip in #648
- feat: consolidate settings into preferences UI and fix reactivity by @mipmip in #649
Full Changelog: v0.22.1...v0.22.2
v0.22.1 Packaging release!
- restore: release packages for all platforms 🥳
- fix: stablelize collectionitem management
- refactor: new Unified Configuration Framework
- refactor: migrate to TanStack Query for data fetching and state management
- refactor: migrate build system from electron-builder to Electron Forge
- feature: restore model-scaffold function in electron-edition
- feature: rename OpenSpec to OPSX across the project
- chore: upgrade Node.js to v24
- chore: upgrade Express from v4 to v5
- chore: security updates for npm dependencies (tar, tmp)
- fix: leaf-array and section documentation. Remove some hallucinations
- fix: AI assistant dark mode styling
- fix: AI assistant functionality with added tests
- fix: embgit bin to use platform specific directory
- fix: preserve license file
- fix: set tsconfig for tests
- fix: add url param typecheck
- fix: prune devdependencies after copying @quiqr packages to root
- fix: move jsdom to root for testing
- fix: coverage directory and reporting issues
- fix: restore original package url
v0.22.0 FOSDEM Release 🥳
0.22.0 (2026-01-31) FOSDEM RELEASE
This release is first release of a completely refactored Quiqr including major new features.
- Removed legacy direct OpenAI field AI assist
RemovedopenAiApiKeyconfiguration from Advanced Preferences
Removed direct OpenAI API calls from frontend (openainpm package)
Removedmeta.enableAiAssistflag from form system - feature: Field AI Assist with Prompt Templates
- Add
field_prompt_templates/directory for field-specific AI templates - Support both
.yamland.ymlfile extensions for all templates - New variables:
self.fields.[key].contentfor page templates - New variables:
parent_page.fields.[key].contentfor field templates - Rename components:
AiAssist.tsx→PageAIAssistButton.tsx,AIAssistDialog.tsx→PageAIAssistDialog.tsx - Create
FieldAIAssistButtonandFieldAIAssistDialogcomponents - Backend: Enhanced
prompt-template-processor.tswith field context support - Backend: Add field prompt template handlers
- Backend: Support both
.yamland.ymlextensions with.yamlprecedence
- Add
- feature: Add OpenSpec Workflow for Spec-Driven Development
- feature: SSG provider architecture - support for multiple static site generators (Jekyll added)
- feature: standalone web version with menu bar replacing Electron native menu
- feature: collapsible sidebar with workspace switcher and site developer settings
- feature: breadcrumb navigation in nest fields and accordions
- feature: implement openExternal and SSE for menu updates
- fix: reload theme automatically when toggling between light and dark theme
- fix: config.mounts handling and site name validation in config migration
- fix: clear site library cache before navigating to newly imported sites
- fix: Field AI templates -
parent_page.fields.*variable resolution for Singles - refactor: convert all remaining class components to functional components
- refactor: massive TypeScript improvements - removed hundreds of
anytypes across codebase - refactor: workspace routing from wildcard to nested routes
- refactor: dialog management through DialogContext
- refactor: replace Jimp with Sharp for image processing
- chore: upgrade Node.js to v22 in CI, add backend tests with coverage reporting
- chore: monorepo package refactoring - moved frontend to @quiqr/frontend workspace
- chore: upgrade glob package from v10 to v13 with comprehensive test coverage
- chore: add ESLint configs for all packages and contribution guidelines
- security: remove dependency on @electron/remote. Enable nodeIntegration: false and contextIsolation: true
0.21.6 (2025-12-12)
- fix: improve position of AI Assist Button
- fix: in Funding a todo is set for the new idea of having a Quiqr Stichting
- feature: AI Assist Button with Prompt templates for Page objects
- feature: new fresh AI Assist Button with Prompt templates for Page objects 🕺
- docs: add docs book and new docs. This will be the future for Quiqr's official documentation
- feature: rerender based on chokidar change
- fix: replace localhost with windows.location.hostname
- feature: add chokidar file watcher to model
- fix: correct type definition for prompt_templates to string array
- feature: add prompt_templates field to FormMeta interface
- chore: more informative Zod/schema errors. When a site model is incorrect, we
need to identify the configuration error using this message - chore: hide/remove noise console.logs
- wip: fix hugo download race condition
- fix: concurrent hugo download
- chore: convert import from hugo theme to functional
- chore: convert import from folder to functional
- chore: convert site view (home, single, collection) to functional
- chore: convert SiteConfRoute to functional
- chore: convert sync dialogs to functional
- chore: convert site library cards/rows to functional
- chore: convert preferences to functional
- chore: convert collection action dialogs to functional
- chore: convert ProgressDialog to functional
- chore: Convert SelectImagesDialog to functional
- chore: convert console output to functional
- chore: convert FormPartialNewFromScratch to functional
- chore: convert ToolbarToggleButtonGroup to functional
- chore: convert FolderPicker to functional
- chore: convert CardNew to functional
- fix: wrap setState in callback
- chore: convert CardNew to functional
- feature: let hugo listen to 0.0.0.0
- chore: convert layouts and sidebars to functional components
- fix: new network addresses for the server version
0.21.5 (2025-12-09)
- fix: default message at API root url
- chore: convert workspaces to functional. track progress
- chore: add SSE endpoints to server
- chore: actually display progress in SyncBusyDialog
- chore: add optional callback to track progress
- chore: add reusable sync progress hook
- chore: remove dead code, add todo comments
- feat: make openExternal and copyToClipboard platform agnostic
- feat: re-enable updateCommunityTemplates
- fix: slow form renders in public git import form
- fix: slow form renders in private import form
- chore: update readme
- chore: remove unneccesary json parse
0.21.4 (2025-12-09)
- fix: run glob relative to workspace
- chore: convert select from query to typescript
- fix: make dynamic form fields optional
- chore: delete unused electron file from frontend
- chore(lint): autofix replace let and var with const
- chore: ignore build, dist and node_modules in eslint config
- chore: remove image plugin from markdown editor
- fix: replace references to old component system
- chore: update chartjs and fix colors
- feat: remove old component system
- convert Eisenhouwer field to functional component
- chore: cleanup debugging logs
- fix: actually delete bundle-manager items from disk instead of soft-deleting
- fix: implement BundleImgThumbField and save resources to singles config
- feat: add scaffold field command
- feat: add dev tutorial explaining the new field registry
- fix: bundle image upload size in express. TODO: convert to formdata
- wip: rewrite bundlemanager to functional component. use api and native filepickers instead of electron windows
- fix: convert image select field to new system
- wip: fontpickerfield
- wip: FontIconPicker
- chore: convert leafarray to functional component
- chore: convert accordion to functional component
- chore: replace react-simplemde-editor with mdxeditor
- feature: make nest a dropdown for quick validation
- fix: remove unneeded fragment causing a warning
- fix: remove unneeded fragment causing a warning
- refactor: implement SelectField
- refactor: implement SectionField
- refactor: implement NumberField
- refactor: implement NestField
- refactor: implement DateField
- refactor: implement ChipsField
- refactor: implement UniqField
- refactor: implement StringField
- fix: temporarily improve layout
- wip: opt in to new form system
- refactor: implement ToggleField
- refactor: implement SliderField
- refactor: implement ReadonlyField
- refactor: implement PullField
- refactor: implement InfoField
- refactor: implement HiddenField
- refactor: implement EmptyLineField
- refactor: implement ColorField
- wip: create foundation for refactored functional form field component
- fix: move deprecated prop to slotProps
- chore: convert CardNew to functional
- chore: add GitValidationResult in private and public import forms
- chore: type onValidationDone with GitValidationResult type
- chore: add GitValidationResult type
- feat: support multiple git providers, like github, gitlab, forgea/codeberg, for both import and sync.
- feat: When a user imports a private repository, they get instructions to add a
deploykey. If they enable write access, a sync target is also created
automatically. - refactor: remove unneccesary effect
- feat: move deploy key to separate step, include instructions
- feat: rewrite git importer to accept generic git base URL, port, protocol.
- fix: add embgit instructions
- chore: upgrade electron-builder to latest
- fix: invalid dom nesting in DeleteSiteDialog
- chore: add clarifying comment to SSE
- fix: add apischema for derived public key
- fix: derive public key from priv key
- fix: handle local history errors by logging
- fix: refresh commit history after push
- refactor: split import form into separate components
- fix: add missing prop to DangerButton
- fix: make sure hugo is downloaded before serving the webpage
- fix: stop each hugo versions server when switching to a new workspace
- chore: remove debug logs
- fix: icons in hugo build
- fix: use a ref instead of useState to avoid triggering rerenders, for example on error
- fix: unpack 7zip from deps
- fix: remove chained state update with useEffect
- fix: convert HugoDownloader to typescript and implement SSE for progress
- fix: implement setting the current baseUrl in the app state
- feat: add api schema for hugo version check
- fix: raise express body size limit to account for large base64 encoded screenshots
- Minor layout fixes
- refactor: move multi step form to reducer and mui stepper
- fix: properly closing new and import dialogs
- fix: replace backslashes on windows with forward slashes for usage in glob
- fix windows navigation by serving frontend from express
- fix: circular dependency
- chore: update react-router-dom to v7. no breaking changes
- feat: convert git sync to ts
- fix: run key gen in temp dir and fix properties
- fix types
- chore: remove unused scripts from frontend package.json
- fix: various mui 7 syntax fixes
- chore: upgrade to react 19 and mui 7. update Grid component syntax
- fix: change ReactDOM.render to createRoot
- chore: Migrate react-router-dom from v5 to v6. Convert class to functional components.
- wip: upgrade to react-router-dom v6. Disable easymde and EasyMarkDownDynamic in prep of react 19 upgrade
...
v0.21.6
AI Assist and so much more...
See https://github.com/quiqr/quiqr-desktop/blob/v0.21.6/CHANGELOG.md
v0.21.4
Outrageously large update. See https://github.com/quiqr/quiqr-desktop/blob/v0.21.4/CHANGELOG.md
v0.21.2
This is the first prelease of the new Next Generation branch. Read more about this at https://quiqr.org/blog/quiqr-next-generation/