<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: 우주</title>
    <description>The latest articles on DEV Community by 우주 (@_16a9bf3e04169fa418f12e).</description>
    <link>https://dev.to/_16a9bf3e04169fa418f12e</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4121132%2F40f4c34b-d2bf-41ee-9426-e1096e12eee1.png</url>
      <title>DEV Community: 우주</title>
      <link>https://dev.to/_16a9bf3e04169fa418f12e</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/_16a9bf3e04169fa418f12e"/>
    <language>en</language>
    <item>
      <title>13 Claude doc changes since June that still show up wrong in tutorials</title>
      <dc:creator>우주</dc:creator>
      <pubDate>Sat, 12 Sep 2026 10:47:08 +0000</pubDate>
      <link>https://dev.to/_16a9bf3e04169fa418f12e/13-claude-doc-changes-since-june-that-still-show-up-wrong-in-tutorials-2g8h</link>
      <guid>https://dev.to/_16a9bf3e04169fa418f12e/13-claude-doc-changes-since-june-that-still-show-up-wrong-in-tutorials-2g8h</guid>
      <description>&lt;p&gt;I run a small Claude guide site (Korean first, English translations), and my biggest problem was never writing. It was that a guide I wrote in June is quietly wrong by September, and I usually found out from a reader instead of from the docs.&lt;/p&gt;

&lt;p&gt;So I set up something pretty unglamorous: every guide records which official doc it leans on, a GitHub Action refetches those docs daily, and if a phrase I depend on disappears (&lt;code&gt;Node.js 22 or later&lt;/code&gt;, &lt;code&gt;beta headers are no longer required&lt;/code&gt;) it flags the article. Then I fix it by hand.&lt;/p&gt;

&lt;p&gt;Ran a full pass this week. 13 things had drifted since June, and most of them still show up in tutorials and Stack Overflow answers. Here they are.&lt;/p&gt;

&lt;h2&gt;
  
  
  Claude Code
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;"Node.js 18 or later" is dead.&lt;/strong&gt; The native installer needs no Node at all. Only the npm install (v2.1.198+) wants &lt;strong&gt;Node 22 or later&lt;/strong&gt;, and lower versions just print an &lt;code&gt;EBADENGINE&lt;/code&gt; warning - it still runs, because the binary is native.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Weekly limits change on Sept 14.&lt;/strong&gt; The temporary +50% ends and becomes a permanent +25% over the original baseline. That's roughly 17% less headroom than you have right now.&lt;/p&gt;

&lt;h2&gt;
  
  
  API
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Extended thinking: &lt;code&gt;budget_tokens&lt;/code&gt; is gone on current models.&lt;/strong&gt; &lt;code&gt;thinking: {"type": "enabled", "budget_tokens": N}&lt;/code&gt; is deprecated on 4.6 and rejected with a 400 on 4.7+ (&lt;code&gt;"thinking.type.enabled" is not supported&lt;/code&gt;). Opus 5 / Sonnet 5 / Fable 5.1 think by default; if you want to steer it, use &lt;code&gt;type: "adaptive"&lt;/code&gt; with &lt;code&gt;effort&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Structured outputs went GA.&lt;/strong&gt; No beta header anymore, and the parameter moved from &lt;code&gt;output_format&lt;/code&gt; to &lt;code&gt;output_config.format&lt;/code&gt;. The Python SDK raises a &lt;code&gt;TypeError&lt;/code&gt; if you pass the old field to the beta &lt;code&gt;create()&lt;/code&gt;. Only &lt;code&gt;messages.parse()&lt;/code&gt; still accepts &lt;code&gt;output_format=&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Previous thinking blocks are kept in context now.&lt;/strong&gt; On Opus 4.5+, Sonnet 4.6+ and Fable they're preserved by default and count as input tokens. They used to be stripped automatically. If your token math suddenly looks off, this is why. Context editing's thinking-block clearing drops them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;model="opus"&lt;/code&gt; is not an API model ID.&lt;/strong&gt; One-word names are Claude Code &lt;code&gt;/model&lt;/code&gt; shortcuts. API aliases only exist for pre-4.6 models (&lt;code&gt;claude-sonnet-4-5&lt;/code&gt;, &lt;code&gt;claude-haiku-4-5&lt;/code&gt;); from 4.6 on, the dateless ID &lt;em&gt;is&lt;/em&gt; the snapshot. I had this wrong in my own guide.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A 429 doesn't always mean rate limit.&lt;/strong&gt; It's also returned when your usage tier hits its monthly spend cap - and in that case there's no &lt;code&gt;retry-after&lt;/code&gt; header, so SDK auto-retries just spin until access resumes. Check for the header before you back off. (A spend limit you set yourself returns 400 instead.)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Streaming can include a &lt;code&gt;fallback&lt;/code&gt; content block.&lt;/strong&gt; When a request gets served by a different model mid-stream, you get a &lt;code&gt;content_block_start&lt;/code&gt;/&lt;code&gt;content_block_stop&lt;/code&gt; pair with no deltas between them. Code that only concatenates text deltas can ignore it; code that switches on block type cannot.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MCP Python SDK 2.0 renamed the server class.&lt;/strong&gt; It's &lt;code&gt;from mcp.server import MCPServer&lt;/code&gt;. Every older tutorial shows &lt;code&gt;from mcp.server.fastmcp import FastMCP&lt;/code&gt;, which is the 1.x API - and &lt;code&gt;uv add "mcp[cli]"&lt;/code&gt; installs 2.x today, so you hit the import error immediately.&lt;/p&gt;

&lt;h2&gt;
  
  
  Claude app
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The Artifacts Remix button is gone.&lt;/strong&gt; You copy a published artifact's code into a new chat and ask for your changes instead. Works on Free, Pro and Max; the original is untouched.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Chat uploads are 500 MB per file now&lt;/strong&gt; (they were 30 MB), up to 20 files, PDFs up to 1,000 pages. Project files are still 30 MB.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Voice mode is two-way and on every plan&lt;/strong&gt;, including web and desktop - not mobile-only. Non-English languages are in beta.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Agent SDK "separate monthly credit" never happened.&lt;/strong&gt; It was announced for June 15 and paused on June 15. Agent SDK and &lt;code&gt;claude -p&lt;/code&gt; still draw from your subscription's usage limits.&lt;/p&gt;

&lt;h2&gt;
  
  
  How the checker works
&lt;/h2&gt;

&lt;p&gt;It's maybe 200 lines and a daily cron, nothing clever:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A small registry maps each guide to the official doc URL it depends on, plus an exact phrase from that doc (&lt;code&gt;Node.js 22 or later&lt;/code&gt;, &lt;code&gt;File size: 500MB per file&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;A scheduled job fetches each URL and checks whether the phrase is still there.&lt;/li&gt;
&lt;li&gt;If it's gone, the guide gets flagged as drifted and I read the doc diff myself before touching the article.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The phrase check is the part that earns its keep. Watching for "did the page change" gives you noise every time they reword a heading; watching for the one sentence your article actually stands on gives you almost no false positives. Half of the 13 above cost me a debugging session before I realised the doc had moved, so if you maintain runbooks or an internal wiki against a fast-moving API, an afternoon on this pays for itself.&lt;/p&gt;

&lt;p&gt;I keep the long versions, with the doc links, over at &lt;a href="https://usingclaude.com/en/" rel="noopener noreferrer"&gt;usingclaude.com&lt;/a&gt;. If anything above is already stale, say so - that's genuinely the point.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>automation</category>
      <category>claude</category>
      <category>llm</category>
    </item>
  </channel>
</rss>
