Skip to content

chore(release): promote 0.20.0 - #606

Merged
tomymaritano merged 8 commits into
mainfrom
develop
Aug 25, 2026
Merged

chore(release): promote 0.20.0#606
tomymaritano merged 8 commits into
mainfrom
develop

Conversation

@tomymaritano

Copy link
Copy Markdown
Collaborator

AuthGate no longer blocks unsigned launch; named palettes are satellite packs only (Default + installed); registry does not cache a partial GitHub scan; no public marketplace.

develop is ahead of v0.19.0 with fix: commits only (#602, #603, #604), so semantic-release may cut 0.19.1. What’s New: docs/releases/v0.19.1.md (status: draft until installers exist).

Merge with a merge commit. Do not squash. Squashing drops the fix history and semantic-release will not bump.

CI is the gate. Do not bump package.json. Do not push a tag. Do not Run workflow. Release + Build & Publish + deploy-api.yml start from this merge.

Open in Web Open in Cursor 

cursoragent and others added 8 commits August 25, 2026 01:47
A mid-scan 403/429 used to store the shorter pack list for ~12 minutes,
which dropped theme-noir and theme-sakura from GET /plugins. Keep the last
complete discovery (or return null for the seed catalog) and seed dune,
noir, and sakura so a GitHub-down or incomplete scan still lists them.

Co-authored-by:  Tomás Maritano <tomymaritano@gmail.com>
<!-- CURSOR_AGENT_PR_BODY_BEGIN -->
## Summary

Linux AppImage 0.19.0 QA could not use Dripnex without signing in.
`App.tsx` treated a missing session as a hard full-screen magic-link
**AuthGate**. “Continue locally” only appeared after a failed magic-link
request (and required an email). `Ctrl+,` did nothing because Open
Settings is skipped while an email field is focused. File on Linux is
Electron’s default Quit-only menu.

That contradicts offline-first: no account to open a file; sync is
optional.

**Cause:** not a license check. `NotesApp` returned `<AuthGate />`
whenever `!isAuthenticated` (E2E was the only skip). ADR 002 / #545 had
made that intentional; this PR supersedes that.

**Fix:**
- Cold start without credentials → Welcome (first run) or the local
workspace. Magic link stays on Enable Sync / Settings → Account.
- Linux/Windows **File → Settings…** (`Ctrl+,`) opens Settings from the
main process, so Plugins → Install (Browse registry) is reachable
without a session.
- `Ctrl+,` is allowed even when a form field is focused.
- Tests lock the shell policy and File-menu layout.

Browse / plugin registry behavior is unchanged. No public marketplace.

## Type of Change

- [x] Bug fix
- [ ] New feature
- [ ] Breaking change
- [x] Documentation update

## Related Issues

Supersedes the “AuthGate stays” reading of #545 for desktop launch. Auth
remains available for optional sync.

## Checklist

- [x] I've read [CONTRIBUTING.md](../CONTRIBUTING.md)
- [x] Tests pass locally (`pnpm test` — 19/19 tasks, desktop 334 tests)
- [ ] Build succeeds (`pnpm build`) — not run; typecheck passed on
pre-push
- [x] PR targets `develop` branch (not `main`)

## QA test plan (Linux AppImage)

Extract the AppImage and launch with `--no-sandbox` on a **fresh user
data dir** (no tokens, no `local-user.json`):

1. **Cold start, no account.** Expect Welcome (“Your Markdown. Your
Machine.”) or the workspace — **not** a full-screen “Email me a link”
gate with no skip.
2. Dismiss Welcome (“I'll explore on my own” or create a note). Expect
sidebar + note list. Footer may show **Enable Sync** (optional).
3. **File → Settings…** or `Ctrl+,`. Expect the Settings window.
4. **Settings → Plugins → Install** (Browse registry). Expect the
existing first-party packs / fallback catalog. Do not require sign-in.
5. Create a local note and confirm it persists after quit/relaunch
without signing in.
6. Optional: Enable Sync / Account → Sign in still offers magic-link for
sync.

Verified in this environment on a cold `DRIPNEX_DATA_DIR` (no
`DRIPNEX_E2E`, `--no-sandbox`): Welcome → workspace → File → Settings →
Plugins → Install, with Enable Sync remaining opt-in.

[Welcome on unsigned first
launch](https://cursor.com/agents/bc-c091871b-6e8a-4541-b195-9832870ae0ae/artifacts?path=%2Fopt%2Fcursor%2Fartifacts%2Fwelcome-no-authgate.webp)
[Workspace with Enable Sync in the
footer](https://cursor.com/agents/bc-c091871b-6e8a-4541-b195-9832870ae0ae/artifacts?path=%2Fopt%2Fcursor%2Fartifacts%2Fworkspace-unsigned-enable-sync.webp)
[File menu includes
Settings](https://cursor.com/agents/bc-c091871b-6e8a-4541-b195-9832870ae0ae/artifacts?path=%2Fopt%2Fcursor%2Fartifacts%2Ffile-menu-settings.webp)
[Settings Plugins Install registry without
sign-in](https://cursor.com/agents/bc-c091871b-6e8a-4541-b195-9832870ae0ae/artifacts?path=%2Fopt%2Fcursor%2Fartifacts%2Fsettings-plugins-browse.webp)

[unsigned-first-launch-workspace-settings-plugins.mp4](https://cursor.com/agents/bc-c091871b-6e8a-4541-b195-9832870ae0ae/artifacts?path=%2Fopt%2Fcursor%2Fartifacts%2Funsigned-first-launch-workspace-settings-plugins.mp4)


<sub>To show artifacts inline, <a
href="https://cursor.com/dashboard/cloud-agents#my-pull-requests">enable</a>
in settings.</sub>
<!-- CURSOR_AGENT_PR_BODY_END -->

<div><a
href="https://cursor.com/agents/bc-c091871b-6e8a-4541-b195-9832870ae0ae?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>&nbsp;<a
href="https://cursor.com/background-agent?bcId=bc-c091871b-6e8a-4541-b195-9832870ae0ae&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>&nbsp;</div>

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
…cache-a6a9

fix(api): do not cache a partial GitHub pack scan as success
<!-- CURSOR_AGENT_PR_BODY_BEGIN -->
## Summary

Named palettes no longer ship inside the desktop. `OFFICIAL_THEMES` is
empty; Settings → Themes shows the `tokens.css` default plus installed
plugin themes only. Retired bundled ids (`dripnex-parchment`,
`dripnex-wave`, …) fall back to that default so a saved palette cannot
leave a blank UI.

Satellite repos (`dripnex/theme-*`) are unchanged. No marketplace.
AuthGate untouched.

## Type of Change

- [x] Bug fix
- [ ] New feature
- [ ] Breaking change
- [x] Documentation update

## Related Issues

Product rule: themes ship as satellite git repos
(`dripnex/theme-<slug>`), pack/tag/Release tarball, Inkdrop-style. Do
not add palettes to the desktop core.

## Checklist

- [x] I've read [CONTRIBUTING.md](../CONTRIBUTING.md)
- [x] Tests pass locally (`pnpm test`)
- [ ] Build succeeds (`pnpm build`)
- [x] PR targets `develop` branch (not `main`)

## What changed

- Emptied `OFFICIAL_THEMES` so Parchment/Wave/Night/Harbor
Dusk/Solarized/Gruvbox/Glass/Midnight/Ember/Ion/Matcha/Phosphor/Fog are
not registered without installing.
- Settings still lists **Default** from `tokens.css`. Installed
`theme.json` packs are scanned into the picker (including the Settings
window, which has no PluginHost).
- If `appearance.activeThemeId` is one of the retired `dripnex-*` ids,
restore clears it instead of waiting for a palette that will never load.
- Frosted settings-card chrome keys off `data-frosted` instead of
`dripnex-glass`.

## Tests

- `officialThemes.test.ts`: 10 passed (empty core list, retired-id
fallback, installed pack registration).
- `pnpm test`: 19/19 tasks successful (`@dripnex/desktop` 342 tests).
- Typecheck passed on push.

<!-- CURSOR_AGENT_PR_BODY_END -->

<div><a
href="https://cursor.com/agents/bc-b2c9f4c1-799b-4847-aacd-7afa7783f22a?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>&nbsp;<a
href="https://cursor.com/background-agent?bcId=bc-b2c9f4c1-799b-4847-aacd-7afa7783f22a&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>&nbsp;</div>

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by:  Tomás Maritano <tomymaritano@gmail.com>
Co-authored-by:  Tomás Maritano <tomymaritano@gmail.com>
chore(release): merge main into develop
@coderabbitai

coderabbitai Bot commented Aug 25, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 54 minutes.

View limit details

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.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 2064455d-8263-4f7e-bd11-9c9eadf56b59

📥 Commits

Reviewing files that changed from the base of the PR and between 31945f8 and 17152b4.

📒 Files selected for processing (27)
  • apps/desktop/src/main/userHackFiles.ts
  • apps/desktop/src/main/windows/__tests__/menuLayout.test.ts
  • apps/desktop/src/main/windows/applicationMenu.ts
  • apps/desktop/src/main/windows/menuLayout.ts
  • apps/desktop/src/renderer/App.tsx
  • apps/desktop/src/renderer/components/auth/AuthGate.tsx
  • apps/desktop/src/renderer/data/nowBoard.md
  • apps/desktop/src/renderer/hooks/useCommandKeybindings.ts
  • apps/desktop/src/renderer/hooks/useOfficialThemes.ts
  • apps/desktop/src/renderer/pages/settings/components/SettingsCard.module.css
  • apps/desktop/src/renderer/pages/settings/sections/ThemesSection.tsx
  • apps/desktop/src/renderer/themes/__tests__/officialThemes.test.ts
  • apps/desktop/src/renderer/themes/officialThemes.ts
  • apps/desktop/src/renderer/utils/__tests__/appShell.test.ts
  • apps/desktop/src/renderer/utils/__tests__/commandContext.test.ts
  • apps/desktop/src/renderer/utils/appShell.ts
  • apps/desktop/src/renderer/utils/commandContext.ts
  • docs/NOW.md
  • docs/VISUAL_LANGUAGE.md
  • docs/adr/002-authgate-stays.md
  • docs/ai/README.md
  • docs/plugins/install-path.md
  • docs/releases/v0.19.1.md
  • docs/themes/LOG.md
  • packages/api/src/routes/plugins.ts
  • packages/api/src/services/githubPacks.ts
  • packages/api/tests/plugins.test.ts

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@tomymaritano
tomymaritano enabled auto-merge August 25, 2026 13:24
@tomymaritano
tomymaritano merged commit e8bea28 into main Aug 25, 2026
25 checks passed
@github-actions

Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 0.19.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants