From aab10227220be0dcdd238493d2604c3ae3ca1761 Mon Sep 17 00:00:00 2001 From: wmdocs Date: Mon, 5 Oct 2026 11:48:20 +0530 Subject: [PATCH 01/13] feat(release): add release 12.0.2 Created via DocsFlow by mayank.prakash@wavemaker.com --- data/tech-stack-data/12-0-2.json | 447 ++++++++++++++++++ .../version-12-0-x/12.0.2.mdx | 71 +++ sidebar/sidebars/releaseNotesSidebar.js | 57 ++- 3 files changed, 549 insertions(+), 26 deletions(-) create mode 100644 data/tech-stack-data/12-0-2.json create mode 100644 docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx diff --git a/data/tech-stack-data/12-0-2.json b/data/tech-stack-data/12-0-2.json new file mode 100644 index 0000000..e748fbe --- /dev/null +++ b/data/tech-stack-data/12-0-2.json @@ -0,0 +1,447 @@ +{ + "Application Stack": { + "UI": { + "Angular": [ + { + "name": "Angular", + "description": "Platform for building mobile and desktop web applications", + "link": "https://angular.io/", + "version": "21.2.20" + }, + { + "name": "jQuery", + "description": "Fast, small, and feature-rich JavaScript library.", + "link": "https://jquery.com/", + "version": "3.7.1" + }, + { + "name": "jQuery UI", + "description": "Set of user interface interactions, effects, widgets, and themes built on top of jQuery.", + "link": "https://jqueryui.com/", + "version": "1.14.1" + }, + { + "name": "ngx-bootstrap", + "description": "Native Angular directives for Bootstrap.", + "link": "https://valor-software.com/ngx-bootstrap/", + "version": "21.2.0" + }, + { + "name": "Bootstrap", + "description": "The most popular HTML, CSS, and JS library for developing responsive, mobile-first projects.", + "link": "https://getbootstrap.com/docs/3.3/", + "version": "3.4.1" + }, + { + "name": "D3.js", + "description": "JavaScript library for manipulating documents based on data.", + "link": "https://d3js.org/", + "version": "7.8.5" + }, + { + "name": "NVD3", + "description": "Re-usable charts for D3.js.", + "link": "https://nvd3.org/", + "version": "1.8.16" + }, + { + "name": "FullCalendar", + "description": "Full-sized drag & drop event calendar.", + "link": "https://fullcalendar.io/", + "version": "6.1.18" + }, + { + "name": "Lodash (lodash-es)", + "description": "A modern JavaScript utility library delivering modularity, performance, & extras.", + "link": "https://lodash.com/", + "version": "4.18.1" + } + ], + "React": [ + { + "name": "React", + "version": "v19.2.3", + "description": "Platform for building desktop web applications", + "link": "https://react.dev/" + }, + { + "name": "Next Js", + "version": "v16.1.1", + "description": "React framework that helps to build fast web apps", + "link": "https://nextjs.org/" + }, + { + "name": "Material UI", + "version": "v6.3.1", + "description": "Ready to use Material Design components", + "link": "https://mui.com/material-ui/" + }, + { + "name": "D3", + "version": "v7.8.5", + "description": "JavaScript library for manipulating documents based on data.", + "link": "https://d3js.org/" + }, + { + "name": "NVD3", + "version": "v1.8.16", + "description": "Re-usable charts for D3.js.", + "link": "https://nvd3.org/" + }, + { + "name": "Fullcalendar", + "version": "v6.1.15", + "description": "Full-sized drag & drop event calendar.", + "link": "https://fullcalendar.io/" + }, + { + "name": "Lodash (lodash-es)", + "version": "v4.17.21", + "description": "A modern JavaScript utility library delivering modularity, performance, & extras.", + "link": "https://lodash.com/" + }, + { + "name": "Moment", + "version": "v2.30.1", + "description": "Parse, validate, manipulate, and display dates and times in JavaScript", + "link": "https://momentjs.com/" + } + ], + "React Native": [ + { + "name": "React Native", + "description": "Framework for building native apps using React.", + "link": "https://reactnative.dev/", + "version": "0.81.4" + }, + { + "name": "Expo", + "description": "Platform for universal React applications.", + "link": "https://expo.dev/", + "version": "54.0.12" + } + ] + }, + "Backend": { + "Java": [ + { + "name": "Spring Framework", + "description": "Comprehensive programming and configuration model for modern Java-based enterprise applications.", + "link": "https://spring.io/projects/spring-framework", + "version": "6.2.19" + }, + { + "name": "Spring Security", + "description": "Authentication and access-control framework.", + "link": "https://spring.io/projects/spring-security", + "version": "6.5.11" + }, + { + "name": "Spring Data", + "description": "Simplifies data access for relational and non-relational databases.", + "link": "https://spring.io/projects/spring-data", + "version": "2025.0.13" + }, + { + "name": "Spring Boot", + "description": "Framework to create stand-alone, production-grade Spring based Applications.", + "link": "https://spring.io/projects/spring-boot", + "version": "3.5.16" + }, + { + "name": "Spring Session", + "description": "Provides an API and implementations for managing a user's session information.", + "link": "https://spring.io/projects/spring-session", + "version": "3.5.7" + }, + { + "name": "Hibernate (Jakarta)", + "description": "Object/Relational Mapping (ORM) library for Java.", + "link": "https://hibernate.org/", + "version": "5.6.15.Final" + }, + { + "name": "Gson", + "description": "Java library to convert Java Objects into JSON and back.", + "link": "https://github.com/google/gson", + "version": "2.14.0" + }, + { + "name": "Jackson", + "description": "Standard JSON library for Java (streaming, DOM, binding).", + "link": "https://github.com/FasterXML/jackson", + "version": "2.22.2" + }, + { + "name": "SLF4J", + "description": "Simple Logging Facade for Java.", + "link": "https://www.slf4j.org/", + "version": "2.0.19" + }, + { + "name": "Log4j2", + "description": "Java-based logging utility.", + "link": "https://logging.apache.org/log4j/2.x/", + "version": "2.26.1" + }, + { + "name": "HttpComponents HttpClient5", + "description": "Client-side HTTP standards implementation.", + "link": "https://hc.apache.org/httpcomponents-client-5.x/", + "version": "5.5.2" + }, + { + "name": "Jakarta Servlet", + "description": "Server-side API for handling HTTP requests.", + "link": "https://jakarta.ee/specifications/servlet/", + "version": "6.0.0" + }, + { + "name": "HikariCP", + "description": "High-performance JDBC connection pool.", + "link": "https://github.com/brettwooldridge/HikariCP", + "version": "7.1.0" + }, + { + "name": "Apache Commons Lang3", + "description": "Extra methods for manipulation of standard Java classes.", + "link": "https://commons.apache.org/proper/commons-lang/", + "version": "3.20.0" + }, + { + "name": "Guava", + "description": "Google core libraries for Java.", + "link": "https://github.com/google/guava", + "version": "33.7.1-jre" + }, + { + "name": "PostgreSQL Driver", + "description": "JDBC driver for PostgreSQL.", + "link": "https://jdbc.postgresql.org/", + "version": "42.7.13" + }, + { + "name": "Hibernate Validator", + "description": "Reference implementation of the Bean Validation specification.", + "link": "https://hibernate.org/validator/", + "version": "8.0.3.Final" + }, + { + "name": "JGit", + "description": "Java implementation of the Git version control system.", + "link": "https://www.eclipse.org/jgit/", + "version": "7.8.0.202609011348-r" + }, + { + "name": "Apache Commons Codec", + "description": "Implementations of common encoders and decoders (Base64, Hex, etc).", + "link": "https://commons.apache.org/proper/commons-codec/", + "version": "1.22.1" + }, + { + "name": "Apache Commons IO", + "description": "Library of utilities to assist with developing IO functionality.", + "link": "https://commons.apache.org/proper/commons-io/", + "version": "2.22.0" + }, + { + "name": "Apache Commons Text", + "description": "Library focused on algorithms working on strings.", + "link": "https://commons.apache.org/proper/commons-text/", + "version": "1.15.0" + }, + { + "name": "OWASP AntiSamy", + "description": "Library for performing fast, configurable cleansing of HTML coming from untrusted sources.", + "link": "https://owasp.org/www-project-antisamy/", + "version": "1.7.8" + }, + { + "name": "Apache FreeMarker", + "description": "Java template engine to generate text output.", + "link": "https://freemarker.apache.org/", + "version": "2.3.35" + }, + { + "name": "Apache Tika", + "description": "Content analysis toolkit to detect and extract metadata and text.", + "link": "https://tika.apache.org/", + "version": "4.0.0" + }, + { + "name": "MariaDB JDBC Driver", + "description": "JDBC driver for MariaDB.", + "link": "https://mariadb.com/kb/en/about-mariadb-connector-j/", + "version": "3.5.2" + }, + { + "name": "MongoDB Driver", + "description": "Java driver for MongoDB.", + "link": "https://www.mongodb.com/docs/drivers/java/sync/current/", + "version": "5.11.1" + }, + { + "name": "Jakarta Validation API", + "description": "Standard API for bean validation.", + "link": "https://jakarta.ee/specifications/bean-validation/", + "version": "3.1.1" + }, + { + "name": "Apache Commons Validator", + "description": "Client-side validation and server-side validation support.", + "link": "https://commons.apache.org/proper/commons-validator/", + "version": "1.11.0" + }, + { + "name": "JSON-Smart", + "description": "Performance focused JSON processor.", + "link": "https://netplex.github.io/json-smart/", + "version": "2.6.0" + }, + { + "name": "HSQLDB", + "description": "Leading SQL relational database engine written in Java (Sample DB).", + "link": "http://hsqldb.org/", + "version": "2.7.4" + } + ] + } + }, + "Build Time": { + "UI": { + "Angular": [ + { + "name": "Apache Maven", + "description": "Software project management and comprehension tool.", + "link": "https://maven.apache.org/", + "version": "3.9.16" + }, + { + "name": "Apache Ant", + "description": "Java library and command-line tool for driving build processes.", + "link": "https://ant.apache.org/", + "version": "1.10.11" + }, + { + "name": "npm", + "description": "Package manager for the JavaScript programming language.", + "link": "https://www.npmjs.com/", + "version": "10.9.3" + } + ], + "React": [], + "React Native": [ + { + "name": "Android Gradle Plugin (AGP)", + "description": "Build system for Android applications.", + "link": "https://developer.android.com/build", + "version": "8.14.3" + }, + { + "name": "SDK Build Tools", + "description": "Tools required to build Android applications.", + "link": "https://developer.android.com/studio/releases/build-tools", + "version": "36.0.0" + }, + { + "name": "@wavemaker-ai/wm-reactnative-cli", + "description": "WaveMaker CLI for React Native projects.", + "link": "https://www.npmjs.com/package/@wavemaker-ai/wm-reactnative-cli", + "version": "1.0.1" + }, + { + "name": "Maven", + "description": "Used for managing Java dependencies in React Native builds.", + "link": "https://maven.apache.org/", + "version": "3.9.9" + }, + { + "name": "npm", + "description": "Package manager used for React Native dependencies.", + "link": "https://www.npmjs.com/", + "version": "10.9.0" + } + ] + }, + "Backend": { + "Java": [] + } + }, + "Run Time": { + "UI": { + "Angular": [ + { + "name": "Java (JDK)", + "description": "Java Development Kit for running the backend and build tools.", + "link": "https://openjdk.org/", + "version": "21.0.6" + }, + { + "name": "Node.js", + "description": "JavaScript runtime environment.", + "link": "https://nodejs.org/", + "version": "22.18.0" + }, + { + "name": "Apache Tomcat", + "description": "Open source implementation of the Jakarta Servlet, Jakarta Server Pages, etc.", + "link": "https://tomcat.apache.org/", + "version": "10.1.39" + }, + { + "name": "WebSphere Liberty", + "description": "Flexible and dynamic Java EE application server.", + "link": "https://www.ibm.com/products/websphere-liberty", + "version": "23.0.0.9+" + }, + { + "name": "JBoss WildFly", + "description": "Flexible, lightweight, managed application runtime.", + "link": "https://www.wildfly.org/", + "version": "27+" + } + ], + "React": [], + "React Native": [ + { + "name": "Java (JDK)", + "description": "Required for Android builds and runtime environment.", + "link": "https://openjdk.org/", + "version": "17" + }, + { + "name": "Node.js", + "description": "JavaScript runtime for the Metro bundler.", + "link": "https://nodejs.org/", + "version": "22.11.0" + } + ] + }, + "Backend": { + "Java": [] + } + }, + "Developer Setup": { + "UI": { + "Angular": [], + "React": [], + "React Native": [ + { + "name": "Android Studio", + "description": "Integrated Development Environment (IDE) for Android app development.", + "link": "https://developer.android.com/studio", + "version": "Meerkat 2024.3.1 to Narwhal 4 Feature Drop 2025.1.4" + }, + { + "name": "Xcode", + "description": "Integrated Development Environment (IDE) for macOS/iOS.", + "link": "https://developer.apple.com/xcode/", + "version": "26.2" + } + ] + }, + "Backend": { + "Java": [] + } + } +} \ No newline at end of file diff --git a/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx b/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx new file mode 100644 index 0000000..9f70b6b --- /dev/null +++ b/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx @@ -0,0 +1,71 @@ +--- +last_update: { author: 'Mayank Prakash' } +hide_table_of_contents: true +hide_title: true + +--- + + + +WaveMaker announces the release of WaveMaker AI 12.0.2. Overview... + +For details about the technology stack upgrades, refer to [Technology Stack](/tech-stack?v=12-0-2). + +## 12.0.2 + +*Release date: October 5, 2026* + + + + + {/* Content */} + + + + {/* Content */} + + + + {/* Content */} + + + + {/* Content */} + + + + + + {/* Content */} + + + + {/* Content */} + + + + {/* Content */} + + + + {/* Content */} + + + + + {/* Content */} + + + + {/* Content */} + + + + {/* Content */} + + + + {/* Content */} + + + diff --git a/sidebar/sidebars/releaseNotesSidebar.js b/sidebar/sidebars/releaseNotesSidebar.js index 28947c6..45bcbd8 100644 --- a/sidebar/sidebars/releaseNotesSidebar.js +++ b/sidebar/sidebars/releaseNotesSidebar.js @@ -1,39 +1,44 @@ /** @type {import('@docusaurus/plugin-content-docs').SidebarConfig} */ export default [ { - type: 'doc', - id: 'release-notes/index', - label: 'WaveMaker Releases', + "type": "doc", + "id": "release-notes/index", + "label": "WaveMaker Releases" }, { - type: 'category', - label: 'Release - Version 12', - collapsible: true, - collapsed: true, - items: [ + "type": "category", + "label": "Release - Version 12", + "collapsible": true, + "collapsed": true, + "items": [ { - type: 'doc', - id: 'release-notes/release-version-12/the-announcement', - label: '📣 The Announcement ', + "type": "doc", + "id": "release-notes/release-version-12/the-announcement", + "label": "📣 The Announcement " }, { - type: 'category', - label: '12.0.x', - collapsible: true, - collapsed: true, - items: [ + "type": "category", + "label": "12.0.x", + "collapsible": true, + "collapsed": true, + "items": [ { - type: 'doc', - id: 'release-notes/release-version-12/version-12-0-x/12.0.1', - label: '12.0.1', + "type": "doc", + "id": "release-notes/release-version-12/version-12-0-x/12.0.2", + "label": "12.0.2" }, { - type: 'doc', - id: 'release-notes/release-version-12/version-12-0-x/12.0.0', - label: '12.0.0', + "type": "doc", + "id": "release-notes/release-version-12/version-12-0-x/12.0.1", + "label": "12.0.1" }, - ], - }, - ], - }, + { + "type": "doc", + "id": "release-notes/release-version-12/version-12-0-x/12.0.0", + "label": "12.0.0" + } + ] + } + ] + } ]; From f577c2408c566d247ab2193e50dc5a6d2f17e1aa Mon Sep 17 00:00:00 2001 From: mayankPrakashWavemaker Date: Mon, 5 Oct 2026 12:16:56 +0530 Subject: [PATCH 02/13] release notes skill updated to include overview at top --- ai-skills/wm-ai-release-notes/SKILL.md | 20 +++++++++++++++++++ .../references/conventions.md | 14 +++++++++++++ 2 files changed, 34 insertions(+) diff --git a/ai-skills/wm-ai-release-notes/SKILL.md b/ai-skills/wm-ai-release-notes/SKILL.md index 828c08c..b941498 100644 --- a/ai-skills/wm-ai-release-notes/SKILL.md +++ b/ai-skills/wm-ai-release-notes/SKILL.md @@ -59,6 +59,23 @@ docs/release-notes/release-version-1/version-1-0-x/1.0.0.mdx The top-level template used to generate a new file is `assets/release-notes-template.mdx`. +## Release overview line + +Every release notes file opens with an announcement line that ends in a one-sentence overview of the release: + +```mdx +WaveMaker announces the release of WaveMaker AI 12.0.2. This release adds React Native extensibility through custom app wrappers and Metro configuration, improves widget accessibility, and fixes a broad set of React app issues. +``` + +A new file generated from the template ships with a literal `Overview\...` placeholder. **Replace it before the file is done** — it is not optional, and it publishes verbatim if left alone. + +Rules: + +- One sentence. Name the two or three themes a reader should look forward to, drawn from the entries actually in the file. +- Derive it from the content — after the entries are written, not before. If the release is mostly fixes, say so. +- Same style rules as entry bodies: active voice, present tense, no marketing language. +- Do not list every item, and do not give a count of entries — both go stale on the next edit. + ## Procedure ### Step 0 — Resolve the target file @@ -116,6 +133,7 @@ Edit the release notes file and insert the entry in the correct accordian, maint Ask if there are more items. When the user is done, run a final scan of the file and flag: +- An unreplaced `Overview\...` placeholder in the opening announcement line. - Body copy longer than one sentence. - Relative links that include a `.md` or `.mdx` extension. - Relative links where the target file does not exist. @@ -123,6 +141,7 @@ Ask if there are more items. When the user is done, run a final scan of the file ## Common mistakes to avoid +- **Shipping the `Overview\...` placeholder** — the opening line's overview is required. Write it from the finished entries before calling the file done. - **Multi-sentence body** — the body is one sentence. Everything else goes in a linked doc. - **Placeholder links** — do not write `[Documentation](#)` or `[link to be added]`. Verify first, add only when confirmed. - **Link with file extension** — relative links must not include `.md` or `.mdx`. Strip the extension before writing. @@ -134,6 +153,7 @@ Ask if there are more items. When the user is done, run a final scan of the file ## Validation checklist +- [ ] The opening announcement line ends with a one-sentence overview, with no `Overview\...` placeholder left. - [ ] Entry is in the correct tab (Features / Enhancements / Bug Fixes). - [ ] Entry is in the correct accordian (User Interface / Backend / Platform / Product Ecosystem). - [ ] Title is a `###` heading, 4–7 words. diff --git a/ai-skills/wm-ai-release-notes/references/conventions.md b/ai-skills/wm-ai-release-notes/references/conventions.md index ec14ad0..d716796 100644 --- a/ai-skills/wm-ai-release-notes/references/conventions.md +++ b/ai-skills/wm-ai-release-notes/references/conventions.md @@ -39,6 +39,20 @@ An accordian with no content for this release can be omitted entirely or left wi ``` +## Release overview line + +The announcement line at the top of the file ends with a one-sentence overview of the release. The template ships it as a literal `Overview\...` placeholder, which must be replaced before the file is done. + +```mdx +WaveMaker announces the release of WaveMaker AI 12.0.2. This release adds React Native extensibility through custom app wrappers and Metro configuration, improves widget accessibility, and fixes a broad set of React app issues. +``` + +Write it last, from the entries actually in the file, naming the two or three themes a reader should look forward to. + +- Good: "This release focuses on React app stability, with fixes across tables, forms, and dialogs." +- Bad: "This release is packed with exciting improvements across the board." (marketing, says nothing) +- Bad: "This release includes 3 features, 1 enhancement, and 22 bug fixes." (goes stale on the next edit) + ## Entry format ```mdx From 045d211b7f7d8ccee3cdf0cba37f06052907486c Mon Sep 17 00:00:00 2001 From: mayankPrakashWavemaker Date: Mon, 5 Oct 2026 12:17:14 +0530 Subject: [PATCH 03/13] draft release notes for 12.0.2 --- .../version-12-0-x/12.0.2.mdx | 151 ++++++++++++++---- 1 file changed, 121 insertions(+), 30 deletions(-) diff --git a/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx b/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx index 9f70b6b..24e8978 100644 --- a/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx +++ b/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx @@ -7,7 +7,7 @@ hide_title: true -WaveMaker announces the release of WaveMaker AI 12.0.2. Overview... +WaveMaker announces the release of WaveMaker AI 12.0.2. This release improves how Screenshot-to-Code generates screens, adds React Native extensibility through custom app wrappers and Metro configuration, and fixes widget accessibility and a range of React app issues. For details about the technology stack upgrades, refer to [Technology Stack](/tech-stack?v=12-0-2). @@ -17,55 +17,146 @@ For details about the technology stack upgrades, refer to [Technology Stack](/te - - {/* Content */} - + + - ### Custom wrapper around the app - - {/* Content */} - + You can now wrap a React Native app with your own providers, so libraries that require a provider at the app root can be used. - - {/* Content */} - + - ### Custom Metro configuration support + + React Native projects now support adding additional Metro bundler configuration. + + - ### List pagination in generated screens - - {/* Content */} + Screenshot-to-Code now generates pagination for list widgets, so long lists render in pages instead of all at once. - - {/* Content */} - + + - ### Platform upgrade files excluded from changes list - - {/* Content */} - + Files changed only by a platform upgrade no longer appear in the AI chat's list of changes alongside the session's own edits. - - {/* Content */} - + - ### Wizard fallback when no variant matches + + When no matching wizard variant is available, Screenshot-to-Code now builds the wizard from containers and labels with one container per step, using a model variable to control which step is shown. - - {/* Content */} + - ### Avatar detection in screenshots + + Screenshot-to-Code detects and generates avatars from a screenshot more accurately. + + - ### Tab headers sharing a row + + Screenshot-to-Code now skips an extra widget that shares a row with a tab header, so the tabs generate cleanly. + + - ### Page padding matches the screenshot + + Screenshot-to-Code no longer adds default padding to page content, so spacing matches the screenshot more closely. + + - ### Background color and gradient detection + + Screenshot-to-Code detects background colors more carefully, including prominent gradients. - + + - {/* Content */} + - ### Select-all checkbox not selecting rows + + Fixed the select-all checkbox in a table header not selecting rows or updating the selection count in React apps, matching Angular's behavior. + + - ### Toggle value not reflected in the UI + + Fixed a toggle's value change not updating the UI bound to it. + + - ### Navigation between external application links + + Fixed navigation failing when moving directly from one external application link to another. + + - ### Rows added from a dialog not displayed + + Fixed a table not displaying rows that were added through a dialog, leaving the table hidden. + + - ### No-data message missing in deployed apps + + Fixed a widget's no-data message not appearing in deployed React apps when a search returns no records. + + - ### Select options not loading and duplicate validation + + Fixed a Select widget's options not loading and its required-field validation message appearing twice. + + - ### Row selection stops working after a dialog opens + + Fixed row selection not working and the page becoming unresponsive after a dialog is opened. + + - ### Table column binding not passed for sorting + + Fixed the Table widget not passing its column binding, which left the sort fields missing. + + - ### Required field errors when opening a tab + + Fixed `Required field(s) missing` console errors appearing when a dynamically added tab is opened. + + - ### No-data image shown alongside data + + Fixed the no-data placeholder image appearing in a list view even when data was present. + + - ### List item background image not loading + + Fixed a list item's background image not loading when bound to a dataset field. + + - ### Conditional styles and Select widget class + + Fixed conditional styles not being applied, and a missing class on the Select widget. + + - ### Submit stays disabled after making selections + + Fixed a form's Submit button remaining disabled after the required selections had been made. + + - ### Multi-level component repeats root data + + Fixed a multi-level component inside a dialog showing the root level's data at every level. + + - ### Script call to goToFirstPage fails + + Fixed a script call to `goToFirstPage` from a form submit handler failing in React apps with `Cannot read properties of undefined`. + + - ### Validation persists after selecting a value + + Fixed a required-field validation error persisting after a value was selected, with the field alternating between two values and the page becoming unresponsive. + + - ### Unwanted background on a dialog + + Fixed an unwanted background appearing on a dialog opened from within a wizard step. + + - ### Widget accessibility fixes + - Button, Progress Bar, Progress Circle, Audio, Video, and Picture: fixed accessibility not working correctly in some configurations. + - File Upload: fixed the missing `name` attribute. + + - ### List variant padding overrides inline padding + + Fixed a List widget's variant padding taking priority over the padding set inline on the widget. - {/* Content */} + - ### PATCH path parameter missing as an input + + Fixed a path parameter not appearing as an input when importing a PATCH API that also has a JSON request body, leaving no way to supply it when invoking the API. - {/* Content */} - + - ### Dependency installation blocked by flagged package + + Fixed React Native dependency installation being blocked by a `postcss` version flagged for CVE-2026-41305. + + - ### AI chat run stops during a multi-file replace + + Fixed an AI chat run ending with no response when a find-and-replace was applied across a directory instead of across named files. + + - ### Dialogs generated incorrectly from screenshots - - {/* Content */} + Fixed Screenshot-to-Code generating dialogs incorrectly from a screenshot. From 697d9e9d458e260caf7599f73e2d76a41d6c7eef Mon Sep 17 00:00:00 2001 From: mayankPrakashWavemaker Date: Mon, 5 Oct 2026 12:32:01 +0530 Subject: [PATCH 04/13] added skill for release notes draft --- AGENTS.md | 1 + ai-skills/wm-ai-release-notes-draft/SKILL.md | 169 ++++++++++++++++++ .../references/source-formats.md | 155 ++++++++++++++++ .../references/triage-rules.md | 111 ++++++++++++ ai-skills/wm-ai-release-notes/SKILL.md | 6 +- 5 files changed, 440 insertions(+), 2 deletions(-) create mode 100644 ai-skills/wm-ai-release-notes-draft/SKILL.md create mode 100644 ai-skills/wm-ai-release-notes-draft/references/source-formats.md create mode 100644 ai-skills/wm-ai-release-notes-draft/references/triage-rules.md diff --git a/AGENTS.md b/AGENTS.md index cf3b96e..34a1a70 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -124,6 +124,7 @@ npm run gen-metrics # regenerate scripts/metrics.json For specific workflows, load the matching skill under `ai-skills/` rather than improvising: - `wm-ai-release-notes` — add or edit entries in a versioned release notes file under `docs/release-notes/`. +- `wm-ai-release-notes-draft` — draft a whole release notes file from a source sheet of shipped tickets (CSV/XLSX export, GitLab branch-compare report, or pasted developer notes). - `wm-feature-announcements` — new post under `blogs/feature-announcements/`. - `wm-ai-blog` — new narrative or thought-leadership post under `blogs/blog/`. - `wm-ai-create-guide` — create a how-to or tutorial page under `docs/guide/`. diff --git a/ai-skills/wm-ai-release-notes-draft/SKILL.md b/ai-skills/wm-ai-release-notes-draft/SKILL.md new file mode 100644 index 0000000..633e028 --- /dev/null +++ b/ai-skills/wm-ai-release-notes-draft/SKILL.md @@ -0,0 +1,169 @@ +--- +name: wm-ai-release-notes-draft +description: > + Use this skill when drafting a whole release notes file from a source list of shipped work — a CSV or + XLSX export of Jira tickets, a GitLab branch-compare HTML report, or a block of notes pasted by a + developer. Activate when the user hands over a sheet or report and asks to turn it into release notes, + fill in a version's notes, or process a release's tickets in bulk. For adding or editing one entry at a + time in an existing file, use `wm-ai-release-notes` instead. +license: MIT +metadata: + version: 0.1.0 + surface: docs/release-notes + docusaurus: ^3.9.0 +--- + +# Drafting Release Notes From a Source Sheet + +Turn a list of shipped tickets into a complete draft of a versioned release notes file. The source is written by and for engineers and QA — your job is to decide what customers should be told, and say it in their language. + +This skill covers **triage, enrichment, and reporting**. It does not restate entry format. Titles, bodies, pills, links, tabs, accordians, and the release overview line are defined in `../wm-ai-release-notes/references/conventions.md` — read it before writing entries. + +## When to use + +- The user provides a sheet, report, or pasted list covering a release and wants the notes drafted. +- The user wants a source list triaged into Features / Enhancements / Bug Fixes. +- The user wants to know what in a source list is worth announcing at all. + +## When NOT to use + +- Adding or editing one entry in an existing file → use `wm-ai-release-notes`. +- A public-facing post celebrating a feature → use `wm-ai-feature-announcements`. + +## Relationship to `wm-ai-release-notes` + +That skill confirms every entry with the user before writing. **Bulk drafting replaces per-entry confirmation** — otherwise a 50-ticket sheet becomes 50 round trips. Confirm these two things up front instead, then write the whole draft and report: + +1. **Target file and version** — resolve the path and say which file you will write. +2. **Whether to enrich from Jira** — the user has answered both ways on different releases. Ask; do not assume. + +Everything else is reported after the draft is written, not asked before. + +## Procedure + +### Step 1 — Parse the source + +Read the sheet into a ticket list: id, title, description, and any repo or branch column. See `references/source-formats.md` for CSV, XLSX, GitLab-HTML, and pasted-notes recipes. + +**Always de-duplicate by ticket id.** These sheets repeat rows — one 60-row export covered 49 unique tickets. Report both counts. + +### Step 2 — Follow the sources + +**Every reference in the sheet is a lead, and every lead gets followed or raised. Never silently skip one.** + +A ticket's real content is often not in the sheet. It sits behind a link. An entry written without opening that link is a guess dressed as a finding. + +This applies to **any** outbound reference, whatever the host. Jira, Basecamp, GitLab, GitHub, and Jenkins are the common ones, but the rule is not a list of approved platforms — a wiki page, a dashboard, a spreadsheet, a recording, or a one-off internal URL all count. If a ticket points somewhere, go there. + +#### Jira + +Fetch every ticket by key and pull `summary`, `description`, `issuetype`, `status`, `resolution`, and `fixVersions`. The recipe, including the large-output workaround, is in `references/source-formats.md`. + +Jira earns its keep in three ways: + +- **Umbrella tickets.** A ticket whose description is just links to other tickets is unwritable as-is. Fetch the linked ids and you get the real list. +- **`issuetype`.** A Jira `Improvement` is an Enhancement; a `Bug` is a Bug Fix. Use it to check your own classification. +- **`fixVersions`.** Evidence about which release an item belongs to — see Step 3. + +#### Everything else a ticket points to + +Open it if any connector or fetch tool can reach it, whatever the platform. A ticket whose entire description is a link is the strongest signal that the link holds the content. + +#### When you cannot resolve a reference + +Four cases, one rule — **ask the user, and say exactly what you could not reach.** + +| Situation | What to do | +| --------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| No connector, or it needs authorizing | Name the platform and ask the user to authorize it. OAuth cannot run in a non-interactive session. Offer to continue meanwhile, with the affected entries flagged | +| The link is dead, private, or returns nothing | Say which ticket and which link, and ask how they want it handled | +| Only an id, no URL (`WMS-12345`, `#4821`) | Ask for the base URL or project rather than guessing a host | +| Opened it and it is still unclear | Say what you read and what remains ambiguous. Ask rather than inventing a plausible reading | + +Never let an unreachable reference quietly become an exclusion or a confident-sounding sentence. Carry it into the report under **Unchecked sources**. + +### Step 3 — Check `fixVersions` against the target release + +`fixVersions` is **evidence, not a verdict**. Sheet filenames are often wrong, and the user may deliberately place items elsewhere — for one release they chose to put everything not-yet-documented into the open version regardless of what Jira said. + +So: compare, and if a material number of tickets disagree with the target release, **report the mismatch and let the user decide placement.** Never silently re-target. + +### Step 4 — Check what is already published + +Read the other release notes files in the same version series. Source reports routinely include work already announced — a cherry-picked fix appears in two branches, or a feature's first commit lands one release before its polish. + +If an item is already documented in an earlier file, do not announce it again. Report it as already covered. + +### Step 5 — Triage + +Apply `references/triage-rules.md`. In order: + +1. **Drop** what no customer can observe. +2. **Merge** tickets describing one defect, and umbrella tickets into one entry with sub-bullets. +3. **Split** a ticket that contains both a fix and an enhancement. +4. **Classify** into tab and accordian. + +### Step 6 — Write entries + +Rewrite each kept item in customer language per `references/triage-rules.md`, then format it per `conventions.md`. + +Write the release overview line **last**, from the entries that ended up in the file. + +### Step 7 — Validate + +AGENTS.md makes this a hard gate: + +```bash +npm run lint +npm run build +``` + +Both must pass. Run the build in the background; it is slow. + +### Step 8 — Report + +See **Reporting** below. Do not skip it — it is the part the user actually reviews. + +## Repo to accordian mapping + +For GitLab compare reports spanning repos: + +| Repo | Accordian | Pill | +| -------------------------- | ------------------------------------------------------------------------ | -------- | +| `wavemaker-react-codegen` | User Interface | web | +| `wavemaker-react-runtime` | User Interface | web | +| `wavemaker-foundation-css` | User Interface | per item | +| `wavemaker-ng-studio` | Platform, except canvas / visual-editor / theming items → User Interface | per item | +| `projects-hub` | Platform | none | +| `wm-agent-server` | Platform | none | + +## Reporting + +The user's standing instruction is **do not skip anything without telling them.** Every source row ends up in exactly one bucket, and the report accounts for all of them: + +- **Added** — counts per tab and accordian. +- **Excluded** — every dropped ticket with its reason. List them individually; a total is not enough. +- **Already covered** — items found in an earlier release file, naming that file. +- **Merged or split** — which tickets were combined or divided, and why. +- **Low confidence** — entries where the ticket was too vague to be sure. Say plainly that the wording is your best reading, not established fact. +- **Unchecked sources** — every link or reference you could not open, with the ticket it belongs to and why it failed. This is the bucket that is easiest to drop and most damaging to drop, because a skipped link looks identical to a ticket that had nothing behind it. +- **Open gaps** — a new capability with no doc to link, an unresolved placeholder, a missing pill you could not determine. + +## Common mistakes to avoid + +- **Trusting the sheet's filename for the version.** Check `fixVersions`, and ask. +- **Per-entry confirmation on a bulk draft.** Confirm the file and the Jira question, then draft. +- **Announcing something twice.** Check earlier files in the series first. +- **Keeping QA phrasing.** See the de-jargon test in `references/triage-rules.md`. +- **Skipping a link you could not open.** Follow every reference, or raise it. An unreachable link is never a silent exclusion. +- **Guessing a host from a bare id.** Ask for the base URL instead. +- **Inventing a cause.** State only what the ticket states. +- **Inventing a doc link.** Grep `docs/` first; if nothing covers it, add no link and report the gap. +- **Counts in the overview line.** They go stale on the next edit. +- **Naming a customer or their app.** This repo is public. + +## Reference files + +- Triage, exclusion, and rewriting rules: `references/triage-rules.md` +- Parsing and Jira recipes: `references/source-formats.md` +- Entry format and style: `../wm-ai-release-notes/references/conventions.md` diff --git a/ai-skills/wm-ai-release-notes-draft/references/source-formats.md b/ai-skills/wm-ai-release-notes-draft/references/source-formats.md new file mode 100644 index 0000000..e92cdea --- /dev/null +++ b/ai-skills/wm-ai-release-notes-draft/references/source-formats.md @@ -0,0 +1,155 @@ +# Source Formats and Recipes + +Parsing the inputs these drafts come from, and enriching them from Jira. + +Write intermediate files to the session scratchpad, never into the repo. + +## XLSX + +`openpyxl` is available; `pandas` is not. + +```python +import openpyxl +wb = openpyxl.load_workbook('.xlsx', data_only=True) +ws = wb[wb.sheetnames[0]] +rows = list(ws.iter_rows(values_only=True)) +header, body = rows[0], rows[1:] +``` + +Columns are typically: `S.No`, `Jira ID`, `Title`, `Description`, `Developer (Assignee)`, `Jira Link`. + +Dumping every row at once can blow the context budget. Probe the shape first, then pull the columns you need. + +## CSV + +Standard CSV with quoted multi-line descriptions. Use `csv.DictReader`, not line splitting — descriptions contain commas, newlines, and code blocks. + +## GitLab branch-compare HTML + +Reports titled "Listing Differences Between Branches". Structure: + +- An `h4` per repo, each followed by a table of commits. +- Columns: `S.NO`, `Commit Message`, `WMS ID(s)`, `Title`, `Description`, `Author`, `URL`, `Date & Time`, `Branch`. +- A "Nothing to compare in:" list naming repos with no changes — that is a real finding, not an omission. + +Notes specific to this format: + +- The `Title` and `Description` columns are the **Jira** title and description, so several commits repeat the same text. Group by ticket id, not by row. +- The `Branch` column can name a different release branch than the report's own comparison, usually a cherry-pick. Treat it as a hint to check whether the item is already published. +- One ticket commonly spans several repos. + +## Pasted developer notes + +Sometimes a developer pastes prose already grouped into Features / Improvements / Bug Fixes. Treat the grouping as a proposal, not a decision: + +- Their "Improvements" usually map to Enhancements. +- Check for an item appearing as both a feature and a bug fix — adding a capability and fixing that same capability within one release is churn. Keep the capability, and raise the duplicate with the user rather than dropping it silently. +- Ask which accordian it belongs to if they have not said. + +## De-duplicating + +Source sheets repeat rows. Always collapse by ticket id and report both numbers: + +```python +seen, unique = set(), [] +for r in body: + tid = r[1] + if tid in seen: + continue + seen.add(tid) + unique.append(r) +print(len(body), "rows ->", len(unique), "tickets") +``` + +## Jira enrichment + +Fetch every ticket in one query rather than one call per ticket. + +```yaml +searchJiraIssuesUsingJql + cloudId: wavemaker.atlassian.net + jql: key in (WMS-1111,WMS-2222,...) + fields: ["summary","description","status","issuetype","resolution","fixVersions"] + maxResults: 50 + responseContentFormat: markdown +``` + +Include any ids linked from an umbrella ticket in the same query. + +### Handling the oversized result + +The response exceeds the tool's token cap and is written to a file instead. Extract with `jq`, putting the filter in a file — escaping a quoted `join(", ")` inline fails under the shell: + +```bash +cat > "$SP/extract.jq" << 'EOF' +.issues.nodes[] | "===== \(.key) =====\nSUMMARY: \(.fields.summary)\nTYPE: \(.fields.issuetype.name)\nSTATUS: \(.fields.status.name)\nRESOLUTION: \(.fields.resolution.name // "null")\nFIXVERSIONS: \([.fields.fixVersions[]?.name] | join(", "))\nDESCRIPTION:\n\(.fields.description // "null")\n" +EOF +jq -r -f "$SP/extract.jq" "$RESULT_FILE" > "$SP/jira.txt" +``` + +Then scan the one-line fields across all tickets before reading any full description: + +```bash +grep -E "^=====|^SUMMARY:|^TYPE:|^FIXVERSIONS:" "$SP/jira.txt" +``` + +Read full descriptions only for the tickets that are ambiguous. + +### When the connector is unauthorized + +OAuth cannot run in a non-interactive session. Tell the user to re-authorize it in their connector settings, and offer to proceed from the sheet alone with uncertain entries flagged. + +## Links inside tickets + +Descriptions in these sheets frequently carry the real content behind a link. Treat **every** outbound reference as a lead to follow, and report any you could not reach. + +The table below is what turns up most often — it is **not** an allowlist. Anything a ticket points to counts, including internal URLs, dashboards, wikis, spreadsheets, and recordings on hosts not named here. If you do not recognise the host, still try it, and raise it if you cannot reach it. + +| Source | Typically holds | Notes | +| ------------------------------------------------------------ | ------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | +| Jira (`browse/WMS-nnnnn`) | The ticket itself, or the children of an umbrella | Fetch with the connector; include linked ids in the same JQL query | +| Basecamp (`app.basecamp.com/.../todos/...`, `/messages/...`) | The entire specification for a feature whose Jira description is one line | A description that is *only* a Basecamp link means the ticket text is not the source of truth | +| GitLab / GitHub (merge request, PR, commit) | What actually changed, when the ticket is vague | Useful for deciding fix vs enhancement | +| Jenkins or any other CI | Build and job history behind a build-related ticket | | +| Confluence or any wiki | Specs and design docs | | +| Google Drive | Screen recordings and screenshots | Often the only evidence for a QA ticket; usually not machine-readable | +| Figma | Design specs for a UI ticket | | +| Anything else | Whatever the author thought was worth linking | Same rule: open it, or raise it | + +Two shapes to watch for in exported descriptions: + +- Atlassian smart links appear as a `custom` element wrapping the URL rather than as plain markdown. +- Inline images appear as `blob:` URLs that resolve to nothing outside the browser session. An image-only description carries no text you can use — treat it as unreachable and say so. + +### A bare id with no URL + +A sheet may reference `WMS-12345`, `#4821`, or `PROJ-99` with no host. Do not guess the instance. Ask the user for the base URL or the project, then fetch. + +### Still unclear after opening it + +Opening a link does not guarantee an answer — a Drive recording, a screenshot-only ticket, or a thread that never states the outcome can all leave the behaviour ambiguous. Say what you read, say what is still missing, and ask. A plausible-sounding sentence built on an unresolved reference is the failure this rule exists to prevent. + +## Checking what is already published + +Before writing, pull the headings from the other files in the version series to catch both duplicate announcements and near-identical titles: + +```bash +grep -h "^ - ###" docs/release-notes//*.mdx +``` + +Make a new title distinct from an existing one even when the underlying defects differ. + +## Verifying the result + +```bash +python3 -c " +c = open('.mdx').read() +print('entries:', c.count('- ###')) +print('tabs:', c.count(''), c.count('')) +print('placeholders left:', c.count('{/* Content */}')) +" +``` + +A balanced-tag check will not catch leftover QA phrasing — a keyword scan only finds names you already thought of. Re-read each body against the de-jargon test in `triage-rules.md`. + +Then run the `npm run lint` and `npm run build` gate from AGENTS.md. diff --git a/ai-skills/wm-ai-release-notes-draft/references/triage-rules.md b/ai-skills/wm-ai-release-notes-draft/references/triage-rules.md new file mode 100644 index 0000000..d55533f --- /dev/null +++ b/ai-skills/wm-ai-release-notes-draft/references/triage-rules.md @@ -0,0 +1,111 @@ +# Triage Rules + +How to decide what from a source sheet becomes an entry, and how to word it. + +## The filter: can a customer observe it? + +Keep an item if it maps to something the user **clicks, sees, or gets** — a screen, a control, a message, a generated app's behaviour, a build that now succeeds or runs faster. + +Drop it if the only thing that changed is an **event field, an API parameter, an internal detector, a tool's error wording, or a framework refactor**. + +These were cut from a shipped release by the writer, and are the calibration for "too internal": + +| Cut | Why | +| ---------------------------------------------------------- | -------------------- | +| Per-request LLM model override on a WebSocket run API | API parameter | +| Correlating ids added to a start/complete event pair | Event field | +| Compaction trigger counting system prompt and tool schemas | Internal measurement | +| Reworded error message suggesting an alternate tool | Tool message | +| Internal summarization text leaking into a task's output | Internal plumbing | + +### Try rewriting before dropping + +An item can sound internal and still have a surface the user touches. In the same release, a ticket about migrating draft base tracking from tags to marker commits was **not** dropped — it was rewritten in terms of the buttons involved: + +> Restore and Edit for earlier conversation states remain available even after Reject All or Sync Studio Changes. + +So before dropping: ask what the user would notice. If there is a button, label, list, or screen involved, name it and keep the entry. Drop only when there is genuinely no surface. + +## Always exclude + +These never produce an entry. List each one in the report with its reason. + +| Category | Examples | +| ---------------------- | ----------------------------------------------------------------------------------------------------- | +| Merge commits | `Merge branch 'x' into y`, and tickets literally titled as a dummy JIRA for merge purposes | +| CI and pipeline config | Fixing a release job trigger, build routing between internal services | +| Build tooling | Lockfiles, lint config, dependency-group restructuring of internal services | +| Auto-generated commits | `Auto commited migration changes by Studio` | +| Internal repo hygiene | Merging test repos, moving temp files to a gitignored folder, deleting tracking files | +| Test-only work | Unit test coverage, adding or updating test cases | +| Internal observability | Tracing span names, log nesting, telemetry plumbing | +| Reverted work | A fix and its own revert in the same release net to zero — exclude both | +| WIP or debug commits | `login issue check 1` | +| Vague security bumps | `Vulnerabilities resolved` with no stated impact. A named CVE that blocked installs **is** includable | + +### Never name a customer or their app + +This repo is public. Customer names, project codenames, and their application's screen names must not appear in an entry, a title, or an example — even when the ticket is full of them. + +## Merge + +**Same defect, different tickets.** QA often files the same bug from several screens. If the underlying defect is one thing, write one entry. Two separate tickets about a select-all control failing became a single entry. + +**Umbrella plus children.** A parent ticket whose description is a list of links becomes one entry with sub-bullets — one per child. Fetch the children to get their names; do not write "various fixes". + +**One capability split across repos.** A codegen change and its runtime counterpart under one ticket are one entry. + +## Split + +If a ticket contains **both a fix and an improvement**, it becomes two entries. A ticket about preview builds failing with out-of-memory errors because dependencies reinstalled on every build carried both: + +- **Bug Fix** — builds intermittently failing with out-of-memory errors. +- **Enhancement** — unchanged builds now skip dependency installation, cutting build time substantially. + +The test: would a customer who never hit the bug still care? If yes, the improvement deserves its own entry. + +## Classify + +| Tab | Rule | +| ------------ | -------------------------------------------------------------------------- | +| Features | A capability that did not exist | +| Enhancements | An existing capability got better. A Jira `Improvement` usually lands here | +| Bug Fixes | Something was broken and now works | + +Accordian definitions and pill rules are in `../../wm-ai-release-notes/references/conventions.md`. + +## Rewriting QA tickets + +QA tickets are written from inside a test application. They name screens, dialogs, tabs, and record types that mean nothing to a customer. Translate each into the **platform-level defect a WaveMaker developer would recognise**. + +### The test + +> Could a reader who has never seen the test app tell which tab, dialog, message, or page is meant? + +The failure mode is a definite article pointing at app-specific UI. "The create, clone, and view tabs", "the advanced search dialog", "the no-results message" all fail it — they sound generic but refer to one app's screens. Name the widget or behaviour instead, or describe the shape generically ("a dynamically added tab"). + +The writer's own critique of an early draft: + +> "Status column color missing on page 2" — where, what is page 2? Does this make sense in a release note? + +The real defect was a table column's conditional background colour not being re-applied after paging. That is the entry. + +### State only the causes the ticket gives + +QA tickets report symptoms. If the ticket does not say why, describe the symptom and stop. Writing "because the handler was not registered" when the ticket never says so is inventing a root cause. + +### Keep error strings + +If a ticket quotes an error, keep it in the body. It is what someone hitting the bug will search for. `Required field(s) missing` and `Indexed property setter is not supported` both survived review for this reason. + +### Say "in React apps" when parity is the point + +Many tickets exist because behaviour differs between the Angular and React outputs — the ticket says so, or says it works fine in Angular. Without that qualifier, Angular users think the bug affected them too. + +### Do not invent mechanisms + +No filenames, settings, config keys, or version numbers that the ticket does not give. If a ticket says a package version was flagged for a CVE, do not name the version it moved to. + +## Low confidence + +Some tickets are too garbled to translate with certainty, and Jira adds nothing. Write the most defensible reading, then **flag it in the report** as your reading rather than established fact, so the writer can correct it. Do not quietly present a guess as a finding. diff --git a/ai-skills/wm-ai-release-notes/SKILL.md b/ai-skills/wm-ai-release-notes/SKILL.md index b941498..2dbcf17 100644 --- a/ai-skills/wm-ai-release-notes/SKILL.md +++ b/ai-skills/wm-ai-release-notes/SKILL.md @@ -4,8 +4,9 @@ description: > Use this skill when editing or filling in a WaveMaker AI release notes file. Activate when the user wants to add a feature, enhancement, or bug fix to a release notes .mdx file, asks how to write a release note entry, wants to categorise a shipped item, needs to verify or add a - doc link, or is reviewing a release notes draft for correctness. This is distinct from feature - announcements (public-facing posts) and blog posts. + doc link, or is reviewing a release notes draft for correctness. For drafting a whole release from a + source sheet or branch-compare report in bulk, use `wm-ai-release-notes-draft` instead. This is distinct + from feature announcements (public-facing posts) and blog posts. license: MIT metadata: version: 0.1.0 @@ -26,6 +27,7 @@ Use this skill to help a writer or developer fill in a versioned release notes f ## When NOT to use +- User hands over a sheet, export, or branch-compare report and wants a whole release drafted in bulk → use the `wm-ai-release-notes-draft` skill. - User wants a public-facing post celebrating a feature → use the `wm-ai-feature-announcements` skill. - User wants a narrative blog post or engineering story → use the `wm-ai-blog` skill. - User wants a reference or how-to doc page → use the `wm-ai-create-guide` skill. From 2a8462b5aeef3d628a5be17359f8bcfc2d91c70a Mon Sep 17 00:00:00 2001 From: Mayank Prakash Date: Mon, 5 Oct 2026 12:49:48 +0530 Subject: [PATCH 05/13] moved bug item from platform to ui --- .../release-version-12/version-12-0-x/12.0.2.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx b/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx index 24e8978..fa416a0 100644 --- a/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx +++ b/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx @@ -137,6 +137,10 @@ For details about the technology stack upgrades, refer to [Technology Stack](/te - ### List variant padding overrides inline padding Fixed a List widget's variant padding taking priority over the padding set inline on the widget. + + - ### Dialogs generated incorrectly from screenshots + + Fixed Screenshot-to-Code generating dialogs incorrectly from a screenshot. @@ -153,10 +157,6 @@ For details about the technology stack upgrades, refer to [Technology Stack](/te - ### AI chat run stops during a multi-file replace Fixed an AI chat run ending with no response when a find-and-replace was applied across a directory instead of across named files. - - - ### Dialogs generated incorrectly from screenshots - - Fixed Screenshot-to-Code generating dialogs incorrectly from a screenshot. From d3557dafb36c4f6f5e68caeecaa374b3527a93e7 Mon Sep 17 00:00:00 2001 From: mayankPrakashWavemaker Date: Mon, 5 Oct 2026 16:30:06 +0530 Subject: [PATCH 06/13] few rn items removed --- .../release-version-12/version-12-0-x/12.0.2.mdx | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx b/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx index fa416a0..6bb132a 100644 --- a/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx +++ b/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx @@ -7,7 +7,7 @@ hide_title: true -WaveMaker announces the release of WaveMaker AI 12.0.2. This release improves how Screenshot-to-Code generates screens, adds React Native extensibility through custom app wrappers and Metro configuration, and fixes widget accessibility and a range of React app issues. +WaveMaker announces the release of WaveMaker AI 12.0.2. This release improves how Screenshot-to-Code generates screens and fixes a range of issues in React apps. For details about the technology stack upgrades, refer to [Technology Stack](/tech-stack?v=12-0-2). @@ -18,14 +18,6 @@ For details about the technology stack upgrades, refer to [Technology Stack](/te - - ### Custom wrapper around the app - - You can now wrap a React Native app with your own providers, so libraries that require a provider at the app root can be used. - - - ### Custom Metro configuration support - - React Native projects now support adding additional Metro bundler configuration. - - ### List pagination in generated screens Screenshot-to-Code now generates pagination for list widgets, so long lists render in pages instead of all at once. From 1553d35a665893011f217a257a735e2deab9cffb Mon Sep 17 00:00:00 2001 From: mayankPrakashWavemaker Date: Tue, 6 Oct 2026 11:08:28 +0530 Subject: [PATCH 07/13] removed an item of react native --- .../release-version-12/version-12-0-x/12.0.2.mdx | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx b/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx index 6bb132a..0cc1b43 100644 --- a/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx +++ b/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx @@ -142,10 +142,6 @@ For details about the technology stack upgrades, refer to [Technology Stack](/te - - ### Dependency installation blocked by flagged package - - Fixed React Native dependency installation being blocked by a `postcss` version flagged for CVE-2026-41305. - - ### AI chat run stops during a multi-file replace Fixed an AI chat run ending with no response when a find-and-replace was applied across a directory instead of across named files. From b8006dba0dd0bd7f99b5bdaa3482b31cdaca8dc6 Mon Sep 17 00:00:00 2001 From: mayankPrakashWavemaker Date: Tue, 6 Oct 2026 12:18:54 +0530 Subject: [PATCH 08/13] added rn bug item --- .../release-version-12/version-12-0-x/12.0.2.mdx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx b/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx index 0cc1b43..81e0211 100644 --- a/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx +++ b/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx @@ -130,6 +130,10 @@ For details about the technology stack upgrades, refer to [Technology Stack](/te Fixed a List widget's variant padding taking priority over the padding set inline on the widget. + - ### Extra bottom margin on form fields + + Fixed form fields having extra margin at the bottom. + - ### Dialogs generated incorrectly from screenshots Fixed Screenshot-to-Code generating dialogs incorrectly from a screenshot. From 6a0ddf39ead2b9bb9add672cf3e8649ec15c6a9f Mon Sep 17 00:00:00 2001 From: mayankPrakashWavemaker Date: Tue, 6 Oct 2026 12:31:05 +0530 Subject: [PATCH 09/13] add platform enhancement --- .../release-version-12/version-12-0-x/12.0.2.mdx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx b/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx index 81e0211..95f416d 100644 --- a/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx +++ b/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx @@ -49,6 +49,13 @@ For details about the technology stack upgrades, refer to [Technology Stack](/te - ### Background color and gradient detection Screenshot-to-Code detects background colors more carefully, including prominent gradients. + + - ### Enhancements to Spotlight Search in Studio + + - Settings section child-routes are now searchable in Spotlight Search. + - Database tab shortcuts (Settings, Query, Procedure) and table name search are available in Spotlight Search. + - The APIs section is now searchable in Spotlight Search. Endpoints are excluded. + - The no-results screen now includes a "Search in file content" option. From 6ad893a6732e9355d9ce3276e47019e063efc50d Mon Sep 17 00:00:00 2001 From: mayankPrakashWavemaker Date: Tue, 6 Oct 2026 13:33:39 +0530 Subject: [PATCH 10/13] added item for platform --- .../release-version-12/version-12-0-x/12.0.2.mdx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx b/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx index 95f416d..08965a5 100644 --- a/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx +++ b/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx @@ -7,7 +7,7 @@ hide_title: true -WaveMaker announces the release of WaveMaker AI 12.0.2. This release improves how Screenshot-to-Code generates screens and fixes a range of issues in React apps. +WaveMaker announces the release of WaveMaker AI 12.0.2. This release adds slash commands to the WaveMaker AI Assistant, improves how Screenshot-to-Code generates screens, and fixes a range of issues in React apps. For details about the technology stack upgrades, refer to [Technology Stack](/tech-stack?v=12-0-2). @@ -18,6 +18,12 @@ For details about the technology stack upgrades, refer to [Technology Stack](/te + - ### Slash commands in WaveMaker AI Assistant + + Type `/` in the WaveMaker AI Assistant to see the commands available for the current agent. Keep typing to narrow the list, then select a command to add it to your message. Anything you type after the command gives the assistant more context. + + - `/grill-me`: Stress-tests a plan or design before you build it. The assistant asks questions one at a time, working through each part of the plan. It suggests an answer for each question and leaves every decision to you. It draws on WaveMaker knowledge to ask more relevant questions, and waits until you both agree on the plan before it starts any work. For example, `/grill-me I want to add a customer onboarding flow with email verification and role-based dashboards`. + - ### List pagination in generated screens Screenshot-to-Code now generates pagination for list widgets, so long lists render in pages instead of all at once. From 7034512b51c4d02435ad75468d2f0e5c06bf8a80 Mon Sep 17 00:00:00 2001 From: mayankPrakashWavemaker Date: Tue, 6 Oct 2026 16:23:20 +0530 Subject: [PATCH 11/13] minor content update --- docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx b/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx index 08965a5..944a15f 100644 --- a/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx +++ b/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx @@ -20,7 +20,7 @@ For details about the technology stack upgrades, refer to [Technology Stack](/te - ### Slash commands in WaveMaker AI Assistant - Type `/` in the WaveMaker AI Assistant to see the commands available for the current agent. Keep typing to narrow the list, then select a command to add it to your message. Anything you type after the command gives the assistant more context. + Type `/` in the WaveMaker AI Assistant to see the available commands. For now, there is one: `/grill-me`. Select it to add it to your message, then add any details after it. - `/grill-me`: Stress-tests a plan or design before you build it. The assistant asks questions one at a time, working through each part of the plan. It suggests an answer for each question and leaves every decision to you. It draws on WaveMaker knowledge to ask more relevant questions, and waits until you both agree on the plan before it starts any work. For example, `/grill-me I want to add a customer onboarding flow with email verification and role-based dashboards`. From 09a4d847a9ac82957e3504eb8b0fb1819abf8eee Mon Sep 17 00:00:00 2001 From: "megha.joshi" Date: Wed, 7 Oct 2026 11:24:56 +0530 Subject: [PATCH 12/13] Add 12.0.2 Angular bug fix notes and Angular pill Add three web/Angular bug fixes to the 12.0.2 release notes: DataTable multi-column filter showing all values, partial pages missing from the Properties panel, and switching to the Design Dialog needing multiple clicks. Add an `angular` Pill type styled the same as the Web pill. Co-Authored-By: Claude Opus 5.5 --- .../release-version-12/version-12-0-x/12.0.2.mdx | 12 ++++++++++++ src/components/MDXComponents/Pills/Pills.css | 3 ++- src/components/MDXComponents/Pills/Pills.jsx | 1 + 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx b/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx index 944a15f..79854fc 100644 --- a/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx +++ b/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx @@ -139,6 +139,18 @@ For details about the technology stack upgrades, refer to [Technology Stack](/te - Button, Progress Bar, Progress Circle, Audio, Video, and Picture: fixed accessibility not working correctly in some configurations. - File Upload: fixed the missing `name` attribute. + - ### DataTable multi-column filter shows all values + + Fixed the DataTable multi-column filter showing all values instead of filtering by the value entered in a column's filter field in Angular apps. + + - ### Partial pages missing from the Properties panel + + Fixed partial pages not appearing in the Properties panel for a newly created page in a new Angular app. + + - ### Switching to Design Dialog needs multiple clicks + + Fixed switching from the Main Page to the Design Dialog requiring more than one click in Angular apps. + - ### List variant padding overrides inline padding Fixed a List widget's variant padding taking priority over the padding set inline on the widget. diff --git a/src/components/MDXComponents/Pills/Pills.css b/src/components/MDXComponents/Pills/Pills.css index 988a103..a5b6abb 100644 --- a/src/components/MDXComponents/Pills/Pills.css +++ b/src/components/MDXComponents/Pills/Pills.css @@ -43,7 +43,8 @@ } /* Base styling */ -.wm-pill-web { +.wm-pill-web, +.wm-pill-angular { background: rgba(23, 148, 239, 0.2); color: rgba(23, 148, 239); --wm-pill-icon-color: rgba(23, 148, 239); diff --git a/src/components/MDXComponents/Pills/Pills.jsx b/src/components/MDXComponents/Pills/Pills.jsx index a95f04f..4948390 100644 --- a/src/components/MDXComponents/Pills/Pills.jsx +++ b/src/components/MDXComponents/Pills/Pills.jsx @@ -34,6 +34,7 @@ const MobileIcon = ({ size = 14, color = 'currentColor' }) => ( const pillConfig = { web: { icon: WebIcon, label: 'Web' }, + angular: { icon: null, label: 'Angular' }, mobile: { icon: MobileIcon, label: 'Mobile' }, desktop: { icon: Monitor, label: 'Desktop' }, android: { icon: MobileIcon, label: 'Android' }, From 9f4c7a34ede52928d0dc7b7f2686b859d6192eb4 Mon Sep 17 00:00:00 2001 From: "@pavan.dussa" Date: Wed, 7 Oct 2026 11:57:34 +0530 Subject: [PATCH 13/13] Added AI-Assistant 12.0.2 release items --- .../release-version-12/version-12-0-x/12.0.2.mdx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx b/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx index 79854fc..805ce07 100644 --- a/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx +++ b/docs/release-notes/release-version-12/version-12-0-x/12.0.2.mdx @@ -36,6 +36,10 @@ For details about the technology stack upgrades, refer to [Technology Stack](/te Files changed only by a platform upgrade no longer appear in the AI chat's list of changes alongside the session's own edits. + - ### AI Assistant input limits and paste attachments + + Pasted text longer than 200 words now appears as an attachment in the AI Assistant, and each message accepts up to 5,000 typed words and up to 1 MB of content in total. + - ### Wizard fallback when no variant matches When no matching wizard variant is available, Screenshot-to-Code now builds the wizard from containers and labels with one container per step, using a model variable to control which step is shown.