<?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: Yan Gao</title>
    <description>The latest articles on DEV Community by Yan Gao (@yan_gao_3ad90a90b26925538).</description>
    <link>https://dev.to/yan_gao_3ad90a90b26925538</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%2F4066892%2F0e201c12-e1ce-4a7d-a0a8-5b09b8d98a83.png</url>
      <title>DEV Community: Yan Gao</title>
      <link>https://dev.to/yan_gao_3ad90a90b26925538</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yan_gao_3ad90a90b26925538"/>
    <language>en</language>
    <item>
      <title>Codex CLI 0.147: Test Agent Plugins, Approvals, and MCP Separately</title>
      <dc:creator>Yan Gao</dc:creator>
      <pubDate>Sat, 15 Aug 2026 18:42:09 +0000</pubDate>
      <link>https://dev.to/yan_gao_3ad90a90b26925538/codex-cli-0147-test-agent-plugins-approvals-and-mcp-separately-6h4</link>
      <guid>https://dev.to/yan_gao_3ad90a90b26925538/codex-cli-0147-test-agent-plugins-approvals-and-mcp-separately-6h4</guid>
      <description>&lt;p&gt;Codex CLI 0.147 combines several changes that affect different trust boundaries. Treating the upgrade as one pass/fail event misses the failures that matter.&lt;/p&gt;

&lt;h2&gt;
  
  
  The short answer
&lt;/h2&gt;

&lt;p&gt;Test five things independently:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;One portable Agent Plugin.&lt;/li&gt;
&lt;li&gt;One &lt;code&gt;--approve-for-me&lt;/code&gt; boundary.&lt;/li&gt;
&lt;li&gt;One MCP server using the opt-in 2026-07-28 protocol.&lt;/li&gt;
&lt;li&gt;One imported skill or conversation.&lt;/li&gt;
&lt;li&gt;One interrupted Windows background process.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A successful launch proves only that Codex started. It does not prove that plugin provenance, approval scope, protocol negotiation, imported context, or process cleanup are correct.&lt;/p&gt;

&lt;h2&gt;
  
  
  Agent Plugins need a provenance receipt
&lt;/h2&gt;

&lt;p&gt;Portable plugins can move instructions, tools, apps, and supporting files between environments. Before activation, record:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;source repository and reviewed revision,&lt;/li&gt;
&lt;li&gt;enabled scope,&lt;/li&gt;
&lt;li&gt;declared tools and network destinations,&lt;/li&gt;
&lt;li&gt;expected files or commands,&lt;/li&gt;
&lt;li&gt;one allowed operation and one denied operation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then disable the plugin and start a fresh session. The capability should disappear. Catalog visibility is not execution proof.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;code&gt;--approve-for-me&lt;/code&gt; is not unrestricted execution
&lt;/h2&gt;

&lt;p&gt;The flag adds automatic approval review. It does not erase the sandbox, network policy, managed restrictions, or the need to verify side effects.&lt;/p&gt;

&lt;p&gt;Use a disposable workspace and check:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;one operation that should be approved,&lt;/li&gt;
&lt;li&gt;one operation that should remain denied,&lt;/li&gt;
&lt;li&gt;the exact artifact created,&lt;/li&gt;
&lt;li&gt;the command and network evidence,&lt;/li&gt;
&lt;li&gt;the result after restarting the session.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Codex 0.147 also removes the deprecated &lt;code&gt;codex exec --full-auto&lt;/code&gt; shortcut. Unattended workflows should declare sandbox and approval behavior explicitly.&lt;/p&gt;

&lt;h2&gt;
  
  
  MCP needs a protocol-level check
&lt;/h2&gt;

&lt;p&gt;Opt-in MCP 2026-07-28 support adds capabilities such as paginated discovery and multi-round requests. A connected server can still fail during tool discovery, schema validation, one invocation, or response handling.&lt;/p&gt;

&lt;p&gt;Record the negotiated protocol version, enumerate tools, call one bounded tool, and verify the artifact outside Codex.&lt;/p&gt;

&lt;h2&gt;
  
  
  Imported context needs ownership rules
&lt;/h2&gt;

&lt;p&gt;Cursor-managed skills and imported Claude or Cursor conversations increase reusable context. They also increase the chance of stale instructions, duplicate guidance, and hidden conflicts.&lt;/p&gt;

&lt;p&gt;Pin the source, inspect references, run a known-answer task, and confirm which instruction won when scopes conflict.&lt;/p&gt;

&lt;h2&gt;
  
  
  Windows needs a real interruption test
&lt;/h2&gt;

&lt;p&gt;The release includes Windows process and path fixes. Verify them by starting a harmless bounded background task, interrupting it, and checking both the process tree and expected artifact state. A quiet terminal is not proof that the child process stopped.&lt;/p&gt;

&lt;h2&gt;
  
  
  Release gate
&lt;/h2&gt;

&lt;p&gt;Upgrade only when every boundary has its own evidence receipt. If one check fails, roll back or disable only that capability instead of deleting unrelated configuration.&lt;/p&gt;

&lt;p&gt;Official release:&lt;br&gt;
&lt;a href="https://github.com/openai/codex/releases/tag/rust-v0.147.0" rel="noopener noreferrer"&gt;https://github.com/openai/codex/releases/tag/rust-v0.147.0&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Complete source-linked analysis and acceptance checklist:&lt;br&gt;
&lt;a href="https://tgwise.com/intelligence/codex-cli-0-147-agent-plugins-approve-for-me-mcp/" rel="noopener noreferrer"&gt;https://tgwise.com/intelligence/codex-cli-0-147-agent-plugins-approve-for-me-mcp/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>openai</category>
      <category>devtools</category>
      <category>productivity</category>
    </item>
    <item>
      <title>ChatGPT Agent Is Gone: How to Choose ChatGPT Work vs Codex</title>
      <dc:creator>Yan Gao</dc:creator>
      <pubDate>Sat, 15 Aug 2026 18:41:30 +0000</pubDate>
      <link>https://dev.to/yan_gao_3ad90a90b26925538/chatgpt-agent-is-gone-how-to-choose-chatgpt-work-vs-codex-p18</link>
      <guid>https://dev.to/yan_gao_3ad90a90b26925538/chatgpt-agent-is-gone-how-to-choose-chatgpt-work-vs-codex-p18</guid>
      <description>&lt;p&gt;ChatGPT agent is no longer available. Reinstalling the desktop app will not restore the old surface. OpenAI now separates longer non-code work, repository work, and browser authority across different tools.&lt;/p&gt;

&lt;h2&gt;
  
  
  The short answer
&lt;/h2&gt;

&lt;p&gt;Use &lt;strong&gt;ChatGPT Work&lt;/strong&gt; for research, analysis, documents, spreadsheets, presentations, reports, and Sites.&lt;/p&gt;

&lt;p&gt;Use &lt;strong&gt;Codex&lt;/strong&gt; for repository edits, tests, commands, code review, and software-development workflows.&lt;/p&gt;

&lt;p&gt;Use the &lt;strong&gt;desktop built-in browser&lt;/strong&gt; when the user can sign in and authorize specific tabs. Use the &lt;strong&gt;Codex Chrome extension&lt;/strong&gt; when the task needs an existing Chrome profile, cookies, sessions, or extensions. The cloud browser is for supported public pages and should stop at sign-in or payment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why ChatGPT agent disappeared
&lt;/h2&gt;

&lt;p&gt;This is a product transition, not a local installation failure. OpenAI's current guidance directs longer multi-step work and finished deliverables to ChatGPT Work while keeping Codex as the software-development surface.&lt;/p&gt;

&lt;p&gt;If Work is missing, check plan eligibility, staged rollout, workspace role, model availability, and organizational policy before reinstalling anything.&lt;/p&gt;

&lt;h2&gt;
  
  
  Choose by final artifact
&lt;/h2&gt;

&lt;p&gt;Ask what the workflow must produce:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A research packet, spreadsheet, presentation, report, or Site: choose ChatGPT Work.&lt;/li&gt;
&lt;li&gt;A code change, test result, patch, command log, or repository review: choose Codex.&lt;/li&gt;
&lt;li&gt;A task that must inspect an authenticated website: use a human-controlled signed-in browser surface.&lt;/li&gt;
&lt;li&gt;A public-page lookup without authentication: cloud browser may be sufficient.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The name of the old tool is less important than the destination artifact and authority boundary.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rewrite old agent prompts
&lt;/h2&gt;

&lt;p&gt;Do not simply replace the words &lt;code&gt;ChatGPT agent&lt;/code&gt; with &lt;code&gt;ChatGPT Work&lt;/code&gt;. Rewrite the task contract to name:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The approved source set.&lt;/li&gt;
&lt;li&gt;The final artifact and format.&lt;/li&gt;
&lt;li&gt;The local files, connected apps, or browser tabs allowed.&lt;/li&gt;
&lt;li&gt;Actions that require confirmation.&lt;/li&gt;
&lt;li&gt;Review criteria, retry limit, and stop condition.&lt;/li&gt;
&lt;li&gt;Evidence that proves the result outside the completion message.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This prevents an old prompt from silently carrying browser, credential, payment, or filesystem assumptions into a different execution surface.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keep browser boundaries explicit
&lt;/h2&gt;

&lt;p&gt;Cloud browser, the desktop built-in browser, the Chrome extension, connected apps, local files, and repository tools have different authority.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Do not paste passwords or payment details into a Work task.&lt;/li&gt;
&lt;li&gt;Sign in yourself on the human-controlled browser surface.&lt;/li&gt;
&lt;li&gt;Open only the minimum folder, app, or tab required.&lt;/li&gt;
&lt;li&gt;Review consequential confirmations before they run.&lt;/li&gt;
&lt;li&gt;Verify the final file and external state independently.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Migration checklist
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Classify the old task by its final artifact.&lt;/li&gt;
&lt;li&gt;Choose Work, Codex, or the appropriate browser surface.&lt;/li&gt;
&lt;li&gt;Remove obsolete assumptions about the former agent interface.&lt;/li&gt;
&lt;li&gt;Re-check plan and workspace eligibility.&lt;/li&gt;
&lt;li&gt;Name protected actions and approval gates.&lt;/li&gt;
&lt;li&gt;Run one bounded known-answer task before migrating scheduled work.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The complete source-linked transition map, browser boundaries, and operating checklist are available here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://tgwise.com/intelligence/chatgpt-agent-transitioned-to-chatgpt-work/" rel="noopener noreferrer"&gt;https://tgwise.com/intelligence/chatgpt-agent-transitioned-to-chatgpt-work/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>productivity</category>
      <category>ai</category>
      <category>chatgpt</category>
    </item>
    <item>
      <title>Claude Code Plugin Not Found: Diagnose Marketplace, Scope, or Runtime</title>
      <dc:creator>Yan Gao</dc:creator>
      <pubDate>Sat, 15 Aug 2026 17:50:53 +0000</pubDate>
      <link>https://dev.to/yan_gao_3ad90a90b26925538/claude-code-plugin-not-found-diagnose-marketplace-scope-or-runtime-19l2</link>
      <guid>https://dev.to/yan_gao_3ad90a90b26925538/claude-code-plugin-not-found-diagnose-marketplace-scope-or-runtime-19l2</guid>
      <description>&lt;p&gt;A Claude Code plugin can disappear for several different reasons, and the error message tells you which layer to inspect first. Do not start by deleting caches or reinstalling everything.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Freeze the exact error
&lt;/h2&gt;

&lt;p&gt;These messages are not interchangeable:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;marketplace not found&lt;/code&gt;: the catalog is not registered.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;plugin not found&lt;/code&gt;: the marketplace is visible, but the exact plugin identifier is absent.&lt;/li&gt;
&lt;li&gt;Installed but missing: check scope, enabled state, activation, loader errors, dependencies, and runtime paths.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/plugin&lt;/code&gt; or &lt;code&gt;/reload-plugins&lt;/code&gt; unavailable: you may be using the wrong command surface or an unsupported environment.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Record the Claude Code version, terminal or desktop surface, exact marketplace name, exact plugin identifier, intended scope, and complete redacted error.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Prove the marketplace before the plugin
&lt;/h2&gt;

&lt;p&gt;In a shell, inventory the registered catalogs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;claude plugin marketplace list
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Inside an interactive Claude Code session, the official marketplace can be added with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/plugin marketplace add anthropics/claude-plugins-official
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the named marketplace is not listed, stop at marketplace registration or policy. Installing the plugin again cannot repair an absent catalog.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Check the exact identifier and refresh boundary
&lt;/h2&gt;

&lt;p&gt;Compare the full &lt;code&gt;plugin-name@marketplace-name&lt;/code&gt; value with the Discover and Installed views.&lt;/p&gt;

&lt;p&gt;Claude Code 2.1.221 introduced one stale-catalog refresh and retry when auto-update is enabled. On older versions, or when auto-update is disabled, update the exact marketplace once:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/plugin marketplace update MARKETPLACE_NAME
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the exact identifier still is not listed, do not loop updates or switch catalogs at random.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Separate scope, activation, and loader failures
&lt;/h2&gt;

&lt;p&gt;A healthy install can still be hidden by user, project, local, or managed settings. Inspect structured state before adding another copy:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;claude plugin list --json
claude plugin details PLUGIN_NAME@MARKETPLACE_NAME
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then check whether the plugin is enabled, whether the current session needs &lt;code&gt;/reload-plugins&lt;/code&gt;, and whether the Errors tab reports a manifest, path, dependency, hook, MCP, or LSP failure.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Verify the runtime path
&lt;/h2&gt;

&lt;p&gt;A Windows host path does not automatically exist inside WSL, a Dev Container, a cloud session, or another checkout. Verify required executables and plugin paths inside the same runtime that launches Claude Code.&lt;/p&gt;

&lt;p&gt;Run one known-answer command, skill, agent, LSP action, or read-only MCP tool from the plugin. A successful install message is not the acceptance test.&lt;/p&gt;

&lt;h2&gt;
  
  
  What not to do
&lt;/h2&gt;

&lt;p&gt;Do not delete plugin caches, rewrite shared settings, copy plugin directories across environments, or remove marketplaces before the first failed gate is proven. Preserve the evidence needed to distinguish catalog, scope, activation, loader, dependency, and runtime failures.&lt;/p&gt;

&lt;p&gt;The full source-linked decision tree, commands, recovery boundaries, and official references are available here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://tgwise.com/guides/claude-code-plugin-not-found/" rel="noopener noreferrer"&gt;https://tgwise.com/guides/claude-code-plugin-not-found/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claude</category>
      <category>tutorial</category>
      <category>devtools</category>
    </item>
    <item>
      <title>Claude Code 2.1.232: Six Regression Checks That Matter</title>
      <dc:creator>Yan Gao</dc:creator>
      <pubDate>Sat, 15 Aug 2026 17:26:23 +0000</pubDate>
      <link>https://dev.to/yan_gao_3ad90a90b26925538/claude-code-21232-six-regression-checks-that-matter-4bna</link>
      <guid>https://dev.to/yan_gao_3ad90a90b26925538/claude-code-21232-six-regression-checks-that-matter-4bna</guid>
      <description>&lt;p&gt;Claude Code 2.1.232 changes more than the version number. Forked subagents now inherit the full conversation and prompt cache by default, interactive non-teammate spawns move to the background, and Windows permission bypasses were closed.&lt;/p&gt;

&lt;p&gt;That means a successful launch is not enough. Context inheritance, session routing, permissions, repository trust, MCP probes, and Remote Control recovery are separate operating boundaries.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Verify inherited context
&lt;/h2&gt;

&lt;p&gt;Spawn one child agent with a harmless task. Confirm that it sees the intended parent context and does not inherit unrelated instructions.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Verify background completion
&lt;/h2&gt;

&lt;p&gt;Start one interactive non-teammate child. Check that it moves to the background and that its final status returns to the expected parent session.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Verify session-name routing
&lt;/h2&gt;

&lt;p&gt;Resume or message a session by name. Confirm the message reaches the intended session rather than another similarly named run.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Test one allowed and one denied write on Windows
&lt;/h2&gt;

&lt;p&gt;Use a disposable fixture. Perform one harmless write inside the approved path, then attempt one write that should be denied. Both outcomes matter.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Check nested repository trust
&lt;/h2&gt;

&lt;p&gt;Open a nested repository and verify that the trust boundary is explicit. Do not assume the parent repository's approval automatically covers every nested path.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Force a recovery path
&lt;/h2&gt;

&lt;p&gt;Trigger one bounded MCP probe failure and one Remote Control resume. Confirm that tools, session state, and recovery messages remain coherent.&lt;/p&gt;

&lt;h2&gt;
  
  
  The acceptance rule
&lt;/h2&gt;

&lt;p&gt;Use one symptom, one fixture, and one changed layer. A broad end-to-end run can pass while a permission or routing regression remains hidden.&lt;/p&gt;

&lt;p&gt;The full source-linked checklist, including the official release evidence and rollback boundaries, is available here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://tgwise.com/intelligence/claude-code-2-1-232-forked-subagents-windows-permission-fixes/" rel="noopener noreferrer"&gt;https://tgwise.com/intelligence/claude-code-2-1-232-forked-subagents-windows-permission-fixes/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>productivity</category>
      <category>claude</category>
      <category>ai</category>
    </item>
    <item>
      <title>Claude Code 2.1.226 vs 2.1.225: What Actually Changed</title>
      <dc:creator>Yan Gao</dc:creator>
      <pubDate>Sat, 08 Aug 2026 15:30:45 +0000</pubDate>
      <link>https://dev.to/yan_gao_3ad90a90b26925538/claude-code-21226-vs-21225-what-actually-changed-1app</link>
      <guid>https://dev.to/yan_gao_3ad90a90b26925538/claude-code-21226-vs-21225-what-actually-changed-1app</guid>
      <description>&lt;p&gt;Claude Code 2.1.226 and 2.1.225 landed close together, but they should not be treated as equivalent upgrade events.&lt;/p&gt;

&lt;p&gt;The 2.1.226 release note is intentionally terse: it describes bug fixes and reliability improvements without listing a new workflow or user-facing capability. The concrete upgrade checks are concentrated in 2.1.225.&lt;/p&gt;

&lt;h2&gt;
  
  
  The actionable changes in 2.1.225
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. OAuth token precedence
&lt;/h3&gt;

&lt;p&gt;Claude Code fixed refresh-token precedence when a long-lived &lt;code&gt;CLAUDE_CODE_OAUTH_TOKEN&lt;/code&gt; is configured.&lt;/p&gt;

&lt;p&gt;Why it matters: a valid long-lived token should not be displaced by a stale or unintended refresh path. Teams that inject credentials through CI, remote workspaces, or managed shells should re-test authentication after upgrading.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Workspace trust for &lt;code&gt;claude agents&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Running &lt;code&gt;claude agents&lt;/code&gt; now prompts for workspace trust before it loads project-scoped agent definitions.&lt;/p&gt;

&lt;p&gt;Why it matters: project configuration is executable influence. Trust must be decided before local instructions or agent definitions are accepted, not after.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. MCP OAuth 401 recovery on macOS
&lt;/h3&gt;

&lt;p&gt;The release fixes an MCP OAuth failure path caused by a Keychain read timeout that could surface as a 401.&lt;/p&gt;

&lt;p&gt;Why it matters: if an MCP connector suddenly appears unauthorized even though the account is valid, the problem may be local credential retrieval rather than the remote service.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Remote Control recovery
&lt;/h3&gt;

&lt;p&gt;Remote Control can resume more reliably after manual compaction.&lt;/p&gt;

&lt;p&gt;Why it matters: long sessions frequently compact at the exact point where remote continuity matters. A release is only useful if the remote session remains recoverable after context maintenance.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Safer SendMessage routing
&lt;/h3&gt;

&lt;p&gt;SendMessage behavior was tightened for named Remote Control sessions, including same-name safety.&lt;/p&gt;

&lt;p&gt;Why it matters: a readable session name is not a unique identifier. Workflows that address multiple sessions should verify routing instead of assuming names cannot collide.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Gateway spend-limit warnings
&lt;/h3&gt;

&lt;p&gt;Gateway users receive clearer spend-limit warnings.&lt;/p&gt;

&lt;p&gt;Why it matters: an authentication-looking failure can actually be a quota or spend-limit condition. Operational checks should distinguish credentials, transport, provider status, and billing limits.&lt;/p&gt;

&lt;h2&gt;
  
  
  A practical upgrade acceptance test
&lt;/h2&gt;

&lt;p&gt;Do not stop at &lt;code&gt;claude --version&lt;/code&gt;. Run a small acceptance set:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Confirm the installed version in the same shell and runtime used for real work.&lt;/li&gt;
&lt;li&gt;Test the configured OAuth token path in a fresh session.&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;claude agents&lt;/code&gt; inside a project that has local agent definitions and verify the trust prompt appears before those definitions are loaded.&lt;/li&gt;
&lt;li&gt;Reconnect one MCP OAuth integration on macOS and confirm that an old 401 does not reproduce.&lt;/li&gt;
&lt;li&gt;Start a Remote Control session, compact manually, and verify that the session resumes.&lt;/li&gt;
&lt;li&gt;If you use SendMessage, test two similarly named sessions and confirm messages reach the intended target.&lt;/li&gt;
&lt;li&gt;For gateway deployments, simulate or inspect a spend-limit condition and confirm it is reported distinctly from authentication failure.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This separates "the package updated" from "the workflow still works."&lt;/p&gt;

&lt;h2&gt;
  
  
  Primary sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/anthropics/claude-code/releases/tag/v2.1.226" rel="noopener noreferrer"&gt;Claude Code v2.1.226 release&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/anthropics/claude-code/releases/tag/v2.1.225" rel="noopener noreferrer"&gt;Claude Code v2.1.225 release&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://code.claude.com/docs/en/changelog" rel="noopener noreferrer"&gt;Official Claude Code changelog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A source-mapped version of this diagnostic, including the upgrade checks, is maintained at &lt;a href="https://tgwise.com/intelligence/claude-code-2-1-226-2-1-225-oauth-workspace-trust-remote-control/" rel="noopener noreferrer"&gt;TGWise Agent Lab&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure: I maintain TGWise Agent Lab. The linked page is an editorial diagnostic based on the official release notes; it is not affiliated with Anthropic.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claudecode</category>
      <category>devtools</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Fix Codex default_permissions Without Disabling the Sandbox</title>
      <dc:creator>Yan Gao</dc:creator>
      <pubDate>Fri, 07 Aug 2026 09:35:08 +0000</pubDate>
      <link>https://dev.to/yan_gao_3ad90a90b26925538/fix-codex-defaultpermissions-without-disabling-the-sandbox-1bcp</link>
      <guid>https://dev.to/yan_gao_3ad90a90b26925538/fix-codex-defaultpermissions-without-disabling-the-sandbox-1bcp</guid>
      <description>&lt;p&gt;The Codex error saying that permission profiles exist without &lt;code&gt;default_permissions&lt;/code&gt; is not a request to disable safety. It means the effective configuration contains profile definitions but does not select a default profile.&lt;/p&gt;

&lt;p&gt;The fastest fix is to decide which configuration model the run should use.&lt;/p&gt;

&lt;h2&gt;
  
  
  Path 1: keep the legacy sandbox model
&lt;/h2&gt;

&lt;p&gt;Use this path when the run already relies on &lt;code&gt;sandbox_mode&lt;/code&gt;, &lt;code&gt;approval_policy&lt;/code&gt;, or &lt;code&gt;[sandbox_workspace_write]&lt;/code&gt; settings.&lt;/p&gt;

&lt;p&gt;Keep those settings together and remove unused &lt;code&gt;[permissions.*]&lt;/code&gt; blocks. An explicit &lt;code&gt;--sandbox&lt;/code&gt; flag also selects this model for the run.&lt;/p&gt;

&lt;h2&gt;
  
  
  Path 2: use permission profiles
&lt;/h2&gt;

&lt;p&gt;Use this path when you want a built-in or named profile. Remove loaded legacy &lt;code&gt;sandbox_mode&lt;/code&gt; settings, set &lt;code&gt;default_permissions&lt;/code&gt;, and provide the matching profile block.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight toml"&gt;&lt;code&gt;&lt;span class="py"&gt;default_permissions&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"project-edit"&lt;/span&gt;

&lt;span class="nn"&gt;[permissions.project-edit]&lt;/span&gt;
&lt;span class="py"&gt;extends&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;":workspace"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Start from a bounded profile. Add filesystem or network exceptions only after the task proves it needs them.&lt;/p&gt;

&lt;h2&gt;
  
  
  No-prompt mode is not full access
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;approval_policy = "never"&lt;/code&gt; suppresses approval prompts. It does not widen the selected sandbox or permission profile. A workspace-bounded run remains workspace-bounded.&lt;/p&gt;

&lt;p&gt;This distinction matters for unattended work. Removing prompts can make a bounded workflow repeatable, but it is not a substitute for defining the boundary.&lt;/p&gt;

&lt;h2&gt;
  
  
  Verify the effective run
&lt;/h2&gt;

&lt;p&gt;Do not trust one TOML file in isolation. Record the Codex version, inspect every loaded config layer, resolve the named profile from the intended project root, and test write and network behavior with harmless operations.&lt;/p&gt;

&lt;p&gt;A bounded profile-resolution probe on Windows is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;codex&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;sandbox&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-P&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;project-edit&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-C&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\absolute\project\path&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;powershell&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-NoProfile&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Command&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Get-Location"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This proves the profile name resolves. It does not prove write or network behavior, so test those separately.&lt;/p&gt;

&lt;p&gt;The complete decision table, Windows sandbox guidance, failure signatures, and six-step boundary checklist are in the canonical TGWise guide:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://tgwise.com/guides/codex-windows-permissions/" rel="noopener noreferrer"&gt;https://tgwise.com/guides/codex-windows-permissions/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Disclosure: I maintain TGWise Agent Lab.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>security</category>
      <category>tutorial</category>
      <category>openai</category>
    </item>
    <item>
      <title>Why Claude Code Ignores CLAUDE.md: Loading, Adherence, and Enforcement</title>
      <dc:creator>Yan Gao</dc:creator>
      <pubDate>Fri, 07 Aug 2026 06:34:14 +0000</pubDate>
      <link>https://dev.to/yan_gao_3ad90a90b26925538/why-claude-code-ignores-claudemd-loading-adherence-and-enforcement-3b95</link>
      <guid>https://dev.to/yan_gao_3ad90a90b26925538/why-claude-code-ignores-claudemd-loading-adherence-and-enforcement-3b95</guid>
      <description>&lt;p&gt;When Claude Code appears to ignore &lt;code&gt;CLAUDE.md&lt;/code&gt;, rewriting the file is often the wrong first move.&lt;/p&gt;

&lt;p&gt;The symptom can come from three different layers:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The instruction never entered the active session.&lt;/li&gt;
&lt;li&gt;The instruction loaded, but the model did not follow it in the task.&lt;/li&gt;
&lt;li&gt;The instruction describes an outcome that should have been enforced outside the model.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These layers need different fixes.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Prove the file loaded
&lt;/h2&gt;

&lt;p&gt;Run &lt;code&gt;/context&lt;/code&gt; and inspect the Memory files section. If the intended &lt;code&gt;CLAUDE.md&lt;/code&gt; is absent, investigate the working directory, filename, exclusions, nested scope, and active settings sources.&lt;/p&gt;

&lt;p&gt;Do not strengthen the wording of a file that is not in context.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Check scope and conflicts
&lt;/h2&gt;

&lt;p&gt;A loaded instruction can still be irrelevant to the current path or conflict with user, project, nested, or path-scoped instructions.&lt;/p&gt;

&lt;p&gt;Replace vague rules with observable behavior. A useful rule names:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;when it applies;&lt;/li&gt;
&lt;li&gt;the action to take;&lt;/li&gt;
&lt;li&gt;the artifact or command that proves completion; and&lt;/li&gt;
&lt;li&gt;the condition that blocks completion.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, "follow our API standards" is difficult to verify. "When editing &lt;code&gt;src/api/**&lt;/code&gt;, run &lt;code&gt;npm run test:api&lt;/code&gt; and report the failing test if it does not pass" is testable.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Test behavior instead of recall
&lt;/h2&gt;

&lt;p&gt;Do not ask the model whether it read the file. Correctly repeating a rule proves recall, not compliance.&lt;/p&gt;

&lt;p&gt;Run one bounded task where the rule creates a visible difference. Inspect the diff, command output, or generated artifact outside the chat. If the result matters, repeat the task in a fresh session.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Move critical boundaries out of prose
&lt;/h2&gt;

&lt;p&gt;If a failure must never occur, &lt;code&gt;CLAUDE.md&lt;/code&gt; should explain the boundary but should not be its only control.&lt;/p&gt;

&lt;p&gt;Use the mechanism that can reject the bad outcome:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;permissions or a sandbox for access boundaries;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;PreToolUse&lt;/code&gt; hooks for command checks;&lt;/li&gt;
&lt;li&gt;formatters and linters for deterministic style;&lt;/li&gt;
&lt;li&gt;tests for behavior;&lt;/li&gt;
&lt;li&gt;CI for release gates; and&lt;/li&gt;
&lt;li&gt;human approval for irreversible external actions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The practical rule is simple: use instructions for orientation and use tooling for enforcement.&lt;/p&gt;

&lt;p&gt;The complete six-step diagnostic, current Anthropic sources, compaction checks, and a local decision tool are available in the original TGWise guide:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://tgwise.com/guides/claude-code-ignoring-claude-md/" rel="noopener noreferrer"&gt;https://tgwise.com/guides/claude-code-ignoring-claude-md/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Disclosure: I maintain TGWise Agent Lab.&lt;/p&gt;

</description>
      <category>claude</category>
      <category>ai</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
