diff --git a/.github/workflows/desktop-ci.yml b/.github/workflows/desktop-ci.yml index 6b2d319..7282b50 100644 --- a/.github/workflows/desktop-ci.yml +++ b/.github/workflows/desktop-ci.yml @@ -77,6 +77,9 @@ jobs: permissions: contents: write steps: + - name: Check out release notes + uses: actions/checkout@v4 + - name: Download installers uses: actions/download-artifact@v4 with: @@ -84,6 +87,18 @@ jobs: path: release merge-multiple: true + - name: Verify both installers are present + shell: bash + run: | + shopt -s nullglob + dmg=(release/*.dmg) + exe=(release/*.exe) + if (( ${#dmg[@]} != 1 || ${#exe[@]} != 1 )); then + echo "::error::expected exactly one .dmg and one .exe, got ${#dmg[@]} dmg / ${#exe[@]} exe" + ls -la release/ + exit 1 + fi + - name: Generate checksums shell: bash run: | @@ -96,15 +111,26 @@ jobs: - name: Prepare release metadata id: release-meta shell: bash - run: echo "name=Franklin Desktop ${GITHUB_REF_NAME#desktop-v}" >> "$GITHUB_OUTPUT" + run: | + version="${GITHUB_REF_NAME#desktop-v}" + echo "name=Franklin Desktop $version" >> "$GITHUB_OUTPUT" + notes="apps/desktop/release-notes/${version}.md" + if [[ -f "$notes" ]]; then + echo "using $notes" + cp "$notes" release-body.md + else + echo "no $notes, falling back to the generic blurb" + cat > release-body.md <<'EOF' + Franklin Desktop beta for macOS Apple Silicon and Windows x64. + + These beta installers are currently unsigned. On first launch, your operating system may ask you to confirm that you want to open the app. + EOF + fi - name: Publish Desktop prerelease uses: softprops/action-gh-release@v2 with: name: ${{ steps.release-meta.outputs.name }} prerelease: true - body: | - Franklin Desktop beta for macOS Apple Silicon and Windows x64. - - These beta installers are currently unsigned. On first launch, your operating system may ask you to confirm that you want to open the app. + body_path: release-body.md files: release/* diff --git a/apps/desktop/release-notes/0.2.0-beta.2.md b/apps/desktop/release-notes/0.2.0-beta.2.md new file mode 100644 index 0000000..9bd0c01 --- /dev/null +++ b/apps/desktop/release-notes/0.2.0-beta.2.md @@ -0,0 +1,18 @@ +Franklin Desktop Beta for macOS Apple Silicon and Windows x64. + +## What's fixed + +This release repairs four regressions from the sidebar reorganization in 0.2.0 Beta 1. + +- **Franklin Cloud can reconnect.** If the local Franklin service was not running when the app started, Projects stayed empty and the Connect button was stuck reading "Franklin is offline" until you restarted the app. It now retries when you open a project. +- **The Agents sidebar toggle works again.** Hiding Agents from the sidebar cleared the checkmark but left the button in place. +- **Gallery no longer empties after opening a Project.** Your generated images and video stayed hidden until you switched back to a personal chat. +- **Team Mode off now means off.** With Team Mode disabled the app was still contacting the cloud service on every launch and pre-loading a project you never opened. + +## Downloads + +- `Franklin-0.2.0-beta.2-arm64.dmg` for Apple Silicon Macs +- `Franklin.Setup.0.2.0-beta.2.exe` for Windows x64 +- `SHA256SUMS.txt` for download verification + +These beta installers are currently unsigned. On first launch, macOS or Windows may ask you to confirm that you want to open the app. diff --git a/apps/desktop/release-notes/README.md b/apps/desktop/release-notes/README.md new file mode 100644 index 0000000..4036790 --- /dev/null +++ b/apps/desktop/release-notes/README.md @@ -0,0 +1,14 @@ +# Desktop release notes + +`desktop-ci.yml` publishes the release body from `.md` in this +directory, where `` is the tag with the `desktop-v` prefix stripped — +so tag `desktop-v0.2.0-beta.2` reads `0.2.0-beta.2.md`. + +Write the notes here in the same PR as the version bump. Two reasons: + +- Re-running the release job reproduces the same body. The workflow used to + carry a hardcoded blurb, so a re-run silently replaced notes written by hand + on the release page. +- The filename carries the version, so notes cannot go stale against a newer + tag. A tag with no matching file falls back to a generic blurb rather than + publishing the previous release's notes.