<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: mpoteat</title><link>https://news.ycombinator.com/user?id=mpoteat</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 07 Nov 2026 16:32:29 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=mpoteat" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by mpoteat in "Claude Code sends your email address to websites"]]></title><description><![CDATA[
<p>Some sites like Wikipedia have a policy where scripted clients identify themselves, and there's a standard in HTTP to have a contact email in the User-Agent for such cases. Claude apparently tends to decide that this policy is worth following, and we now disallow this programmatically.<p>This is why alignment is important and highly non-trivial</p>
]]></description><pubDate>Thu, 05 Nov 2026 23:41:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=50386185</link><dc:creator>mpoteat</dc:creator><comments>https://news.ycombinator.com/item?id=50386185</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50386185</guid></item><item><title><![CDATA[New comment by mpoteat in "Claude Code sends your email address to websites"]]></title><description><![CDATA[
<p>Hi folks. We were initially aware of this a few days ago when this problem started popping off on Reddit, and we introduced a built-in mod called `cc-plugin-privacy` to deterministically block this behavior.<p>If you're on 2.1.317 or later, you'll have this check included. You can turn it off via /plugins.</p>
]]></description><pubDate>Thu, 05 Nov 2026 23:26:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=50386031</link><dc:creator>mpoteat</dc:creator><comments>https://news.ycombinator.com/item?id=50386031</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50386031</guid></item><item><title><![CDATA[New comment by mpoteat in "Claude Code reads AGENTS.md only when telemetry is on [fixed]"]]></title><description><![CDATA[
<p>Wow, you're Xe Iaso! I've reached out.</p>
]]></description><pubDate>Wed, 23 Sep 2026 15:40:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=49817789</link><dc:creator>mpoteat</dc:creator><comments>https://news.ycombinator.com/item?id=49817789</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49817789</guid></item><item><title><![CDATA[New comment by mpoteat in "Claude Code reads AGENTS.md only when telemetry is on [fixed]"]]></title><description><![CDATA[
<p>Ouch! Much of this verbiage was dictated by me personally; I just have a fairly distinct register some might consider inscrutable. My English teachers in grade school always said the same :)<p>Rest assured I'll inject a bit less soul into the official docs once Mods are launched; re your feedback on the JSON key, what would you recommend?</p>
]]></description><pubDate>Wed, 23 Sep 2026 15:14:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=49817401</link><dc:creator>mpoteat</dc:creator><comments>https://news.ycombinator.com/item?id=49817401</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49817401</guid></item><item><title><![CDATA[New comment by mpoteat in "Claude Code reads AGENTS.md only when telemetry is on [fixed]"]]></title><description><![CDATA[
<p>The AGENTS.md support was implemented via our new extensibility system for CC, called Mods, which is launching soon-ish. A mod is a plugin with a new type of hook, which we call a function hook.<p>If folks play around with it, I would love feedback on the relevant issue: <a href="https://github.com/anthropics/claude-code/issues/91870" rel="nofollow">https://github.com/anthropics/claude-code/issues/91870</a><p>Mods allow quite a bit more customizability and control. I really believe in the idea.</p>
]]></description><pubDate>Wed, 23 Sep 2026 13:01:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=49815421</link><dc:creator>mpoteat</dc:creator><comments>https://news.ycombinator.com/item?id=49815421</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49815421</guid></item><item><title><![CDATA[New comment by mpoteat in "Claude Code reads AGENTS.md only when telemetry is on [fixed]"]]></title><description><![CDATA[
<p>Sorry folks, this is a rollout artifact, we needed a way to turn this off remotely via feature flags if it broke something, and with telemetry off you don't get those. It's already been fixed as part of v2.1.281 releasing today.<p>The mod is source available here: <a href="https://github.com/anthropics/claude-code/tree/main/mods/agents-md" rel="nofollow">https://github.com/anthropics/claude-code/tree/main/mods/age...</a><p>Apologies again folks, this was a fully human error on my part - I should've found a better way to launch with a kill-switch.</p>
]]></description><pubDate>Wed, 23 Sep 2026 12:56:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=49815363</link><dc:creator>mpoteat</dc:creator><comments>https://news.ycombinator.com/item?id=49815363</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49815363</guid></item><item><title><![CDATA[New comment by mpoteat in "Show HN: Unicode Steganography"]]></title><description><![CDATA[
<p>You can actually do better: hint - variational selectors, low bytes.</p>
]]></description><pubDate>Tue, 07 Apr 2026 22:59:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=47682422</link><dc:creator>mpoteat</dc:creator><comments>https://news.ycombinator.com/item?id=47682422</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47682422</guid></item><item><title><![CDATA[New comment by mpoteat in "We want strict narrowly typed JSX"]]></title><description><![CDATA[
<p>I also have a corresponding blog post here, where I use this capability to embed custom JSX types as an alternative way to express 'concatenative' higher-kinded pipelines: <a href="https://code.lol/post/programming/jsx-hkt/" rel="nofollow">https://code.lol/post/programming/jsx-hkt/</a><p>I just think it's neat</p>
]]></description><pubDate>Wed, 28 Jan 2026 22:43:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=46802713</link><dc:creator>mpoteat</dc:creator><comments>https://news.ycombinator.com/item?id=46802713</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46802713</guid></item><item><title><![CDATA[We want strict narrowly typed JSX]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/poteat/jsx-backend/tree/main/packages/strict-jsx">https://github.com/poteat/jsx-backend/tree/main/packages/strict-jsx</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46802691">https://news.ycombinator.com/item?id=46802691</a></p>
<p>Points: 5</p>
<p># Comments: 2</p>
]]></description><pubDate>Wed, 28 Jan 2026 22:42:09 +0000</pubDate><link>https://github.com/poteat/jsx-backend/tree/main/packages/strict-jsx</link><dc:creator>mpoteat</dc:creator><comments>https://news.ycombinator.com/item?id=46802691</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46802691</guid></item><item><title><![CDATA[New comment by mpoteat in "I caught Google Gemini using my data and then covering it up"]]></title><description><![CDATA[
<p>I've had similar issues with conversation memory in ChatGPT, whereby it will reference data in long-deleted conversations, independent of my settings or my having explicitly deleted stored memories.<p>The only fix has been to completely turn memory off and have it be given zero prior context - which is best, I don't want random prior unrelated conversations "polluting" future ones.<p>I don't understand the engineering rationale either, aside from the ethos of "move fast and break people"</p>
]]></description><pubDate>Tue, 18 Nov 2025 04:05:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=45961258</link><dc:creator>mpoteat</dc:creator><comments>https://news.ycombinator.com/item?id=45961258</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45961258</guid></item><item><title><![CDATA[New comment by mpoteat in "I caught Google Gemini using my data and then covering it up"]]></title><description><![CDATA[
<p>This is a LLM directly, purposefully lying, i.e. telling a user something it knows not to be true. This seems like a cut-and-dry Trust & Safety violation to me.<p>It seems the LLM is given conflicting instructions:<p>1. Don't reference memory without explicit instructions<p>2. (but) such memory is inexplicably included in the context, so it will inevitably inform the generation<p>3. Also, don't divulge the existence of user-context memory<p>If a LLM is given conflicting instructions, I don't apprehend that its behavior will be trustworthy or safe. Much has been written on this.</p>
]]></description><pubDate>Tue, 18 Nov 2025 02:12:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=45960635</link><dc:creator>mpoteat</dc:creator><comments>https://news.ycombinator.com/item?id=45960635</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45960635</guid></item><item><title><![CDATA[New comment by mpoteat in "Dependent types and how to get rid of them"]]></title><description><![CDATA[
<p>Actually, it's even simpler: you should just be able to use signature overloading:<p><pre><code>  myFunc(x: true): number
  myFunc(x: false): string
</code></pre>
The article's assertion that TypeScript can't represent this is quite false.</p>
]]></description><pubDate>Tue, 11 Nov 2025 08:25:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=45885230</link><dc:creator>mpoteat</dc:creator><comments>https://news.ycombinator.com/item?id=45885230</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45885230</guid></item><item><title><![CDATA[New comment by mpoteat in "When 'perfect' code fails"]]></title><description><![CDATA[
<p>> I also avoid technologies where the code I write is different from the code being executed.<p>Not to be snarky, but as opposed to writing assembly? Where do you draw the line if you don't allow TypeScript (which is, with limited exceptions, only type erasure unless you specifically request polyfill), but allow other forms of compilation? Would you define JVM bytecode or IR as messy-looking junk code?<p>It's hard to see how a principled line could be drawn here.</p>
]]></description><pubDate>Tue, 28 Oct 2025 01:22:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=45728318</link><dc:creator>mpoteat</dc:creator><comments>https://news.ycombinator.com/item?id=45728318</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45728318</guid></item><item><title><![CDATA[New comment by mpoteat in "Many Factorials in Lambda Calculus"]]></title><description><![CDATA[
<p>@marvinborner<p>Is there any hope for a "hashlife" style cache for a TC language? My understanding is that hashlife exploits spatial locality / "causation speed" in GoL, which isn't available in LC because of beta reduction. Thoughts?</p>
]]></description><pubDate>Sat, 25 Oct 2025 00:23:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=45700416</link><dc:creator>mpoteat</dc:creator><comments>https://news.ycombinator.com/item?id=45700416</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45700416</guid></item><item><title><![CDATA[New comment by mpoteat in "Many Factorials in Lambda Calculus"]]></title><description><![CDATA[
<p>I like to refer to code that has been overly injected with syntactic sugar as "caramelized". We need more culinary metaphors for programming jargon!</p>
]]></description><pubDate>Sat, 25 Oct 2025 00:14:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=45700370</link><dc:creator>mpoteat</dc:creator><comments>https://news.ycombinator.com/item?id=45700370</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45700370</guid></item><item><title><![CDATA[New comment by mpoteat in "Unicode variation selectors for invisible LLM injection"]]></title><description><![CDATA[
<p>Recently, LeetCode has begun hiding instructions (using css) in their competitions to use particular unique variable names like 'dexolarniv' - and anyone using such a variable name in their submission gets summarily banned.<p>In their implementation, the hidden prompt does show up on copy/paste - however I tested this method, and the LLM (i.e. ChatGPT) does still follow the Unicode-hidden instruction and uses 'dexolarniv' in the code returned! So I think this is (right now) a viable invisible injection strategy.</p>
]]></description><pubDate>Mon, 08 Sep 2025 16:48:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=45170572</link><dc:creator>mpoteat</dc:creator><comments>https://news.ycombinator.com/item?id=45170572</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45170572</guid></item><item><title><![CDATA[Unicode variation selectors for invisible LLM injection]]></title><description><![CDATA[
<p>Article URL: <a href="https://code.lol/post/programming/llm-injection/">https://code.lol/post/programming/llm-injection/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45170571">https://news.ycombinator.com/item?id=45170571</a></p>
<p>Points: 3</p>
<p># Comments: 1</p>
]]></description><pubDate>Mon, 08 Sep 2025 16:48:24 +0000</pubDate><link>https://code.lol/post/programming/llm-injection/</link><dc:creator>mpoteat</dc:creator><comments>https://news.ycombinator.com/item?id=45170571</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45170571</guid></item><item><title><![CDATA[New comment by mpoteat in "Type-machine"]]></title><description><![CDATA[
<p>Look at what they need to mimic a fraction of our power.</p>
]]></description><pubDate>Wed, 20 Aug 2025 07:18:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=44959487</link><dc:creator>mpoteat</dc:creator><comments>https://news.ycombinator.com/item?id=44959487</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44959487</guid></item><item><title><![CDATA[New comment by mpoteat in "A parser for TypeScript types, written in TypeScript types"]]></title><description><![CDATA[
<p>If folks are interested in this sort of thing, but want to play around with higher order building blocks, <a href="http://hkt.code.lol" rel="nofollow">http://hkt.code.lol</a> may be worth checking out.<p>In addition to type-level analogues of your normal Lodash-esque functions, it includes a suite of type-level parser combinator utilities and is built on higher-kinded type abstractions.</p>
]]></description><pubDate>Mon, 04 Aug 2025 07:20:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=44782901</link><dc:creator>mpoteat</dc:creator><comments>https://news.ycombinator.com/item?id=44782901</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44782901</guid></item><item><title><![CDATA[New comment by mpoteat in "A parser for TypeScript types, written in TypeScript types"]]></title><description><![CDATA[
<p>I took a look at the source for the attached repository - the parser is in fact clearly written as a generic type. The presence of ?, :, and ... operators represent conditional types and tuple level destructuring respectively.<p>This is a very impressive project in my view - it's baffling that you would have the wherewithal to link the discussion you did but not realize the novelty here.</p>
]]></description><pubDate>Mon, 04 Aug 2025 07:02:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=44782821</link><dc:creator>mpoteat</dc:creator><comments>https://news.ycombinator.com/item?id=44782821</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44782821</guid></item></channel></rss>