| AI.Code.Javascript (models-ui) is loaded as the RequireJS module xwiki-llm through the UIX parameter path=$xwiki.getURL("AI.Code.Javascript", "jsx", "language=$xcontext.language") (Javascript.xml about lines 1813-1814). The JSX object has cache=long, so the response is served with Expires one month ahead and Cache-Control: public, and the URL has no version part. The platform's own skin extension links add docVersion=<page version> precisely to avoid this (AbstractDocumentSkinExtensionPlugin.getDocumentSkinExtensionURL), and the CKEditor module uses the installed extension version as a v parameter (CKEditor.EditSheet line ~1354). Observed live: after the reinstall, a browser kept running the previous chat code until the cache entry was refreshed by hand; so every browser that used the chat before an upgrade keeps the old code for up to a month. The same line also uses the deprecated $xcontext.language (Velocity logs Deprecated usage of getter [Context.getLanguage] on every page render; use $xcontext.locale). |