chore(release): promote 0.18.0 - #593
Merged
Merged
Conversation
Adds .cursor/environment.json and an idempotent install script for Cursor Cloud Agents. The install script: - selects an nvm-managed Node whose bundled node:sqlite has FTS5 enabled (the daemon's default node has FTS5 disabled, which breaks @dripnex/mcp-server) and makes it the default node for all shells; - runs pnpm install --frozen-lockfile (postinstall rebuilds better-sqlite3 for Electron and materializes the Electron binary); - builds workspace packages so typecheck and the Playwright+Electron e2e suite are ready to run. Validated: pnpm test (19/19 tasks), typecheck, lint, build, and the Electron e2e suite (7 passed under xvfb).
…me PATH The install-time PATH can differ from the agent runtime PATH: during an environment build the nvm bin already precedes /exec-daemon, so the previous 'no shim needed' shortcut skipped creating the shims — leaving a fresh agent's default node pointing at the daemon's FTS5-less node. Always place the shims in every writable PATH dir preceding /exec-daemon (plus /usr/local/cargo/bin).
…582) ## Problem `tests/runMigrations.test.ts > records migrations that already exist in the schema` times out intermittently and blocks unrelated PRs. It blocked #581 until I reran the job, which then passed — a flake, not a break. ## Why it is slow Not a bug. Each test creates a real libsql file database in `/tmp` and drives the **entire** `MIGRATIONS` catalog through it. The failing one calls `applyMigrations` **twice**. CI measured: | Test | Duration | | --- | --- | | applies the catalog to an empty database, then no-ops | 3004 ms | | records migrations that already exist in the schema | 7376 ms | vitest's default is 5000 ms and there is no `testTimeout` configured anywhere in the repo. The suite has been living one runner hiccup away from red. ## Fix An explicit 30s budget on those two tests, with a comment saying why. Scoped deliberately: a global `testTimeout` bump would hide genuinely slow *unit* tests elsewhere. These two are the only ones doing real database I/O, so they are the only ones that should carry a longer budget. Verified locally: `pnpm --filter @dripnex/api test` → 59/59 pass. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
## What removing `|| true` revealed The `disable-automerge` job fails with: ``` FORBIDDEN — Resource not accessible by integration ``` It had been failing silently behind `|| true` (see run [32602609796](https://github.com/dripnex/app/actions/runs/32602609796) on #571). The safety net that is supposed to stop a queued auto-merge from landing on an unprotected base **has never actually worked** — it just reported green. ## Honest note on cause I cannot prove this was pre-existing. The job lost `contents: write` earlier in #566 when I scoped workflow-level permissions per job on a least-privilege review, and `|| true` meant no run before or after ever surfaced a failure. Two live hypotheses: 1. The mutation needs `contents: write` and the least-privilege narrowing broke it. 2. It was already FORBIDDEN and the suppression hid it. This PR tests hypothesis 1 by granting the scope back. If FORBIDDEN returns with both scopes present, the cause is a repository or org restriction on `GITHUB_TOKEN` and needs a settings change or a PAT — the comment in the file says so, so the next person does not have to rediscover it. ## Scope narrowing The job fired on every PR whose base was not `develop`, which includes release promotions into `main`. `main` is protected; there is no unsafe queued merge to undo there. The risk this job exists for is landing on an **unprotected** base, so it now fires only on drafts, or on a base that is neither `develop` nor `main`. ## Not changed The loud failure stays. Going back to `|| true` would restore exactly the false confidence that hid this. 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Updated automated merge handling for draft pull requests. * Protected pull requests targeting `main` and `develop` from automatic processing. * Enabled the required repository content permissions for the automation workflow. <!-- end of auto-generated comment: release notes by coderabbit.ai --> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
…585) ## Context I enabled **Allow GitHub Actions to create and approve pull requests** at the org and repo level, which unblocked `sync-develop` — it had been failing with `GitHub Actions is not permitted to create or approve pull requests` since forever. Re-running it against the v0.17.0 build now succeeds. But it immediately produced #584, which **cannot merge**. ## The problem `sync-develop` opened a `develop ← main` PR. That shape deadlocks: `develop` requires the head branch to be up to date, and `main` falls behind `develop` the moment anything lands after the release — #582 and #583 did exactly that. #584 has been sitting at `BEHIND` since it was created. I hit the same wall by hand earlier tonight with #577. Even if it could merge, the squash auto-merge would replay the content as a fresh commit and **not** establish ancestry, which is the entire point of a back-merge. That is what went wrong in #578 and #579. ## The fix Push a branch descended from `develop` with `main` merged into it, then open that against `develop`. Same thing that finally worked manually in #581. - Named `chore/backmerge-main-<tag>`, which matches the exclusion added in #580 so `automerge.yml` leaves it alone. - The job arms auto-merge itself with `--merge`, so it lands as a merge commit. - Exits early when `main` is already an ancestor, or when the branch already exists, so re-runs are safe. ## Follow-up #584 should be closed — this replaces it. The next release will exercise this path for real. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Both files were sitting **untracked** in the working tree. They failed `pnpm format:check` locally, so a clean run could not go green without deleting them — which would have thrown away real analysis. Prettier applied, **content unchanged**. - `dripnex-dependency-map.md` — the epic dependency DAG, the critical path, spike gates, and a two-person parallelization plan. The cross-cutting view the issue tree cannot show. - `dripnex-scope-reconciliation.md` — resolves where the vision doc, the issues, and the running code disagree (Tauri vs Electron, Rust vs TS, CRDT vs push/pull, the 5-Worker split), with the open founder calls spelled out. Both declare their own trust hierarchy and mark `plan.md` and `docs/ROADMAP.md` as stale, which is worth having in the repo rather than in one person's working tree. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
chore(release): merge main into develop
<!-- CURSOR_AGENT_PR_BODY_BEGIN --> ## Summary First daily official theme pack: **Harbor Dusk** (`dripnex-harbor-dusk`). Coastal evening palette for long writing sessions — calm, low glare, readable markdown. Same contract as Parchment / Wave / Night / Fog: a token layer over `tokens.css`, registered in `OFFICIAL_THEMES`. No new fonts, no stylesheet fork, no plugin pack. Evening sibling to Fog (coastal gray morning). Merge needs a **Dripnex / Tomás** gate — draft only, do not merge from this PR. ## Concept Harbor after sunset: deep slate/navy water, mist over the docks, muted teal from the tide, warm amber from lanterns. Built for long markdown sessions, not OLED punch. ## Palette preview | Role | Token | Hex | | --- | --- | --- | | Canvas | `--bg-base` | `#141c26` | | Sidebar | `--bg-surface` | `#10161e` | | Raised chrome | `--bg-elevated` | `#1c2633` | | Inset / code | `--bg-inset` | `#0c1218` | | Mist text | `--text-primary` | `#cdd6de` | | Teal accent | `--accent` | `#5e9a92` | | Accent hover | `--accent-hover` | `#74aea6` | | Amber lanterns (links, on-hold) | `--cm-link` / `--status-on-hold` | `#d4a05a` | | Completed | `--status-completed` | `#7aad8a` | | Dropped | `--status-dropped` | `#c46b6b` | Hover, borders, and glass use mist at low opacity so chrome stays quiet. Typography is the existing `--font-sans` / `--font-mono` stack; this pack does not set font faces. `--cm-link` is the one extra vs other official palettes (allowed `--cm-*` extension, same as the community `theme.json` template) so editor links read as lanterns while chrome stays teal. Preview markdown links still follow `--accent` — `--link` is not in the theme whitelist. ## Files touched - `apps/desktop/src/renderer/themes/officialThemes.ts` — register Harbor Dusk - `apps/desktop/src/renderer/themes/__tests__/officialThemes.test.ts` — unique ids + token whitelist, including Harbor Dusk - `docs/themes/LOG.md` — daily id/topic log (required so later packs do not reuse this id) No lockfile, no site listing, no marketplace registry (`theme-parchment` satellite is a different shipping path). ## How to preview 1. `pnpm dev` (desktop) 2. Settings → Themes 3. Select **Harbor Dusk** 4. Check sidebar, note list, editor, command palette, and a markdown note with headings, links, lists, and a code block Restore Default (or another palette) to leave the session as you found it. ## Type of Change - [x] New feature ## Checklist - [x] PR targets `develop` (not `main`) - [x] Draft — merge needs Dripnex / Tomás gate - [x] Official theme unit tests pass (`@dripnex/desktop` 325 tests) - [x] Workspace typecheck passed on push - [ ] Full `pnpm test` / `pnpm build` (CI) <!-- CURSOR_AGENT_PR_BODY_END --> <div><a href="https://cursor.com/agents/bc-c792b1a1-968e-44fc-8723-bedc223bcc31?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-c792b1a1-968e-44fc-8723-bedc223bcc31&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> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added the official **Harbor Dusk** dark theme, featuring coastal evening colors, muted teal accents, amber status tones, frosted surfaces, and improved code-link styling. - **Documentation** - Added Harbor Dusk to the official theme log. - **Tests** - Added validation covering theme metadata, color schemes, token values, unique identifiers, and accent consistency. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com>
<!-- CURSOR_AGENT_PR_BODY_BEGIN --> ## Summary Author `docs/releases/v0.18.0.md` so 0.18.0 can promote. Harbor Dusk is the user-facing story: a new official palette already in the desktop. Status stays **draft**. Flip to `published` when the GitHub release is undrafted. Promotion remains a separate `chore(release): promote 0.18.0` PR (`develop` → `main`, merge commit). Does not claim AI, self-building, or encryption (AES-KW shipped in 0.17.0). ## Type of Change - [x] Documentation update ## Checklist - [x] PR targets `develop` (not `main`) - [x] Read `docs/releases/v0.18.0.md` — no PR numbers, feels like a product note - [x] Does not claim attachments, marketplace, AI/self-building, or new encryption <!-- CURSOR_AGENT_PR_BODY_END --> <div><a href="https://cursor.com/agents/bc-b3ae84a4-dd53-49af-a568-27be752bc608?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-b3ae84a4-dd53-49af-a568-27be752bc608&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> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added the Harbor Dusk dark theme, featuring a coastal-inspired color palette. * The theme is available under **Settings → Themes**. * **Documentation** * Added draft release notes for version 0.18.0. <!-- end of auto-generated comment: release notes by coderabbit.ai --> Co-authored-by: Cursor Agent <cursoragent@cursor.com>
|
Warning Review limit reachedNext included review available in 52 minutes. View limit detailsLimit 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. Review configuration: ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (11)
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 |
chore(env): add Cursor Cloud Agent environment config
Contributor
|
🎉 This PR is included in version 0.18.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Promote 0.18.0 to production.
developis ahead ofv0.17.0withfeat(theme): Harbor Dusk(#590), sosemantic-release will cut a minor: 0.18.0. AES-KW encryption is already
in 0.17.0; this release does not re-announce it.
What’s New:
docs/releases/v0.18.0.md(status: draft until the GitHubrelease is undrafted). Landed on develop in #592.
Merge with a merge commit. Do not squash. Squashing drops the
feathistory and semantic-release will not cut 0.18.0.
CI is the gate. Do not bump
package.json. Do not push a tag. Do notRun workflow. Release + Build & Publish start from this merge.