NetHackWiki:Software updates/2026 MediaWiki 1.43
Summary
On 26 July 2026 NetHackWiki was upgraded from MediaWiki 1.32 (released 2019) to MediaWiki 1.43 LTS, the current long-term-support release. That is six years and eleven releases of accumulated features, fixes and security patches.
Nothing about the site's appearance has changed, and no page content, page history, account, watchlist, preference or upload was affected. The upgrade was rehearsed end to end against a full copy of the wiki's database before being run for real, and every page and revision count was checked against a pre-upgrade snapshot afterwards.
The wiki was read-only for about twenty minutes.
If something looks wrong, try this first
Reload the page with Ctrl+Shift+R (Cmd+Shift+R on a Mac).
Your browser and our CDN both cached the old stylesheets, and a stale copy can make things render oddly — most visibly, the map of the day can come out invisible. A hard refresh fixes it. This caught us during the upgrade, so it will probably catch some of you too.
If it still looks wrong afterwards, please report it — see #Reporting problems.
Changes you will actually see
Mathematical formulas look different
This is the most visible change on the wiki. The 806 formulas across articles like Rnz, Magicbane and Mjollnir used to be rendered server-side into PNG images. MediaWiki 1.43 renders them as MathML instead, which means they:
- stay sharp at any zoom level, instead of going blurry;
- scale with your font size rather than being a fixed-size picture;
- can be selected and copied as text;
- are readable by screen readers.
The underlying <math> markup is unchanged — you do not need to edit anything. Formulas may look slightly different in shape and spacing. If a formula now renders wrongly, please report it with the page name.
Tabbed sections no longer interfere with each other
<simpletabs> is used on 69 pages (for example Medusa, Yochlol, Ilsensine). It had a long-standing bug: every tab block on a page numbered its tabs from 1, so a page with two or more blocks produced duplicate HTML ids. Clicking a tab in the second block would switch tabs in the first block instead.
Fixed. Tab ids are now unique per block, so multiple tab groups on one page behave independently.
Lua modules work again
Every page in the Module: namespace had been returning a server error — the extension had been broken since a 2015 code change. All four modules now load, so Lua-based templates are usable again.
Smaller fixes
- PDF previews work for the first time since 2010. The five uploaded PDFs — the reference cards, keyboard command list, armor and scroll tables — only ever showed a generic file icon. This turned out to be two faults stacked on top of each other: the software that renders a PDF page to an image was never installed, and because a second missing tool meant the page dimensions were never recorded at upload time, MediaWiki believed the files were 0×0 pixels and would not have thumbnailed them anyway. Both fixed; all five now show a preview.
- Special:CategoryTree was showing a raw internal message name and a spurious "Category not found" error. Both gone.
- Account-creation questions. The anti-spam captcha had been reduced to a single fixed question, which stops a bot exactly once. It is back to a rotating set of 25.
- Uploads were tested end to end after the upgrade — storage, attribution, thumbnail generation and the upload log all behave correctly.
Under the hood, for editors
Extensions the wiki maintains itself
Five extensions here exist nowhere else — they were written for NetHackWiki and have no upstream project to update them. All five had to be rewritten by hand for the new MediaWiki, because the hooks they relied on were removed years ago. They are all working:
| Extension | What it does | Pages using it |
|---|---|---|
| ReplaceCharsBlock | Renders the ASCII dungeon maps | ~949 |
| MixedSyntaxHighlight | Syntax colouring in Source: code listings |
~654 |
| SimpleTabs | <simpletabs> tab blocks |
69 |
| RandomPageTitle | {{#rndpagetitle:}}, random page from a category |
~10 |
| ArticleMetaDescription | Page descriptions for search engines | site-wide |
These are the parts most likely to have subtle problems, because they are the parts nobody else in the world tests. Map rendering and code listings were checked page by page against the old site and produce identical output, but please report anything that looks off.
Extensions that moved into MediaWiki itself
Several extensions we used to maintain locally are now shipped as part of MediaWiki: Scribunto (Lua), AbuseFilter, Math, CategoryTree, SyntaxHighlight and TextExtracts. They are maintained upstream now, which means they get security fixes automatically and are one less thing to break at the next upgrade.
DPLforum, which renders the <forum> listings including the one on the Main Page, was updated from 3.5.0 to 3.6.0.
Extensions removed
All unused or already broken. Usage was checked against a dump of every current page before anything was touched.
- EasyTimeline (
<timeline>) — the rendering tool it depends on was never installed here, so it never worked. 0 pages used it. - RandomSelection, CreateBox, QuickLink, AssertEdit, ExternalLinks — unused, superseded, or long since absorbed into MediaWiki itself. 0 pages used any of them.
Nothing was deleted; these can be restored if anyone was relying on them.
For administrators
AbuseFilter
All 10 filters survived intact, including their hit counts and the full log history (1,642 entries). Six are enabled, as before. AbuseFilter is now part of MediaWiki rather than a separate install, so Special:AbuseFilter has a newer interface.
The log itself briefly broke — see #Fixed after cutover — and was restored from the pre-upgrade backup. If you spot an abuse log entry attributed to the wrong filter, please say so.
One permission was renamed upstream and has been updated in our configuration:
abusefilter-private→abusefilter-privatedetailsabusefilter-private-log→abusefilter-privatedetails-log
If you have anything referencing the old names, update it.
How edit attribution is stored has changed
This will not be visible on the wiki, but matters if you query the database directly or run external tools against it.
MediaWiki moved from storing a username on every revision to storing a reference to a shared actor table, and likewise moved edit summaries into a shared comment table. This migration had never been run here — it was overdue by several versions and was the single largest part of the upgrade.
- 8,419 actor records created (2,924 registered accounts plus anonymous IP editors)
- 94,372 distinct edit summaries stored
- 197,853 revisions migrated, with zero errors
The old rev_user, rev_user_text and rev_comment columns no longer exist. Anything reading them directly will need updating. Edit counts, Special:Contributions and page histories are unaffected and were checked after the migration.
Skins
Everyone keeps the skin they chose. The site default remains Vector legacy, so readers who never picked one see no change either.
DarkVector deserves a specific mention: it is a third-party skin whose author stopped updating it in 2022, and it is used by 77 accounts. Rather than retire it, it was ported by hand to work with MediaWiki 1.43. Modern and Cologne Blue were also updated.
MediaWiki 1.43 ships a newer skin, Vector (2022), with a collapsible sidebar, a redesigned header and a built-in dark mode. It is installed and selectable under Preferences → Appearance, but it is not the default and nobody has been moved to it.
If your preference names a skin MediaWiki removed years ago (simple, standard, myskin) you have silently been seeing the default all along, and will continue to.
Fixed after cutover
Two faults appeared once the site was live and have been dealt with:
- Special:AbuseLog was returning an error on every page. MediaWiki replaced the column linking a log entry to its filter, and the upgrade dropped the old one without filling in the new one — so every entry pointed at a filter that did not exist. All 1,642 log entries were recovered from the pre-upgrade backup and now link to the right filter again. Each filter's entry count was checked against the hit counter stored on the filter itself, and they match exactly.
- Old-style
/mediawiki/…and/w/…links. These are legacy URL forms still used by external sites. Page links kept working but images and API calls under those prefixes broke. Fixed.
The full-text search index has been rebuilt (38,521 pages), so search is complete and current.
What's new from MediaWiki itself
Selected from the upstream release notes for 1.33 through 1.43, filtered to what is likely to matter here.
Editing and templates
{{=}}is now built into wikitext, expanding to=. If you have ever fought with an equals sign inside a template parameter, that fight is over.__EXPECTUNUSEDCATEGORY__marks a category as intentionally empty so it stops appearing in maintenance reports.{{USERLANGUAGE}}returns the reader's language code.- All HTML5 named entities are now accepted in wikitext.
filter:is allowed in inline CSS, andaria-hidden/aria-levelare now permitted — the latter makes it possible to mark decorative symbols so screen readers skip them.
Watching and talk pages
- Special:NewSection — a shortcut to starting a new talk section.
- Special:TalkPage — jumps to the talk page of whatever you give it.
- Deleting a page can now delete its talk page at the same time, instead of leaving orphans.
MediaWiki 1.43 also supports expiring watchlist entries — watching a page for a week or a month rather than forever. It is switched off by default and is not enabled here yet; say so on the talk page if you would find it useful.
Finding things
- Special:RandomPage accepts several namespaces at once, comma-separated — for example
Special:RandomPage/0,100for a random article orSource:page. - Special:NamespaceInfo — a listing of every namespace and its settings.
- Preferences has been reorganised and is easier to search through.
Files
- 2048px thumbnails are now offered on file description pages.
- WebP metadata (XMP and EXIF) is now read properly.
- SVGs render in the wiki's language by default.
Plus six years of security fixes, performance work and accessibility improvements that do not make good bullet points but are the actual reason for doing this.
Reporting problems
MediaWiki's JavaScript and CSS layer has changed a great deal since 2019, so some custom scripts and gadgets may behave differently. There are 31 such pages on the wiki — 24 personal User: stylesheets and scripts, and 7 site-wide ones.
We are not asking anyone to pre-emptively audit anything. Just report what you notice.
Several of the faults fixed in this upgrade had been live for years without anyone reporting them, on the reasonable assumption that they were meant to be that way. If something looks wrong, please say so, even if you assume it is intentional.
When reporting, the two most useful details are:
- which skin you are using, and
- whether you are logged in.
A fault in one skin is a completely different problem from one in all of them. If you can, also check whether adding ?useskin=vector to the URL changes the behaviour.
And please try a hard refresh first — see the top of this page.
Things deliberately not done
- Nobody was moved off a skin they had chosen.
- No page content was edited, reformatted or migrated.
- No accounts, passwords, watchlists or preferences were reset.
- Nothing was deleted — removed extensions are archived, not destroyed.