Releases: Pebo-Devs/pebo
Releases · Pebo-Devs/pebo
Release list
v1.1.3
Make the notes editor a fluent, gold-standard writing surface (#10) The Windows desktop editor felt laggy, formatting looked rough, and Markdown editing was clumsy. This reworks the editor across performance, input, and live styling so typing stays smooth even in very large notes. Performance: - Debounce note-body persistence in NotesViewModel: keystrokes update a lightweight draft and only fold into the in-memory list + disk after a short idle, so typing no longer re-allocates the whole note list and recomposes the sidebar/tree on every key. Pending edits flush on note switch / trash / quit (main.kt onCloseRequest awaits the final write). - Memoize MarkdownVisualTransformation.filter by raw text (Compose calls it on every layout pass, not just edits) and skip the inline regex passes above a 50k-char guard so huge documents stay responsive. - Move outline + word-count off the composition hot path: a single snapshotFlow + collectLatest collector recomputes them on Dispatchers.Default a beat after typing pauses instead of re-parsing every keystroke. Editing: - Smart Enter continues bullet / ordered / task / blockquote lists (empty item exits the list); Tab / Shift+Tab indent / outdent the selection. Tag autocomplete still owns nav keys while its popup is open. Live styling: - Task checkboxes render a length-preserving glyph for done items (tinted + struck), ordered markers and horizontal rules are styled, all without changing the on-disk .md (identity offset mapping preserved). 235 desktop tests green (+16: smart-enter / indent / outdent, checkbox / ordered / HR decoration). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
v1.1.2
Update Google OAuth client id to the new desktop client (#9) The previously baked-in Google client id was replaced with the new desktop OAuth client id from Google Cloud Console. This is the single source of truth that feeds generatePeboBuildConfig -> GOOGLE_CLIENT_ID, so the shipped app now points at the new client. Client ids are public identifiers (safe to commit); the client secret is still injected only at release-build time and never committed. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
v1.1.1
Release: auto-version every merge to main so PRs always ship (#8) Previously the Release workflow only cut a release when appVersion in build.gradle.kts was manually bumped to a version with no existing release; merging a PR without bumping it resolved to the existing version and skipped all builds (the recursive-notes merge finished in 8s with no release). Now a push to main always derives the next version automatically: it bumps the patch of the latest existing release (v1.1.0 -> v1.1.1 -> ...), so every merge ships. A manual appVersion bump above the latest release still forces a specific minor/major, after which auto-patch resumes. Tag pushes and explicit workflow_dispatch versions remain idempotent. Version compare/sort uses semver (sort -V), so 1.10.0 > 1.9.0. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
v1.1.0
In-app updater + auto-cut releases on merge to main (#5) * Add in-app update checker and desktop self-updater Surface an "update available / install update" flow in Settings -> About: - Bake the app version into a generated PeboBuildConfig at build time (generatePeboBuildConfig task, overridable with -PappVersion / the release tag) so the running app knows what version it is. - Add a shared UpdateChecker that queries the GitHub Releases API and compares semver to decide whether a newer release exists, plus pure SemVer + release asset-matching models in commonMain. - Add a nullable UpdateService seam (mirroring CloudSyncController) with a DesktopUpdateService that downloads the matching installer (msi/exe/dmg/deb), launches it, and exits so files can be replaced; mobile passes null and links to pebo.app instead. - Wire it through NotesViewModel and main.kt, and build the About panel UI (real version + Check for updates / Download / Install states with progress). - Document the updater in the README. 214 desktop tests green (+24 new: SemVer, asset matching, UpdateChecker via MockEngine, DesktopUpdateService). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Auto-cut releases on merge to main; bump version to 1.1.0 The Release workflow only triggered on pushed v* tags / manual dispatch, so merging a PR to main never produced a release and the in-app updater had nothing new to find. - Trigger Release on push to main (plus the existing tag + manual triggers). - Add a prepare job that resolves the target version (from the pushed tag, a manual input, or appVersion in build.gradle.kts) and only proceeds when a release for that version does not already exist -- so merges are idempotent and never create duplicate-version releases. - Build jobs now gate on that decision, build with the resolved -PappVersion, and create/attach to the vX.Y.Z release via softprops tag_name (works on a branch push, not just a tag). Android artifact is named from the version too. - Bump appVersion 1.0.0 -> 1.1.0 so merging this PR cuts the first release that ships the in-app updater and live-tests the new flow. - Document the release process (bump appVersion + merge to main) in the README. 214 desktop tests still green; generated PeboBuildConfig reports 1.1.0. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
v1.0.0
Pebo v1.0.0 - native installers (msi/exe/dmg/deb) + Android apk