Skip to content

Releases: quiqr/quiqr-desktop

v0.22.7

Choose a tag to compare

@bert-janzwanepol bert-janzwanepol released this 04 Mar 13:48
  • refactor/fix: replace old zip binaries with to fix hugo downloads not extracting

v0.22.6

Choose a tag to compare

@bert-janzwanepol bert-janzwanepol released this 03 Mar 11:25
  • fix: broken collection paths on windows in #646
  • fix: additional path normalization for windows #655

v0.22.5

Choose a tag to compare

@mipmip mipmip released this 02 Mar 17:15
  • chore: new release script

v0.22.4

Choose a tag to compare

@github-actions github-actions released this 28 Feb 22:32
release: prepare v0.22.4

v0.22.2

Choose a tag to compare

@mipmip mipmip released this 26 Feb 15:36

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!

Choose a tag to compare

@mipmip mipmip released this 24 Feb 21:57
  • 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 🥳

Choose a tag to compare

@mipmip mipmip released this 31 Jan 17:09

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
    Removed openAiApiKey configuration from Advanced Preferences
    Removed direct OpenAI API calls from frontend (openai npm package)
    Removed meta.enableAiAssist flag from form system
  • feature: Field AI Assist with Prompt Templates
    • Add field_prompt_templates/ directory for field-specific AI templates
    • Support both .yaml and .yml file extensions for all templates
    • New variables: self.fields.[key].content for page templates
    • New variables: parent_page.fields.[key].content for field templates
    • Rename components: AiAssist.tsx → PageAIAssistButton.tsx, AIAssistDialog.tsx → PageAIAssistDialog.tsx
    • Create FieldAIAssistButton and FieldAIAssistDialog components
    • Backend: Enhanced prompt-template-processor.ts with field context support
    • Backend: Add field prompt template handlers
    • Backend: Support both .yaml and .yml extensions with .yaml precedence
  • 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 any types 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
    ...
Read more

v0.21.6

v0.21.6 Pre-release
Pre-release

Choose a tag to compare

@mipmip mipmip released this 12 Dec 12:42

v0.21.4

v0.21.4 Pre-release
Pre-release

Choose a tag to compare

@mipmip mipmip released this 09 Dec 12:09

v0.21.2

v0.21.2 Pre-release
Pre-release

Choose a tag to compare

@mipmip mipmip released this 20 Nov 14:02
41981ba

This is the first prelease of the new Next Generation branch. Read more about this at https://quiqr.org/blog/quiqr-next-generation/