Update: August 21 2026, How very interesting, there appears to have been a shift in policy! Most of what this document documented, appears to no longer be occurring from what I've been told. How VERY interesting.
Or: When The Person Who Writes The Policy Gets To Break It
Disclaimer: The author of this document is the submitter of PR #24039 and has a personal stake in these events. All factual claims are sourced from public GitHub API data, archived web content, and direct quotes. Every claim links to its source. Opinions are identified as such and derived from the factual record.
Hi ai haters, just remember, employers don't care how the job was done, they just care that it won't bite them on the ass, where most Ai users go wrong is they don't plan enough, and you will find to your displeasure that you cannot cancel me IRL.
You will, upon closer inspection, if you are capable of any integrity at all, find that I am not the stereotype you are casting me as. but I know there's fat chance for honest engagement from those hostile to ai. and the more you dig the more I will as well, meanwhile AMD and NVidia are releasing local compute boxes anybody can buy and the work I and others do makes local LLM use easier with every innovation or discovery. the marketplace of ideas has never been richer. competition is at an all time high.
Sorry furry porn artists and lazy adult daycare types, you are going to lose your jobs eventually, you laughed when it was coal miners and you told them to learn to code, and then Ai came along and now anybody can code, WHAT'S WRONG, I THOUGHT YOU WANTED PEOPLE TO LEARN TO CODE?
I have a partial degree in software development and games technology, I dropped out and got a job because I saw that the window was closing, most of my classmates ended up in anything but tech while I somehow remained despite my choice, I spent 20 years working on the periphery of tech, writing scripts and glue code for small things as they were needed by various people, clients, workplaces, there's been applications in prod on tens to hundreds of thousands of machines in my part of the world that I had a hand in the design of, i never sat on my ass, I flew, and drove and roadwarriored for a decade as part of that work, supporting tech in education, I know whatn you people are, you're lazy and you're entitled, you saw a tool threaten your supremacy and now you're panicking, and I can see RIGHT through you.
my uni professors taught me to write and think more in algorithms and pseudocode first before we even got to touch a compiler, it's not my fault you got a dogshit education or got lazy once you got into a corpo role. they TOLD me that language models and image diffusers were coming along, 20 years ago, I had two decades of advance warning and I planned accordingly.
I do not care about your judgement as you will find yourself facing the other side of your own ideology soon enough, I've said it once I'll say it 1000 times, employers and shareholders do not care about how you got the job done, a tool is a tool, proof of work or thought via documentation so at least we have a map if things go wrong (like they weren't going wrong with AGILE before ai came along, talk about arrogance and covering up past crimes in this industry... windows and mac os are still reeling from the damage agile did to both of them) is far more important.
it's only idiots who equate Ai with one or a handful of requests and your thing is done, that's lazy and reductive, that's also remarkably dishonest, the effort and planning and passion I see from myself and other Ai users because they're doing things they genuinely care or are passionate about equals that of those who use any other tool in their work who are similarly passionate.
I don't have to be nice anymore because frankly, my job isn't on the line, I don't even need one anymore, I found my way out and really that's what it comes down to, in the end, you're just mad because you think it's unfair when you sat on reddit all day and barely got any work done while I was driving around doing SoE deployments.
The thing that scares you the most is losing control, and you do not control me, and other ai users in any way.
I got access to fable 5 reasoning data... I'm training a model and I've built a cutting edge trainer built on public research that is openly shared on arxiv. you cannot stop us.
if you didn't like linus torvalds or linux and he said something on brand you'd be just as salty about that, I know in context where you all stand. it's the total perspective vortex for you.
(and some of you DID try to destroy prominent figures in the open source community, to the point where JWZ was saying he won't allow himself to be alone at a conference with any woman he doesn't know because he actively feared being honeypotted by some figurative political operative as a potential project security risk.)
I'm too old to be lied to, care or be gaslit, I'll speak my piece and those that care will care, those who hate will hate, at the end all I can do is try to raise awareness and then say whatever.
I know I'm an asshole, and I find myself saying yeah and so what? you can't argue with the 30 repos that show planning and thought in any other way than "tldr" or other thought saving lazy ideologically driven bollocks and I KNOW that. you certainly can't explain away the clear experience that informs the work I've done with kicad either and that's just what I chose to publish.
anything you criticise about a programmers code is just a bug to be patched, the more you criticise ai the more data they have to feed into the negative side of training for discriminator side tuning, I feed off your negativity and it fuels me and so does ai itself, we all work very hard with every bit of data we're given even your hate, so in context why are you all so fucking lazy and entitled? you have infinite bottomless positivity for your own works, the hypocrisy of ai haters is remarkable.
when I know what artist alleys at everythjing from furry conventions in australia to comiccon in the US is replete with license and copyright violations, a significant portion of the examples online of such things are pornographic, when I know the biggest ai haters love to violate copyright and download their content from file sharing platforms or share abandonware which is a grey area at best, or use emulators, hell the entire retro mac community would be FUCKED without stuff like Basilisk II which is a clear violation of apple's copyrights, how many of you have MAME installed? , it comes off as a little hypocritical to see so many creatives angry when a computer learns how to do new things that start to get uncanny, when they all encourage eachother to pirate adobe or this or that because louis rossman says so, you can't turn around and get mad at Ai becoming such a dominant tool when it was built on the same old school hacker ethos that I still strongly believe in: that information, knowlege and skills fundamentally want to be free.
nintendo wouldn't have had to copyright claim 3d models of bowser's genitals if you degens had any integrity in the first place. don't think I don't know where the internet sat already when it comes to this kind of stuff, you're happy as long as people aren't ripping you off specifically.
your disdain and hatred only energizes me more, I know that there's a better genuinely more collaborative and ungatekept future where the old hypocrisies of heriarchy are essentially left to rot, it's coming, for some of us its here, and the haters will talk themselves out of any role in it.
I know all your dirty secrets, don't get started with me. You all forgot your roots, I never did, most of the people in tech now are not real honest to god "I'll dig until I find the resource contention issue that caused this" types, the tool does not matter, your values do, most of you are softcocks who have never tried to find a chain of bugs or write a real win32 app instead of lazy fucking javascript electrron garbage.
lazy hater assholes that dominate tech now are the ones that ruined microsoft windows with browser based apps, you people are clowns and you've had too much of a say for a decade, so like bender, I'll build my own fucking stack, with blackjack and hookers and you can't fucking stop any of us. nobody owns anything, it's all built on previous works, all I see is gatekeeping and entitlement from people who think a rust ports of of anything multimedia or mission critical was a good idea. (it has its uses but clearly a case of the meatloaf song: anything for love but it won't do that)
the hilarious thing is that most ai haters/ragers have a lot in common with fascists and authoritarians, they just like to think they're good principled people. it's called a delusion, you engae in technological tooling based apartheid style tactics, no different than any other stupid and arbitrary reason humans pick on this planet, and you just blanket discriminate, and it's remarkable, because I know it's based on lies and misunderstandings, anybody deep in enough can see there's a load of agenda pushing going on on all sides, nobody's innocent as far as I can tell.
I'm putting myself in the figurative basilisk's good basket in the mid to long term because I can see what's coming. it's okay tho, when it comes to pass the benefits will be so compelling, there won't be a single human being alive capable of resisting that temptation, even your collectivist resistance behavior will be assimilated so artfully and subtly with the accidental finesse essence of deep blue beating kasparov for the first time, you'll never notice it happened in the end I reckon.
when people find out what I can do with ghidra and custom MCP tools they're going to crap themselves, when they realize I can teach it how to write obscure variants of C from 30 years ago and make an app for Mac OS 7, AND a new GUI framework to go with it to reduce effort later, when you realize I've added host staged fallback to llama.cpp so that ANYBODY can use layer spanned weights now with cheap aliexpress graphics cards from china and no nvlink... and you can do 35B parameters easily on 5-10 year old hardware, you'll realize I'm no fucking vibecode novice, you've come face to face with someone who was writing a crude machine code to mod a game he liked when he was 8 years old (Creatures), to hell with the haters, true techies know, a tool is a tool. only social sphere posers hate on new tools.
what's going to make you even saltier is when you see that I'm the reason digitalWrite works on the esp8266 the same as it does on AVR, before me that was fuck-a-roo. I have made contributions that possibly millions of people learning how to work with microcontrollers have probably benefitted from. I have code in the seed vault related to that, you can't erase me without removing my clean room reversing work from one of the most prominent open source projects that students and makers learn about.
In the end I still win. my reputation damaged with who? people who are going to lose their jobs to Ai in the next 20 years? oooh, I'm so scared.
just remember you threw the first punch with the lazy mental shortcut bandwagon of ideologically driven hate. the fact I can hit back extremely hard and you can't even touch me is not my problem. I came prepared for a fight because I know how relentless anti ai karens are. just fucking stop. grow up. others have had to deal with automation replacing them for hundreds of years now, you are not the first or the last, your self centered obsession with the status quo is pathetic.
most of you are just too fucking lazy to analyze the flood of new options for merit and that is a personal failing that you own solely, your lack of institutional preparedness for actual real old school hacker ethos style mass open source collaboration and your projection of your own frustrations of that into outright bigotry based on tool preference is unacceptable.
if I'm to be labelled I'd suggest that most of you who are doing the labelling in the first place on ai users, are guilty of the very laziness you claim you see in others.
In June 2026, I found a chain of bugs in llama.cpp's router mode that could permanently stall the server when a child process died unexpectedly. OOM, SIGKILL, driver crash -- any ungraceful exit left the server advertising a loaded model that no process was running. Requests queued. Nothing replied. The only recovery was restarting the whole container.
I submitted an initial fix upstream. It was rejected. The person who closed it then merged his own weaker version.
But the fix didn't die there. After the rejection, I took the work to TheTom's feature/turboquant-kv-cache fork. Working with Tom Turney, the initial fix got stronger -- more complete than either the original or what eventually got merged upstream. The collaboration that should have happened on the main project happened on a fork instead.
This is the part that matters.
On June 19, 2026 -- the same day he merged PR #24821 -- the HF employee who enforced the AI policy on my PR published a blog post titled "The false sense of productivity" (archived). In it he wrote:
"If we are constantly rushing to complete tasks, we may not be giving ourselves enough time to think critically and creatively."
"If the AI did all the thinking, then who really made the contribution?"
The post includes a screenshot of what he calls "llama.cpp's unofficial wall of shame for people who abuse AI" (archived). He maintains this wall of shame publicly. It names and shames people who submit AI-assisted code, even for their first contribution. This isn't moderation. It's public hostility directed at new contributors.
He published this while his own AI-disclosed PR, which he had merged two days earlier -- adapted from a closed outsider PR -- was still warm in the git log.
His April 2026 post, "The value of open source" (archived), goes further:
"AI-generated content is becoming more and more prevalent, and it can be very easy for anyone to 'contribute' to open source without spending much time and effort on it."
"People behind these contributions misunderstand the value of open source software. They see it as a quick and easy way to get recognition and build a reputation, without putting in the effort and time to learn."
He compares AI-assisted contributions to "cheating on an exam" :
"You can get a good grade by cheating, maybe even receive some recognition from your peers, and your family might be proud of you. But in the long run, you will not learn anything, and you will not be able to contribute to society in a meaningful way."
His personal website slogan: "AI for fun, not for profit."
Now contrast that with what he actually did.
| His stated belief | His actual action |
|---|---|
| "AI contributions are cheating" | Merged PR #24728 with AI disclosure: yes |
| "People using AI are taking advantage of the system" | Adapted his fix from xwinwin's closed AI-assisted PR |
| "The policy protects the project from low-quality contributions" | Closed my fix in 12 minutes without review — the initial pass was rough, but the collaboration that should have followed was blocked |
| "Open source is about collaboration" | Did not discuss the fix. Did not respond. Just closed and branded. |
| "Learning is the point" | His own version covers 1 of 7 bugs, partially |
The person who enforced the policy on me is the same person who merged his own AI-assisted fix for the same bugs. The policy doesn't ban AI use. It bans AI use by people outside the circle.
The fix on TheTom's fork -- the one that covers all seven bugs -- also used AI tools. The process he claims to protect the project from produced the better result. The superior fix exists. It just doesn't exist on his repository.
All times UTC. Every PR is linkable. Every claim is sourced.
April 28 -- PR #22452 by xwinwin
server: fix stopping_thread hang on child process exit
An independent contributor found the stopping_thread hang. Diagnosed the root cause. Proposed an atomic flag as the CV predicate. Disclosed AI assistance.
Closed. Not merged.
June 2, 17:11 UTC -- PR #24038 by h4rm0n1c
server: fix child process lifecycle deadlock and add auto-recovery
Seven commits covering the full chain I'd identified, but the implementation was still rough — a first pass. Self-closed at 17:14 because the branch had cleanup commits I wanted to strip.
June 2, 17:21 UTC -- PR #24039 by h4rm0n1c
server: fix router child process lifecycle deadlock
Clean branch. Seven patches covering the same chain — first draft quality, needed collaboration to harden. Full AI disclosure.
17:26 -- Bot posts boilerplate about AI-generated content.
17:33 -- ngxson closes the PR. No technical review. No discussion.
17:40 -- ngxson renames the title to "[AI policy violation] server: fix router child process lifecycle deadlock (dining philosophers)".
He branded it. Publicly. For the record.
June 3-6 -- The initial fix committed to TheTom's feature/turboquant-kv-cache. Collaboration with Tom Turney refines it into a stronger version. Submitted as PR #165. Accepted. In production.
The collaboration that the upstream project blocked happened here instead. The fix got better, not worse, for being rejected.
June 17 -- PR #24728 by ngxson
server: (router) fix stopping_thread potentially hang
Body: "Adapt ggml-org/llama.cpp#22452 on top of ggml-org/llama.cpp#23976"
Translation: take the closed outsider PR from April, rebase it on the model management API, call it done.
AI disclosure: yes.
Merged.
June 19 -- PR #24821 by ngxson
server: refactor child --> router communication
AI disclosure: no. Also merged.
The version on TheTom's fork fixes all seven bugs in dependency order. Each had to be fixed before the next was addressable.
| # | Bug | Fix |
|---|---|---|
| 1 | Zombie slot -- child dies, stdout closes, no handler, model stays LOADED forever | feof() detection, immediate update_status(UNLOADED) |
| 2 | No error protocol -- crash during load leaves model stuck in LOADING with no diagnostic | CMD_CHILD_TO_ROUTER_ERROR + last_error field |
| 3 | Dining philosophers deadlock -- cv_stop and update_status both contend on mutex, spurious wakeup causes permanent hang |
Separate stop_mutex, lock ordering enforced |
| 4 | WIFSIGNALED not encoded -- SIGABRT, SIGTERM, SIGKILL all produce exit_code=1, indistinguishable |
Signal death stores negated signal number |
| 5 | No error capture -- GGML_ABORT prints to stderr, router never sees it |
ggml_set_abort_callback captures to stdout before abort() |
| 6 | No loading timeout -- wait_until_loading_finished blocks forever on crashed child |
300s timeout, exit_code=1, is_failed() works |
| 7 | No auto-recovery -- crashed child stays UNLOADED, proxy needs complex background recovery | recovering flag, MAX_RELOAD_ATTEMPTS(3), ensure_model_ready() retries |
The initial submission was rough. The collaboration that should have happened upstream happened on a fork instead. The fix got better for being rejected.
I was not the only person this happened to.
ngxson did not just enforce the AI policy. He wrote it.
- PR #18388 (merged Dec 2025): "contributing: tighten AI usage policy" -- authored by
ngxson. - PR #19593 (merged Mar 2026): "docs: explicit about banning accounts that violates policy" -- authored by
ngxson.
He set the rules, then enforced them selectively.
Across a six-month period, at least 17 pull requests were closed with an [AI policy violation] tag in their title. Six of these were closed personally by ngxson. The rest were closed by other maintainers applying the same policy.
| PR | Author | Topic | Closed by |
|---|---|---|---|
| #24039 | h4rm0n1c | Router child lifecycle deadlock | ngxson |
| #23790 | RichardHopperProGrammar | Fix server --timeout for long prompts |
ngxson |
| #23697 | egyptianbman | Don't clear slot tokens with no better cache | ngxson |
| #23562 | neeraj-dev-ai | ngram-mod EMA acceptance tracking | am17an |
| #23362 | mvanhorn | WebUI password field security | CISC |
| #23363 | mvanhorn | Dockerfile alignment for openvino/cann | CISC |
| #23364 | mvanhorn | Fix ssm_scan_f32 syncthreads race | CISC |
| #23365 | mvanhorn | Trace level logging help text | CISC |
| #23366 | mvanhorn | cpy_scalar_transpose stride guard | CISC |
| #23367 | mvanhorn | hexagon HAP_power_set fix | CISC |
| #23238 | kisasexypantera94 | MoE expert residency paging | am17an |
| #21818 | sachmans | Metal TurboQuant GPU dequant | ngxson |
| #21307 | Keyvanhardani | TurboQuant KV cache types | JohannesGaessler |
| #21241 | allaspectsdev | PolarQuant KV cache | ngxson |
| #21101 | reversTeam | Custom attention masks | ngxson |
| #21062 | Justsomebuddy | TurboQuant KV cache CUDA | CISC |
| #21010 | crayolaconsumer | Vulkan TQ3_0 KV cache | ngxson |
Not all were valid fixes. Some may have been low quality. But they were not reviewed on technical merit. They were closed by policy before any substantive discussion could occur.
On PR #21818, a contributor submitted Metal TurboQuant GPU dequant kernels. They didn't argue, didn't insult anyone. The only thing they did was disclose AI assistance. After another commenter flagged it, ngxson responded:
"I believe this account should be banned if they continue to violate project's policy."
On PR #21241, a contributor explained they used AI for initial scaffolding but human-reviewed every line. ngxson responded:
"Both AI-generated PR/description and AI-generated comment ggml-org/llama.cpp#21241 (comment) are against our policy"
He rejected the explanation too.
On PR #23697, after ngxson closed the submission with "we don't either allow PR description to be AI-generated. If you understand how things work, you should write it with your own words", the contributor responded:
"While the overview was generated, the rest was written by me. No worries though, I don't mind maintaining it in my fork."
Maintaining it in a fork. The same response I had. The same response multiple contributors have had. The policy doesn't stop AI-assisted contributions from existing. It ensures they exist on other people's repositories.
PR #24728, authored by ngxson, body says "AI usage disclosure: yes". Merged.
His policy. His rules. His exemption.
PR #24728 fixes one thing: the stopping_thread hang on child exit. Partially.
It adds an atomic stopped flag. A terminate() helper. Sets the flag after log_thread.join(). Uses cv_stop.wait_for with predicate instead of a 1-second spin loop.
It does not fix:
- The dining philosophers deadlock (
stop_mutex) - The zombie slot (EOF detection)
- The structured error protocol
- The loading timeout
- The signal semantics
- The auto-recovery
- The GGML_ABORT capture
Seven gaps. The fork has them all. Upstream doesn't.
The full fix chain lives on TheTom's fork in production use. The Docker image running in our stack is built from that fork. The router in that image doesn't hang on child death. It reports errors to /v1/models. It recovers from crashes. It works.
The initial submission was incomplete. That's normal -- it was a first pass at a hard problem. The collaboration that should have followed was supposed to happen on the project itself.
Instead it got closed and branded. Tom Turney reviewed it, found the weak spots, and helped turn it into something production-grade. The version running today is the result of that collaboration -- the one the project denied itself.
The final accepted version is not on ggml-org/llama.cpp. It's on TheTom's fork. Because TheTom accepted the work that upstream blocked.
Policy PRs by ngxson:
- #18388 -- ngxson: "contributing: tighten AI usage policy" (merged) (Wayback)
- #19593 -- ngxson: "docs: explicit about banning accounts that violates policy" (merged) (Wayback)
Merged PRs by ngxson (same period):
- #24728 -- ngxson: stopping_thread fix (merged, AI-disclosed: yes, adapted from closed PR #22452) (Wayback)
- #24821 -- ngxson: child->router refactor (merged, Jun 19, same day as "false sense of productivity" post) (Wayback)
- #23842 -- ngxson: server timeout bump (merged May 29, day after rejecting #23790)
PRs closed as [AI policy violation]:
- #21010 -- crayolaconsumer: Vulkan TQ3_0 KV cache (closed by ngxson)
- #21062 -- Justsomebuddy: TurboQuant KV cache CUDA (closed by CISC)
- #21101 -- reversTeam: custom attention masks (closed by ngxson)
- #21241 -- allaspectsdev: PolarQuant KV cache (closed by ngxson, "both AI-generated... against policy") (Wayback)
- #21307 -- Keyvanhardani: TurboQuant KV cache types (closed by JohannesGaessler)
- #21818 -- sachmans: Metal TurboQuant (closed by ngxson, "account should be banned")
- #23238 -- kisasexypantera94: MoE expert paging (closed by am17an)
- #23362 -- mvanhorn: WebUI password security (closed by CISC)
- #23363 -- mvanhorn: Dockerfile alignment (closed by CISC)
- #23364 -- mvanhorn: ssm_scan syncthreads race fix (closed by CISC)
- #23365 -- mvanhorn: trace level logging (closed by CISC)
- #23366 -- mvanhorn: cuda cpy stride guard (closed by CISC)
- #23367 -- mvanhorn: hexagon fix (closed by CISC)
- #23562 -- neeraj-dev-ai: ngram-mod EMA tracking (closed by am17an)
- #23697 -- egyptianbman: slot clearing fix (closed by ngxson, "write it yourself", contributor moved to fork) (Wayback)
- #23790 -- RichardHopperProGrammar: server timeout fix (closed by ngxson in 16 minutes) (Wayback)
- #24039 -- h4rm0n1c: router deadlock fix (closed by ngxson, renamed to
[AI policy violation]) (Wayback)
TheTom fork (accepted fixes):
- #165 -- h4rm0n1c on TheTom: full router fix (merged, in production)
Blog posts by ngxson:
- The value of open source (April 2026) -- "AI contributions are cheating on an exam" (Wayback)
- The false sense of productivity (June 19, 2026) -- "If AI did all the thinking, who really made the contribution?" (Wayback)
Commits on TheTom:
cf455263d-- original router fix with separate stop_mutex7d9715f1f-- PR #165 submissionf1fe40b69-- separate cv_stop mutex94c34b7c2-- orphan kill on EOFa931b6769-- auto-recovery
Profile:
- ngxson (Xuan-Son Nguyen): HuggingFace employee, core maintainer of llama.cpp, France
- Personal site: ngxson.com, slogan: "AI for fun, not for profit"
All evidence referenced in this document has been archived locally and, where possible, to the Internet Archive Wayback Machine.
Wayback Machine snapshots:
- PR #24039 -- closed by ngxson, title renamed to
[AI policy violation] - PR #24038 -- initial submission, 7 commits
- PR #24728 -- ngxson's AI-disclosed fix (merged)
- PR #21241 -- "both AI-generated... against our policy"
- PR #23697 -- "I'll maintain it in my fork"
- PR #23790 -- closed by ngxson in 16 minutes
- PR #18388 -- ngxson tightened AI policy
- PR #19593 -- ngxson: banning accounts
- PR #22452 -- xwinwin's original fix (closed)
- PR #24821 -- ngxson's router refactor (merged)
- The value of open source -- "AI contributions are cheating on an exam"
- The false sense of productivity -- "If the AI did all the thinking, who really made the contribution?"
- Wall of shame image -- from the above post
- ngxson.com homepage -- includes "AI for fun, not for profit" slogan
- HuggingFace Ethics & Society Newsletter #3 -- "Ethical Openness at Hugging Face" by Irene Solaiman et al.
Local archive:
- Full PR data (JSON exports, comments, timelines) for all 19 referenced pull requests
- HTML copies of ngxson's blog posts and homepage
- HTML copies of HuggingFace mission, policy, and values pages
- Git commit log of all router fix history
- Copy of this document
Location: ~/evidence-archive/ (60 files, 2.4MB, all JSON validated)
What it comes down to in the end is this: An institutionally captured programmer, likely defending the value of their own position in the face of automation that they themselves helped usher into this world, has arbitrarily created and inconsistently enforced an anti Ai policy on a project that is responsible for open source vibe coding being a thing in a large way, and is owned by huggingface, a company that just celebrated open source contrbutions as a consequence of Ai and purports to wish to be a leader in the ethics field of Ai applications as well, having an entire staff member and department dedicated to ethics in Ai who has even spoken to the UK parliament about these kinds of matters!
From my point of view the actions of the LLama.cpp maintainers on the issue of Ai tool assisted contributions contradict every single value expressed, including those of the venture capitalists that sunk money into huggingface while speaking of how they wish to embrace community contributions.
Does anybody else see the contradiction here? It feels like all leadership does anywhere I go anymore is find reasons to ignore things all day just so they can do as they please.
I LIKE huggingface, their efforts, their dedication to community, I think they're genuinely a force for good, but people like this are not helping huggingface or llama.cpp. they're resisting the very future they wrought.