Branch: refs/heads/xmvn-when-available Home: https://github.com/xwiki/xwiki-dev-llm Commit: d02ecfc14ba42a257f191007fca41057958db952 https://github.com/xwiki/xwiki-dev-llm/commit/d02ecfc14ba42a257f191007fca410... Author: Vincent Massol <[email protected]> Date: 2026-08-19 (Wed, 19 Aug 2026) Changed paths: M .claude-plugin/marketplace.json M kimi.plugin.json M opencode.jsonc M xwiki/.claude-plugin/plugin.json M xwiki/okf/sonarqube/test-code-rules.md Log Message: ----------- [Misc] Correct the S3415 verdict in the SonarQube test-code rules The entry told a reader to "default to dropping" java:S3415, which is the wrong prior: a full sweep of the rule needed a drop on roughly one site in six, and the discriminator (does either operand read `null`?) is decidable from the one line the issue already points at. The two genuine drop shapes it lists are kept — they are now presented as the drop list rather than as a reason to skip the rule. Also adds the two mechanics the sweep proved necessary: Sonar flags only some of a file's reversed assertions, so the whole file must be converted or it reads two ways; and a swap never changes overload resolution, even across numeric types. Co-Authored-By: Vincent Massol <[email protected]> Commit: ea361d95327fa9a13bf760db33321757cf9ca055 https://github.com/xwiki/xwiki-dev-llm/commit/ea361d95327fa9a13bf760db333217... Author: Vincent Massol <[email protected]> Date: 2026-08-19 (Wed, 19 Aug 2026) Changed paths: M .claude-plugin/marketplace.json M kimi.plugin.json M opencode.jsonc M xwiki/.claude-plugin/plugin.json M xwiki/okf/sonarqube/test-code-rules.md Log Message: ----------- [Misc] Correct the S3415 verdict in the SonarQube test-code rules Commit: 831e7eff582f967a4e22c7244f3ad6e36c610748 https://github.com/xwiki/xwiki-dev-llm/commit/831e7eff582f967a4e22c7244f3ad6... Author: Vincent Massol <[email protected]> Date: 2026-08-23 (Sun, 23 Aug 2026) Changed paths: M .claude-plugin/marketplace.json M kimi.plugin.json M opencode.jsonc M xwiki/.claude-plugin/plugin.json M xwiki/okf/sonarqube/index.md M xwiki/okf/sonarqube/syntax-rules.md Log Message: ----------- Correct the java:S6355 denylist entry: the deprecating version is already in the Javadoc * java:S6355 was denylisted together with java:S1123 as "needs the deprecating version", which caused every Sonar routine run to skip the largest pool in the three repos (768 open issues). * In 464 of those 768 sites the version is stated by the element's own @deprecated Javadoc tag, so the fix copies it rather than inventing one. Documented in syntax-rules with the classifier, the three real drop shapes and the Revapi finding. * java:S1123 stays on the denylist, with its own reason. Co-Authored-By: Vincent Massol <[email protected]> Commit: e6232dda3179738a88160b9e793329ac777599d3 https://github.com/xwiki/xwiki-dev-llm/commit/e6232dda3179738a88160b9e793329... Author: Vincent Massol <[email protected]> Date: 2026-08-23 (Sun, 23 Aug 2026) Changed paths: M .claude-plugin/marketplace.json M CLAUDE.md M README.md M kimi.plugin.json M opencode.jsonc M xwiki/.claude-plugin/plugin.json M xwiki/.mcp.json M xwiki/okf/servers/index.md A xwiki/scripts/start-discourse-mcp.mjs Log Message: ----------- [Misc] Allow the discourse MCP server to post on the forum * Read a forum credential from the environment: DISCOURSE_API_KEY + DISCOURSE_API_USERNAME (admin key), or DISCOURSE_USER_API_KEY + DISCOURSE_USER_API_CLIENT_ID (user key, which any account can hold). With none set, the server stays anonymous and read-only exactly as before. * Start the server through a new launcher, xwiki/scripts/start-discourse-mcp.mjs, wired into all three host manifests. A wrapper is needed because the write flags must be added only when a credential is actually present, which a static MCP manifest cannot express. * Pass the credential in a temporary 0600 profile file instead of on the command line, so it never appears in the machine's process list. * Drop a credential the forum refuses (401/403) and start read-only instead: the server authenticates its own start-up call to /about.json, so a stale key otherwise makes it register no tools at all and every forum tool silently disappears. A network or server-side error keeps the credential. * Document the variables and how to obtain each kind of key in the README, and record in the OKF that a missing post tool means "no credential set" rather than "posting unavailable". Co-Authored-By: Claude Opus 5 (1M context) <[email protected]> Commit: 644f692e621c41b1f657e550192cb9173c1623db https://github.com/xwiki/xwiki-dev-llm/commit/644f692e621c41b1f657e550192cb9... Author: Vincent Massol <[email protected]> Date: 2026-08-23 (Sun, 23 Aug 2026) Changed paths: M .claude-plugin/marketplace.json M CLAUDE.md M README.md M kimi.plugin.json M opencode.jsonc M xwiki/.claude-plugin/plugin.json M xwiki/.mcp.json M xwiki/okf/servers/index.md A xwiki/scripts/start-discourse-mcp.mjs Log Message: ----------- [Misc] Allow the discourse MCP server to post on the forum Commit: 86788fdcd1efa82c6d58820f9d8eb8cc29fd6b73 https://github.com/xwiki/xwiki-dev-llm/commit/86788fdcd1efa82c6d58820f9d8eb8... Author: Vincent Massol <[email protected]> Date: 2026-08-23 (Sun, 23 Aug 2026) Changed paths: M .claude-plugin/marketplace.json M CLAUDE.md M README.md M kimi.plugin.json M opencode.jsonc M xwiki/.claude-plugin/plugin.json M xwiki/.mcp.json M xwiki/okf/servers/index.md A xwiki/scripts/start-discourse-mcp.mjs Log Message: ----------- Merge master and re-derive the plugin version bump Co-Authored-By: Vincent Massol <[email protected]> Commit: 121af628435ac84243c56b3319b3d3e6a44f9d90 https://github.com/xwiki/xwiki-dev-llm/commit/121af628435ac84243c56b3319b3d3... Author: Vincent Massol <[email protected]> Date: 2026-08-23 (Sun, 23 Aug 2026) Changed paths: M xwiki/okf/sonarqube/syntax-rules.md Log Message: ----------- S6355: stripping the version from the Javadoc tag is part of the fix Co-Authored-By: Vincent Massol <[email protected]> Commit: e38ab878a87609a0b92f0d5c78fa35d674c33cd9 https://github.com/xwiki/xwiki-dev-llm/commit/e38ab878a87609a0b92f0d5c78fa35... Author: Vincent Massol <[email protected]> Date: 2026-08-23 (Sun, 23 Aug 2026) Changed paths: M xwiki/okf/sonarqube/syntax-rules.md Log Message: ----------- S6355: anchor the version pattern, the pool contains malformed versions Co-Authored-By: Vincent Massol <[email protected]> Commit: 77b95ad90d64124951db558ef90e7d590ced96ca https://github.com/xwiki/xwiki-dev-llm/commit/77b95ad90d64124951db558ef90e7d... Author: Vincent Massol <[email protected]> Date: 2026-08-23 (Sun, 23 Aug 2026) Changed paths: M xwiki/okf/conventions/versioning.md M xwiki/okf/sonarqube/syntax-rules.md Log Message: ----------- Document the @Deprecated conventions the Java Code Style page defines * okf/conventions/versioning.md covered the version FORMAT and the multi-line @since backport rule, but nothing about @Deprecated itself, so a Sonar sweep of java:S6355 missed three of the four rules on https://dev.xwiki.org/xwiki/bin/view/Community/CodeStyle/JavaCodeStyle/#HDep...: no forRemoval, no version in the @deprecated Javadoc tag, and — the one that cost a review round — a deprecation done on several branches lists ALL its versions, comma-separated. * Corrects the java:S6355 entry in sonarqube/syntax-rules.md, which called the multi-version case a judgement call and told the reader to pick one version. Co-Authored-By: Vincent Massol <[email protected]> Commit: ee9a6bd97abc1dade5a93f2a6d358f084ee10ae5 https://github.com/xwiki/xwiki-dev-llm/commit/ee9a6bd97abc1dade5a93f2a6d358f... Author: Vincent Massol <[email protected]> Date: 2026-08-23 (Sun, 23 Aug 2026) Changed paths: M xwiki/okf/conventions/versioning.md M xwiki/okf/sonarqube/syntax-rules.md Log Message: ----------- No ordering is prescribed for a multi-version since list: keep the Javadoc's Co-Authored-By: Vincent Massol <[email protected]> Commit: 915698908410bcce0eb5c8f060619b403afd0327 https://github.com/xwiki/xwiki-dev-llm/commit/915698908410bcce0eb5c8f060619b... Author: Vincent Massol <[email protected]> Date: 2026-08-23 (Sun, 23 Aug 2026) Changed paths: M xwiki/okf/conventions/versioning.md M xwiki/okf/sonarqube/index.md M xwiki/okf/sonarqube/syntax-rules.md Log Message: ----------- Trim the S6355 entry: no duplication with versioning, essentials only Co-Authored-By: Vincent Massol <[email protected]> Commit: 56bd8f91fc209108cd559671d6223a9210517522 https://github.com/xwiki/xwiki-dev-llm/commit/56bd8f91fc209108cd559671d6223a... Author: Vincent Massol <[email protected]> Date: 2026-08-23 (Sun, 23 Aug 2026) Changed paths: M .claude-plugin/marketplace.json M kimi.plugin.json M opencode.jsonc M xwiki/.claude-plugin/plugin.json M xwiki/okf/conventions/versioning.md M xwiki/okf/sonarqube/index.md M xwiki/okf/sonarqube/syntax-rules.md Log Message: ----------- [Misc] Correct the java:S6355 denylist entry: the deprecating version is already in the Javadoc Commit: f0ee7c1a81bdcaf9f5bf69530181413a38acca85 https://github.com/xwiki/xwiki-dev-llm/commit/f0ee7c1a81bdcaf9f5bf6953018141... Author: Vincent Massol <[email protected]> Date: 2026-08-23 (Sun, 23 Aug 2026) Changed paths: M .claude-plugin/marketplace.json M CLAUDE.md M README.md M kimi.plugin.json M opencode.jsonc M xwiki/.claude-plugin/plugin.json M xwiki/.mcp.json M xwiki/okf/conventions/versioning.md M xwiki/okf/servers/index.md M xwiki/okf/sonarqube/index.md M xwiki/okf/sonarqube/syntax-rules.md M xwiki/okf/sonarqube/test-code-rules.md A xwiki/scripts/start-discourse-mcp.mjs Log Message: ----------- Merge master into xmvn-when-available * Resolve the plugin-version conflict in the four host manifests: master is at 1.1.1, so this change ships as 1.1.2 (the branch was based before the 1.1.x line and had bumped to 1.0.32). Commit: 36e57d2f45db4dbff1a4a9e796f6fa31083a3f97 https://github.com/xwiki/xwiki-dev-llm/commit/36e57d2f45db4dbff1a4a9e796f6fa... Author: Vincent Massol <[email protected]> Date: 2026-08-23 (Sun, 23 Aug 2026) Changed paths: M xwiki/instructions/xwiki-org.md M xwiki/skills/xwiki-build/SKILL.md M xwiki/skills/xwiki-increase-test-coverage/SKILL.md Log Message: ----------- [Misc] Review: state the xmvn platform caveat, cut the duplication * `skills/xwiki-build/SKILL.md` — `xmvn` resolves a JDK only through `update-alternatives` / `/usr/lib/jvm/java-*`, so on macOS it finds none and silently runs `mvn` on the default JDK; say so, since the section otherwise reads as "xmvn cannot pick the wrong JDK". Drop the paragraph restating why the wrapper beats a manual `JAVA_HOME`, and fold the sonar-floor paragraph into one clause plus the pointer to where the value lives. * `instructions/xwiki-org.md` — keep the rule and the two symptoms in the always-on bullet, and let the `xwiki-build` skill hold the mechanism, rather than describing `xmvn` and the `JAVA_HOME` fallback in both places. * `skills/xwiki-increase-test-coverage/SKILL.md` — same, one clause and a cross-reference; naming `xmvn` there would mislead on macOS. Commit: bf1dae638a5c0d0f47e0b35acf8a97765f77d31e https://github.com/xwiki/xwiki-dev-llm/commit/bf1dae638a5c0d0f47e0b35acf8a97... Author: Vincent Massol <[email protected]> Date: 2026-08-23 (Sun, 23 Aug 2026) Changed paths: M xwiki/instructions/xwiki-org.md Log Message: ----------- [Misc] Fold the JDK rule into the Java-version fact already in xwiki-org.md * The always-on file already states that the Java version depends on the XWiki version, and already routes every Maven command to the xwiki-build skill; a separate bullet restated both. Add the missing imperative — build with that JDK, not the machine default — as a clause on the existing fact, and drop the bullet. The symptoms stay in the skill, which is where you look once a build has failed. Compare: https://github.com/xwiki/xwiki-dev-llm/compare/acb5db207bd1...bf1dae638a5c To unsubscribe from these emails, change your notification settings at https://github.com/xwiki/xwiki-dev-llm/settings/notifications