<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in plugin.info.txt</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2025</copyright>
    <generator>Java</generator><item>
        <title>06115043aff2e9e9c0c9b824eaf8e6053b32fa24 - Set plugin URL to dokuwiki.org in plugin.info.txt</title>
        <link>http://127.0.0.1:8080/history/plugin/usersettings/plugin.info.txt#06115043aff2e9e9c0c9b824eaf8e6053b32fa24</link>
        <description>Set plugin URL to dokuwiki.org in plugin.info.txt

            List of files:
            /plugin/usersettings/plugin.info.txt</description>
        <pubDate>Wed, 17 Jun 2026 10:57:14 +0000</pubDate>
        <dc:creator>tracker-user &lt;82045103+tracker-user@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>d00c9837cc1955f190d39d9e5c8adb79eb3c011d - Add screenshot and link in README</title>
        <link>http://127.0.0.1:8080/history/plugin/usersettings/plugin.info.txt#d00c9837cc1955f190d39d9e5c8adb79eb3c011d</link>
        <description>Add screenshot and link in READMECo-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;

            List of files:
            /plugin/usersettings/plugin.info.txt</description>
        <pubDate>Tue, 16 Jun 2026 20:22:49 +0000</pubDate>
        <dc:creator>tracker-user &lt;82045103+tracker-user@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>54f11439a68c5f07eddd4c7f20a09acd149bde82 - Add user columns, config, pagination, and filtering to admin overview</title>
        <link>http://127.0.0.1:8080/history/plugin/usersettings/plugin.info.txt#54f11439a68c5f07eddd4c7f20a09acd149bde82</link>
        <description>Add user columns, config, pagination, and filtering to admin overview- New Username column (before Display name) and Email/Groups columns- New conf/ (plugin had none): show_mail, show_grps, entries_per_page- Numbered windowed pagination; per-column substring filters on all columns except Changed at- Existing Setting drop-down kept, combined with text filters in one GET form (no JS)- de/ru/ja settings translations, FF78-safe CSS, README and plugin.info.txt date updatedCo-Authored-By: Claude Opus 4.8 &lt;noreply@anthropic.com&gt;

            List of files:
            /plugin/usersettings/plugin.info.txt</description>
        <pubDate>Sun, 14 Jun 2026 22:14:49 +0000</pubDate>
        <dc:creator>tracker-user &lt;82045103+tracker-user@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>1a25f39dd1d18f916e99909728ff71c0ba821969 - Fix per-user language not applying to the JavaScript bundle</title>
        <link>http://127.0.0.1:8080/history/plugin/usersettings/plugin.info.txt#1a25f39dd1d18f916e99909728ff71c0ba821969</link>
        <description>Fix per-user language not applying to the JavaScript bundlejs.php runs with NOSESSION, so it has no REMOTE_USER and the JS_SCRIPT_LISThandler (which keyed off REMOTE_USER) could never resolve the user&apos;s language-- LANG/LANG.plugins.* always shipped in the site default. The page UI followedthe user&apos;s choice while all JS strings stayed English.Carry the language through the js.php &lt;script&gt; URL instead of the session:- TPL_METAHEADER_OUTPUT appends &amp;uslang=&lt;code&gt; to the js.php src during the  authenticated page request; this also caches the bundle per language so a  stale English bundle is not reused after a switch.- JS_SCRIPT_LIST reads $INPUT-&gt;str(&apos;uslang&apos;) (survives NOSESSION), validates it  to a real inc/lang/ dir, switches $conf[&apos;lang&apos;], and keeps the datepicker  cache-key rewrite.- Capture the pre-override site default so the URL builder can compare against  it after applyUserLang has already switched $conf[&apos;lang&apos;].- Factor language validation into isValidLangCode(); the param is now  user-controllable so it is checked against [a-z0-9-] + an existing dir.Co-Authored-By: Claude Opus 4.8 &lt;noreply@anthropic.com&gt;

            List of files:
            /plugin/usersettings/plugin.info.txt</description>
        <pubDate>Wed, 03 Jun 2026 10:22:21 +0000</pubDate>
        <dc:creator>tracker-user &lt;82045103+tracker-user@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>49b74e0a20d271d13e295d5f68707f57e70072a5 - Review: fix lock collision, lazy lang-apply, endonyms, null-guards, namespacing</title>
        <link>http://127.0.0.1:8080/history/plugin/usersettings/plugin.info.txt#49b74e0a20d271d13e295d5f68707f57e70072a5</link>
        <description>Review: fix lock collision, lazy lang-apply, endonyms, null-guards, namespacing- helper: use a distinct lock key ($file.&apos;.lock&apos;) in setPreferences() so  the outer read-modify-write lock does not collide with io_saveFile()&apos;s  own internal lock &#8212; previously caused a ~3 s CPU spin on every save- action: applyUserLang() reads the stored &apos;lang&apos; record directly via  getRecord() instead of getPreference(), avoiding the REGISTER event  (and inc/lang/ glob) on every logged-in request; the toggle registry is  now built after $conf[&apos;lang&apos;] is updated, so toggle labels resolve in  the user&apos;s language. Add [a-z0-9-] charset guard on the stored code.  Remove the now-moot $this-&gt;localised/$this-&gt;lang cache reset.- action: getAvailableLanguages() returns native endonyms via languageName()  (covers all 78 DokuWiki lang dirs; unknown codes fall back to bare code)- admin: ?? &apos;&apos; null-guard on $userData[&apos;name&apos;] in two places- All three files: migrate to namespaced base classes  (dokuwiki\Extension\{Plugin,ActionPlugin,AdminPlugin,EventHandler,Event})- plugin.info.txt: bump date to 2026-06-01Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;

            List of files:
            /plugin/usersettings/plugin.info.txt</description>
        <pubDate>Mon, 01 Jun 2026 02:29:31 +0000</pubDate>
        <dc:creator>tracker-user &lt;82045103+tracker-user@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>f51fe07cd1ae2d1dfd14f525b27faf57a788b46f - Review: fix JSON encoding, error message, locale cache, add translations</title>
        <link>http://127.0.0.1:8080/history/plugin/usersettings/plugin.info.txt#f51fe07cd1ae2d1dfd14f525b27faf57a788b46f</link>
        <description>Review: fix JSON encoding, error message, locale cache, add translations- helper.php: add JSON_UNESCAPED_UNICODE to json_encode flags- lang/en: add %s placeholder to adminsavefail for consistency with adminsaved- action.php: reset plugin locale cache after applying user language override,  so the settings page renders in the user&apos;s chosen language rather than the  site default- Add de, ru, ja translations- plugin.info.txt: update dateCo-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;

            List of files:
            /plugin/usersettings/plugin.info.txt</description>
        <pubDate>Thu, 28 May 2026 19:58:06 +0000</pubDate>
        <dc:creator>tracker-user &lt;82045103+tracker-user@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>1ab406139ae52af26e6f9eaacaf1646e58521679 - Initial commit, made with Claude Opus 4.7</title>
        <link>http://127.0.0.1:8080/history/plugin/usersettings/plugin.info.txt#1ab406139ae52af26e6f9eaacaf1646e58521679</link>
        <description>Initial commit, made with Claude Opus 4.7

            List of files:
            /plugin/usersettings/plugin.info.txt</description>
        <pubDate>Fri, 22 May 2026 18:11:01 +0000</pubDate>
        <dc:creator>tracker-user &lt;82045103+tracker-user@users.noreply.github.com&gt;</dc:creator>
    </item>
</channel>
</rss>
