diff --git a/.opencode/skills/update-changelog/SKILL.md b/.opencode/skills/update-changelog/SKILL.md index cf15eede73..d5c0ccf2af 100644 --- a/.opencode/skills/update-changelog/SKILL.md +++ b/.opencode/skills/update-changelog/SKILL.md @@ -147,6 +147,12 @@ belongs to. The `gh.py` issues command already includes `issue_type` in every entry's output. **No separate GraphQL query is needed.** +**Preserve highlighted entries:** If an entry is already featured in +`### :rocket: Epics and highlights`, keep it in that section when refreshing a +changelog version. Do not remove a highlighted entry just because issue type +categorization would otherwise place it under `### :sparkles: New features & +Enhancements`. + **Community contribution attribution:** If the issue or its fix PR has the `community contribution` label, add an attribution `(by @)` on the changelog entry line, **before** the GitHub issue/PR references. diff --git a/.serena/memories/critical-info.md b/.serena/memories/critical-info.md index a286887ac2..fcc2394424 100644 --- a/.serena/memories/critical-info.md +++ b/.serena/memories/critical-info.md @@ -30,15 +30,15 @@ You are working on the GitHub project `penpot/penpot`, a monorepo. This is a monorepo. Principles that apply to one module do *not* generally apply to others. Do not make assumptions. -- `frontend/`: ClojureScript + SCSS SPA/design editor. -- `backend/`: JVM Clojure HTTP/RPC server with PostgreSQL, Redis, storage, mail, and workers.Runtime services and the task-queue vs Pub/Sub topology that constrains horizontal scaling: `mem:prod-infra/core`. -- `common/`: shared CLJC data types, geometry, schemas, file/change logic, and utilities. -- `render-wasm/`: Rust -> WebAssembly Skia renderer consumed by frontend. -- `exporter/`: ClojureScript/Node headless Playwright SVG/PDF export. -- `mcp/`: TypeScript Model Context Protocol integration. -- `plugins/`: TypeScript plugin runtime/examples and Plugin API types. -- `library/`: design library workflows. -- `docs/`: documentation site. +- `frontend/`: ClojureScript + SCSS SPA/design editor; core conventions: `mem:frontend/core`. +- `backend/`: JVM Clojure HTTP/RPC server with PostgreSQL, Redis, storage, mail, and workers; core conventions: `mem:backend/core`. Runtime services and the task-queue vs Pub/Sub topology that constrains horizontal scaling: `mem:prod-infra/core`. +- `common/`: shared CLJC data types, geometry, schemas, file/change logic, and utilities; core conventions: `mem:common/core`. +- `render-wasm/`: Rust -> WebAssembly Skia renderer consumed by frontend; core conventions: `mem:render-wasm/core`. +- `exporter/`: ClojureScript/Node headless Playwright SVG/PDF export; core conventions: `mem:exporter/core`. +- `mcp/`: TypeScript Model Context Protocol integration; core conventions: `mem:mcp/core`. +- `plugins/`: TypeScript plugin runtime/examples and Plugin API types; core conventions: `mem:plugins/core`. +- `library/`: design library workflows; core conventions: `mem:library/core`. +- `docs/`: documentation site; core workflow and conventions: `mem:docs/core`. The memory is structured in a way that you can get the critical information about the module. You can read it from `mem:/core` diff --git a/.serena/memories/workflow/docs.md b/.serena/memories/docs/core.md similarity index 95% rename from .serena/memories/workflow/docs.md rename to .serena/memories/docs/core.md index 8504e5db1d..4d03b7ddea 100644 --- a/.serena/memories/workflow/docs.md +++ b/.serena/memories/docs/core.md @@ -1,4 +1,4 @@ -# Docs Workflow +# Docs `docs/`: Penpot documentation site; Eleventy. @@ -16,4 +16,4 @@ From `docs/`: - Build: `pnpm run build`. - Watch: `pnpm run watch`. -Documentation changes should follow the existing page structure and rendered Help Center conventions rather than inventing a new style locally. \ No newline at end of file +Documentation changes should follow the existing page structure and rendered Help Center conventions rather than inventing a new style locally. diff --git a/CHANGES.md b/CHANGES.md index 404866a5ff..a9df8cff57 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,6 +1,6 @@ # CHANGELOG -## 2.18.0 +## 2.18.0 (Unreleased) ### :bug: Bugs fixed @@ -23,9 +23,7 @@ - Refactor wasm rulers and UI state [#10116](https://github.com/penpot/penpot/issues/10116) (PR: [#10461](https://github.com/penpot/penpot/pull/10461)) - Improve team invitations modal in the dashboard [#10484](https://github.com/penpot/penpot/issues/10484) (PR: [#10459](https://github.com/penpot/penpot/pull/10459)) -## 2.17.0 (Unreleased) - -### :boom: Breaking changes & Deprecations +## 2.17.0 ### :rocket: Epics and highlights @@ -190,6 +188,9 @@ - Fix Plugin API validation error when listing shared plugin data keys [#10628](https://github.com/penpot/penpot/issues/10628) (PR: [#10632](https://github.com/penpot/penpot/pull/10632)) - Fix Plugin API silently dropping plugin data written to shared library [#10629](https://github.com/penpot/penpot/issues/10629) (PR: [#10632](https://github.com/penpot/penpot/pull/10632)) - Fix workspace crash when event target is a DOM text node [#10640](https://github.com/penpot/penpot/issues/10640) (PR: [#10641](https://github.com/penpot/penpot/pull/10641)) +- Fix text shape position-data to include required fills in WASM and DOM calculation paths [#10646](https://github.com/penpot/penpot/issues/10646) (PR: [#10650](https://github.com/penpot/penpot/pull/10650)) +- Log expired OIDC tokens as auth failures instead of server errors [#10635](https://github.com/penpot/penpot/issues/10635) (PR: [#10636](https://github.com/penpot/penpot/pull/10636)) +- Return 400 instead of 500 when ImageMagick rejects invalid uploaded images [#10642](https://github.com/penpot/penpot/issues/10642) (PR: [#10643](https://github.com/penpot/penpot/pull/10643)) ## 2.16.2