* chore(deps): upgrade Clojure version to 1.12.4 across multiple dependency files * chore: bump shadow-cljs to 3.3.6 * chore: bump org.clojure/clojurescript to 1.12.134 * chore(deps): upgrade Clojure version to 1.12.4 in workflow files * chore(deps): upgrade Java version to 21 in workflow files * chore(deps): upgrade Node.js version to 24 in workflow files * chore(deps): upgrade Node.js version to 24 in Dockerfile * feat(updater): migrate electron-forge to electron-builder * fix wrong android app version * fix workflow * feat(dependency-upgrade): add max-update-interval option for dependency audits * chore(deps): upgrade electron-builder and electron-updater * fix: update manual verification instructions for Electron shim cache * chore: update shadow-cljs version to 3.4.4 across all dependencies * chore: upgrade electron version to 41.2.1 * chore: update metosin/malli dependency to latest * chore: upgrade cider-nrepl version to 0.59.0 in dependencies * chore: upgrade clj-kondo version to 2026.04.15 and fix warning * chore: move Electron windows build configuration from yml to ci * chore: update Electron signing configuration to extend from base config * fix: replace icon file for NSIS compatibility * chore: resolve metosin/malli version conflicts * chore: upgrade jdk to 21 in e2e workflow --------- Co-authored-by: Tienson Qin <tiensonqin@gmail.com>
Description
Shared library for page publish features (snapshot payloads, SSR helpers, shared schemas, and storage contracts).
The Cloudflare Durable Object implementation is expected to use SQLite with the Logseq datascript fork layered on top. Page publish payloads are expected to send datoms (transit) so the DO can reconstruct/query datascript state.
See deps/publish/worker for a Cloudflare Worker skeleton that stores transit
blobs in R2 and metadata in a SQLite-backed Durable Object.
API
Namespaces live under logseq.publish.
Usage
This module is intended to be consumed by the Logseq app and the publish worker.
Dev
Keep this module aligned with the main repo's linting and testing conventions. Most of the same linters are used, with configurations that are specific to this library. See this library's CI file for linting examples.
Local Testing
For one-time setup, install the CloudFlare cli wrangler with npm install -g wrangler@latest.
To test the publish features locally, follow these steps:
- Run
yarn watchoryarn releaseto build the publish worker js asset. - Run
wrangler devin worker/ to start a local cloudflare worker server. - In
frontend.config, enable the commented outPUBLISH-API-BASEwhich points to a localhost url. - Login on the desktop app.
- Go to any page and select
Publishfrom its page menu.
Deploy
When changes are ready to be deployed, run yarn deploy.