Skip to content

v1.1.0

Choose a tag to compare

@JoobyPM JoobyPM released this 22 Jun 17:06
· 1 commit to main since this release

Version v1.1.0 folds the notepulse-web-ui project into the main repository and
ships it right from the Go binary. A new virtual list lets the browser render
tens of thousands of notes smoothly, while the backend sees a slimmer, cleaner
API and sturdier MongoDB handling.

What is new

  • Integrated Web UI

    • Built with Vite + PNPM, automatically baked into the Docker image
    • Clusterize-lazy 1.1.0 powers a zero-lag virtual list up to 50 000 rows
    • Same-origin API mode by default, no proxy setup needed
  • Pagination tweaks

    • Anchor and cursor flow is now the single source of truth
    • Window size is adaptive and optimised for the virtual list
    • Legacy offset parameter is tolerated but no longer required
  • Config & security

    • New env var SIGNIN_RATE_PER_MIN (replaces AUTH_RATE_PER_MIN)
    • App-wide limiter removed; only sign-in is guarded now
    • Dependency refresh across Go, JS and GitHub Actions
  • Infrastructure upgrades

    • MongoDB client rewritten with exponential back-off and safe shutdown
    • Dockerfile and CI cleaned up for faster multi-arch builds
    • Static files are copied in a single stage, shrinking image size by ~20 %

Improvements and fixes

  • Context propagation simplified, ctxkeys package retired
  • Error messages clarified; fewer false 500s, more precise 4xx codes
  • Swagger docs regenerated with the new endpoints
  • Unit, integration and e2e suites updated (7000 + LOC)
  • Rate-limit tests stabilised; flaky offset cases removed
  • Minor UI polish: better note height, clearer delete semantics

Breaking changes

Before After Action
AUTH_RATE_PER_MIN SIGNIN_RATE_PER_MIN rename in .env or secrets
APP_RATE_PER_MIN removed delete from config
Offset-based list Anchor + cursor update client code if you used raw offsets
Web UI served from /web-ui path now served from / clear old nginx rules if any

Upgrade guide

  1. Pull the tag or update your go.mod to github.com/JoobyPM/note-pulse v1.1.0.
  2. Rename the env vars as per the table above, remove deprecated ones.
  3. Re-build the image:
docker pull ghcr.io/joobypm/note-pulse:1.1.0
  1. If you had a separate front-end container, drop it; the server now serves
    /index.html.
  2. Visit http://localhost:8080 for the app and /docs for the API.

Quick start

git clone https://github.com/JoobyPM/note-pulse.git
cd note-pulse
cp .env.template .env   # adjust SIGNIN_RATE_PER_MIN and Mongo URI
docker compose up -d

Open the browser at http://localhost:8080.