Menu

Project

Changelog

On this page

1.10.2 — Beta#

  • Allow deleting Default publication and running instances owned by the launcher. After confirmation, finish background work and stop the selected instance before removing it. Keeping files remains the default.
  • Show a Create or add an instance screen when the instance list is empty. Preserve the empty list across restarts, and support creating or registering a replacement publication.

1.10.1 — Beta#

  • Delete stopped named instances from the desktop launcher or quillsail instance delete. Keep publication files by default, or explicitly choose permanent deletion; protect running instances and the built-in Default publication.
  • Store launcher logs in the instance registry folder so they remain available after deleting a publication and do not hold its files open on Windows.

1.10.0 — Beta#

  • Restyle the desktop launcher in black, white and the logo’s purple, with serif headlines and body text and small-capital labels. Headlines use the bundled Amiri Bold typeface (SIL Open Font License). Design guidance for the launcher is in assets/README.md.
  • Open the launcher in light mode by default. Choose Dark, or Automatic to follow the system appearance, under Appearance; the choice is remembered. The dark theme softens white text and rules to reduce glare.
  • Size the launcher window to fit its content when the screen allows.
  • Restyle first-time setup to match the launcher, with clearer Publication and Your account sections. Setup opened from the desktop follows the launcher’s appearance; other installations show it in light mode.
  • Keep publications running when the launcher window is closed. QuillSail stays in the menu bar or system tray until you quit it with the new Quit QuillSail button, ⌘Q, the menu bar icon, or the new quillsail quit command. Opening QuillSail again brings the open window forward.
  • Keep text readable in launcher dialogs, such as New instance, when macOS uses a dark appearance.

1.9.2 — Beta#

  • Ship a trusted certificate bundle for desktop update checks and downloads, avoiding missing build-machine certificate paths while preserving HTTPS certificate and signed-release verification.
  • Keep launcher controls readable when macOS uses a dark appearance.

1.9.1 — Beta#

  • Add named local instances shared by the desktop launcher and CLI. Create, register, select and run multiple publications with separate databases, files, queues, browser sessions and ports; stopping one leaves the others running. Closing or updating the launcher stops every instance it owns.

  • Scope database bindings and sessions to each Flask application and context so concurrent publications cannot rebind one another’s connections.

  • Apply saved publication appearance to the dashboard: branding, fonts, colors, spacing, corners, template styles and custom CSS. Add a private dashboard preview with sample controls and preserve the saved default color mode.

  • Add responsive top padding above the business outreach heading.

  • Start newsletter subscription email fields blank for signed-in users, preserving only an address explicitly submitted during validation.

  • Install a stable system-wide quillsail command during Linux server registration and bootstrap. Verify sudo’s PATH, keep Python deployments linked through current, and provide quillsail update install-command for existing deployments.

  • Allow a custom command path or explicit opt-out. Reject conflicting commands and unsafe PATH locations without overwriting files or modifying sudo policy.

1.9.0 — Beta#

  • Add complete quillsail update server transactions for registered versioned Python/systemd and Docker Compose installations: verify releases, prepare environments/images online, pause traffic and queued mail, back up the instance/native database, migrate, activate and validate web/worker health.
  • Recover failed updates with matching code and data, resume interrupted transactions, and provide explicit rollback with a safety backup of current content. Retain protected recovery journals and backups.
  • Add one-time deployment registration and a checksum-pinned bootstrap installer for older servers. Keep desktop updates available through the launcher and quillsail update --app PATH.
  • Build and validate server wheel/source artifacts alongside all four desktop downloads, and authenticate server wheels through the same TUF release feed.

1.8.0 — Beta#

  • Check for and install desktop updates from the launcher or quillsail update. Choose stable or beta releases; updates require an explicit install action.
  • Authenticate updates with The Update Framework, including pinned root keys, signed metadata, expiration, rollback checks and archive hashes. Release publishing signs the feed and a scheduled workflow renews its metadata.
  • Stage updates outside publication data, wait for the old application to close, and replace the app using a separate native helper. Keep the previous application and restore it if replacement fails.
  • Give desktop application icons a white rounded background.

1.7.1 — Beta#

  • Render the desktop launcher logo and window icon from the vector master, preserving their aspect ratio and sharp edges on Retina and other high-DPI displays.
  • Generate desktop application icons from the vector artwork at full resolution.
  • Close the desktop launcher cleanly after its local server and background work stop.
  • Align the homepage hero left, centered or right. The default keeps newsletter homepages centered and blog homepages left-aligned.

1.7.0 — Beta#

  • Add an optional desktop launcher with automatic local server startup, browser setup, a background worker, start/stop controls, logs and a persistent publication folder. The CLI and server installations remain available.
  • Authorize first-run browser setup using a short-lived, single-use local launch ticket. Preserve CSRF and normal account sign-in; isolate desktop configuration from server environment variables and block cross-origin/network access.
  • Back up desktop data before schema upgrades. Add separate native builds for Apple Silicon Macs, Intel Macs, Windows x64 and Linux x64, with browser and GUI lifecycle checks. An explicit maintainer workflow can publish all four verified downloads together with checksums; ordinary builds do not publish a release.

1.6.0 — Beta#

  • Customize the homepage hero independently of the publication name: title text, a logo, or both, plus an optional subtitle and overline. Upload dedicated light/dark hero logos or reuse the publication logo, and adjust the logo width.
  • Preview homepage changes privately before saving. Hero settings carry across design imports and remain in place when loading a style preset.

1.5.2 — Beta#

  • Add a quillsail command. Help text, documentation, the systemd worker unit and the container now use it. copydesk keeps working as an alias, so existing scripts, cron jobs and services need no changes.

1.5.1 — Beta#

  • Embed uploaded publication logos as related PNG image parts in outgoing email, so their display does not depend on an external image download. Preserve browser preview URLs and plain-text alternatives across SMTP, Gmail and Outlook.
  • Build email logo URLs from the configured public origin when rendering behind a reverse proxy.

1.5.0 — Beta#

  • Add a publication design studio with Classic, Broadsheet, Brief, Reference and Canvas starting styles; fine controls for typography, color, masthead, reading width, spacing, story layout and email presentation.
  • Upload publication, dark-background and email logos plus a publication icon. Preserve transparent palette PNGs when processing uploads.
  • Preview unsaved website and newsletter designs on desktop and mobile without changing live settings, creating uploads or sending mail. Keep theme previews isolated from concurrent readers.
  • Export and import portable design settings. Support custom website CSS, offline email CSS inlining and existing template theme overrides.
  • Keep publication styles out of the administration interface and retain existing styling until an administrator saves a design.

1.4.2 — Beta#

  • Place the QuillSail logo after the full “Powered by QuillSail” credit in web and email footers.

1.4.1 — Beta#

  • Keep post-login return URLs inside the configured installation path, including already signed-in visits and links to nested dashboard pages. Preserve query strings and fragments, avoid duplicate prefixes, and reject unsafe return paths.
  • Integrate the supplied purple QuillSail logo into setup, dashboard branding and icons, public credits, email footers, and the repository readme. Use a white rendering on dark web surfaces while preserving publication branding.

1.4.0 — Beta#

  • Rename product branding to QuillSail across the interface, email copy, command output, and documentation. Existing copydesk commands, configuration names, and integration identifiers remain compatible.
  • Share expiring, revocable private draft previews without accounts. Links stay out of archives and feeds; restricted articles and group-only blocks are excluded.
  • Offer an opt-in business outreach form with email confirmation, a private staff inbox, follow-up notes, and reviewed opportunity-to-article handoff.

1.3.0 — Beta#

  • Choose Newsletter, Blog, or Blog + newsletter during setup or in General settings.
  • Publish blog posts directly with publisher permission, and reuse posts in draft newsletter issues.
  • Offer public blog posts to another QuillSail publication through its editorial workflow, retaining source credit.

1.2.0 — Beta#

  • Host competitions with moderated text/project entries, assigned judges, reader voting, deadlines and published results.

1.1.0 — Beta#

  • Connect Gmail or Outlook through OAuth after one-time app registration.
  • Manage encrypted SMTP settings or import a configuration file from the dashboard.

1.0.0 — Beta#

  • Initial newsletter CMS with editorial review, reader groups, subscriptions, issue composition, themes, extensions and background email delivery.

See verification for the tested scope and remaining limits. Deployment and release-automation files are being prepared for the initial public repository; no public package or container registry publication is implied by these entries.