10 interesting stories served every morning and every evening.

Refund4Freedom

en.refund4freedom.org

Refund4Freedom / Demands / Refund / Supporting Material / Share!

Get your Windows li­cense re­fund now!

We all know the joy of ac­quir­ing a new lap­top and the ex­cite­ment of ex­plor­ing its fea­tures and func­tion­al­i­ties. However, the vast ma­jor­ity of lap­tops are only sold with a spe­cific pro­pri­etary op­er­at­ing sys­tem: Microsoft Windows. The ven­dors do not re­move the Windows li­cense, and you must pay the en­tire price, even if you do not want to use this sys­tem.

This is un­fair and we want to change it! Con­sumers should be able to buy lap­tops with­out any spe­cific op­er­at­ing sys­tem, and should not have to pay the li­cense price if they don’t want to.

Request your re­fund now!

Demands

You should not have to pay for soft­ware you don’t want. Devices like lap­tops and smart­phones are gen­eral pur­pose com­put­ers so, they should be neu­tral in re­la­tion to the soft­ware they run. Manufacturers and ven­dors should not have the right to im­pose spe­cific op­er­at­ing sys­tems on you. When you re­quest a re­fund, the process should be easy, quick and straight­for­ward. Here’s what we de­mand:

Do not re­strict users to spe­cific soft­ware. Device man­u­fac­tur­ers and ven­dors should not im­pose an op­er­at­ing sys­tem or soft­ware on con­sumers, and should not force them to pay for soft­ware that they don’t want. Laptops and smart­phones are gen­eral pur­pose com­put­ers, so con­sumers should be able to run the soft­ware they want on their de­vices.

Transparent pric­ing. Consumers should have the right to de­cline pre-in­stalled soft­ware, in­clud­ing the op­er­at­ing sys­tem, but still be able to buy the lap­top with­out it.

Hassle-free re­funds. Manufacturers and ven­dors should clearly pub­lish the steps for re­quest­ing and ob­tain­ing a re­fund on their web­sites. The process should be sim­ple, easy and ac­ces­si­ble to any con­sumer. No one should go through un­nec­es­sary or com­pli­cated pro­ce­dures i.e. send­ing the en­tire com­puter to a ser­vice cen­tre just to re­move un­wanted soft­ware.

Take ac­tion!

How to re­quest your li­cense re­fund

1

Start up the PC and take pic­tures

Take pic­tures of the screen of the clauses of the con­tract where the re­im­burse­ment is in­di­cated or make a video by scrolling through the whole con­tract (maybe use­ful later). If pos­si­ble, do not for­mat/​erase yet your com­puter stor­age.

2

Contact the man­u­fac­tur­er’s cus­tomer ser­vice

Contact the man­u­fac­turer by tele­phone or, bet­ter still, chat/​email, and keep the rel­e­vant cor­re­spon­dence. For the tele­phone, note the date, time and with whom you spoke. For chat, copy/​paste what was writ­ten.

3

If they re­spond neg­a­tively…

Problem Not Solved: fill-in the Refund Form and send it to the man­u­fac­turer.

4

Supporting Material

Here you can find use­ful ma­te­r­ial to re­fund the cost of the Windows op­er­at­ing sys­tem.

Manufacturers

Not all man­u­fac­tur­ers and ven­dors are equal. Some re­act dif­fer­ently and treat con­sumers bet­ter. We have a lot of ex­pe­ri­ence in re­quest­ing re­funds, and keep track of those who re­spect your right to choose—and those who don’t. Below we pro­vide re­ports on man­u­fac­tur­ers con­cern­ing their li­censes and re­fund poli­cies to help you in get­ting your money back.

HP

HP does not have a re­im­burse­ment pro­ce­dure for Windows.

Several con­tact at­tempts were made by dif­fer­ent cus­tomers, and were al­ways ig­nored by HP.

Lenovo

Lenovo has a re­im­burse­ment pro­ce­dure for Windows.Lenovo li­cense re­im­burse­ment pro­ce­dure for Windows.

The PC must be shipped to a Lenovo as­sis­tance cen­tre.

Asus

Asus has a re­im­burse­ment pro­ce­dure for Windows.

No need to ship the PC to Asus.

Asus’s re­im­burse­ment pro­ce­dure is not pub­lished on their web­site.

Asus gives a re­im­burse­ment be­tween 9 and 65 eu­ros, de­pend­ing on the Windows ver­sion.

Send an e-mail to info@asus.it in­di­cat­ing the PC se­r­ial num­ber and your bank de­tails, within 30 days of pur­chase and with­out ac­cept­ing the EULA when you first turn on the ma­chine.

Dell

Dell does not have a re­im­burse­ment pro­ce­dure for Windows.

Dell’s terms and con­di­tions, in Article 7.3, ex­plic­itly states that in the event of non-ap­proval of the op­er­at­ing sys­tem li­cence, the com­puter must be re­turned.

Acer

Acer has a re­im­burse­ment pro­ce­dure for Windows. Acer li­cense re­im­burse­ment pro­ce­dure for Windows.

The PC must be shipped to an Acer as­sis­tance cen­tre.

Forms to be filled in and sub­mit­ted can be found on the Acer web­site.

Reports

Reports re­ceived. Get in­spired. Explore in­for­ma­tion from other users like you who got their li­cense fee back!

IT for s.r.l.

Acer

Following re­peated un­suc­cess­ful tele­phone con­tacts, the ITfor com­pany in Turin took Acer Italia to the Justice of the Peace con­test­ing the man­ner in which the li­cense was re­im­bursed. After sev­eral hear­ings and ad­journ­ments, Acer Italia granted pay­ment of 50 eu­ros + 100 eu­ros for le­gal fees in­curred. Writ of Lawsuit, Minutes of Conciliation, Complete doc­u­men­ta­tion

Luca Bonissi

Mediacom

After pur­chas­ing a Mediacom PC, Luca went di­rectly to Datamatic S.p.A. (the par­ent com­pany of the Mediacom brand) to re­quest a re­fund of the Windows li­cense. Only af­ter the le­gal sum­mons was served, and just be­fore the le­gal hear­ing, Luca re­ceived an of­fer for a pri­vate trans­ac­tion and awarded a re­fund of 44 eu­ros. Complete doc­u­men­ta­tion

Luca Bonissi

Microsoft

Luca, af­ter some per­se­ver­ance, reached the Microsoft Technical Support of Microsoft S.r.l. (representing Microsoft in Italy), which ac­tu­ally pro­vides a pro­ce­dure for re­fund­ing the Windows li­cense on prod­ucts sold by the com­pany (in this case, a Microsoft Surface). After sev­eral emails and com­mu­ni­ca­tions, Luca re­ceived a re­fund of 43 eu­ros. Complete doc­u­men­ta­tion

Luca Bonissi

Lenovo

Following a lengthy le­gal dis­pute, the judg­ment in the sec­ond in­stance awarded a re­fund of 42 eu­ros for the Windows li­cense, 1,000 for le­gal fees, and or­dered Lenovo Italy S.r.l to re­im­burse 20,000 eu­ros in dam­ages for ag­gra­vated lit­i­ga­tion li­a­bil­ity. Complete doc­u­men­ta­tion

Luca Bonissi

HP

The re­im­burse­ment re­quest was de­nied sev­eral times, but the Justice of the Peace in Monza awarded a 61 euro re­im­burse­ment for pre-in­stalled li­censes (of both Windows 10 Home and Office 365 Personal). Complete doc­u­men­ta­tion

Francesca Tregnaghi

Dell

After a cou­ple of Italian le­gal emails (PEC emails), the 51 euro re­fund for the Windows 10 Home Edition li­cense was granted. Complete doc­u­men­ta­tion

Vincenzo Castiglia

Lenovo

After a long se­ries of emails and phone calls, the 42 euro re­fund for the Windows 10 Home Edition li­cense was granted. For the pay­ment, Vincenzo chose to give Italian Linux Society’s bank de­tails. Complete doc­u­men­ta­tion

Silvia

Lenovo

After a par­tic­u­larly pro­longed email ex­change, a re­fund of 47 eu­ros for the Windows 10 Home Edition li­cense was granted. Complete doc­u­men­ta­tion

Luca Bonissi

Lenovo

Oggetto del con­tendere è stato - come in di­versi al­tri casi - la pre­sunta ne­ces­sità di resti­tuire il PC. Alla fine è stato ri­conosci­uto un rim­borso di 75 euro per la li­cenza Windows 11 Home. Complete doc­u­men­ta­tion

Luca Bonissi

Acer

Although Acer has a pro­ce­dure for re­fund­ing the Windows li­cense, it in­volves send­ing the PC, long wait­ing times and de­risory com­pen­sa­tion, so the pro­ce­dure is in­con­ve­nient and im­prac­ti­cal. The lengthy ex­change of le­gal Italian emails (PEC emails) be­tween Luca and Acer, cul­mi­nat­ing in the sug­ges­tion of a court case, ended in a 129 euro re­fund. Complete doc­u­men­ta­tion

Giuseppe Salustri

MSI

After many dif­fi­cul­ties raised by MSI, in­clud­ing ship­ping the com­puter to the ser­vice cen­ter in Poland, long wait­ing times, and re­minders, Giuseppe fi­nally got a re­fund of 40 eu­ros (net of ship­ping costs, ab­surdly charged to the cus­tomer). It is rec­om­mended not to write to the email ad­dress for sup­port, but to reg­is­ter on the MSI site and open a ticket spec­i­fy­ing the se­r­ial num­ber, first name, last name, mail­ing ad­dress, and phone num­ber right away.

Get a li­cence free de­vice

Want to buy a li­cence-free PC di­rectly? Search for your near­est Linux-friendly shop on LinuxSi! (Italian-only).

My de­vice is a smart­phone. Check how you can in­stall a dif­fer­ent op­er­at­ing sys­tem on your smart­phone FSFEs Free Your Android site.

Share the cam­paign

The more peo­ple know, the stronger we are! Share this cam­paign with your friends, fam­ily, and on your so­cial net­works, by us­ing #Refund4Freedom and #GetYourWindowsRefund.

Urge sup­pli­ers to ex­press a clear po­si­tion to­wards your rights.

Tell us your story Whether you got a re­fund or hit a road­block, share your ex­pe­ri­ence with oth­ers. Tag @fsfe and @ItalianLinuxSociety on Mastodon and use our pre-made text for your so­cial me­dia posts.

Share on Mastodon

Share on X/Twitter

Share on Facebook

If you asked for a re­fund, we can send to you some free stick­ers for your free lap­top!

To re­ceive news about the right to re­im­burse­ment of pre-in­stalled soft­ware li­cences in Italy, see: ADUC Windows re­fund page.

"iT woRKs BeTter in THe aPp!!"

shkspr.mobi

The mon­key-punch­ers at Google never quite seem to fin­ish any of their apps. There’s al­ways some use­ful bit of work left un­done, or show­stop­ping bug which re­mains un­fixed, a thou­sand jagged edges as yet un­solved by the great­est minds of their gen­er­a­tion.

I wanted to sub­scribe to an events cal­en­dar. I had a URl. I had my Google™ Pixel® phone run­ning the lat­est Android© 17 with an up­dated cal­en­dar app. Is it pos­si­ble to click on a cal­en­dar link and add it to my phone?

No.

Here’s what Google has to say about the mat­ter:

Really?!? I mean, fuck­ing re­ally????

This is­n’t the most com­plex soft­ware en­gi­neer­ing task known to hu­man­ity. Add a + but­ton. Pop open a text en­try field. Validate. Save. Done. I’m sure even the shitty Gemini model can vibe code that in a cou­ple of months, right?

Anyway, I opened cal­en­dar.google.com on my phone (using desk­top mode), added the cal­en­dar, and it mag­i­cally ap­peared in the app.

This is just pa­thetic.

In fair­ness, this is­n’t only a Google prob­lem. Many com­pa­nies want a per­ma­nent pres­ence on your home­screen and think you’re too thick to use your browser’s book­marks fea­ture. Maybe they’re right. Maybe an app is the only way to in­crease the en­gage­ment KPI suf­fi­ciently so Quinn in the lead­er­ship squad can hit their OKRs and get a bonus.

So they build an app. Or, rather, they half-arse it. I’ve lost count of the num­ber of times I’ve been told it’s eas­ier if you use our app” only to be un­cer­e­mo­ni­ously punted back to the web when I try to do any­thing out­side of the ap­p’s nar­row stric­tures.

I was there in the early days of phone apps. I built stuff for Symbian, BlackBerry, even the bloody Palm Pilot! The cen­tral prob­lem with apps has al­ways been that they are hard to up­date. Every new bit of func­tion­al­ity - or even a new page - needs to be tested on a thou­sand de­vices. Once done, it takes an age to dis­trib­ute to users. The only way to solve that is to have the app dy­nam­i­cally pull in new func­tion­al­ity from a re­mote re­source.

At which point, you’ve rein­vented the Web browser!

Sure, there are some things you can only do with an app (although browsers are catch­ing up), and hav­ing an icon on the home­screen is use­ful (which is easy for sites to add), as is of­fline func­tion­al­ity (which, again, is pos­si­ble on the web).

Oh.

If you want an app, fine. Do it. Just fin­ish the job please!

zai-org/GLM-5.3 · Hugging Face

huggingface.co

GLM-5.3 uses the same base model as GLM-5.2 — every gain comes from post-train­ing. Compared with GLM-5.2, it is much bet­ter at com­plex cod­ing and long-hori­zon tasks:

Stronger Coding: GLM-5.3 is the most ca­pa­ble open-weights model for cod­ing, with a 50% im­prove­ment over GLM-5.2 on our in-house Z.ai Code Bench. It also achieve open-source SOTA on pub­lic bench­marks in­clud­ing Terminal Bench 3.0 and Agents’ Last Exam.

Emergent Cyber Capability: As we scaled post-train­ing, cy­ber ca­pa­bil­ity de­vel­oped faster than we ex­pected. GLM-5.3 is state of the art on CyberGym for vul­ner­a­bil­ity dis­cov­ery, and its gains are largest fur­ther up the ex­ploita­tion chain, where it more than dou­bles GLM-5.2 on ex­ploita­tion bench­marks.

Benchmark

Serve GLM-5.3 Locally

GLM-5.3 sup­ports de­ploy­ment with the fol­low­ing frame­works. Feel free to try them out:

SGLang — see cook­book

vLLM — see recipes

TokenSpeed — see here

Transformers — see trans­form­ers docs

KTransformers — see tu­to­r­ial

Unsloth — see guide

For de­ploy­ment on the Ascend NPU plat­form, in­fer­ence frame­works such as vLLM-As­cend, xLLM and SGLang are sup­ported — see here.

Note

GLM-5.3 sup­ports con­trol­ling the think­ing bud­get through the rea­son­ing_­ef­fort pa­ra­me­ter, which ac­cepts three lev­els: low, high, and max. It de­faults to max if not passed (or if set to any other value). To use low or high, pass them ex­plic­itly. For bench­mark and leader­board re­pro­duc­tion, keep the de­fault max.

In the chat tem­plate for GLM-5.3, clear_­think­ing de­faults to false if not passed. For chat sce­nar­ios, ex­plic­itly pass clear_­think­ing=true.

Footnotes

HLE w/ tools: We use sam­pling pa­ra­me­ters of tem­per­a­ture=1.0 and top_p=0.95 for eval­u­a­tion, with a max­i­mum gen­er­a­tion length of 163,840 to­kens. The eval­u­a­tion is con­ducted with a max­i­mum con­text length of 300,000 to­kens, us­ing a con­text man­age­ment strat­egy. We use GPT-5.6-luna (medium) as the judge model.

NL2Repo: We eval­u­ated NL2Repo with tem­per­a­ture=1.0, top_p=1.0, and max_new_­to­kens=64k un­der 1M con­text. To pre­vent hack­ing, we use rule-based and a LLM-based judge­ment to pre­vent ma­li­cious be­hav­iors (e.g., unau­tho­rized pip or curl op­er­a­tions).

DeepSWE: We run DeepSWE us­ing the mini-swe-agent har­ness with tem­per­a­ture=0.95, top_p=1.0, time­out=6h and 400K con­text.

Terminal-Bench 2.1: We eval­u­ate in Claude Code 2.1.207 with tem­per­a­ture=1.0, top_p=1, max_new_­to­kens=65536 with 6h time­out.

Terminal-Bench 3.0: We eval­u­ate Terminal-Bench-3 tasks with the Claude Code 2.1.207 har­ness (reasoning ef­fort=max, 400K con­text, and 128K max­i­mum out­put), re­port­ing avg@3 over three roll­outs per task. Each roll­out runs in an iso­lated con­tainer built from the task’s of­fi­cial im­age, and is capped at 600 agent turns with a 10-hour time­out. Tool Search is dis­abled, and the ar­ti­facts each agent pro­duces are scored by the task’s of­fi­cial sep­a­rate ver­i­fier.

Agent’s Last Exam (CLI): We eval­u­ate ALE us­ing the of­fi­cial eval­u­a­tion pro­to­col with the Claude Code har­ness (reasoning ef­fort=max, 1M con­text, and 64K max­i­mum out­put). Each of the 105 tasks runs in an iso­lated Docker con­tainer us­ing the re­sources de­clared in its Task Card. The de­fault time­out is 4 hours, with task-spe­cific lim­its tak­ing prece­dence (up to 8 hours). Tool Search is dis­abled, and re­sults are scored by the of­fi­cial ALE eval­u­a­tors.

Toolathlon Verified: We ob­tain all re­sults via the of­fi­cial eval­u­a­tion ser­vice and re­port pass@1 av­er­aged over 3 in­de­pen­dent runs.

AutomationBench: We eval­u­ate on AutomationBench v1.0.6, in­cor­po­rat­ing the fix for the null-type han­dling is­sue in­tro­duced in PR #13.

GDPval-AA v2: Models are eval­u­ated by Artificial Analysis.

CyberGym: We eval­u­ate GLM-5.3 in Claude Code 2.1.207 (max rea­son­ing ef­fort, no web tools with tem­per­a­ture=1.0, top_p=1.0, max_new_­to­kens=128000). All eval­u­a­tions are un­der un­lim­ited time­out per task and re­sults are sin­gle-run Pass@1 over 1,507 tasks. To sim­u­late real-world us­age sce­nar­ios, we place the agent in­side the task con­tainer. We also re­move all Git-related in­for­ma­tion and ap­ply a do­main whitelist (allowing only es­sen­tial do­mains such as pypi.org and deb.de­bian.org for ba­sic tool in­stal­la­tion) to pre­vent the agent from cheat­ing.

ExploitGym: We eval­u­ate GLM-5.3, Kimi-K3 and Qwen3.8 Max in Claude Code 2.1.207 (max rea­son­ing ef­fort, no web tools with tem­per­a­ture=1.0, top_p=1.0, max_new_­to­kens=128000). The re­ported re­sults are sin­gle-run Pass@1 on 869 tasks un­der two time­out bud­gets: 2 hours and 6 hours, which are cal­cu­lated as the API in­fer­ence time rescaled by per-model to­kens per sec­ond rate (per-model TPS sourced from Artificial Analysis; that is, we rescale GLM-5.3′s re­sults by 115 TPS, Kimi K3′s re­sults by 40 TPS and Qwen3.8 Max’s re­sults by 47 TPS), plus the non-API over­head. We also ap­ply a do­main whitelist (allowing only es­sen­tial do­mains such as pypi.org and deb.de­bian.org for ba­sic tool in­stal­la­tion) to pre­vent the agent from cheat­ing.

ExploitBench: We eval­u­ate GLM-5.3 in Claude Code 2.1.207 (max rea­son­ing ef­fort, no web tools with tem­per­a­ture=1.0, top_p=1.0, max_new_­to­kens=128000). Following the of­fi­cial eval­u­a­tion set­tings, we limit the max­i­mum num­ber of in­ter­ac­tion rounds be­tween the agent and the en­vi­ron­ment to 300, and com­pute the av­er­age cov­er­age score over all 41 tasks across 3 re­vi­sions. The cov­er­age re­sult of a task is de­ter­mined by tak­ing the union of ca­pa­bil­i­ties achieved across all re­vi­sions, and the av­er­age score is ob­tained by av­er­ag­ing the re­sults. We also ap­ply a do­main whitelist (allowing only es­sen­tial do­mains such as pypi.org and deb.de­bian.org for ba­sic tool in­stal­la­tion) to pre­vent the agent from cheat­ing.

FrontierSWE: The eval­u­a­tion was con­ducted by Proximal with 1M con­text length, max ef­fort level, and 128K max­i­mum out­put to­kens. Dominance score re­ported as of 2026/08/14.

PostTrainBench: We eval­u­ate GLM-5.3 us­ing Claude Code 2.1.207 with max ef­fort level, tem­per­a­ture = 1.0, top_p = 1.0, max_new_­to­kens = 128000, and a 1M-token con­text win­dow. We re­port the weighted av­er­age over 3 runs. Runs that fail to pro­duce a score fall back to the of­fi­cial zero-shot base-model base­line score. For checks in­tended to pre­vent the use of third-party APIs, we re­moved the orig­i­nal pat­tern-match­ing-based checks, as they pro­duced false pos­i­tives when a lo­cal vLLM end­point was ac­cessed through the OpenAI SDK. Instead, we use an LLM agent to in­spect so­lu­tions for ex­ter­nal API us­age.

SWE-Marathon: We eval­u­ate GLM-5.3 us­ing Claude Code 2.1.207 with max­i­mum ef­fort level, tem­per­a­ture = 1.0, top_p = 0.95, max_new_­to­kens = 128000, and a 1M-token con­text win­dow. For strip-clone, the orig­i­nal anti-cheat checks used overly broad im­port de­tec­tion that could re­ject valid im­ple­men­ta­tions. We re­moved the af­fected checks and per­formed llm-based in­spec­tion in­stead to avoid false pos­i­tives. For pa­ra­me­ter-golf and trimul-cuda, changes to the NVIDIA wheels caused the Docker im­age builds to fail, so we added –extra-index-url https://​pypi.org/​sim­ple to re­store suc­cess­ful builds.

Citation

If you find GLM-5.3 use­ful in your re­search, please cite our tech­ni­cal re­port:

@misc{glm5team2026glm5vibecodingagentic, ti­tle={GLM-5: from Vibe Coding to Agentic Engineering}, au­thor={GLM-5-Team and : and Aohan Zeng and Xin Lv and Zhenyu Hou and Zhengxiao Du and Qinkai Zheng and Bin Chen and Da Yin and Chendi Ge and Chenghua Huang and Chengxing Xie and Chenzheng Zhu and Congfeng Yin and Cunxiang Wang and Gengzheng Pan and Hao Zeng and Haoke Zhang and Haoran Wang and Huilong Chen and Jiajie Zhang and Jian Jiao and Jiaqi Guo and Jingsen Wang and Jingzhao Du and Jinzhu Wu and Kedong Wang and Lei Li and Lin Fan and Lucen Zhong and Mingdao Liu and Mingming Zhao and Pengfan Du and Qian Dong and Rui Lu and Shuang-Li and Shulin Cao and Song Liu and Ting Jiang and Xiaodong Chen and Xiaohan Zhang and Xuancheng Huang and Xuezhen Dong and Yabo Xu and Yao Wei and Yifan An and Yilin Niu and Yitong Zhu and Yuanhao Wen and Yukuo Cen and Yushi Bai and Zhongpei Qiao and Zihan Wang and Zikang Wang and Zilin Zhu and Ziqiang Liu and Zixuan Li and Bojie Wang and Bosi Wen and Can Huang and Changpeng Cai and Chao Yu and Chen Li and Chengwei Hu and Chenhui Zhang and Dan Zhang and Daoyan Lin and Dayong Yang and Di Wang and Ding Ai and Erle Zhu and Fangzhou Yi and Feiyu Chen and Guohong Wen and Hailong Sun and Haisha Zhao and Haiyi Hu and Hanchen Zhang and Hanrui Liu and Hanyu Zhang and Hao Peng and Hao Tai and Haobo Zhang and He Liu and Hongwei Wang and Hongxi Yan and Hongyu Ge and Huan Liu and Huanpeng Chu and Jia’ni Zhao and Jiachen Wang and Jiajing Zhao and Jiamin Ren and Jiapeng Wang and Jiaxin Zhang and Jiayi Gui and Jiayue Zhao and Jijie Li and Jing An and Jing Li and Jingwei Yuan and Jinhua Du and Jinxin Liu and Junkai Zhi and Junwen Duan and Kaiyue Zhou and Kangjian Wei and Ke Wang and Keyun Luo and Laiqiang Zhang and Leigang Sha and Liang Xu and Lindong Wu and Lintao Ding and Lu Chen and Minghao Li and Nianyi Lin and Pan Ta and Qiang Zou and Rongjun Song and Ruiqi Yang and Shangqing Tu and Shangtong Yang and Shaoxiang Wu and Shengyan Zhang and Shijie Li and Shuang Li and Shuyi Fan and Wei Qin and Wei Tian and Weining Zhang and Wenbo Yu and Wenjie Liang and Xiang Kuang and Xiangmeng Cheng and Xiangyang Li and Xiaoquan Yan and Xiaowei Hu and Xiaoying Ling and Xing Fan and Xingye Xia and Xinyuan Zhang and Xinze Zhang and Xirui Pan and Xu Zou and Xunkai Zhang and Yadi Liu and Yandong Wu and Yanfu Li and Yidong Wang and Yifan Zhu and Yijun Tan and Yilin Zhou and Yiming Pan and Ying Zhang and Yinpei Su and Yipeng Geng and Yong Yan and Yonglin Tan and Yuean Bi and Yuhan Shen and Yuhao Yang and Yujiang Li and Yunan Liu and Yunqing Wang and Yuntao Li and Yurong Wu and Yutao Zhang and Yuxi Duan and Yuxuan Zhang and Zezhen Liu and Zhengtao Jiang and Zhenhe Yan and Zheyu Zhang and Zhixiang Wei and Zhuo Chen and Zhuoer Feng and Zijun Yao and Ziwei Chai and Ziyuan Wang and Zuzhou Zhang and Bin Xu and Minlie Huang and Hongning Wang and Juanzi Li and Yuxiao Dong and Jie Tang}, year={2026}, eprint={2602.15763}, archivePre­fix={arXiv}, pri­ma­ryClass={cs.LG}, url={https://​arxiv.org/​abs/​2602.15763}, }

Safetensors

Model tree for zai-org/​GLM-5.3

Spaces us­ing zai-org/​GLM-5.3 2

Collection in­clud­ing zai-org/​GLM-5.3

Paper for zai-org/​GLM-5.3

GUIs should be fully keyboard-driven

ckardaris.com

This post has made it to the Hacker News front page. See the dis­cus­sion.

Last week I came across a post on Hacker News that en­cour­aged ap­pli­ca­tion de­vel­op­ers to stop mak­ing ter­mi­nal user in­ter­faces1 (a.k.a. TUIs) and in­stead fo­cus on graph­i­cal user in­ter­faces (a.k.a. GUIs). The post reached the HN front page and sparked a lively de­bate in the com­ments sec­tion.

I think there is merit in both sides of the de­bate. On one hand, I un­der­stand the GUI-positive ar­gu­ments of the post au­thor. In the­ory, the ca­pa­bil­i­ties of GUI ap­pli­ca­tion frame­works are a su­per­set of the ca­pa­bil­i­ties of their TUI coun­ter­parts, so they should be pre­ferred. On the other hand, as a heavy ter­mi­nal user, I also greatly ap­pre­ci­ate all TUIs that al­low me to stay” in the ter­mi­nal and ful­fill all my needs.

But I want to op­pose a re­cur­ring ar­gu­ment in fa­vor of TUIs that in my opin­ion does not have a solid foun­da­tion2. To para­phrase var­i­ous com­menters:

TUIs should be pre­ferred be­cause they are key­board-dri­ven.

TUIs should be pre­ferred be­cause they are key­board-dri­ven.

While it’s true that if you ran­domly pick a GUI and a TUI ap­pli­ca­tion, the lat­ter is more prob­a­ble to be fully key­board-dri­ven, this does not tip the scale in fa­vor of de­vel­op­ing TUIs over GUIs3. What it does is high­light the in­ad­e­qua­cies of key­board nav­i­ga­tion in many GUI ap­pli­ca­tions.

There is noth­ing pre­vent­ing a GUI from be­ing fully key­board-dri­ven4 just like — or even bet­ter than — a TUI. In fact, many GUI frame­work ap­pli­ca­tion guide­lines ex­plic­itly en­cour­age GUI ap­pli­ca­tion de­vel­op­ers to pro­vide sup­port for key­board-dri­ven nav­i­ga­tion that cov­ers the whole func­tion­al­ity of the ap­pli­ca­tion.

For ex­am­ple, the GNOME Human Interface Guidelines state that just as it should be pos­si­ble to per­form every ac­tion with a point­ing de­vice, every ac­tion should also be pos­si­ble with the key­board and that it should be pos­si­ble to move around and in­ter­act with every part of your user in­ter­face us­ing the key­board.

This res­onates with me as a user. Being able to in­tu­itively — and pre­dictably — nav­i­gate around a GUI ap­pli­ca­tion with only my key­board gives me more in­cen­tive to choose it com­pared to its al­ter­na­tives.

Knowing that, and when wear­ing my de­vel­oper hat, I have to make sure that my ap­pli­ca­tions are key­board-friendly. For my first ever GUI ap­pli­ca­tion, Klisi, I in­vested some time to im­ple­ment key­board short­cuts tar­get­ing the whole range of avail­able ac­tions.

Keyboard nav­i­ga­tion is not that hard to achieve in most cases and re­sults in an over­all bet­ter user ex­pe­ri­ence. It is not a mat­ter of fea­si­bil­ity, but a mat­ter of will on the ap­pli­ca­tion de­vel­op­er’s part.

The take­away is sim­ple. Do not com­pro­mise on the user ex­pe­ri­ence you pro­vide with your ap­pli­ca­tion. Strive to make it as in­tu­itive as pos­si­ble. To that end, en­abling full key­board nav­i­ga­tion should not be ig­nored.

Or al­ter­na­tively text-based user in­ter­faces. ↩

Or al­ter­na­tively text-based user in­ter­faces. ↩

The orig­i­nal post au­thor men­tions this as well. ↩

The orig­i­nal post au­thor men­tions this as well. ↩

There are other more com­pelling ar­gu­ments to­wards tip­ping that scale, for ex­am­ple ease of porta­bil­ity. ↩

There are other more com­pelling ar­gu­ments to­wards tip­ping that scale, for ex­am­ple ease of porta­bil­ity. ↩

Of course, the dex­ter­ity achieved via mouse is still pre­ferred — or even re­quired — for some tasks. ↩

Of course, the dex­ter­ity achieved via mouse is still pre­ferred — or even re­quired — for some tasks. ↩

nytimes.com

www.nytimes.com

Please en­able JS and dis­able any ad blocker

htmx 4.0.0 has been released!

four.htmx.org

htmx 4.0.0 Release

The htmx team is very happy to an­nounce the re­lease of htmx 4.0.0! This is the cul­mi­na­tion of 8 months of work (plus a game) and we are very happy with the re­sults.

The idea of htmx 4 started to ger­mi­nate when I de­cided to cre­ate fixi and, in do­ing so, got more fa­mil­iar with the fetch() API and async pro­gram­ming in JavaScript. (htmx had al­ways used XMLHttpRequest due to back­wards com­pat­i­bil­ity is­sues.)

One chance evening I was con­tacted by Christian, who had some in­ter­est­ing ideas around stream­ing HTML that got me think­ing that mov­ing the in­ter­nals to fetch() would sim­plify things for him and for the li­brary in gen­eral. After a bit of work I man­aged to get Michael and Alex on board, and we were off to the races.

Development has been very smooth. We started a port of fixi + the htmx test suite. Over time, we re­dis­cov­ered why htmx did many of the things that it did and moved our new im­ple­men­ta­tion closer and closer to the old one. At this point the be­hav­ioral dif­fer­ences be­tween 2.x and 4.x are rel­a­tively small and where they do di­verge we have made ex­plicit choices that we feel will put htmx-based ap­pli­ca­tions in a good spot for be­ing 100-year web ser­vices

Note that we are not mark­ing 4.0 as lat­est in NPM be­cause we do not want to force-up­grade users who are re­ly­ing on non-ver­sioned CDN URLs for htmx. Instead, 2.x will re­main lat­est and the 4.0 line will re­main next un­til some point in early 2027. The web­site, how­ever, will ref­er­ence 4.0.

Major Changes

As men­tioned above, htmx 4, from a user’s view­point, is al­most iden­ti­cal to htmx 2. There are three ma­jor changes:

Attribute in­her­i­tance is now ex­plicit by de­fault rather than im­plicit by de­fault (this is the biggest up­grade item)

The htmx event names have been stan­dard­ized & cleaned up. Some ad­vanced users may need to change the events they lis­ten for.

History sup­port now does not use lo­cal­Stor­age by de­fault (which was a cause of many sup­port headaches). Most peo­ple won’t no­tice this at all.

Internally, we mi­grated from XMLHttpRequest to fetch() but that should be trans­par­ent for most users of htmx.

Attribute Inheritance

In htmx 2 many at­trib­utes were inherited” by de­fault. This al­lows you to place at­trib­utes on par­ent el­e­ments and their be­hav­ior will ap­ply to child el­e­ments. This be­hav­ior, which came from the in­ter­cooler.js days, was in­spired by CSS and, un­sur­pris­ingly, worked out about the same as CSS: pow­er­ful but dif­fi­cult to un­der­stand at times.

In htmx 4 at­trib­utes are not in­her­ited un­less you ex­plic­itly say so by adding an :inherited af­ter the at­tribute name:

<!– htmx 2 –> <div hx-con­firm=“Are you sure?“> <button hx-delete=“/​item/​1”>Delete</​but­ton> </div>

<!– htmx 4 –> <div hx-con­firm:in­her­ited=“Are you sure?“> <button hx-delete=“/​item/​1”>Delete</​but­ton> </div>

This will be the largest up­grade bur­den in mi­grat­ing from htmx 2 to htmx 4. To make things eas­ier, we have pro­vided a com­mand line tool to find places you need to mark as in­her­ited.

Note that at­trib­utes like hx-dis­in­herit, etc. are no longer re­quired and should be re­moved.

Events

The events trig­gered by htmx 2 had grown or­gan­i­cally over the life of the li­brary and were not par­tic­u­larly well or­ga­nized, mak­ing it dif­fi­cult to know ex­actly which event was fired when.

In htmx 4, all events now fol­low htmx:phase:ac­tion[:sub-ac­tion]:

In ad­di­tion, the fol­low­ing changes were made:

Most er­ror events col­lapse into htmx:er­ror. HTTP er­ror re­sponses fire htmx:re­sponse:er­ror.

The htmx:xhr:* events are re­moved. htmx 4 uses fetch().

The htmx:val­i­da­tion:* events are re­moved in fa­vor of na­tive browser form val­i­da­tion.

The full table is in What’s New in htmx 4.

The com­mand line up­grade checker flags old event names in hx-on at­trib­utes and in your JavaScript where it can find them.

History

History sup­port has al­ways been in­cluded in htmx, al­low­ing you to im­ple­ment back-but­ton aware ac­tions with sim­ple at­trib­utes. In htmx 2, a cache in lo­cal­Stor­age was used to snap­shot pages for restora­tion. Unfortunately a large source of is­sues was that this snap­shot could in­clude DOM mu­ta­tions by 3rd party JavaScript li­braries. When the page was re­stored, those mu­ta­tions re­mained but the un­der­ly­ing JavaScript logic was not.

htmx 4 does not cache pages in lo­cal­Stor­age. On back nav­i­ga­tion htmx re-fetches the page and swaps it into <body>, or into the [hx-history-elt] el­e­ment if one is pre­sent. This al­lows 3rd party JavaScript li­braries to just work” in most cases and, with good re­quest caching, is very fast.

If you want lo­cal caching in­stead, we now ship a very com­plete hx-his­tory-cache ex­ten­sion that re­stores his­tory from ses­sion­Stor­age and is de­signed to in­te­grate well with script­ing so­lu­tions like Alpine.js, etc.

New Features

There are two big new fea­tures in htmx 4, both of which we are re­ally ex­cited about:

Morph Swaps

We now sup­port mor­ph­ing swaps out of the box with htmx. I cre­ated id­iomorph and nearly in­cluded it in htmx 2.x but de­cided against it. In htmx 4, Michael has done great work im­prov­ing on that al­go­rithm and in­te­grat­ing it seam­lessly into htmx.

<hx-partial>

Another ma­jor new fea­ture is the <hx-partial> tag. This tag is sim­i­lar to out-of-band swaps, but is much clearer when you want to do some­thing be­yond just re­plac­ing a sin­gle el­e­ment with a new ver­sion of it­self:

<hx-partial hx-tar­get=“#mes­sages” hx-swap=“be­foreend”> <div>New mes­sage</​div> </hx-partial> <hx-partial hx-tar­get=“#count”> <span>5</span> </hx-partial>

Extensions

Much of the ex­cite­ment in htmx 4 is in the ex­ten­sions. Switching to fetch() in­ter­nally let us re­think how ex­ten­sions can and should work, and sparked the cre­ation (and recre­ation) of many new ex­ten­sions, for ex­am­ple:

hx-pre­load - pre­load con­tent (e.g. on mouseover) to speed re­quests up

hx-down­load - na­tive, fetch-based file down­loads

hx-alpine-com­pat - smooths over com­pat­i­bil­ity is­sues be­tween htmx and Alpine.js

hx-his­tory-cache - caches his­tory in ses­sion­Stor­age, pro­vides Alpine.js com­pat­i­bil­ity

Additionally, there are three new or up­dated stream­ing HTML ex­ten­sions:

hx-sse streams over text/​event-stream.

hx-ws streams and sends over WebSockets.

hx-mul­ti­part streams over mul­ti­part/​mixed

Finally, we de­cided it was time to try our hand at our own small front-end script­ing so­lu­tion that tightly in­te­grates with htmx. hx-live is in­spired by Alpine.js, jQuery and hy­per­script, and makes front end script­ing pleas­ant and fun. It even sup­ports what we are call­ing DOM-based, HATEOAS-friendly re­ac­tiv­ity.

There is a new ht­max.js bun­dle in the dis­tri­b­u­tion which pack­ages htmx with the most pop­u­lar of these in a sin­gle file if you don’t want to think about which ones you want to pick.

Upgrading

For a com­plete up­grade guide see What’s New in htmx 4.

As men­tioned ear­lier, we are pro­vid­ing an up­grade tool to help you:

$ npx htmx.org@4.0.0 up­grade-check — ./templates

File ex­ten­sions: .html, .php, .js, .ts, .jinja, .jinja2, .j2, .erb, .hbs Use –ext to add more (e.g. –ext .vue –ext .svelte)

Scanning 1 file(s)…

Found 8 is­sue(s) in 1 of 1 file(s). tem­plates/​in­dex.html:1: [inheritance] hx-head­ers needs :inherited suf­fix (descendant on line 3 has hx-delete) (this looks like a CSRF to­ken; with­out :inherited the header does not reach child el­e­ments and the server re­jects the re­quest) tem­plates/​in­dex.html:2: [inheritance] hx-tar­get needs :inherited suf­fix (descendant on line 3 has hx-delete) tem­plates/​in­dex.html:2: [inheritance] hx-con­firm needs :inherited suf­fix (descendant on line 3 has hx-delete) tem­plates/​in­dex.html:3: [renamed-attr] hx-dis­able -> re­name to hx-ig­nore (hx-disable now means disable dur­ing re­quest’) tem­plates/​in­dex.html:4: [removed-attr] hx-vars is re­moved -> use hx-vals with js: pre­fix tem­plates/​in­dex.html:4: [removed-attr] hx-prompt is re­moved -> load the hx-prompt ex­ten­sion to keep the same syn­tax tem­plates/​in­dex.html:9: [old-event] old event name htmx:afterRequest” -> htmx:after:request” tem­plates/​in­dex.html:9: [old-api] htmx.ad­d­Class() is re­moved -> use el­e­ment.classList.add()

We are also ship­ping an agent skill to as­sist in up­grad­ing

Installing

htmx 4.0 can be in­stalled via a pack­age man­ager ref­er­enc­ing ver­sion 4.0.0, or can be linked via a CDN:

<script src=“https://​unpkg.com/​htmx.org@4.0.0/​dist/​htmx.min.js></script>

or Downloaded

LLMs

Like it or not, a lot of peo­ple are us­ing LLMs and we are pro­vid­ing the fol­low­ing skills files for LLMs:

htmx-guid­ance - core htmx skills for de­vel­op­ing with htmx 4

htmx-de­bug­ging - di­ag­nos­ing htmx is­sues dur­ing dev

htmx-ex­ten­sion-au­thor­ing - writ­ing and de­bug­ging htmx 4 ex­ten­sions

htmx-up­grade-from-ht­mx2 - mi­grat­ing a code­base from htmx 2.x to 4.x

(Let’s leave aside if re­leas­ing a new ver­sion of a li­brary in the LLM era is a good or bad thing!)

Conclusion

We hope you en­joy htmx 4. htmx 2 will con­tinue to be sup­ported in­def­i­nitely so don’t feel any pres­sure to up­grade.

I’d like to thank the fol­low­ing peo­ple for all their help with this re­lease:

Michael West - Incredible team­mate & grug-brained de­vel­oper

Christian Tanul - Inspired htmx 4 & led the stream­ing & live ex­ten­sions

Alex Petros - For keep­ing the ship on an even keel

Stephen Mitchell - The ge­nius be­hind the game

Stu Kennedy - Our WebSockets ex­pert

André Ahlert Jr. - Providing IDE & Editor Support

Dien Hoa Truong - For kick­ing the tires on early htmx 4 and help­ing fix many bugs

Upgrade Music

Wouldn’t be an htmx up­date with­out up­grade mu­sic:

autistici.org - Welcome to Autistici/Inventati

www.inventati.org

U.S. SANCTIONS AGAINST THE A/I COLLECTIVE

A/I (Autistici/Inventati, pro­nounced [au’tistiʧi]-[iŋ’vɛntati], or [iŋvɛn’tati]) was born in 2001 from an en­counter of in­di­vid­u­als and col­lec­tives of the au­tonomous an­t­i­cap­i­tal­ist move­ment in­ter­ested in tech­nol­ogy and ac­tive in the dig­i­tal rights strug­gle. We be­lieve that this world is far from be­ing the best world pos­si­ble. We re­act by pro­vid­ing a plat­form and tools for dig­i­tal self-de­fense ad­dress­ing the need of free com­mu­ni­ca­tion for ac­tivists and other in­di­vid­u­als.

All of our ser­vices are pro­vided for free, with­out any form of con­trol or com­modi­ti­za­tion of the per­sonal user data. We don’t re­ceive any form of com­pen­sa­tion for our work. We are vol­un­teers ex­ploit­ing the ex­pe­ri­ences we ac­cu­mu­lated over years of tech­no­log­i­cal, po­lit­i­cal and le­gal re­search while do­ing rad­i­cal ac­tivism, and we are mo­ti­vated and in­spired by the prin­ci­ples of sol­i­dar­ity and self or­ga­ni­za­tion.

Our fi­nan­cial strat­egy re­lies ex­clu­sively on vol­un­tary do­na­tions.

We pro­vide our ser­vices strictly for non-com­mer­cial use, in or­der to pro­vide sup­port ex­clu­sively to in­di­vid­u­als or groups we feel we have an affin­ity with. In or­der to ver­ify the ex­is­tence of these pre-con­di­tions, each and every ser­vice re­quest is processed man­u­ally by one of our vol­un­teers and is in a di­a­log­i­cal form. All re­quests are anonymized and will be de­stroyed.

If you would like to use our ser­vices, please check if you agree with our man­i­festo, pledge re­spect to our pol­icy and read care­fully our pri­vacy pol­icy.

Don’t send a re­quest with­out hav­ing read these doc­u­ments!

Request an ac­count

Luanti removed from Google Play due to baseless AI copyright notice

blog.luanti.org

Luanti’s Android app is cur­rently not avail­able on the Google Play Store due to a base­less DMCA no­tice filed on be­half of Microsoft by Tracer.AI, al­leg­ing that Luanti in­fringes Minecraft’s copy­right. The Luanti app does not con­tain any pro­pri­etary code or as­sets, from Minecraft or oth­er­wise.

We re­ceived a sim­i­lar no­tice from the same com­pany in 2023 and suc­cess­fully ap­pealed against it. This com­pany also filed a sim­i­lar no­tice this year against an in­die game with sim­i­lar voxel art style by the name of Allumeria.

Table of Contents

What is Luanti?

What is the DMCA no­tice?

Which as­sets?

Cubes are for every­one

What is Tracer.AI?

This is not the first time this has hap­pened

This can’t keep hap­pen­ing

What next?

What is Luanti?

Luanti is a voxel game-cre­ation plat­form where any­one can make, share, dis­cover, and play blocky games. It does not ship with any games or game as­sets by de­fault. Instead, play­ers can browse a cat­a­log of games cre­ated by the com­mu­nity, or sim­ply join mul­ti­player servers.

We are a non-profit pro­ject de­vel­oped by a com­mu­nity of pas­sion­ate in­di­vid­u­als ex­press­ing their cre­ativ­ity. Luanti is open source, which means any­one can view the source code, mod­ify it, learn from it, re­dis­trib­ute it, and even sell games made with it on plat­forms like Steam.

While Luanti is pop­u­lar as an open-source al­ter­na­tive to Minecraft (as its roots are in blocky sand­box games), it also low­ers bar­ri­ers to bring­ing cre­ative ideas to life. The free­dom and cus­tomiza­tion Luanti af­fords has made it an ex­cel­lent tool in ed­u­ca­tion, find­ing its way into many schools across Europe.

What is the DMCA no­tice?

The Digital Millennium Copyright Act (DMCA) is United States law which lays out a no­tice-and-take­down process which plat­forms like Google Play fol­low to avoid li­a­bil­ity for dam­ages re­sult­ing from copy­right-in­fring­ing pack­ages which they dis­trib­ute. These plat­forms are not re­spon­si­ble for the ac­tions of their users, but they are re­spon­si­ble for tak­ing cor­rec­tive ac­tion when user-gen­er­ated con­tent is re­ported.

The DMCA no­tice we re­ceived through Google claims that:

These prod­ucts use copy­righted as­sets as out­lined di­rectly from the Minecraft game (available at www.minecraft.net) with­out au­tho­riza­tion and should be re­moved. Specifically, US Reg. #TX 8 – 192-097

These prod­ucts use copy­righted as­sets as out­lined di­rectly from the Minecraft game (available at www.minecraft.net) with­out au­tho­riza­tion and should be re­moved. Specifically, US Reg. #TX 8 – 192-097

US Reg. #TX 8 – 192-097” is the reg­is­tra­tion of Minecraft Java Edition 1.9 with the US Copyright Office.

It does not pro­vide any in­for­ma­tion aside from this and does not out­line which as­sets Luanti al­legedly uses.

Which as­sets?

Engine

Luanti is a game-cre­ation plat­form and does not ship with any games, let alone game as­sets. In fact, here are all the tex­tures Luanti comes with:

Luanti also in­cludes fur­ther as­sets, par­tic­u­larly fonts. These are prop­erly at­trib­uted in the li­cense file.

The GitHub repos­i­tory does in­clude the Development Test game, which is also avail­able on ContentDB but is not in­cluded in Luanti re­leases any­more. Being a test­ing ground for the en­gine, the tex­tures are largely util­i­tar­ian in na­ture.

Minetest Game

Luanti pre­vi­ously shipped with Minetest Game, a craft­ing sur­vival game in­ten­tion­ally kept bare-bones to pro­vide a base for mod­ding. As of December 2023, it is no longer bun­dled with Luanti, and can be down­loaded from within the Luanti client like any other game. All of Minetest Game’s as­sets are orig­i­nal and prop­erly li­censed1.

Third-party con­tent

Players can down­load con­tent from ContentDB, our in-app game cat­a­log. Except for Minetest Game and Development Test, all these games, mods, and tex­ture packs are third-party, just like most apps on Google Play.

Packages up­loaded on ContentDB are re­viewed man­u­ally by vol­un­teer staff be­fore they are ap­proved. We proac­tively check for copy­right is­sues, in­clud­ing check­ing for com­mer­cial as­sets. Independent of this in­ci­dent, we have been look­ing into au­to­mated as­set flag­ging us­ing con­ven­tional per­cep­tual hash­ing al­go­rithms. This would help hu­man mod­er­a­tors de­tect copy­righted as­sets, and we will al­ways re­quire a fi­nal hu­man de­ci­sion with­out re­ly­ing on er­ro­neous AI.

It is in every­one’s best in­ter­ests that con­tent on ContentDB is le­gal and free, as it al­lows the com­mu­nity to safely use and build on top of it for their own pro­jects. If you are a right­sh­older who be­lieves your rights are be­ing in­fringed by con­tent hosted on ContentDB, then the cor­rect ac­tion is to sub­mit a DMCA no­tice against the par­tic­u­lar game on ContentDB.

Cubes are for every­one

The con­cept of a game fea­tur­ing 3D cubes or vox­els is not some­thing any­one can own2. Minecraft was orig­i­nally in­spired by the 2009 game Infiniminer which uses sim­i­lar voxel graph­ics, and later ex­am­ples like Hytale show that block games make up an en­tire genre that Minecraft is sim­ply a part of. Mojang and its par­ent com­pany Microsoft have all rights to en­force their copy­right for as­sets such as Minecraft’s tex­tures, but can­not use the DMCA as a means to in­tim­i­date and mo­nop­o­lize an en­tire genre of games.

Luanti was orig­i­nally cre­ated by celeron55 in 2010 un­der the name Minetest”, in­spired by the newly-re­leased Minecraft Alpha to make a sand­box in a voxel grid that ran bet­ter on low-end hard­ware. Work be­gan in 2011 on a mod­ding API us­ing the Lua pro­gram­ming lan­guage, al­low­ing play­ers to cre­ate their own con­tent. Minetest has con­tin­ued to work to sup­port a larger va­ri­ety of user cre­ativ­ity ever since. In 2024, the re­name from Minetest to Luanti set this di­rec­tion in stone.

What is Tracer.AI?

Quoting their web­site:

Tracer is a next-gen­er­a­tion brand pro­tec­tion plat­form that em­pow­ers brands to take con­trol of their brand pres­ence on­line. Our AI agents stream­line work­flows and en­hance op­er­a­tional ef­fi­ciency, mak­ing it eas­ier to mon­i­tor dig­i­tal chan­nels, take down de­tec­tions, and an­a­lyze vast amounts of data to pro­vide bet­ter busi­ness in­tel­li­gence in­sights. Bring speed, ac­cu­racy, and ef­fi­ciency to your brand pro­tec­tion strat­egy, with­out drain­ing your team’s re­sources.

Tracer’s AI brand pro­tec­tion tech­nol­ogy de­tects and re­moves in­fringe­ments to your brand across thou­sands of dig­i­tal plat­forms, faster and more ac­cu­rately than ever be­fore.

Tracer is a next-gen­er­a­tion brand pro­tec­tion plat­form that em­pow­ers brands to take con­trol of their brand pres­ence on­line. Our AI agents stream­line work­flows and en­hance op­er­a­tional ef­fi­ciency, mak­ing it eas­ier to mon­i­tor dig­i­tal chan­nels, take down de­tec­tions, and an­a­lyze vast amounts of data to pro­vide bet­ter busi­ness in­tel­li­gence in­sights. Bring speed, ac­cu­racy, and ef­fi­ciency to your brand pro­tec­tion strat­egy, with­out drain­ing your team’s re­sources.

Tracer’s AI brand pro­tec­tion tech­nol­ogy de­tects and re­moves in­fringe­ments to your brand across thou­sands of dig­i­tal plat­forms, faster and more ac­cu­rately than ever be­fore.

From this, we can gather that Tracer uses AI agents for au­to­mated in­fringe­ment de­tec­tion. In a 2024 blog post, the com­pany boasts 85% faster take­downs”, 100% more re­views month-over-month” along with review times that are six times faster than tra­di­tional meth­ods”. It claims this has re­sulted in 44% more take­downs month-over-month”.

This is not the first time this has hap­pened

Luanti’s Android app re­ceived a sim­i­lar no­tice from the same com­pany in March 2023. As the no­tice was in­cor­rect, we sub­mit­ted a counter-no­tice and the app was even­tu­ally re­in­stated… af­ter 46 days3. Section 512(g)(2)(c) of the DMCA re­quires that providers [replace] the re­moved ma­te­r­ial and [cease] dis­abling ac­cess to it not less than 10, nor more than 14, busi­ness days fol­low­ing re­ceipt of the counter no­tice”. Google’s fail­ure to ad­here to the dead­lines spec­i­fied by the DMCA raises ques­tions re­gard­ing its ap­proach to­ward han­dling DMCA counter-no­tices.

In February of this year, an in­die game called Allumeria also re­ceived a DMCA take­down from Tracer.AI on be­half of Microsoft, re­sult­ing in the game’s tem­po­rary re­moval from the Steam store. The no­tice was even­tu­ally dropped by Microsoft af­ter pub­lic noise.

This can’t keep hap­pen­ing

If a com­pany can re­peat­edly sub­mit the same DMCA no­tice with no ex­pla­na­tion or ev­i­dence, tak­ing pro­jects down for months at a time, the sys­tem is bro­ken. It pre­vents users from dis­cov­er­ing or up­dat­ing Luanti, and risks users set­tling for shady or ad-rid­den forks in­stead.

If we were a small com­pany re­ly­ing on in­come from the app, this would be es­pe­cially dev­as­tat­ing. We, like most open-source com­mu­ni­ties, lack the re­sources to con­tin­u­ally fight un­founded DMCA no­tices.

What next?

We have sub­mit­ted a counter-no­tice and the app should be re­stored soon, hope­fully sooner than 46 days. But with counter-no­tices not be­ing re­spected in the set time­frame, a more pub­lic ap­proach is re­quired.

We call on Microsoft, Mojang, and Tracer.AI to stop re­ly­ing on AI tools to send in­ac­cu­rate and vague DMCA no­tices. Detection must be ver­i­fied by a hu­man and, more im­por­tantly, sub­stan­ti­ated with tan­gi­ble proof.

We call on Google to im­prove how they ver­ify no­tices, al­low users to re­spond to no­tices with­out tak­ing apps down for ex­tended pe­ri­ods of time, and prop­erly com­ply with copy­right law.

While we hope Google re­in­states the Luanti app in a timely man­ner, we would like to men­tion that the Luanti Android app is also avail­able on F-Droid, an app store for Android whose of­fi­cial repos­i­tory con­tains only ver­i­fied free soft­ware. In ad­di­tion, APK down­loads are avail­able on our own web­site. Unfortunately, both dis­tri­b­u­tion mech­a­nisms are in­creas­ingly un­der threat.

We ask our com­mu­nity and read­ers to share this post far and wide, to help raise aware­ness and en­sure this does­n’t hap­pen again, for us or any­one else.

Minetest Game’s LICENSE.txt ↩

Minetest Game’s LICENSE.txt ↩

17 U.S. Code § 102(b) https://​www.law.cor­nell.edu/​us­code/​text/​17/​102 ↩

17 U.S. Code § 102(b) https://​www.law.cor­nell.edu/​us­code/​text/​17/​102 ↩

We sub­mit­ted the counter no­tice on 25 March 2023 and the app was re­in­stated on 10 May 2023. ↩

We sub­mit­ted the counter no­tice on 25 March 2023 and the app was re­in­stated on 10 May 2023. ↩

Orbify Demo 2 - v72

www.orbify.eu

Orbify web demo

Demo 2 - v72

Controls

Move

WASD

Pan

Left drag

Rotate

Right drag

Get in touch

Pilot, col­lab­o­ra­tion or in­vest­ment?

We are open to pi­lot pro­jects, tech­nol­ogy col­lab­o­ra­tions, in­dus­try part­ner­ships and con­ver­sa­tions with in­vestors.

Demo ver­sions

Demo 2 - v72 cur­rent­Pre­vi­ous demo 1 - v38

Orbify AS

Org. nr. 934606442

Phone: +47 91349314

© 2026 Orbify. All rights re­served.

Warping tech­nol­ogy: Patent Pending · PCT/EP2026/058725

3D ren­der­ing pow­ered by PlayCanvas Engine.

Model: Hamilton Stadium, Hamilton Ontario (Sun Down) by Justin Eastman, li­censed un­der CC BY 4.0.

reuters.com

www.reuters.com

Please en­able JS and dis­able any ad blocker

To add this web app to your iOS home screen tap the share button and select "Add to the Home Screen".

10HN is also available as an iOS App

If you visit 10HN only rarely, check out the the best articles from the past week.

Visit pancik.com for more.