chore(release): promote develop for Settings plugin install - #569
Conversation
Default branch must have the new **Build & Publish** so `workflow_run` can start it. Merge this **before** the same change on `main`. Then merge https://github.com/dripnex/readide/pulls?q=is%3Aopen+release-automation onto main — that push cuts 0.16.0. See `docs/RELEASE.md`. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Releases and desktop builds can now run automatically after approved changes, with improved version handling and publishing. - Release notes are now prepared consistently for website and GitHub Release displays. - **Bug Fixes** - Documented fixes for window and database lifecycle crashes in version 0.15.3. - **Documentation** - Added clearer guidance for the release process, desktop updates, packaged-app verification, signing, and troubleshooting. - Updated release history links and formatting for consistency. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
<!-- CURSOR_AGENT_PR_BODY_BEGIN --> ## Summary Playwright e2e now types into the CodeMirror 6 surface instead of treating `.cm-content` as out of scope. The e2e README matches CI: the job is required (no `continue-on-error`). ## Type of Change - [x] Bug fix (test coverage / docs accuracy) - [ ] New feature - [ ] Breaking change - [x] Documentation update ## Related Issues #311 (packaged `tags is not iterable` — already closed by #466; this PR does not re-open it) ## What - `editor.spec.ts`: create first note → type a unique marker into `.cm-content` → assert it appears. Second case: replace doc with `- first item`, press Enter, assert continue-markup adds a sibling `- `. - `openFirstNote()` helper shared with smoke / tables. - README: typing is in scope for those tests; CI e2e is required; `tables.spec.ts` still skipped on CI; `pnpm e2e` still runs `out/`, not a packaged asar. ## Packaged crash (#311) Not reproduced in this Linux VM (no macOS `.app`). Current tree already has the #466 work: `manualChunks` for `@codemirror/*` + `@lezer/*`, `resolve.dedupe`, `@lezer/common` pin/alias, smoke that loads the lazy editor. Vite 8 deprecates function-form `manualChunks` in favor of Rolldown `codeSplitting.groups` — I will inspect the built `out/renderer` chunks in this PR and only change bundling if the split is still wrong. I will not guess an asar rewrite without a repro. ## Checklist - [ ] Tests pass locally (`pnpm test` / desktop e2e) - [ ] Build succeeds (`pnpm --filter @dripnex/desktop build`) - [x] PR targets `develop` branch (not `main`) <!-- CURSOR_AGENT_PR_BODY_END --> <div><a href="https://cursor.com/agents/bc-a4c7c79b-af1e-4afa-930f-7dd0ed529d6f?cursor_ref=pr_footer&cursor_cta=open_in_web"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-web-light.png"><img alt="Open in Web" width="114" height="28" src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a> <a href="https://cursor.com/background-agent?bcId=bc-a4c7c79b-af1e-4afa-930f-7dd0ed529d6f&cursor_ref=pr_footer&cursor_cta=open_in_cursor"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-cursor-light.png"><img alt="Open in Cursor" width="131" height="28" src="https://cursor.com/assets/images/open-in-cursor-dark.png"></picture></a> </div> Co-authored-by: Cursor Agent <cursoragent@cursor.com>
<!-- CURSOR_AGENT_PR_BODY_BEGIN --> ## Summary Dependabot PRs fail the required `e2e` check in ~20s during `pnpm install`, not during Playwright. Automerge is already enabled; it cannot land while e2e is red. **Exact failure** (PR #482 job [96541625973](https://github.com/dripnex/app/actions/runs/32404870524/job/96541625973), also #464 / #456 / #462 and `commitlint` on #464): ``` ERROR Command failed with exit code 128: git clone git@github.com:electron/node-gyp.git ... git@github.com: Permission denied (publickey). ``` This is not missing repo secrets. Dependabot-regenerated lockfiles resolve `@electron/node-gyp` as a git dep whose `resolution.repo` is SSH: ``` # PR #456 (shell-quote) lockfile '@electron/node-gyp@git+https://git@github.com:electron/node-gyp.git#06b29aa...' resolution: {commit: 06b29aa..., repo: git@github.com:electron/node-gyp.git, type: git} # develop lockfile (e2e green after #541) '@electron/node-gyp@https://codeload.github.com/electron/node-gyp/tar.gz/06b29aa...' resolution: {tarball: https://codeload.github.com/electron/node-gyp/tar.gz/06b29aa...} ``` pnpm clones `resolution.repo` over SSH. GitHub-hosted runners have no deploy key. The `setup` job already rewrites SSH to HTTPS and therefore succeeds on the same PRs. `e2e` and `commitlint` did a fresh `pnpm install` without that rewrite. `develop` itself is green after #541 — its lockfile uses the HTTPS tarball, so e2e never hits the SSH clone. ## Type of Change - [x] Bug fix - [ ] New feature - [ ] Breaking change - [ ] Documentation update ## Fix Add the same `git config --global 'url.https://github.com/.insteadOf' 'git@github.com:'` step that `setup` / `release` / `build` / `docs` already use: - `.github/workflows/ci.yml` `e2e` job — unblocks the required e2e check - `.github/workflows/pr-title.yml` — same SSH death on Dependabot lockfiles Existing Dependabot PRs (#482, #464, #462, #460, #459, #456, #451, #431, #430, #248) should go green after rebase onto this `develop` change (the merge commit picks up the workflow). ## Related Issues Closes #544 ## Checklist - [x] I've read [CONTRIBUTING.md](../CONTRIBUTING.md) - [ ] Tests pass locally (`pnpm test`) — workflow-only change; no product code - [ ] Build succeeds (`pnpm build`) — not applicable - [x] PR targets `develop` branch (not `main`) <!-- CURSOR_AGENT_PR_BODY_END --> <div><a href="https://cursor.com/agents/bc-65d9f024-2af5-4bbe-8318-35ae4db127d2?cursor_ref=pr_footer&cursor_cta=open_in_web"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-web-light.png"><img alt="Open in Web" width="114" height="28" src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a> <a href="https://cursor.com/background-agent?bcId=bc-65d9f024-2af5-4bbe-8318-35ae4db127d2&cursor_ref=pr_footer&cursor_cta=open_in_cursor"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-cursor-light.png"><img alt="Open in Cursor" width="131" height="28" src="https://cursor.com/assets/images/open-in-cursor-dark.png"></picture></a> </div> Co-authored-by: Cursor Agent <cursoragent@cursor.com>
## Summary Writes the 22 Aug product decisions into `docs/` (not chat). Mobile is **started** (Tomás said go). Repo [`dripnex/ios`](https://github.com/dripnex/ios) exists. No iOS code in this repo. - ADRs 002–005: AuthGate stays, SQLite not CouchDB, MCP over Local HTTP, mobile is `dripnex/ios` - `docs/mobile/PLAN.md`: P1 skeleton in dripnex/ios. Two-profile desktop sync is a P3 risk, not a P1 blocker. - `docs/mobile/CONTRACT.md`: iOS copies `NoteSnapshot` + `NoteStatus` + `sync-core` wire. Do not invent fields. - `docs/ai/README.md` + `updates.md` log - Prettier table padding (same lint that failed on #553) Points at #551. Closes nothing. Prefer this over #556 (duplicate, closed). ## Test plan - [ ] CI lint green (do not merge if red) - [ ] Docs render on GitHub (mermaid in PLAN.md) - [ ] No app/code changes --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com>
<!-- CURSOR_AGENT_PR_BODY_BEGIN --> Research-only write-up for official first-party **desktop** plugins, plus a small verified slug fix for [#562](#562). No marketplace, no new install system, no iOS. Parent context: #547 (vim/math/mermaid install that actually works), #542, **#562**. ## Summary Adds `docs/plugins/` and a pointer from `docs/PLUGIN_SYSTEM.md`. The write-up covers: 1. How plugins install and load today (`plugin-api`, scanner, CLI vs Settings, update matching). 2. What #547 implies, including the packaged slug bug **#562**. 3. GFM/editor gaps vs Inkdrop-style *editor* packs — hunches checked against the tree. 4. Ranked next official packs. Out-of-scope list is explicit. ## #562 — slug vs repo vs manifest id Verified in `dripnex/plugin-vim`: | Role | Value | | --- | --- | | Manifest / `scan().id` | `dripnex-vim-mode` | | GitHub repo (working install) | `dripnex/plugin-vim` | | Live registry slug | missing → `GET /plugins/dripnex-vim-mode` 404 | BrowseTab used to **replace** the fallback catalog and call `installFromSpec('dripnex-vim-mode')`. That is why Vim vanished from Install/Updates. Workaround on packaged 0.16.0: Other package → `dripnex/plugin-vim`. **Small fix in this PR (not a marketplace):** - Merge `COMMUNITY_CATALOG` into the live registry list so Vim stays visible. - If a live row is `dripnex-vim-mode` **without** `repositoryUrl`, merge fills `dripnex/plugin-vim` and `installSpecFor` uses that repo — never the slug. - `FIRST_PARTY_PACKAGES` adds slug `dripnex-vim-mode` with `repositoryUrl` `https://github.com/dripnex/plugin-vim` pointing at the real [v1.2.0 tarball](https://github.com/dripnex/plugin-vim/releases/tag/v1.2.0). ## Ranked next official packs (after #547) 1. **Emacs keymap** (`dripnex/plugin-emacs`) — only missing editor keymap; same shape as vim. No product-shape decision. 2. **Footnote insert + jump** — GFM footnotes already render via `remark-gfm`; pack would add insert/jump, not a second renderer. 3. **Source-mode task toggle** — preview click + insert + strike already ship. Ask Tomás only on *where it lives* (core chrome vs pack). 4. **CSV/TSV fence preview** (optional) — `registerCodeBlockRenderer`; lower value because GFM tables already exist. **Hunches discarded:** tables (already built-in `dripnex-tables`), footnotes-as-renderer (preview done), task-list as greenfield (mostly built-in), mermaid/math renderers as new satellites (built-in; existing satellites only insert a fence). ## Out of scope Marketplace, clipper, graph, AI-notetaker, wikilinks-as-pack, iOS plugins, extracting built-in mermaid/math/tables (#339–#342 icebox). CLI vs packaged userData remains #547 remainder — not this PR. ## Test plan Docs review plus the small slug-fix unit tests. - [ ] Read `docs/plugins/README.md` then `docs/plugins/official-first-party.md` — #562 table names slug vs repo vs manifest id - [ ] Paths match the tree (`BrowseTab.tsx`, `communityCatalog.ts`, `FIRST_PARTY_PACKAGES`) - [ ] Install click for Vim would send `dripnex/plugin-vim`, not `dripnex-vim-mode` - [ ] Live `dripnex-vim-mode` row with no `repositoryUrl` still installs via `dripnex/plugin-vim` - [ ] `pnpm --filter @dripnex/api test -- tests/plugins.test.ts` - [ ] `pnpm --filter @dripnex/desktop exec vitest run src/renderer/pages/settings/sections/plugins/__tests__/communityCatalog.test.ts` - [ ] No marketplace UI, no new plugin packs, no `dripnex/ios` changes ## Type of Change - [x] Documentation update - [x] Bug fix (catalog / registry slug only) <!-- CURSOR_AGENT_PR_BODY_END --> <div><a href="https://cursor.com/agents/bc-80535235-28c6-430b-b695-a3bd8a842666?cursor_ref=pr_footer&cursor_cta=open_in_web"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-web-light.png"><img alt="Open in Web" width="114" height="28" src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a> <a href="https://cursor.com/background-agent?bcId=bc-80535235-28c6-430b-b695-a3bd8a842666&cursor_ref=pr_footer&cursor_cta=open_in_cursor"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-cursor-light.png"><img alt="Open in Cursor" width="131" height="28" src="https://cursor.com/assets/images/open-in-cursor-dark.png"></picture></a> </div> --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com>
<!-- CURSOR_AGENT_PR_BODY_BEGIN --> ## Summary GitHub Actions rejects `secrets` in `if:` expressions. That made `.github/workflows/deploy-api.yml` fail at parse time on every run (see [run 32578223943](https://github.com/dripnex/app/actions/runs/32578223943)): ``` Invalid workflow file: .github/workflows/deploy-api.yml#L1 (Line: 83, Col: 13): Unrecognized named-value: 'secrets'. Located at position 1 within expression: secrets.TURSO_DATABASE_URL != '' ``` The annotation still matched line 83 on current `develop`. This PR removes that `if:` and skips migrate inside the shell when `TURSO_DATABASE_URL` is unset. Env var names, wrangler, routes, and app code are unchanged. ## Type of Change - [x] Bug fix - [ ] New feature - [ ] Breaking change - [ ] Documentation update ## Related Issues Fixes workflow parse failure on Deploy API (`workflow_dispatch` and push-to-main). ## Checklist - [x] I've read [CONTRIBUTING.md](../CONTRIBUTING.md) - [x] Tests pass locally (`pnpm test`) — workflow-only change; no app/test edits - [x] Build succeeds (`pnpm build`) — not applicable (YAML only) - [x] PR targets `develop` branch (not `main`) ## Screenshots N/A <!-- CURSOR_AGENT_PR_BODY_END --> <div><a href="https://cursor.com/agents/bc-5f3e504c-13fa-48bb-b20e-c71cdea1c49c?cursor_ref=pr_footer&cursor_cta=open_in_web"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-web-light.png"><img alt="Open in Web" width="114" height="28" src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a> <a href="https://cursor.com/background-agent?bcId=bc-5f3e504c-13fa-48bb-b20e-c71cdea1c49c&cursor_ref=pr_footer&cursor_cta=open_in_cursor"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-cursor-light.png"><img alt="Open in Cursor" width="131" height="28" src="https://cursor.com/assets/images/open-in-cursor-dark.png"></picture></a> </div> Co-authored-by: Cursor Agent <cursoragent@cursor.com>
) <!-- CURSOR_AGENT_PR_BODY_BEGIN --> ## Summary Packaged users can enable Vim (and mermaid/math) from Settings → Plugins without cloning a repo. Official slugs resolve to GitHub `owner/repo`, Browse keeps fallback cards when the live registry omits them, Updates match id **or** repository, and the CLI writes to the same `Dripnex` userData folder as the packaged app. No marketplace. Official first-party packs only. AuthGate untouched. ## Type of Change - [x] Bug fix - [ ] New feature - [ ] Breaking change - [x] Documentation update ## Related Issues Closes #547 Closes #562 ## What changed 1. **Install spec** — `dripnex-vim-mode` and `dripnex/plugin-vim` both resolve to `dripnex/plugin-vim` (same for mermaid/math). `GET /plugins/:slug` 404 no longer blocks Install. Decision: [`docs/plugins/install-path.md`](docs/plugins/install-path.md). 2. **Browse** — already merged fallback catalog (#563). This PR also lists mermaid/math in `COMMUNITY_CATALOG` so they stay visible if the API drops them. 3. **Updates** — `matchRemoteForInstalled` matches `scan().id` to registry slug **or** the same GitHub repository (and the fallback catalog). 4. **userData (#562 addendum)** — `resolveUserDataRoot` includes packaged `productName` `Dripnex` on Linux/Windows/macOS, prefers a root that already has `dripnex.db` / `plugins/`, and defaults to `Dripnex` so `dripnex-plugin install` lands in the folder the packaged app scans. ## Checklist - [x] I've read [CONTRIBUTING.md](../CONTRIBUTING.md) - [x] Targeted unit tests pass (`storage-core` data-paths, `plugin-cli` installSpec, desktop `githubInstall` + `communityCatalog`) - [x] Typecheck: storage-core, plugin-cli, desktop main + renderer - [ ] Full `pnpm test` / `pnpm build` (not required for this path-only change) - [x] PR targets `develop` branch (not `main`) ## Test plan - [ ] Settings → Plugins → Browse still shows Vim when the registry lists it **and** when it is omitted (fallback merge) - [ ] Install `dripnex-vim-mode` and `dripnex/plugin-vim` both land `dripnex-vim-mode-1.2.0.tar.gz` in packaged userData `plugins/` - [ ] Updates lists vim when a newer registry/repo version exists - [ ] CLI and packaged app resolve the same userData root for productName `Dripnex` (Linux `~/.config/Dripnex`, Windows `%APPDATA%/Dripnex`, macOS `~/Library/Application Support/Dripnex`) - [x] Unit tests: `githubInstall`, `installSpec`, `communityCatalog`, `data-paths` - [ ] No store UI, no clipper/graph/AI-notetaker, no `dripnex/ios` / Psynth / Linear PSY <!-- CURSOR_AGENT_PR_BODY_END --> <div><a href="https://cursor.com/agents/bc-587e59ae-ed45-498d-aa39-a0238536b441?cursor_ref=pr_footer&cursor_cta=open_in_web"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-web-light.png"><img alt="Open in Web" width="114" height="28" src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a> <a href="https://cursor.com/background-agent?bcId=bc-587e59ae-ed45-498d-aa39-a0238536b441&cursor_ref=pr_footer&cursor_cta=open_in_cursor"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-cursor-light.png"><img alt="Open in Cursor" width="131" height="28" src="https://cursor.com/assets/images/open-in-cursor-dark.png"></picture></a> </div> Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Resolve conflicts so develop (#567 Settings plugin install) can land on main with the existing semantic-release pipeline. Keep main's tag-without bump-commit behavior and dripnex/app repo name. Co-authored-by: Tomás Maritano <tomymaritano@gmail.com>
|
Warning Review limit reached
Next review available in: 34 minutes Limit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?Wait for the limit to reset, then comment An organization admin can change what happens after included review limits in Billing. How do review limits work?CodeRabbit enforces per-developer PR review limits within each organization. For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (34)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
🎉 This PR is included in version 0.16.1 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
…tach (#570) <!-- CURSOR_AGENT_PR_BODY_BEGIN --> ## Summary Build & Publish **#27** ([run 32590544551](https://github.com/dripnex/app/actions/runs/32590544551)) built signed mac/win/linux installers, then the run went red. [v0.16.1](https://github.com/dripnex/app/releases/tag/v0.16.1) notes exist; assets were empty. **Job that made #27 red:** `sync-develop` / Create sync PR ``` pull request create failed: GraphQL: GitHub Actions is not permitted to create or approve pull requests (createPullRequest) ``` Tomás: Settings → Actions → General → Workflow permissions → enable **Allow GitHub Actions to create and approve pull requests**. That is not why binaries are missing. **Why assets were empty (all three `build` jobs + `publish` succeeded):** `workflow_run` uses **develop**'s YAML (default branch), which lacked the stamp step already on `main`. Tree version is still `0.15.2` (tag-without-bump). electron-builder packaged `Dripnex-0.15.2.*` and skipped upload onto the already-published `v0.15.2`: ``` GitHub release not created reason=existing type not compatible with publishing type tag=v0.15.2 version=0.15.2 existingType=release publishingType=draft ``` Signing/notary is fine (`notarization successful`; `CSC_*` / `APPLE_*` present). Not a flake. This PR (develop — the file `workflow_run` actually runs): 1. Stamp `package.json` from the tag before packaging (same step as `main` / #540). 2. Re-draft the target GitHub Release so `--publish always` can attach assets on retry. No product code. AuthGate untouched. No store. No iOS. ### Retry (Tomás — cloud agent token cannot `workflow_dispatch`, HTTP 403) v0.16.1 is already converted back to **draft** so electron-builder can upload. Either: ```bash # fastest: main already has the stamp step gh workflow run "Build & Publish" --ref main -f tag=v0.16.1 ``` ```bash # or this branch (stamp + auto re-draft) gh workflow run "Build & Publish" --ref cursor/fix-v0161-build-assets-f239 -f tag=v0.16.1 ``` Actions UI: Run workflow → branch `main` or `cursor/fix-v0161-build-assets-f239` → tag `v0.16.1`. `sync-develop` will fail again on the retry until the Actions PR setting above is enabled. Installers still attach before that job. ## Type of Change - [x] Bug fix - [ ] New feature - [ ] Breaking change - [ ] Documentation update ## Related Issues Unblocks empty v0.16.1 assets after promotion #569 / Build #27. ## Checklist - [x] I've read CONTRIBUTING.md - [x] Workflow-only change (no product tests) - [x] PR targets `develop` branch (not `main`) <!-- CURSOR_AGENT_PR_BODY_END --> <div><a href="https://cursor.com/agents/bc-3629b701-130d-4cce-99f3-8e22cf2ff239?cursor_ref=pr_footer&cursor_cta=open_in_web"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-web-light.png"><img alt="Open in Web" width="114" height="28" src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a> <a href="https://cursor.com/background-agent?bcId=bc-3629b701-130d-4cce-99f3-8e22cf2ff239&cursor_ref=pr_footer&cursor_cta=open_in_cursor"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-cursor-light.png"><img alt="Open in Cursor" width="131" height="28" src="https://cursor.com/assets/images/open-in-cursor-dark.png"></picture></a> </div> Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Promotion PR so semantic-release can cut the next signed desktop build (mac / win / linux). No store.
Includes #567 (Settings install for official vim / math / mermaid, shared Dripnex userData) plus the rest of
developsince v0.16.0.Tomás approved the official signed release so QA can dogfood Settings → Plugins.
Do not squash
Merge commit only. Squash collapses every
feat/fixinto onechoreand semantic-release will not bump. Seedocs/RELEASE.md.Why not #568
#568 (
develop→main) is blocked: GitHub 405 merge conflicts.mainhas release-pipeline-only commits after the last promotion that never went back todevelop(#536, #537, #539, #540).This branch starts at
develop(68ffe0f) and mergesorigin/main, resolving those conflicts.Conflict resolution
.github/workflows/release.ymlmain— #539 tightened dry-run grep; #540 record-tag (no package.json bump verify)apps/desktop/package.jsonmain—publish.repoisapp(#537). Version left at 0.15.2 (no hand bump)apps/desktop/RELEASES.mdmain— updater repodripnex/appdocs/RELEASE.mdmain— tag-without-bump-commit docs (#540)Auto-merged from
main(still required, not already on develop):release.config.js(no git bump-commit),build.yml(stamp version from tag before packaging), rootpackage.json/ README / CLAUDE / CONTRIBUTING repo URL (dripnex/app).Product / plugin / desktop / docs from develop (#567 and later) are unchanged. AuthGate unchanged. iOS not touched.
Replaces #568.