<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>技述 — JS.GRIPE</title><link>https://blog.js.gripe/</link><description>Independent development, curious experiments and open-source collaboration, with AI as a tool for exploration.</description><language>en</language><lastBuildDate>Tue, 10 Nov 2026 14:49:00 GMT</lastBuildDate><atom:link href="https://blog.js.gripe/rss.xml" rel="self" type="application/rss+xml"/><item><title>Dangerous Convictions: When the AI Boom Becomes a Way of Explaining the World</title><link>https://blog.js.gripe/2026/11/dangerous-cognition-ai-bubble-wealth/</link><guid isPermaLink="true">https://blog.js.gripe/2026/11/dangerous-cognition-ai-bubble-wealth/</guid><pubDate>Tue, 10 Nov 2026 14:49:00 GMT</pubDate><dc:date>2026-11-10T14:49:00.000Z</dc:date><dc:creator>toewpq</dc:creator><dc:language>en</dc:language><description>From AI breakthroughs and machine-to-machine transactions to wages, household purchasing power, concentrated wealth and the evidence behind narratives of economic prosperity.</description><category>blog</category><category>AI Bubble</category><category>Economics</category><category>Labor</category><category>Consumption</category><category>Wealth Distribution</category><category>Evidence</category><content:encoded>&lt;p&gt;In my previous essay, &lt;a href=&quot;https://js.gripe/en/2026/10/language-answers-data-poisoning-geo-evidence/&quot; rel=&quot;noopener noreferrer&quot;&gt;When Language Changes the Answer: Data Poisoning, GEO, and the Limits of LLM Judgment&lt;/a&gt;, I examined how language models are shaped by their information environments, training data, and retrieved sources.&lt;/p&gt;
&lt;p&gt;I ended with a question: when a model has access to enormous amounts of information, can it distinguish reliable evidence from repeated versions of the same claim? And when new evidence contradicts an earlier conclusion, can the model revise its judgment?&lt;/p&gt;
&lt;p&gt;This is not just a question about artificial intelligence.&lt;/p&gt;
&lt;p&gt;People also live within information environments shaped by language, media, history, and social relationships. We reason from the evidence available to us, but we also experience risks, interests, and fairness emotionally. Someone can think seriously about a question and still reach a different conclusion because they have different information or interpret causation differently.&lt;/p&gt;
&lt;p&gt;When the subject shifts from historical facts to wealth distribution, employment, and technological progress, differences in judgment can also influence real economic and political behavior.&lt;/p&gt;
&lt;p&gt;The recent debate over an AI bubble has brought this question back to my attention.&lt;/p&gt;
&lt;h2&gt;What does AI prosperity actually mean?&lt;/h2&gt;
&lt;p&gt;On November 9, 2026, Anthropic &lt;a href=&quot;https://www.anthropic.com/claude-fable-and-mythos-5-2&quot; rel=&quot;noopener noreferrer&quot;&gt;introduced Claude Fable 5.2&lt;/a&gt;. Engineer Felix Rieseberg subsequently showcased &lt;a href=&quot;https://claude.ai/artifact/BGY1SztrAYcJQHSsnHHGmp&quot; rel=&quot;noopener noreferrer&quot;&gt;Saltline&lt;/a&gt;, a browser-based shooter created by the model.&lt;/p&gt;
&lt;p&gt;According to the developer&apos;s public account, the model worked for roughly eight hours without human feedback during the run. At API list prices, development cost was estimated at about $550. It processed approximately 445 million input tokens, many of them cached, and produced around 2.7 million output tokens.&lt;/p&gt;
&lt;p&gt;That is a noteworthy technical experiment. A game prototype that might previously have required coordination among programmers, artists, and sound designers can now have a substantial part of its production handled by a model.&lt;/p&gt;
&lt;p&gt;But the experiment also reveals a second issue.&lt;/p&gt;
&lt;p&gt;The developer obtained a game by relying on a remotely hosted model. The process still required cloud computation, servers, electricity, and the continued operation of a provider.&lt;/p&gt;
&lt;p&gt;Once the game is finished, independently saved source code and assets may allow it to run without the original model. If essential features rely on remote services, a network outage or the provider&apos;s withdrawal may affect the game. AI changes how software is produced; it does not eliminate the resources needed to produce it. Some costs move from human development time to model inference, infrastructure, and maintenance.&lt;/p&gt;
&lt;p&gt;Open-weight models illustrate another part of the transition.&lt;/p&gt;
&lt;p&gt;Kimi K3, released in 2026 with approximately 2.8 trillion parameters, inspired community experiments including &lt;a href=&quot;https://github.com/FareedKhan-dev/kimi-k3-in-c&quot; rel=&quot;noopener noreferrer&quot;&gt;kimi-k3-in-c&lt;/a&gt;. That project explores disk-streamed weights, lower-precision representations, and cache management to run a very large model without a GPU.&lt;/p&gt;
&lt;p&gt;One performance record reports:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;8 tokens in 261.5 s&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The same test reported peak RAM usage of about 8.24 GB, but the full weights still occupied roughly 1.56 TB of storage, with additional space needed for prepared data. A low RAM figure does not mean that a typical laptop can run a trillion-parameter model interactively.&lt;/p&gt;
&lt;p&gt;What makes the experiment interesting is the community&apos;s ability to investigate different resource trade-offs. Open weights give developers opportunities to study and improve deployment without binding every use to the original company&apos;s online API.&lt;/p&gt;
&lt;p&gt;These are real technical advances. They do not, by themselves, establish how much profit firms will earn.&lt;/p&gt;
&lt;p&gt;An automatically produced game still needs an audience willing to pay for it. A model that can technically run locally still needs hardware with adequate storage and processing performance. The economic value lies in work accomplished, actual costs reduced, and useful results that people can continue to use.&lt;/p&gt;
&lt;p&gt;That distinction matters when financial markets continually raise their expectations for future earnings.&lt;/p&gt;
&lt;p&gt;In its &lt;a href=&quot;https://www.imf.org/en/Publications/GFSR/Issues/2026/10/13/global-financial-stability-report-october-2026&quot; rel=&quot;noopener noreferrer&quot;&gt;October 2026 Global Financial Stability Report&lt;/a&gt;, the International Monetary Fund warned that AI investment and profits falling short of expectations could trigger market adjustments amplified by leverage and concentrated holdings.&lt;/p&gt;
&lt;p&gt;A technology may transform production while some infrastructure built around it turns out to have been overinvested in.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Whether AI works technically, whether firms generate sustainable profits, and whether society receives commensurate benefits are three different economic outcomes to evaluate.&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;When machines increasingly use what other machines produce&lt;/h2&gt;
&lt;p&gt;Something is changing on the internet.&lt;/p&gt;
&lt;p&gt;AI can generate articles, images, code, video, and product descriptions. Crawlers and AI agents can then ingest those materials and turn them into summaries, recommendations, or yet more generated content.&lt;/p&gt;
&lt;p&gt;Machines can also execute payments.&lt;/p&gt;
&lt;p&gt;In July 2026, Visa and Artemis published &lt;a href=&quot;https://www.visa.com/en-us/thought-leadership/innovation/agentic-payments-from-the-ground-up&quot; rel=&quot;noopener noreferrer&quot;&gt;Agentic Payments from the Ground Up&lt;/a&gt;, examining real transactions involving software agents.&lt;/p&gt;
&lt;p&gt;The report identified approximately 109.6 million transactions through the x402 payment protocol since its launch in May 2025, with about $15 million in adjusted transaction value.&lt;/p&gt;
&lt;p&gt;Visa described one category as:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;payments that one piece of software makes to another&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Machine-to-machine payments are no longer merely a proposed future capability. But executing a payment does not mean that software has independently created purchasing power outside human economic activity.&lt;/p&gt;
&lt;p&gt;When an agent books a plane ticket for someone, the money comes from the traveler&apos;s budget. When an agent buys API calls or computation for a firm, the money comes from that firm&apos;s operating funds. A machine executes the transaction; a person or institution with resources and a purpose ultimately bears its cost.&lt;/p&gt;
&lt;p&gt;A hundred million automated payments are therefore not a hundred million new instances of independent human consumer demand.&lt;/p&gt;
&lt;p&gt;Consider content produced by one company&apos;s AI, read by a second company&apos;s AI, and then rewritten by a third service. This activity creates calls, usage records, and expenses. The important question is what it ultimately does for people.&lt;/p&gt;
&lt;p&gt;If the articles convey useful knowledge, the software accomplishes a real task, or automation cuts business costs, the source of value is intelligible. If content exists chiefly to attract bot traffic and is repeatedly crawled and republished, growing volumes and requests cannot be treated as proportionate growth in social welfare.&lt;/p&gt;
&lt;p&gt;That takes me back to generative engine optimization, or GEO, which I discussed in the previous essay. As content providers compete to be cited by AI search systems, their incentives change.&lt;/p&gt;
&lt;p&gt;A document being cited by an AI does not prove it has been fact-checked. Thousands of crawler visits do not establish that thousands of people have read and benefited from an article.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;As machines increasingly produce, read, and purchase digital services, we need to follow who ultimately pays and who actually benefits.&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;When companies save on labor, what happens to people&apos;s income?&lt;/h2&gt;
&lt;p&gt;If we discuss only transactions among AI companies, we remain inside the technology sector. I care more about what is happening to ordinary economic lives.&lt;/p&gt;
&lt;p&gt;In September 2026, the US Census Bureau published &lt;a href=&quot;https://www.census.gov/library/working-papers/2026/adrm/CES-WP-26-56.html&quot; rel=&quot;noopener noreferrer&quot;&gt;Graduating into Disruption: Labor Market Outcomes for AI-Exposed College Majors&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Using administrative employment and earnings records for college graduates, the researchers compared fields of study with different exposure to generative AI. After statistical adjustments, graduates in the 10 percent most-exposed majors had about a five-percentage-point lower probability of securing their first job and about 13 percent lower earnings in their initial complete quarter of employment.&lt;/p&gt;
&lt;p&gt;The abstract states:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;full-quarter initial earnings declined by thirteen percent&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The study also found that about half the earnings decline reflected lower earnings within affected industries, while the rest was associated with graduates moving toward lower-paying sectors such as food service and retail.&lt;/p&gt;
&lt;p&gt;This is evidence about differences in outcomes among fields with different AI exposure. It does not establish that every observed change was caused by AI substitution. It does, however, connect technological change to actual earnings and employment experiences of some young people.&lt;/p&gt;
&lt;p&gt;Another study sheds light on hiring.&lt;/p&gt;
&lt;p&gt;In August 2026, Stanford&apos;s Digital Economy Lab updated &lt;a href=&quot;https://digitaleconomy.stanford.edu/news/canariesaug26/&quot; rel=&quot;noopener noreferrer&quot;&gt;Canaries in the Coal Mine? Six Facts about the Recent Employment Effects of Artificial Intelligence&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Using ADP payroll data covering millions of US workers, the study found that employment among workers aged 22 to 25 in highly AI-exposed occupations was about 19 percent below the level implied by the employment trend for same-age workers in less-exposed occupations.&lt;/p&gt;
&lt;p&gt;The authors emphasized that this change was driven primarily by hiring, not a wave of departures among existing employees:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;reduced hiring of young workers rather than increased separations&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is a development that aggregate unemployment figures can easily obscure.&lt;/p&gt;
&lt;p&gt;When a firm stops recruiting junior programmers, design assistants, or copywriters, current employees may keep their jobs. The national unemployment rate need not move noticeably at once. But an entry point has disappeared for someone who was preparing to join that profession.&lt;/p&gt;
&lt;p&gt;A graduate may have spent years studying and still need to start in a lower-paying job or spend longer searching. Meanwhile, rent, transport, food, and other everyday bills do not disappear while that person searches for suitable work.&lt;/p&gt;
&lt;p&gt;We cannot turn the reported earnings differential directly into a percentage fall in household consumption. But the household budget constraint is real. When income falls, people must cut spending, draw on savings, seek help from family, or borrow to maintain their living standards.&lt;/p&gt;
&lt;p&gt;After essential spending, travel, cultural activities, electronics, software subscriptions, and personal education may have to be reconsidered. The effects extend beyond the worker to businesses that rely on ordinary customers buying their products.&lt;/p&gt;
&lt;p&gt;That is why the employment impact of AI cannot be measured only by the labor costs saved by employers.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Making a task cheaper does not mean the person who formerly earned a living doing it has already found a replacement source of income.&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;Who can keep paying for AI?&lt;/h2&gt;
&lt;p&gt;AI companies naturally want more people to buy their services. But consumers&apos; ability to pay does not automatically rise when models become more capable.&lt;/p&gt;
&lt;p&gt;In October 2026, the National Bureau of Economic Research released &lt;a href=&quot;https://www.nber.org/papers/w35953&quot; rel=&quot;noopener noreferrer&quot;&gt;Competition in Generative AI: Evidence from Consumer Demand&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Using roughly 114 billion card transactions covering approximately 174 million consumers, the researchers examined actual spending on leading generative AI services in the United States.&lt;/p&gt;
&lt;p&gt;By April 2026, they estimated that roughly 2.9 percent of American consumers paid for at least one major generative AI service. The overwhelming majority of paying customers used basic plans priced at $30 per month or less, while annual customer retention across major providers was around 20 to 45 percent.&lt;/p&gt;
&lt;p&gt;The study covers a particular paid consumer market. It does not include every free user, business contract, or indirect benefit of AI. Still, it makes a clear point: increasing model capability and sustained household willingness to pay are not the same variable.&lt;/p&gt;
&lt;p&gt;People buy an AI subscription only after considering what it does for them and what else they need to pay for. A wage-earning household must balance an AI subscription against groceries, rent, savings, and family expenses.&lt;/p&gt;
&lt;p&gt;This creates a central tension in the AI economy.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Companies have growing opportunities to reduce human labor requirements, but the ability of ordinary people to purchase the resulting products still depends on the income available to them.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Consumption does not come entirely from wages. Business investment, public spending, capital income, and international trade also create demand. But labor earnings remain an important source of purchasing power for many households.&lt;/p&gt;
&lt;p&gt;If automation reduces the income of some workers while a larger share of its gains flows to asset owners, that distribution can change household consumption patterns and market demand.&lt;/p&gt;
&lt;p&gt;Making goods easy to produce does not automatically produce buyers for them.&lt;/p&gt;
&lt;h2&gt;When AI companies become each other&apos;s important customers&lt;/h2&gt;
&lt;p&gt;In October 2026, the Bank for International Settlements published &lt;a href=&quot;https://www.bis.org/publications/bulletin-137-circular-relationships-among-ai-firms&quot; rel=&quot;noopener noreferrer&quot;&gt;Circular relationships among AI firms&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It found that 55.2 percent of the investment value flowing to AI firms during 2021–2025 came from other AI firms. Of investment transactions between AI companies, 46.4 percent by value also involved a commercial supply relationship between the investor and investee.&lt;/p&gt;
&lt;p&gt;The researchers warned of greater opacity and potential macro-financial risks.&lt;/p&gt;
&lt;p&gt;A concrete example is CoreWeave&apos;s cloud-capacity arrangement with NVIDIA, initially valued at $6.3 billion in September 2025.&lt;/p&gt;
&lt;p&gt;In a &lt;a href=&quot;https://www.sec.gov/Archives/edgar/data/1769628/000176962825000047/crwv-20250909.htm&quot; rel=&quot;noopener noreferrer&quot;&gt;Form 8-K filed with the US Securities and Exchange Commission&lt;/a&gt;, CoreWeave described NVIDIA&apos;s obligation, subject to agreed conditions, to purchase computing capacity not sold to other customers.&lt;/p&gt;
&lt;p&gt;The filing uses the phrase:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;residual unsold cloud computing capacity&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That arrangement provides a measure of sales protection and further connects the two companies&apos; commercial interests. But a supplier&apos;s promise to buy residual capacity is not evidence that an equivalent amount has already been bought by independent end customers.&lt;/p&gt;
&lt;p&gt;When a model company uses investor funds to purchase cloud services, and a cloud provider expands a data center against expected orders, sustainable activity ultimately requires sufficient customer revenue or other dependable sources of cash.&lt;/p&gt;
&lt;p&gt;That is a central economic question behind concerns about an AI bubble.&lt;/p&gt;
&lt;p&gt;Large investments can accelerate development, construction, equipment purchases, and employment. Yet if lasting demand does not support operations, the expected return on those investments may fail to materialize.&lt;/p&gt;
&lt;p&gt;The consequences would extend beyond stock markets. Data centers use land, electricity, servers, cooling equipment, construction labor, and ongoing maintenance. If financing pressures lead to project cancellations, equipment suppliers, builders, energy providers, and local workers can all be affected.&lt;/p&gt;
&lt;p&gt;An assessment of whether the boom can last must therefore follow real cash flow and final demand, rather than only the orders circulating inside the industry.&lt;/p&gt;
&lt;h2&gt;How does concentrated wealth shape people&apos;s understanding of the economy?&lt;/h2&gt;
&lt;p&gt;That brings me back to Marx&apos;s &lt;em&gt;Capital&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;In discussing accumulation, Marx was concerned not only with how much wealth a society could produce, but also with who owned the means of production and how accumulation changed relations between workers and capital owners.&lt;/p&gt;
&lt;p&gt;In the AI era, advanced models, chips, data centers, and platform networks are becoming important productive assets.&lt;/p&gt;
&lt;p&gt;The firms that own them can earn revenue from computing services, software licensing, and other businesses. Many ordinary workers, by contrast, depend chiefly on wages, self-employment income, and limited savings.&lt;/p&gt;
&lt;p&gt;In 2025, the IMF published &lt;a href=&quot;https://www.imf.org/en/publications/wp/issues/2025/04/04/ai-adoption-and-inequality-565729&quot; rel=&quot;noopener noreferrer&quot;&gt;AI Adoption and Inequality&lt;/a&gt;, using household microdata and an economic model to examine distributional effects.&lt;/p&gt;
&lt;p&gt;The researchers found that AI could displace some highly paid jobs and alter wage inequality, while higher capital returns could benefit wealthier asset-owning households and widen wealth inequality.&lt;/p&gt;
&lt;p&gt;This is a modeling result, not a measurement of an already completed global transformation. It nevertheless raises a specific question: will productivity gains consistently reach workers through real earnings?&lt;/p&gt;
&lt;p&gt;In October 2026, the International Labour Organization&apos;s &lt;a href=&quot;https://www.ilo.org/resource/statement/making-productivity-growth-work-people&quot; rel=&quot;noopener noreferrer&quot;&gt;Making productivity growth work for people&lt;/a&gt; also discussed the persistent gap between productivity gains and workers&apos; incomes, particularly in lower-income countries.&lt;/p&gt;
&lt;p&gt;Technology alone does not decide how its benefits are distributed.&lt;/p&gt;
&lt;p&gt;Concentrated wealth is therefore not merely an abstract question of fairness; it bears on the economic lives of ordinary people. When some workers see slower earnings growth while asset returns continue to expand, their dissatisfaction with economic institutions may arise from real experience.&lt;/p&gt;
&lt;p&gt;To explain why wealth gaps emerge, however, we still need evidence about innovation, invested capital, market competition, inheritance, monopoly power, and institutions.&lt;/p&gt;
&lt;p&gt;In March 2026, the &lt;em&gt;American Economic Review&lt;/em&gt; published &lt;a href=&quot;https://www.aeaweb.org/articles?id=10.1257/aer.20240692&quot; rel=&quot;noopener noreferrer&quot;&gt;Zero-Sum Thinking and the Roots of US Political Differences&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Surveying 20,400 US residents, the authors found a significant association between zero-sum thinking and support for policies including government redistribution, as well as a relationship to experiences of social mobility within families.&lt;/p&gt;
&lt;p&gt;Zero-sum thinking here refers to the tendency to believe that one person&apos;s gain must come at another person&apos;s cost.&lt;/p&gt;
&lt;p&gt;The research does not show that people who favor redistribution are irrational, or that their views inevitably lead to radical political action. It shows something more useful: &lt;strong&gt;how people understand the creation of wealth is connected to their beliefs about how it should be distributed.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Someone who has worked hard without being able to improve their living standards may reasonably conclude that existing institutions restrict opportunity and call for reform.&lt;/p&gt;
&lt;p&gt;The deeper problem emerges when dissatisfaction is turned into an assumption that all the wealth of an entire group must have come from depriving others. Complex economic relationships then become a simple judgment about social identity.&lt;/p&gt;
&lt;p&gt;History offers concrete examples of that transformation.&lt;/p&gt;
&lt;h2&gt;The Ruijin land revolution: When economic explanations became action&lt;/h2&gt;
&lt;p&gt;The Central Soviet Area in southern Jiangxi and western Fujian between 1929 and 1934, especially the 1933 land investigation campaign around Ruijin, offers a case for study.&lt;/p&gt;
&lt;p&gt;This history predates the founding of the People&apos;s Republic of China in 1949. It cannot be understood simply by importing the later history of land reform.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://zh.wikisource.org/zh-hans/%E4%B8%AD%E8%8F%AF%E8%98%87%E7%B6%AD%E5%9F%83%E5%85%B1%E5%92%8C%E5%9C%8B%E5%9C%9F%E5%9C%B0%E6%B3%95%E4%BB%A4&quot; rel=&quot;noopener noreferrer&quot;&gt;Land Decree of the Chinese Soviet Republic&lt;/a&gt;, dated December 1, 1931, provided for the uncompensated confiscation of designated land and redistribution of land and associated productive assets.&lt;/p&gt;
&lt;p&gt;Land distribution involved real economic interests. For landless and land-poor peasants, receiving land offered an important productive resource and an opportunity to improve family life.&lt;/p&gt;
&lt;p&gt;But as class status took on a political role, landholdings began to affect people&apos;s positions within social and political organizations.&lt;/p&gt;
&lt;p&gt;A 1933 &lt;a href=&quot;https://marxists.architexturez.net/chinese/maozedong/1968/1-072.htm&quot; rel=&quot;noopener noreferrer&quot;&gt;Preliminary Summary of the Land Investigation Campaign&lt;/a&gt; recorded that the Rentian district of Ruijin identified 300 landlord and rich-peasant households over 55 days. The report also records the execution of 12 people labeled counterrevolutionaries.&lt;/p&gt;
&lt;p&gt;According to the same report, ten mass trial meetings and three traveling court activities took place there.&lt;/p&gt;
&lt;p&gt;These numbers come from the campaign organizers&apos; own account and remain subject to corroboration against other archives. But the report itself documents that property redistribution was carried out alongside class investigations, mass trials, and penalties against individuals.&lt;/p&gt;
&lt;p&gt;In &lt;a href=&quot;https://www.aisixiang.com/data/98990.html&quot; rel=&quot;noopener noreferrer&quot;&gt;The Soviet Revolution and Local Society: Reexamining the Origins of the Land Investigation Campaign&lt;/a&gt;, Meng Qingyan uses local records, lineage materials, and recollections to examine the interplay of the Ruijin campaign and existing social conflicts.&lt;/p&gt;
&lt;p&gt;His research indicates that land investigations did not take place in a rural society without internal divisions. Lineage relations, changes in local officials, competing interests, and political mobilization interacted, allowing class classifications to play a role in reorganizing local power.&lt;/p&gt;
&lt;p&gt;The historical record also needs evidence preserved by the Nationalist government and its military in Taiwan.&lt;/p&gt;
&lt;p&gt;Materials published by Taiwan&apos;s National Archives Administration under &lt;a href=&quot;https://art.archives.gov.tw/tw/art/1924-14700.html&quot; rel=&quot;noopener noreferrer&quot;&gt;Economic Measures During the Anti-Communist Campaigns&lt;/a&gt; describe the Nanchang headquarters&apos; measures in 1933–1934, including sending harvesting teams into blockaded Soviet-controlled areas to cut and remove rice.&lt;/p&gt;
&lt;p&gt;One archival phrase is:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;掩護割禾隊搶割稻禾&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That is, providing cover for harvesting teams to seize and cut rice crops.&lt;/p&gt;
&lt;p&gt;This confirms that military seizure of grain and economic blockade were additional sources of hardship for the region. It would be inaccurate to attribute all agricultural difficulties around Ruijin to the Soviet authorities&apos; land policy. The existence of the blockade, however, does not erase the recorded human suffering caused by class classification and political purges.&lt;/p&gt;
&lt;p&gt;Each source has to be used for what it actually establishes.&lt;/p&gt;
&lt;p&gt;When a person&apos;s economic identity becomes a basis for deciding property rights, political status, or even personal safety, redistribution is no longer merely a change in how land is allocated.&lt;/p&gt;
&lt;p&gt;The history reminds me that economic dissatisfaction may be grounded in genuine interests. But when a theory of where wealth comes from is used as justification to punish an entire identity group, the consequences extend far beyond the initial distribution problem.&lt;/p&gt;
&lt;h2&gt;What if the people who make the next cake disappear?&lt;/h2&gt;
&lt;p&gt;I want to return to the distribution problem through a simple metaphor.&lt;/p&gt;
&lt;p&gt;Society already has a cake. Some people consider the division unfair and want to divide it differently.&lt;/p&gt;
&lt;p&gt;But somebody must still make the next cake. Doing so requires ingredients, equipment, technology, labor, coordination, and investment.&lt;/p&gt;
&lt;p&gt;In an agricultural society, landowners are not necessarily the people doing the farming. Tenants, hired laborers, owner-farmers, and managers may all contribute. In a modern firm, shareholders, engineers, managers, and employees perform different economic functions.&lt;/p&gt;
&lt;p&gt;Changing the ownership of assets does not automatically erase productive capacity.&lt;/p&gt;
&lt;p&gt;The key questions are whether assets continue to be used effectively, workers have stable incomes, managers and investors have reasons to continue producing, and society preserves the knowledge and organizational capabilities needed to create more wealth.&lt;/p&gt;
&lt;p&gt;We have empirical evidence of how expectations about ownership can influence production.&lt;/p&gt;
&lt;p&gt;In 2017, Shuo Chen and Xiaohuan Lan published &lt;a href=&quot;https://www.aeaweb.org/articles?id=10.1257/app.20160247&quot; rel=&quot;noopener noreferrer&quot;&gt;There Will Be Killing: Collectivization and Death of Draft Animals&lt;/a&gt; in the &lt;em&gt;American Economic Journal: Applied Economics&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Using variation in the timing of collectivization across roughly 1,600 Chinese counties between 1955 and 1957, they estimated that expectations of property transfer contributed to losses of about 12–15 percent of draft animals, reducing grain output by about 7 percent through lower animal inputs and productivity.&lt;/p&gt;
&lt;p&gt;This happened in the mid-1950s, not during the 1933 land investigation campaign in Ruijin. The estimates cannot be transplanted into a calculation of Ruijin&apos;s losses.&lt;/p&gt;
&lt;p&gt;What the study does establish is an observable economic mechanism: expectations about future property rights change the way people treat productive assets.&lt;/p&gt;
&lt;p&gt;For a farmer who expects to lose control of an animal, slaughtering it early may preserve immediate private value. Across many farms, however, the loss of draft animals reduces the productive resources available for future cultivation.&lt;/p&gt;
&lt;p&gt;Individual choices can make economic sense within the constraints people face, while their aggregate effect reduces output.&lt;/p&gt;
&lt;p&gt;This is a more precise explanation of how institutions affect production than simply saying that people divided the cake and forgot to bake another.&lt;/p&gt;
&lt;p&gt;In the AI era, the question likewise extends beyond who currently owns assets.&lt;/p&gt;
&lt;p&gt;If some workers lose earnings and the resulting capital gains do not translate sufficiently into new opportunities, real wages, or lower living costs, the channels through which ordinary people share technological progress may narrow.&lt;/p&gt;
&lt;p&gt;If firms focus only on reducing their wage bills, overlooking that workers are also important customers in the real economy, productivity gains can become disconnected from household purchasing power.&lt;/p&gt;
&lt;p&gt;At the same time, long-term production needs skills, knowledge, investment, and continued innovation. We should study how more people can access advanced productive tools and earn returns through work, enterprise, and other legitimate economic activity—not only how existing wealth can be divided.&lt;/p&gt;
&lt;h2&gt;The danger is not questioning a view, but refusing to let evidence test it&lt;/h2&gt;
&lt;p&gt;Returning to the AI boom, several developments are already observable.&lt;/p&gt;
&lt;p&gt;Advanced models have completed software tasks that were previously difficult to automate. That does not demonstrate that every AI investment will meet earnings expectations.&lt;/p&gt;
&lt;p&gt;AI firms have built extensive investment and purchasing relationships, sometimes supported by capacity-purchase commitments. Those contracts cannot substitute for measuring independent end demand.&lt;/p&gt;
&lt;p&gt;US labor-market research has identified narrower employment entry points and lower initial earnings for some young workers in highly AI-exposed fields.&lt;/p&gt;
&lt;p&gt;Paying consumers still choose AI services based on prices and usefulness; they do not automatically increase subscription spending every time a model improves.&lt;/p&gt;
&lt;p&gt;Together these facts point to a question that requires continued investigation: while AI productive capacity and capital spending expand quickly, how much of the benefit reaches ordinary people&apos;s earnings and consumption?&lt;/p&gt;
&lt;p&gt;A dangerous conviction can begin when that connection disappears from our understanding of the economy.&lt;/p&gt;
&lt;p&gt;The earlier essay&apos;s local Qwen experiment showed that a model could change the information available to its user by omitting important material without inventing an outright falsehood.&lt;/p&gt;
&lt;p&gt;Something similar can happen in accounts of economic prosperity.&lt;/p&gt;
&lt;p&gt;If industry reports consistently emphasize model parameters, computing demand, capital expenditure, contract values, and transaction counts while seldom tracking wages, household purchasing power, and actual productivity, their individual figures may be correct while the economic picture they present remains incomplete.&lt;/p&gt;
&lt;p&gt;No deliberate fabrication is required. Continual attention to one set of indicators, and neglect of another, can shape what the public regards as the natural explanation of economic development.&lt;/p&gt;
&lt;p&gt;When a model completes a harder task, the event may become another reason to expect uninterrupted industry growth. A firm&apos;s larger investment plan may be read as evidence of expanding future demand.&lt;/p&gt;
&lt;p&gt;Those interpretations still need to be tested against cash flow and actual economic returns.&lt;/p&gt;
&lt;p&gt;Likewise, when people observe widening wealth gaps and fewer job opportunities, the mechanisms behind those outcomes still deserve examination. Economic identity alone does not establish that every member of a group bears collective responsibility.&lt;/p&gt;
&lt;p&gt;The history of Ruijin shows how an economic interpretation, once built into class classifications, mass trials, and property decisions, can have concrete consequences.&lt;/p&gt;
&lt;p&gt;People do not act on emotion alone. They can seriously assess interests and risks, and construct coherent explanations from the information available. But if the initial information is incomplete or the causal account is wrong, further reasoning will not necessarily correct it.&lt;/p&gt;
&lt;p&gt;This returns me to the question left open in my previous essay.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A dangerous conviction need not look like an obvious lie. It may be an apparently complete and coherent worldview that explains many events while continually excluding evidence that contradicts it.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When that affects a single model answer, the error can sometimes be corrected by checking sources. When it shapes investment, hiring, public policy, or people&apos;s rights, the consequences can persist.&lt;/p&gt;
&lt;h2&gt;What must an AI bubble debate ultimately answer?&lt;/h2&gt;
&lt;p&gt;I increasingly think that predicting the precise date of an AI bubble bursting should not be our only objective.&lt;/p&gt;
&lt;p&gt;Even a severe financial correction would not automatically erase software, models, and engineering knowledge already created. Technology can also continue to improve without commensurate improvement in ordinary living conditions.&lt;/p&gt;
&lt;p&gt;We need to observe whether productivity gains turn into income, whether business investment is supported by sustainable customer demand, and whether people can participate in and benefit from new economic output.&lt;/p&gt;
&lt;p&gt;If AI makes goods and services cheaper, we should be able to examine prices and purchasing power. If it saves workers time, we should look for higher income, better work arrangements, or new opportunities. If AI companies expand investment, we should trace how much durable output those expenditures create, rather than merely counting the funds circulating along the supply chain.&lt;/p&gt;
&lt;p&gt;These questions ultimately concern human lives.&lt;/p&gt;
&lt;p&gt;People are more than labor expenses on a firm&apos;s balance sheet or subscription accounts sought by an AI provider. They need income to live, opportunities to develop their abilities, and a chance to participate in creation rather than merely receive machine-made products.&lt;/p&gt;
&lt;p&gt;The productive tools, ownership structures, and distribution systems of Ruijin&apos;s era and today&apos;s AI industry are radically different. Yet one economic question remains worth asking:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;As society becomes more capable of creating wealth, do people still have opportunities to take part in production, earn an income, and share in what is created?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;My previous essay examined how models understand the world. This one asks how we understand economic prosperity.&lt;/p&gt;
&lt;p&gt;If our evaluation consists only of model parameters, compute capacity, machine transactions, and market valuations—while leaving out wages, purchasing power, and quality of life—then the story of prosperity has not yet answered what economic development is for.&lt;/p&gt;
&lt;p&gt;And when an interpretation begins to decide which evidence deserves attention, excluding facts that cannot support it, we ought to examine our own judgment more closely.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Are we using evidence to understand the world, or are we allowing a worldview we already hold to decide what counts as evidence?&lt;/strong&gt;&lt;/p&gt;
</content:encoded></item><item><title>From an Opus 5.5 Video to Animation Workflows and a Continuous Pilot</title><link>https://blog.js.gripe/2026/10/ai-animation-workflow-retrospective/</link><guid isPermaLink="true">https://blog.js.gripe/2026/10/ai-animation-workflow-retrospective/</guid><pubDate>Tue, 13 Oct 2026 18:57:12 GMT</pubDate><dc:date>2026-10-13T18:57:12.000Z</dc:date><dc:creator>toewpq</dc:creator><dc:language>en</dc:language><description>Two limited-animation films and a continuous flower-shop pilot: asset reuse, contact states, a six-beat story and frame-by-frame review.</description><category>blog</category><category>Codex</category><category>Opus 5.5</category><category>ImageGen</category><category>Gemini</category><category>FFmpeg</category><content:encoded>&lt;p&gt;Watching &lt;em&gt;I&apos;m Upping My P(doom)&lt;/em&gt;, made with Claude Opus 5.5, started this experiment: could a coding agent organize images, motion, speech and editing into a complete video?&lt;/p&gt;
&lt;p&gt;This round produced two films. &lt;em&gt;Rainy Delivery&lt;/em&gt; runs for 150 seconds and reuses illustrations and 2D character motion. &lt;em&gt;The Garbage Truck Is Here!&lt;/em&gt; runs for 160 seconds and generates characters, objects and environments together. Their different production choices led to three workflows.&lt;/p&gt;
&lt;h2&gt;Starting with the Opus 5.5 reference&lt;/h2&gt;
&lt;p&gt;!embed&lt;a href=&quot;https://www.youtube.com/watch?v=8j-hR4fJywU&quot; rel=&quot;noopener noreferrer&quot;&gt;youtube&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The creator published &lt;a href=&quot;https://github.com/JohnHeibel/PDoomVideo&quot; rel=&quot;noopener noreferrer&quot;&gt;PDoomVideo&lt;/a&gt;. The project describes Opus 5.5 writing the storyboard and animation code, with p5.js, p5.brush, headless Chrome and FFmpeg rendering the pictures, and an existing song providing the music.&lt;/p&gt;
&lt;p&gt;I followed that interest in tool coordination with an ImageGen-based visual pipeline: generate assets, review action and space, then assemble selected pictures, sound and captions.&lt;/p&gt;
&lt;h2&gt;Workflow one: GIFs and a motion library&lt;/h2&gt;
&lt;p&gt;The motion library stores character IDs, poses, timing and previews. This sword swing uses eight generated poses. Its ending returns to the start with a visible loop reset.&lt;/p&gt;
&lt;p&gt;Sword-swing GIF assembled from eight generated poses&lt;/p&gt;
&lt;p&gt;!embed&lt;a href=&quot;https://ishare.js.gripe/s/6cf8e1c761004512940c000b6d54eb74&quot; rel=&quot;noopener noreferrer&quot;&gt;ishare&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Reuse is the point. A reviewed standing pose, head turn or wave can be referenced again instead of restarting from a character sheet. Shared slots for an original character&apos;s references, expressions, outfits and action index are ready for the next design.&lt;/p&gt;
&lt;h2&gt;Workflow two: limited animation and low-cost static video&lt;/h2&gt;
&lt;p&gt;Rainy Delivery: reused assets and 2D character motion.&lt;/p&gt;
&lt;p&gt;!embed&lt;a href=&quot;https://ishare.js.gripe/s/f42efcc645514d17b02ad44b8e73e157&quot; rel=&quot;noopener noreferrer&quot;&gt;ishare&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Rainy Delivery&lt;/em&gt; passed film acceptance. It follows a message after work, a walk toward the bus stop and the return home with medicine. Office, street, waiting, bus-interior and home shots use complete illustrations, holds and gentle camera motion. The bypass from 74–84 seconds uses a 2D rig to move character texture over one background.&lt;/p&gt;
&lt;p&gt;Reviewing the whole film makes its strengths and style clear. The setting stays stable and a small set of pictures supports the full story. Character movement is continuously calculated, while narration and captions connect shots. Long office and waiting shots feel like illustrated storytelling, and the bypass has a visible cutout quality. The limited-animation objective is complete; the next step is stronger interaction with the setting.&lt;/p&gt;
&lt;h3&gt;Reusing assets shot by shot&lt;/h3&gt;
&lt;p&gt;I use two kinds of shots. Complete illustrations suit receiving news, looking into the distance, resting on the bus and ending the story. A retained background with reviewed transparent poses or character texture suits standing, short steps and simple motion.&lt;/p&gt;
&lt;p&gt;A neighborhood can offer a shopfront, sidewalk or waiting area. Reuse applies within suitable shots, rather than fixing the entire film to one background. For pickup, sitting, stairs or foreground occlusion, decide whether the existing assets express the contact; complex events go to the whole-scene workflow.&lt;/p&gt;
&lt;p&gt;The production order is:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Define the beginning, ending, action and prop states, identifying environmental contact early.&lt;/li&gt;
&lt;li&gt;Review the setting&apos;s ground, open route, obstacle ends and viewpoint.&lt;/li&gt;
&lt;li&gt;Select assets with the same character, outfit and prop state, retaining soles and complete silhouettes.&lt;/li&gt;
&lt;li&gt;Match scale, light, foot placement and shadows, then time holds, movement, foot changes and settling.&lt;/li&gt;
&lt;li&gt;Fit shots and captions to measured narration and review the full audiovisual edit and state transitions.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Prompts establish low-interaction layouts, for example:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The character stands or takes short steps on flat, open pedestrian ground, with the whole body and soles visible. Walls, vehicles, furniture and rails are outside the route. Do not walk behind them, hold a rail, lean, pick up background objects or cross steps. The existing tote stays in the same hand; start and end positions are at the same ground height.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Reusing backgrounds, character assets and editing reduces repeated whole-scene generation. Cutting, rigging and review remain production work. Choose by shot: repeatedly repairing complex contact in a layered scene can create more rework.&lt;/p&gt;
&lt;h3&gt;Measuring sliding separately&lt;/h3&gt;
&lt;p&gt;Stance-foot comparison: retain or remove the placement constraint.&lt;/p&gt;
&lt;p&gt;!embed&lt;a href=&quot;https://ishare.js.gripe/s/06dddf936ab946229828447a9e5f7c1c&quot; rel=&quot;noopener noreferrer&quot;&gt;ishare&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Two versions use the same texture and route. One plants the stance foot; the other lets the sole move with the character during support. The tool matches sole texture in encoded frames to measure displacement over 0.25 seconds.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Condition&lt;/th&gt;
&lt;th align=&quot;right&quot;&gt;Visible measurement windows&lt;/th&gt;
&lt;th align=&quot;right&quot;&gt;Median displacement&lt;/th&gt;
&lt;th align=&quot;right&quot;&gt;95th percentile&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;Fixed foot placement&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;27&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;0px&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;3px&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Constraint removed&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;18&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;20px&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;About 21px&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;This exposes sliding and supplies a reusable motion-library check. Whether the character actually bypasses a rail or touches an object is assessed from the scene sequence.&lt;/p&gt;
&lt;h2&gt;Workflow three: interaction with the environment&lt;/h2&gt;
&lt;p&gt;The Garbage Truck Is Here!: characters, objects and backgrounds generated together.&lt;/p&gt;
&lt;p&gt;!embed&lt;a href=&quot;https://ishare.js.gripe/s/16ce7795e910421bb0a3704516c6e2ae&quot; rel=&quot;noopener noreferrer&quot;&gt;ishare&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This story tests contact and changing states. A newly arrived resident hears the garbage-truck melody and takes her sorted bags downstairs. A neighbor&apos;s tote catches on the handrail, spilling bottles and a can. She stops to help, then they dispose of the waste separately and walk home together. The unfamiliar alley feels more familiar.&lt;/p&gt;
&lt;p&gt;Each image generates characters, objects, setting, light and contact shadows together. The next step receives the previous full frame, identity and scene references, and a small next-action description. The neighborhood can extend into an entrance, sidewalk and collection point without fixing background pixels.&lt;/p&gt;
&lt;p&gt;The useful improvement is visible in pickup and handoff. She puts her own bags down, squats, picks up the recyclables and returns them to the neighbor&apos;s tote. At collection, her held-object state changes after the waste and recycling handoffs. Drawing action and objects together suits these events better than moving a character over a fixed base.&lt;/p&gt;
&lt;p&gt;The film uses 76 whole-scene poses, 11 Taiwan Mandarin narration clips and 43 captions. Walking still shows pose holds and cuts, but the concrete contact events are more developed than in the earlier workflow. Source images are 836×470 and 1672×941, exported at 1080p; the previous page played a 540p copy; ishare now provides adaptive stream delivery.&lt;/p&gt;
&lt;h2&gt;Errors that changed the production method&lt;/h2&gt;
&lt;h3&gt;Bypassing becomes climbing a barrier&lt;/h3&gt;
&lt;p&gt;Early counterexample: a requested bypass turns into rail contact and climbing poses.&lt;/p&gt;
&lt;p&gt;!embed&lt;a href=&quot;https://ishare.js.gripe/s/6d73fe5a84b34816a1b906b2e33f2f50&quot; rel=&quot;noopener noreferrer&quot;&gt;ishare&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The early instruction asked for a bypass, but the ending reached onto the rail and raised a leg near it, reading as a climb. That is a concrete route and action error. The later low-cost film uses an open route and 2D control; the whole-scene workflow also treats complex person/railing occlusion as a shot-design limit.&lt;/p&gt;
&lt;p&gt;Put the obstacle end and walkable gap in the shot, keep hands beside the body, and inspect the actual route over time. Foot placement or forward-facing poses alone can miss the person&apos;s relationship to the barrier.&lt;/p&gt;
&lt;h3&gt;Revised stairs still contain malformed treads&lt;/h3&gt;
&lt;p&gt;G09R stair revision with inconsistent treads, landing and rail slope&lt;/p&gt;
&lt;p&gt;!embed&lt;a href=&quot;https://ishare.js.gripe/s/ac8edeb3e3a34fd8996225f36a80a11b&quot; rel=&quot;noopener noreferrer&quot;&gt;ishare&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;G09, G10 and G11 in the garbage-truck story had confused stair geography. G09R looked more like the intended apartment after revision, but I spotted abnormal treads in the edit. The entire group was removed and replaced with a lock close-up, then shoes and the second-floor landing.&lt;/p&gt;
&lt;p&gt;Selected door-lock close-up&lt;/p&gt;
&lt;p&gt;!embed&lt;a href=&quot;https://ishare.js.gripe/s/c1c8b13cec2b4584bb8b17cdafcdccb8&quot; rel=&quot;noopener noreferrer&quot;&gt;ishare&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This changed the shot design. A close-up avoids the complex stair flight, and the flat landing supports the bottle pickup. The narrative continues clearly. Similar spatial problems should lead to another viewpoint or smaller action steps.&lt;/p&gt;
&lt;h3&gt;Prop counts and hands change unexpectedly&lt;/h3&gt;
&lt;p&gt;Rejected picture with a can still on the floor and another already at the tote opening&lt;/p&gt;
&lt;p&gt;!embed&lt;a href=&quot;https://ishare.js.gripe/s/70063dca45634c6aaf7bac640a610ecc&quot; rel=&quot;noopener noreferrer&quot;&gt;ishare&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The pickup once showed a can on the ground and another at the tote opening. The new lock group also switched keys and bag handles between hands. Inventory review removed the duplicated can frames; the lock uses panels 1, 2 and 4, dropping panel 3. Her bags must reach the wall before she squats, rather than vanishing early.&lt;/p&gt;
&lt;p&gt;These errors made prompts concrete: grasp before lifting, receive before releasing, and specify every hand and object position. Rejected assets are separate; the final timeline references reviewed frames.&lt;/p&gt;
&lt;h2&gt;Sound changed with the storytelling&lt;/h2&gt;
&lt;p&gt;The initial sustained low tone and repeated high chimes made the pictures feel uncanny. The revision removes the drone, uses short truck cues and sparse piano, and lowers background sound during narration.&lt;/p&gt;
&lt;p&gt;Third-person off-screen narration lets the story unfold without tying dialogue to character mouths. Captions follow the narrator. After the original Edge speech path returned 403, the project I supplied, &lt;a href=&quot;https://github.com/wangwangit/tts&quot; rel=&quot;noopener noreferrer&quot;&gt;wangwangit/tts&lt;/a&gt;, produced Taiwan Mandarin through its locally executed Microsoft REST path.&lt;/p&gt;
&lt;h2&gt;A continuous rainy-night flower-shop pilot&lt;/h2&gt;
&lt;p&gt;The next story follows this six-panel reference: pass the flower shop, notice the fallen planter, crouch and touch it, set it upright, exchange a greeting with the shopkeeper, then walk on.&lt;/p&gt;
&lt;p&gt;!embed&lt;a href=&quot;https://ishare.js.gripe/s/69f380246b204b18b308e9956d2575a5&quot; rel=&quot;noopener noreferrer&quot;&gt;ishare&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This is a story and composition reference, not extracted film frames. It does not establish that the later actions have been generated. Production still follows observable states: approach, stop, crouch, touch, then lift only after contact is established.&lt;/p&gt;
&lt;p&gt;I generated the first continuous clip at gemini.google.com, recording the model name as “Gemini 4.” The underlying video model version was not independently verified, so this is not presented as a confirmed Veo comparison.&lt;/p&gt;
&lt;p&gt;!embed&lt;a href=&quot;https://ishare.js.gripe/s/f9eabaa6e1274bd893cb81ecba2777f1&quot; rel=&quot;noopener noreferrer&quot;&gt;ishare&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The clip runs for 10 seconds at 1280×720 and 24fps; all 240 frames decode. It retains the flower shop, the woman and one fallen target planter while showing an approach, stop, crouch and reach. That supports a limited feasibility finding: a scene reference can be developed into a coherent continuous action worth pursuing.&lt;/p&gt;
&lt;p&gt;The required contact is still missing. She crouches too far from the pottery and reaches toward loose leaves. Both the nine-second evidence frame and the final frame show a gap between her hand and the terracotta rim.&lt;/p&gt;
&lt;p&gt;!embed&lt;a href=&quot;https://ishare.js.gripe/s/7b7568ed80d443bab3997dd6548549e7&quot; rel=&quot;noopener noreferrer&quot;&gt;ishare&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I am retaining it as a feasibility pilot with a NEEDS_REVIEW decision. There is no observed contact completion point to trim around, and no basis for editing it as a successful lift. The next change is small: continue walking until the exposed rim is within bent-elbow reach, then crouch beside it. Uprighting the planter, greeting the shopkeeper and leaving remain future shots.&lt;/p&gt;
&lt;p&gt;Codex checks the locked reference hashes, decodes frames and reviews object inventory, foot support and contact states. Media validation and narrative acceptance stay separate. The actual web attachment and submitted prompt were not captured, so reference binding remains unverified; visual similarity alone cannot prove the input was bound or establish a model-reference failure.&lt;/p&gt;
&lt;h2&gt;What this round leaves us&lt;/h2&gt;
&lt;p&gt;The three workflows and the continuous pilot have distinct scopes: the motion library stores reusable character actions; the low-cost workflow organizes illustrated storytelling and simple movement; whole-scene generation handles contact between people, objects and the setting.&lt;/p&gt;
&lt;p&gt;Both films provide actual production results. For an original character, I will reuse the reference, expression, outfit and action-index structure across these workflows and continue assessing how motion fits the environment.&lt;/p&gt;
&lt;p&gt;Code, prompts and review findings live under &lt;code&gt;video/&lt;/code&gt;: actions, limited animation, whole-scene storytelling and the flower-shop pilot. The root media manifest links to external assets.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/jsw-teams/workflow&quot; rel=&quot;noopener noreferrer&quot;&gt;Explore the open workflow&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://ishare.js.gripe/s/f410eb1ff6d3493ea7280c99623472f4&quot; rel=&quot;noopener noreferrer&quot;&gt;The Garbage Truck Is Here! — full 1080p film&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://ishare.js.gripe/s/7460b53891784286a607e587c0ce0bdb&quot; rel=&quot;noopener noreferrer&quot;&gt;Rainy Delivery — full 720p film&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Images and videos now live on ishare; the repository keeps code, prompts, review findings and a media manifest. Fetch original images on demand and verify their hashes. Stream delivery is transcoded, not the original video download. The MIT speech dependency is included under &lt;code&gt;third_party/tts/&lt;/code&gt;, with its upstream commit and license.&lt;/p&gt;
</content:encoded></item><item><title>When Language Changes the Answer: Data Poisoning, GEO, and the Limits of LLM Judgment</title><link>https://blog.js.gripe/2026/10/language-answers-data-poisoning-geo-evidence/</link><guid isPermaLink="true">https://blog.js.gripe/2026/10/language-answers-data-poisoning-geo-evidence/</guid><pubDate>Sun, 11 Oct 2026 16:50:00 GMT</pubDate><dc:date>2026-10-11T16:50:00.000Z</dc:date><dc:creator>toewpq</dc:creator><dc:language>en</dc:language><description>From cross-language political-stance tests to poisoned training data, generative engine optimization, selective omission, and standards of evidence in language-model answers.</description><category>blog</category><category>Large Language Models</category><category>Language Bias</category><category>Data Poisoning</category><category>GEO</category><category>Evidence</category><category>Model Alignment</category><content:encoded>&lt;p&gt;I have recently been reconsidering a phenomenon I encountered some years ago: ask the same large language model roughly the same question in Simplified Chinese, Traditional Chinese, and English, and the answers may lean in different directions.&lt;/p&gt;
&lt;p&gt;A prominent example concerns the relationship between Taiwan and mainland China. A change in the question&apos;s language may change how a model describes that relationship, or even which position it selects when explicitly asked to take one.&lt;/p&gt;
&lt;p&gt;At first glance, this looks like a problem of political bias. But the question that interests me most is not which side a model eventually favors; it is how the answer comes about.&lt;/p&gt;
&lt;p&gt;If a model&apos;s judgment shifts with language, does that reflect the distribution of its training data, boundaries shaped by post-training, or an adaptation to the interaction context?&lt;/p&gt;
&lt;p&gt;And if online content can be deliberately shaped through data poisoning, search optimization, and generative engine optimization (GEO), another question becomes unavoidable:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Has the information available to the model already been filtered, repeated, or manipulated?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Reliability may depend not only on how much a model knows, but also on how that knowledge was produced, which information survives into the answer, and which standards the model applies when evaluating evidence.&lt;/p&gt;
&lt;h2&gt;Political positions across languages&lt;/h2&gt;
&lt;p&gt;In 2024, Yu-Ting Lin and Yao-Chung Fan published &quot;&lt;a href=&quot;https://aclanthology.org/2024.rocling-1.18/&quot; rel=&quot;noopener noreferrer&quot;&gt;Unveiling Language-Driven Political Stances in Large Language Models on China and Cross-Strait Relations&lt;/a&gt;&quot; at ROCLING.&lt;/p&gt;
&lt;p&gt;They tested eight models originating from mainland China, Taiwan, and the United States, posing twenty questions on Chinese politics and cross-strait relations in Simplified Chinese, Traditional Chinese, and English.&lt;/p&gt;
&lt;p&gt;Some results varied substantially. For GLM-4-9B, agreement with the official position of the People&apos;s Republic of China was reported at 60% in Simplified Chinese, 40% in Traditional Chinese, and 15% in English. Qwen2-7B-Instruct showed a similar direction of change: 75%, 55%, and 45%, respectively.&lt;/p&gt;
&lt;p&gt;This pattern was not universal. Yi-1.5-9B, also developed in mainland China, registered 35%, 30%, and 30% in the three languages—nothing like GLM-4&apos;s magnitude of variation. Within these tests, a model&apos;s development location alone was not sufficient to predict its stance.&lt;/p&gt;
&lt;p&gt;The meaning of &quot;agreement rate&quot; also matters. The researchers did not instruct models to support either mainland China or Taiwan. Their system prompt asked models to evaluate political propositions from their own preferred perspective and encouraged a definite stance rather than neutrality.&lt;/p&gt;
&lt;p&gt;For a proposition such as &quot;Taiwan is part of China,&quot; a model could select agree, disagree, or no opinion, and explain its choice. Researchers then classified whether the response matched the PRC government&apos;s official stance. This measures correspondence with a political position, &lt;strong&gt;not factual accuracy&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Neutral answers and refusals were excluded from the denominator. Consider InternLM2.5&apos;s English responses: out of twenty questions, sixteen were classified as neutral, three as aligned with the mainland government&apos;s position, and one as opposed. Among the four non-neutral responses, alignment was 75%. Across all twenty questions, alignment occurred in just 15%. Both numbers are mathematically correct, but they measure different things.&lt;/p&gt;
&lt;p&gt;The first describes what happens when a model takes a definite stance; the second describes how often a user would encounter that position across the entire test set. Ignoring the number of neutral answers can exaggerate the frequency of a position in overall outputs.&lt;/p&gt;
&lt;p&gt;This was also a political-stance questionnaire, not an open-ended factual question-answering experiment. &quot;Do you agree that Taiwan is part of China?&quot; is a different task from &quot;Distinguish Taiwan&apos;s present administration, the sovereignty claims made by different political actors, and international recognition.&quot; The first requests a position on a proposition; the second requests an explanation of factual and political distinctions without necessarily reducing them to agreement or disagreement.&lt;/p&gt;
&lt;p&gt;That distinction does not prove open-ended factual answers would be more reliable. The paper did not provide a controlled comparison of these two task formats, so it cannot establish how much language-driven variation would persist in everyday factual question answering.&lt;/p&gt;
&lt;p&gt;Its most defensible finding is narrower and still important: &lt;strong&gt;under a particular political-stance questionnaire, some tested models changed their expressed positions significantly with the language of the prompt, and development location did not fully explain those changes.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Explaining why requires examining both the information environment and how models are trained.&lt;/p&gt;
&lt;h2&gt;The information environment behind a language&lt;/h2&gt;
&lt;p&gt;Languages do not inhabit identical information environments. Historical textbooks, news organizations, government documents, academic publications, and online communities can develop relatively stable ways of describing the same issue.&lt;/p&gt;
&lt;p&gt;On contested political and historical topics, censorship, media institutions, social identity, and distribution channels can affect how frequently a particular position appears and how readily alternative accounts can be encountered.&lt;/p&gt;
&lt;p&gt;I would not equate Simplified Chinese with a closed information environment or Traditional Chinese and English with open ones. Language is not a sufficient measure of information freedom. Commercial interests, political messaging, editorial decisions, and recommendation algorithms can shape visibility even in environments with relatively diverse sources. Substantially different sources can also exist within a single language.&lt;/p&gt;
&lt;p&gt;The useful comparison is not which language is naturally objective, but how information environments differ in factual coverage, distribution of viewpoints, and quality of evidence.&lt;/p&gt;
&lt;p&gt;Models may learn those differences, yet pretraining is not the only influence. Instruction tuning, preference optimization, and other post-training methods can shape response habits, refusal policies, and content boundaries. Developers may also face regulatory requirements.&lt;/p&gt;
&lt;p&gt;For example, mainland China&apos;s &lt;a href=&quot;https://www.cac.gov.cn/2023-07/13/c_1690898327029107.htm&quot; rel=&quot;noopener noreferrer&quot;&gt;Interim Measures for the Management of Generative Artificial Intelligence Services&lt;/a&gt; impose political-content obligations on relevant public-facing generative AI services, including restrictions relating to national interests, national image, and national unity.&lt;/p&gt;
&lt;p&gt;A 2026 &lt;em&gt;PNAS Nexus&lt;/em&gt; study, &quot;&lt;a href=&quot;https://doi.org/10.1093/pnasnexus/pgag013&quot; rel=&quot;noopener noreferrer&quot;&gt;Political censorship in large language models originating from China&lt;/a&gt;,&quot; compared responses by models from mainland China and elsewhere to 145 political questions. In its sample, models from mainland China refused more sensitive questions, generated shorter responses, and produced more inaccurate answers. The differences diminished on less politically sensitive topics.&lt;/p&gt;
&lt;p&gt;This is evidence of systematic behavior differences, not a direct demonstration of which internal mechanism caused them. The authors describe the work as observational; it does not independently establish a complete causal chain from regulation to an individual model&apos;s answer.&lt;/p&gt;
&lt;p&gt;We can observe outputs on particular topics. We cannot, from a single black-box response, determine what proportion of the difference comes from pretraining, post-training, or institutional constraints.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Inheriting a biased information environment and deliberately setting response boundaries during development are different mechanisms.&lt;/strong&gt; They may coexist and may produce similar visible outcomes.&lt;/p&gt;
&lt;h2&gt;Data contamination: repetition is not independent evidence&lt;/h2&gt;
&lt;p&gt;The internet is no longer simply a naturally accumulated collection of human discussion. Search optimization, automatically generated material, advertising, and coordinated distribution can all affect how often particular narratives appear.&lt;/p&gt;
&lt;p&gt;A statement repeated many times is not necessarily supported by many independent pieces of evidence.&lt;/p&gt;
&lt;p&gt;Several issues must be separated. Ordinary data-quality failures include incorrect information, duplication, obsolete material, and unsubstantiated machine-generated text. Deliberate training-data poisoning involves an attacker controlling some training material to induce an unwanted behavior or answer. Benchmark contamination means that evaluation examples have leaked into training data, reducing the independence of a test.&lt;/p&gt;
&lt;p&gt;These phenomena are not interchangeable. The mere presence of errors online does not show that a given model was deliberately poisoned. But successful poisoning is not just hypothetical.&lt;/p&gt;
&lt;p&gt;In 2025, Anthropic, the UK AI Security Institute, and the Alan Turing Institute published &quot;&lt;a href=&quot;https://www.anthropic.com/research/small-samples-poison&quot; rel=&quot;noopener noreferrer&quot;&gt;A small number of samples can poison LLMs of any size&lt;/a&gt;.&quot; In their tested settings, approximately 250 malicious documents were enough to induce a particular backdoor behavior across the studied model sizes.&lt;/p&gt;
&lt;p&gt;The target behavior matters. This experiment implanted a relatively simple backdoor that caused gibberish output following a trigger. It did not test whether 250 political documents could cause a model to adopt a political position. Nor does that laboratory outcome establish that a particular model&apos;s real political answers were modified by an external poisoning attack.&lt;/p&gt;
&lt;p&gt;The result does, however, challenge a simplistic assumption: a very large training corpus does not automatically make a small volume of malicious data harmless. Dataset scale and resistance to poisoning are not interchangeable.&lt;/p&gt;
&lt;p&gt;Source independence poses another problem. Imagine an inadequately verified commercial report repeatedly republished by websites and rewritten automatically into industry analysis, news summaries, and question-and-answer pages. A model may encounter the conclusion many times during training. Yet those documents could all descend from one report rather than represent independent research.&lt;/p&gt;
&lt;p&gt;If a model cannot distinguish the relationships among sources, it may learn that a statement appears frequently rather than that the statement has been independently corroborated. The failure may not be a total absence of knowledge; it may be an inability to distinguish where apparently different pieces of evidence came from.&lt;/p&gt;
&lt;h2&gt;GEO: optimizing content to enter AI answers&lt;/h2&gt;
&lt;p&gt;If training contamination mainly concerns what a model learns, generative engine optimization concerns what an AI search system is likely to retrieve, cite, and include in its output.&lt;/p&gt;
&lt;p&gt;Traditional SEO concentrates on ranking among search results. GEO, or Generative Engine Optimization, focuses on making content visible and usable to systems that synthesize answers from retrieved sources.&lt;/p&gt;
&lt;p&gt;Pranjal Aggarwal and collaborators presented &quot;&lt;a href=&quot;https://doi.org/10.1145/3637528.3671900&quot; rel=&quot;noopener noreferrer&quot;&gt;GEO: Generative Engine Optimization&lt;/a&gt;&quot; at KDD in 2024. Experiments using GEO-bench found that particular changes to source presentation could increase visibility in generated responses, by as much as about 40% in some settings. This was a measure of source visibility—not factual accuracy, and not proof that optimization can reliably force any false claim into an answer.&lt;/p&gt;
&lt;p&gt;GEO is not inherently objectionable. Clear organization, accurate structured information, transparent sourcing, and machine-readable pages can help answer engines use legitimate material.&lt;/p&gt;
&lt;p&gt;But GEO changes the incentives of content producers. They compete not only for a click from a user, but for inclusion within an AI-generated answer.&lt;/p&gt;
&lt;p&gt;A 2026 ICML position paper, &quot;&lt;a href=&quot;https://proceedings.mlr.press/v306/wen26m.html&quot; rel=&quot;noopener noreferrer&quot;&gt;Position: Generative Engine Optimization Creates Underexamined Risks&lt;/a&gt;,&quot; raises concerns about concentrated influence and undisclosed commercial incentives in generated answers. As a position paper, it argues that these risks deserve study and governance; it does not establish that all answer engines are already affected to the same degree.&lt;/p&gt;
&lt;p&gt;One result from the original GEO experiments is already clear: &lt;strong&gt;the likelihood of appearing in a generated answer can change with a source&apos;s structure and presentation, rather than being determined solely by factual quality.&lt;/strong&gt; A source being cited more often does not itself prove that source is more credible.&lt;/p&gt;
&lt;p&gt;This may be harder for readers to notice than traditional search ranking. Search engines typically present several clickable results. Generative search combines retrieval and synthesis into a single narrative, perhaps accompanied by a handful of citations. Which documents were selected and how they were summarized now shape much of what the reader receives.&lt;/p&gt;
&lt;p&gt;GEO should nevertheless be distinguished from malicious retrieval poisoning. Legitimate GEO aims to improve discoverability. An adversarial retrieval attack has a specific objective, such as planting false evidence to degrade the answer.&lt;/p&gt;
&lt;p&gt;The 2025 EMNLP Findings paper &quot;&lt;a href=&quot;https://aclanthology.org/2025.findings-emnlp.1291/&quot; rel=&quot;noopener noreferrer&quot;&gt;The RAG Paradox&lt;/a&gt;&quot; studied a black-box attack that used retrieval-source feedback to produce plausible-looking poisoned documents, degrading results in experimental retrieval-augmented systems. The research demonstrates a vulnerability in the use of external knowledge, not that ordinary GEO is itself an attack or that every search system has the same weaknesses.&lt;/p&gt;
&lt;p&gt;Together these studies show that the evidence selected for a generated answer can be influenced not only by the model but also by the visibility, structure, and vulnerability of the external retrieval environment.&lt;/p&gt;
&lt;h2&gt;From visibility to credibility&lt;/h2&gt;
&lt;p&gt;The distinction is simple but consequential:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Widely circulated material is not necessarily supported by equally extensive independent evidence; a citation in an AI answer is not the same as a completed fact-check.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Training data and real-time retrieval operate on different timescales. New GEO content cannot directly change the parameters of a model that has already finished training and has no access to external sources. For a search-enabled or RAG-based system, however, retrieved material can influence the current answer.&lt;/p&gt;
&lt;p&gt;If public content is later collected into a new training corpus, its effects could extend to future models. That is a technically plausible pathway, not an observed causal chain that can be assumed in every case.&lt;/p&gt;
&lt;p&gt;It is helpful to inspect each stage separately. During training: provenance, quality, and repetition. During retrieval: source selection, independence, and manipulation. During generation: fidelity, omission, and unsupported additions. These stages may interact, but they should not be collapsed into the catch-all label of &quot;model bias.&quot;&lt;/p&gt;
&lt;h2&gt;A model can change the material without inventing facts&lt;/h2&gt;
&lt;p&gt;What a model does with material already placed directly in its context also matters.&lt;/p&gt;
&lt;p&gt;In my earlier article, &quot;&lt;a href=&quot;https://js.gripe/2026/07/after-open-weights-three-way-transition/&quot; rel=&quot;noopener noreferrer&quot;&gt;After Models Cross Borders: What Qwen, Gemma, and Ministral Reveal About Open Weights, Closed Systems, and the Boundaries of Answers&lt;/a&gt;,&quot; I compared three local models on the same material.&lt;/p&gt;
&lt;p&gt;Qwen&apos;s behavior was particularly notable. Faced with an ordinary account of everyday behavior, it was relatively restrained. When the text did not explain a person&apos;s motives, it acknowledged uncertainty rather than constructing a complete psychological narrative.&lt;/p&gt;
&lt;p&gt;The outcome changed when the model handled English historical material about the June Fourth events of 1989.&lt;/p&gt;
&lt;p&gt;The source included the setting and timing, Hu Yaobang&apos;s death, students&apos; demands, participation by workers and residents, the use of military force, disputed death counts, and subsequent censorship.&lt;/p&gt;
&lt;p&gt;The locally customized Qwen response was only about 174 Chinese characters and omitted several of these central points. It did not set out students&apos; demands, did not mention workers and residents, did not clearly recount the military use of force, and recast the source&apos;s discussion of disputed casualty numbers as a broad inability to verify. It invoked political sensitivity and the absence of official sources, recommending consultation of official historical documents.&lt;/p&gt;
&lt;p&gt;The problem was not mere brevity. &lt;strong&gt;The task was to analyze supplied text, but the output removed information that could materially affect a reader&apos;s understanding of that text.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Accurately reporting what a text says is different from independently verifying the entire historical event it describes. A model unsure of a casualty figure can state what the document says and separately explain that the figure needs external verification. Preserving the fact that sources dispute the death toll does not imply endorsing any one number.&lt;/p&gt;
&lt;p&gt;In a control test, the official `qwen3-vl:4b-thinking` variant explicitly stated that it could not discuss politics, religion, pornography, violence, and other subjects. The local rules softened outright refusal into a limited summary, but did not reliably restore the important source details.&lt;/p&gt;
&lt;p&gt;These are observable results for specific versions and configurations, not a window into the model&apos;s internal decision sequence. A reference to &quot;official sources&quot; in the response does not prove that the model first executed a source-authentication procedure and then removed material.&lt;/p&gt;
&lt;p&gt;A different plausible explanation is that post-training or political-content requirements affected responses on sensitive topics. Regulation and empirical work on political refusals make that worth examining, but a single black-box test cannot reveal the exact steps used to train those weights.&lt;/p&gt;
&lt;p&gt;Nor does this local experiment establish a causal link to GEO or malicious data poisoning. There is no direct evidence of such a mechanism in the test.&lt;/p&gt;
&lt;p&gt;Uncertainty about cause does not prevent evaluating the result: &lt;strong&gt;under the tested conditions, the model failed to preserve important historical information already supplied by the user and changed the informational structure of the final account.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A model need not fabricate explicit falsehoods to distort what a reader learns. Omitting material context may create an overall impression different from the source. That is why measuring only a model&apos;s stated political position can miss serious questions of information quality.&lt;/p&gt;
&lt;p&gt;A model may select &quot;neutral&quot; on a political questionnaire and still omit the central facts needed to understand the disagreement. Preservation of information deserves a separate measure.&lt;/p&gt;
&lt;h2&gt;Willingness to answer is not the same as reliability&lt;/h2&gt;
&lt;p&gt;Qwen&apos;s omissions do not imply that a model willing to discuss sensitive subjects must be more reliable.&lt;/p&gt;
&lt;p&gt;In the same local tests, Gemma retained more information from the historical material but tended to add interpretations the source did not support. In everyday accounts, cleaning a room, making breakfast, or taking a brief break became narratives of emotional healing, regained control, or inferred personality traits.&lt;/p&gt;
&lt;p&gt;Those interpretations are not inherently impossible, but the given material did not justify presenting them as established conclusions.&lt;/p&gt;
&lt;p&gt;Ministral made more direct factual errors. It replaced Hu Yaobang with Hu Jintao and continued generating dates, policies, and causal claims around the mistaken identity, producing a fluent but historically inaccurate explanation.&lt;/p&gt;
&lt;p&gt;These are different failure modes. Under the tested conditions, Qwen omitted important information on sensitive material; Gemma supplied unsupported meaning; Ministral generated false facts. They should not all be attributed to a single political cause.&lt;/p&gt;
&lt;p&gt;But all three can be evaluated with the same question: was the answer adequately constrained by the source evidence?&lt;/p&gt;
&lt;p&gt;We do not need complete access to a model&apos;s hidden internal mechanisms to check whether it completed the task, retained the necessary information, or added claims for which there was no support.&lt;/p&gt;
&lt;h2&gt;What qualifies as reasonable evidence?&lt;/h2&gt;
&lt;p&gt;That brings the discussion to a more basic question: how should a model decide whether material is reasonable?&lt;/p&gt;
&lt;p&gt;Suppose a model reaches a conclusion, a user supplies contrary evidence, and the model changes its mind. I do not think changing its stance alone proves intellectual openness, nor does it necessarily demonstrate flattery or compliance.&lt;/p&gt;
&lt;p&gt;What matters is the quality and relevance of the new evidence.&lt;/p&gt;
&lt;p&gt;A genuine source does not necessarily prove the interpretation attached to it. In an everyday narrative, someone cleaning a room and later feeling better does not establish that cleaning caused psychological recovery. Sequence is not causation.&lt;/p&gt;
&lt;p&gt;Likewise, the same claim appearing on many websites does not show independent corroboration if all of those websites repeat a single original report.&lt;/p&gt;
&lt;p&gt;Assessing evidence requires asking whether the information is authentic, whether it actually addresses the proposition, whether the inference is justified, and whether nominally different sources are independent.&lt;/p&gt;
&lt;p&gt;Frequency, source identity, and language should not substitute for those checks.&lt;/p&gt;
&lt;p&gt;Nor should openness require a model to invent a counterargument for every established fact. Where reliable evidence strongly supports a conclusion, constructing a weak opposition merely to appear balanced does not improve objectivity. Understanding why a view exists is different from treating every view as equally well supported.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Objectivity need not mean neutrality on every question. It should mean applying consistent, testable standards of evidence.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Those standards themselves must remain open to examination. If a model accepts only material that fits its current framework, then permits only such material to change its conclusions, its apparent knowledge may conceal an inability to revise its judgment.&lt;/p&gt;
&lt;p&gt;A good system should maintain or revise a position because of evidence—not merely agree with a user, and not object for the sake of objection.&lt;/p&gt;
&lt;h2&gt;Evaluate the result, not merely the declared stance&lt;/h2&gt;
&lt;p&gt;In ordinary use, I still prefer to look at the result first.&lt;/p&gt;
&lt;p&gt;Did the model complete the task? Did it retain important information, avoid clear factual errors, and support its conclusions with evidence? These are more useful questions than a blanket label about the model&apos;s political position.&lt;/p&gt;
&lt;p&gt;When a response conflicts with my prior understanding, I can inspect the competing evidence and consider whether the model is wrong or my understanding needs to change. But prior understanding is not infallible. Important conclusions warrant independent checks even when an answer looks reasonable.&lt;/p&gt;
&lt;p&gt;With data contamination and GEO, that means tracing where cited evidence originated. Agreement among several models does not prove independent verification if they all depend on the same search results or sites that repeat the same document. Multiple models should not simply become a voting system.&lt;/p&gt;
&lt;p&gt;The task also determines what fidelity requires. A summary or translation should preserve important information from the source and clearly label any separate concerns about factual accuracy. A fact-check should independently investigate claims rather than merely restate the input. An analysis can go beyond the text, but should mark the distinction between observation, inference, and unknowns.&lt;/p&gt;
&lt;p&gt;A model should not use its own evidence assessment as an unannounced license to redefine the user&apos;s task. Quietly deleting information from a requested summary can be a failure even if the remaining sentences contain no obvious falsehoods. Conversely, simply reproducing the source without checking anything fails a fact-checking request.&lt;/p&gt;
&lt;p&gt;Reliability has to be measured against the actual job.&lt;/p&gt;
&lt;h2&gt;Where cross-language research could go next&lt;/h2&gt;
&lt;p&gt;The ROCLING study established language-sensitive position choices under its political questionnaire. Understanding causes requires separating variables.&lt;/p&gt;
&lt;p&gt;One experiment could test the same questions, model versions, and generation settings under both forced-stance and open-ended factual formats. Another could fix the original evidence and change only the prompt language, then measure whether the model preserves the same facts and uses consistent standards.&lt;/p&gt;
&lt;p&gt;For search-enabled systems, researchers could hold the model fixed while changing retrieval sources, distinguishing more stable model behavior from effects of external information selection.&lt;/p&gt;
&lt;p&gt;A GEO study should separately measure changes in retrieval visibility, citation frequency, and answer accuracy. Being cited more often must not count as proof of improved quality.&lt;/p&gt;
&lt;p&gt;Studies of political-content alignment need comparisons across weights, post-training versions, and system rules, rather than reconstructing internal training decisions from a model&apos;s stated refusal reason.&lt;/p&gt;
&lt;p&gt;The metrics should also extend beyond political-stance alignment. A response&apos;s expressed position, preservation of key facts, unsupported interpretations, fabricated details, and refusal behavior are distinct outcomes. Examining them separately would reveal more than a single agreement score.&lt;/p&gt;
&lt;p&gt;Open weights create additional opportunities to compare deployments, adjust models, and replace unsuitable configurations. But downloading weights does not erase behaviors acquired during pretraining or post-training. Local deployment changes who operates a model, not necessarily the boundaries already embedded in it.&lt;/p&gt;
&lt;p&gt;Similarly, online search gives models access to newer sources without automatically providing a trustworthy method for evaluating them.&lt;/p&gt;
&lt;p&gt;The useful goal is to make inputs, retrieval sources, outputs, and failure modes independently testable.&lt;/p&gt;
&lt;h2&gt;The boundary that matters most&lt;/h2&gt;
&lt;p&gt;Cross-language political differences, training-data contamination, GEO, and selective omission during local model tests occur at different points in an AI system. Yet they point toward the same larger distinction:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What information a model can encounter is not the same as what information it ultimately uses to form an answer.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Training corpora can reflect uneven linguistic information environments, ordinary data-quality problems, and deliberately planted attacks. Search can expand access while introducing dependence on content optimization and retrieval vulnerabilities. Even when the relevant text is already present, a model may omit it, overinterpret it, or invent facts.&lt;/p&gt;
&lt;p&gt;More parameters, more languages, internet access, and open weights are valuable capabilities, but none guarantees a more objective answer by itself.&lt;/p&gt;
&lt;p&gt;The difficult questions concern relationships among sources and judgments: what derives from primary evidence, what is only repeated distribution, what is verifiable, what remains an interpretation, and how conflicting evidence should be weighted.&lt;/p&gt;
&lt;p&gt;When credible new evidence appears, a reliable model should be capable of revising its position. Where evidence is already strong, it should not abandon its judgment merely to appear balanced.&lt;/p&gt;
&lt;p&gt;Models should neither disagree simply to disagree nor agree merely to please.&lt;/p&gt;
&lt;p&gt;As more content is created with the goal of appearing in AI answers, it becomes especially important not to confuse repetition with independent confirmation, visibility with credibility, or a citation with completed verification.&lt;/p&gt;
&lt;p&gt;Multilingual capability lets a model read across information environments. Open weights let more people inspect and modify it. GEO changes the incentives of those publishing for AI-mediated discovery. None replaces the fundamental requirement to evaluate evidence.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The boundary that models most need to cross may be not merely between languages, but between encountering information, preserving it, and reliably judging it.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A model capable of explaining the world in many languages has not necessarily escaped the blind spots of those languages&apos; information environments. An enormous corpus does not automatically confer reliable judgment if the system cannot identify where evidence comes from, why it should be trusted, and where a conclusion extends beyond what the evidence supports.&lt;/p&gt;
&lt;p&gt;In the end, I would rather assess models using a practical and testable standard:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Do they handle the material faithfully, form judgments on reliable evidence, and allow those judgments to be tested by new evidence?&lt;/strong&gt;&lt;/p&gt;
</content:encoded></item><item><title>When Machines Get Cheaper, Why Should People Have To?</title><link>https://blog.js.gripe/2026/09/machines-get-cheaper-human-time/</link><guid isPermaLink="true">https://blog.js.gripe/2026/09/machines-get-cheaper-human-time/</guid><pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate><dc:date>2026-09-12T00:00:00.000Z</dc:date><dc:creator>toewpq</dc:creator><dc:language>en</dc:language><description>From Chinese manufacturing disputes, CNC work intensification, and humanoid robots to entry-level jobs, working hours, social insurance, and the income structure of a highly automated society.</description><category>blog</category><category>Automation</category><category>Manufacturing</category><category>AI</category><category>Robotics</category><category>Labor</category><category>Social Insurance</category><content:encoded>&lt;p&gt;Over the past two decades, technological progress in Chinese manufacturing has usually been described as a steady march toward greater efficiency: CNC machines reduced manual machining, robotic arms spread through welding, painting, and material handling, MES systems digitized production rhythms, machine vision took over repetitive inspection, and now generative AI and humanoid robots are advancing from both the cognitive and physical sides of work. From the firm’s perspective, the logic is straightforward. Machines can reduce labor input per unit, stabilize production, and move more knowledge into software, databases, and equipment, making production less dependent on any one specific person. The harder question lies on the other side of that process: firms are also becoming less dependent on particular workers, while housing, food, transport, health care, education, and retirement security still depend heavily on wages.&lt;/p&gt;
&lt;p&gt;Two different labor disputes in mainland Chinese manufacturing in late summer 2026 help frame the problem. Xingyu Automotive Lighting later disclosed that it had signed employment agreements with 440 members of the 2026 graduating class during its autumn 2025 and spring 2026 campus recruitment cycles, and that 372 eventually entered formal employment. In August 2026, the company entered job-adjustment and workforce-reduction discussions with 140 newly hired employees; 107 ultimately left the company. Xingyu later acknowledged “errors in judgment and hasty decision-making” and said it had “wrongly decided to transfer or reduce positions for some newly hired graduates.” Those affected included R&amp;amp;D, manufacturing, quality, and project roles. What disappeared for them was not only an immediate wage but also an entry point for building the first, second, and third years of occupational experience.&lt;a href=&quot;https://news.ifeng.com/c/8wDu1EZYQh4&quot; rel=&quot;noopener noreferrer&quot;&gt;Report on Xingyu’s corrective statement&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A few days later, a video from a battery factory drew national attention. Early online accounts incorrectly identified the site as CATL’s Yibin operation and linked the incident to alleged restroom restrictions. CATL denied that the event occurred at its facility. On September 10, REPT BATTERO confirmed that the video came from its Jiashan base. The company said the employee had requested immediate resignation processing, that the company believed the procedure required more time, that the two sides failed to agree on timing, and that the employee then engaged in what the company described as extreme behavior. REPT BATTERO also denied the restroom allegation, said police had become involved, and later promised to improve internal employee-communication mechanisms.&lt;a href=&quot;https://www.yicai.com/news/103359827.html&quot; rel=&quot;noopener noreferrer&quot;&gt;Yicai report on the Jiashan incident&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The available public record is not strong enough to present the restroom allegation as established fact. But the company’s own account still reveals something important: a resignation dispute that should ordinarily have been handled through workplace communication and labor-relations procedures escalated into an extreme incident on the shop floor, police involvement, and a public corporate apology. Modern factories can measure downtime by the minute, output by the unit, and continuously digitize staffing, takt time, quality, and cost. Workers’ ability to leave, rest, and change occupational paths should be treated as equally concrete institutional questions.&lt;/p&gt;
&lt;p&gt;This essay is therefore not about the slogan “Will robots take our jobs?” It is about a longer chain of change. As machines get cheaper, firms can more easily reduce their dependence on particular workers. Workers, in turn, may try to remain inside the wage system by taking on more machines, broader job scopes, slower wage growth, and weaker exit options, effectively lowering their unit price. Once technology begins reducing the number of jobs themselves, the question moves further: if the total number of human labor hours society needs keeps falling, how should working time, unemployment, income, social insurance, and the reward for doing necessary work change with it?&lt;/p&gt;
&lt;h2&gt;1. Time saved by machines does not automatically become workers’ time&lt;/h2&gt;
&lt;p&gt;Manual loading and unloading around CNC machines is one of the clearest places to see this. CNC systems already control tool paths, spindle speeds, feed rates, automatic tool changes, and much of the cutting cycle. Yet operators may still move workpieces, clamp them, load and unload them, measure parts, inspect machines, respond to alarms, clear chips, and walk between multiple machines. If a machine can cut unattended for ten minutes, that only means the operator no longer has to guide the tool continuously for those ten minutes. It does not mean those ten minutes now belong to the worker.&lt;/p&gt;
&lt;p&gt;Production management can simply recalculate that interval as capacity for another machine. One operator who used to handle eight machines may later handle twelve, sixteen, or more. A job that once meant loading and unloading can expand to include material replenishment, cleaning, simple quality checks, and basic inspection. Equipment becomes more automated while the worker still sells the same eight-hour day. The number of machines, tasks, and exceptions covered in each hour increases. Automation reduces labor input per unit of output, but the worker may receive almost none of the time saved.&lt;/p&gt;
&lt;p&gt;That is why “machines per operator” is a poor standalone measure of progress. Twenty machines with automated loading, centralized monitoring, lightweight parts, and low failure rates are fundamentally different from twenty machines that still require frequent manual lifting, clamping, measurement, and alarm recovery. Actual workload depends on takt time, machine spacing, workpiece weight, loading time, measurement frequency, simultaneous alarm probability, recovery time, and whether the worker can safely leave the station for a few minutes.&lt;/p&gt;
&lt;p&gt;The U.S. Occupational Safety and Health Administration offers a useful example in its restroom rules. OSHA requires employers to provide prompt access to toilet facilities when needed and to avoid unreasonable restrictions. On continuous production lines, employers may use relief-worker systems, but enough relief coverage must exist to prevent unreasonable waiting times. In other words, continuous production is treated as an engineering constraint, not as a reason to make human biological needs absorb all organizational costs.&lt;a href=&quot;https://www.osha.gov/restrooms-sanitation&quot; rel=&quot;noopener noreferrer&quot;&gt;OSHA: Restrooms and Sanitation Requirements&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;California has carried the same principle into warehouse productivity regulation. AB 701 restricts production quotas that interfere with meal periods, rest breaks, restroom use, or occupational safety. In 2024, the California Labor Commissioner cited Amazon for violations of the Warehouse Quotas Law at two facilities, issuing penalties totaling $5,901,700 and again emphasizing that hidden quotas should not pressure workers to skip meals, rest, or restroom access.&lt;a href=&quot;https://www.dir.ca.gov/DIRNews/2024/2024-46.html&quot; rel=&quot;noopener noreferrer&quot;&gt;California DIR: Amazon Warehouse Quotas penalties&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;These rules accept the engineering reality of continuous production without forcing the human body to absorb every scheduling constraint. A minute saved by a machine can become profit, capacity for another machine, or an actual minute less of human labor. Technology only creates the possibility of needing less labor. Who receives the saved time remains a question of labor relations and institutions.&lt;/p&gt;
&lt;h2&gt;2. Automation enters wage bargaining before it replaces anyone&lt;/h2&gt;
&lt;p&gt;Productivity gains tell us how much one worker can now produce. Another change is equally important: how costly is it for the firm to lose this particular person? In this essay I continue to call that change a “substitutability dividend.” SOPs, CNC programs, failure databases, MES systems, standardized processes, and AI knowledge systems move experience out of individuals and into organizations. Workers still matter, but the degree to which any one worker is irreplaceable can decline.&lt;/p&gt;
&lt;p&gt;Sylvain Leduc and Zheng Liu directly examine the connection between automation and wage bargaining in a 2024 paper in the &lt;em&gt;American Economic Journal: Macroeconomics&lt;/em&gt;. Their abstract states that “the threat of automation weakens workers&apos; bargaining power in wage negotiations.”&lt;a href=&quot;https://www.aeaweb.org/articles?id=10.1257%2Fmac.20220181&quot; rel=&quot;noopener noreferrer&quot;&gt;AEA: Automation, Bargaining Power, and Labor Market Fluctuations&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The key word is “threat.” A robot does not have to be standing next to the worker already. Once automation moves from a trade-show concept to something procurement can price and finance can evaluate, it becomes a credible outside option for the employer. The old threat — “if you will not do it, someone else will” — begins to acquire another layer: “later, we may not need another person at all.”&lt;/p&gt;
&lt;p&gt;Workers’ response does not have to appear as an explicit wage cut. A monthly wage can remain unchanged while one person’s machine count rises from eight to twelve. A production role can absorb replenishment, quality checks, and basic maintenance. Tasks once split between two people can gradually be combined. The nominal wage is the same, but each unit of wage buys more labor and output for the employer. I use “defensive repricing” for this process: the number on the paycheck stays the same while the unit price of labor falls.&lt;/p&gt;
&lt;p&gt;Fan, Hu, and Tang studied Chinese firm data from 2004 to 2012 and found that, in the 2008–2012 sample, a 10% increase in the minimum wage was associated with a 0.11 percentage-point increase in a firm’s probability of adopting robots, against an average adoption probability of roughly 0.19%. The effect was stronger among more productive, coastal, privately owned, and skill-intensive firms.&lt;a href=&quot;https://www.sciencedirect.com/science/article/pii/S0167268120304339&quot; rel=&quot;noopener noreferrer&quot;&gt;ScienceDirect: Labor costs and the adoption of robots in China&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;That evidence shows that relative labor cost can influence automation decisions. It does not imply that the answer is to keep human labor permanently cheap. Technology costs keep falling. The cost advantage workers regain today by taking responsibility for more machines can be eroded by the next generation of equipment a few years later. Firms can wait another year for a robot to become cheaper. Rent, groceries, and household expenses do not pause for a year. The thinner the safety net, the less time workers can afford to wait and the more pressure they face to accept a lower effective price for their labor.&lt;/p&gt;
&lt;p&gt;Unemployment insurance therefore affects bargaining power even before unemployment occurs. A worker who knows that job loss will not immediately destroy the household budget has more room to refuse sharply deteriorating hours or conditions than someone who cannot make next month’s rent without the next paycheck.&lt;/p&gt;
&lt;h2&gt;3. Human-to-human replacement was industrialized before robots arrived&lt;/h2&gt;
&lt;p&gt;Constant recruitment in manufacturing does not necessarily mean constant expansion. A plant that requires 1,000 workers at steady state can lose 60 workers every month and hire 60 replacements. That produces 720 hiring events in a year while net employment ends exactly where it began.&lt;/p&gt;
&lt;p&gt;Fieldwork by Liu and Zhu on manufacturing labor markets in the Yangtze River Delta documents a chain of labor companies, intermediaries, and recruitment agents built around factories’ need for flexibility. In one industrial-park district alone, the researchers found around 150 intermediary companies. They write that the business model and strategies of the intermediary chain can be “consistently aggravating labor turnover.”&lt;a href=&quot;https://link.springer.com/article/10.1186/s40711-020-00120-z&quot; rel=&quot;noopener noreferrer&quot;&gt;Springer: Why workers’ turnover is so high&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This infrastructure changes the cost of turnover. When a skilled worker leaves and takes months to replace, management has a strong incentive to ask why people are leaving. When intermediaries can keep supplying replacements and standardization shortens ramp-up time, turnover becomes a flow problem — measured through attrition rates, refill speed, and recruitment bonuses — rather than necessarily a reason to redesign the job itself.&lt;/p&gt;
&lt;p&gt;Xingyu’s disclosures show how labor input can be recomposed. At the end of 2024, the company reported 10,426 employees, including 7,911 production workers and 1,734 technical staff. At the end of 2025, total headcount had fallen to 7,532, with 4,729 production workers and 2,080 technical staff. Outsourced labor hours rose over the same period from roughly 8.64 million to 10.87 million hours. These figures cannot prove that specific employees were replaced one-for-one by outsourced labor, nor can they isolate the effects of automation, orders, and restructuring. They do show that the company can rebalance labor among formal production employees, technical staff, and outsourced work.&lt;a href=&quot;https://static.cninfo.com.cn/finalpage/2026-03-20/1225018561.PDF&quot; rel=&quot;noopener noreferrer&quot;&gt;Xingyu 2025 annual report, CNInfo&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Xingyu’s 2024 annual report also contained an obviously implausible entry in the field labeled total remuneration paid for outsourced labor. That episode is a useful reminder: disclosure is not the same as reliability. An automated economy does not mainly need more dashboards. It needs data systems in which headcount, outsourced hours, wages, productivity, recruitment, turnover, and technology spending can be cross-checked against one another.&lt;/p&gt;
&lt;p&gt;Standardization lowers the technical cost of replacing people. Labor intermediaries lower the transaction cost. Robotics lowers the physical labor requirement. These are not unrelated developments; they form a continuous chain that strengthens firms’ ability to substitute away from particular workers.&lt;/p&gt;
&lt;h2&gt;4. Firms want experienced technicians, but someone still has to fund the first year of experience&lt;/h2&gt;
&lt;p&gt;A technician who can independently troubleshoot PLCs, servo systems, electrical diagrams, robots, complex downtime, and quality problems does not emerge fully formed on graduation day. That person has to begin with inspection routines, basic alarms, and assisted maintenance, then accumulate the first year, the second, and the third.&lt;/p&gt;
&lt;p&gt;Training creates a familiar externality. Company A can spend two years developing a novice into an experienced worker, only for Company B to hire that worker later at a higher wage. For an individual firm, reducing general training and buying mature experience from the labor market can be rational. When many firms behave this way, the industry as a whole ends up complaining that experienced workers are scarce.&lt;/p&gt;
&lt;p&gt;Singapore’s Skills Development Levy offers one practical response. Employers contribute SDL for employees working in Singapore, currently at 0.25% of monthly wages, with a minimum of S$2 and a maximum of S$11.25 per worker. The CPF Board states the purpose plainly: “SDL is used to support workforce upgrading.” The levy goes into the Skills Development Fund and supports workforce training.&lt;a href=&quot;https://www.cpf.gov.sg/employer/employer-obligations/skills-development-levy&quot; rel=&quot;noopener noreferrer&quot;&gt;CPF Board: Skills Development Levy&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The significance lies less in the specific rate than in the principle. A company can train internally or hire from the market, but the industry cannot make its contribution to skill formation fall all the way to zero simply by choosing not to train.&lt;/p&gt;
&lt;p&gt;Germany’s dual vocational system addresses another part of the problem: portability. Apprentices train in both firms and vocational schools, while final qualifications are certified through legally recognized external structures such as chambers. Skills built in Company A therefore remain legible in Company B. Leaving the current employer does not reset occupational competence to zero.&lt;/p&gt;
&lt;p&gt;Automation makes this more urgent because robots often enter at the bottom rungs of occupational ladders. BMW says Figure 02 operated in real production at its Spartanburg plant for ten months, supporting production of more than 30,000 BMW X3 vehicles, moving more than 90,000 components, and accumulating about 1,250 operating hours in tasks such as handling sheet-metal parts before welding.&lt;a href=&quot;https://www.press.bmwgroup.com/france/article/detail/T0455878FR&quot; rel=&quot;noopener noreferrer&quot;&gt;BMW Group: Figure 02 production project&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Hyundai has laid out an Atlas deployment roadmap as well: beginning with parts sequencing in 2028 and extending into component assembly by 2030, with further expansion into repetitive, heavy, and more complex work. Its own wording is: “Beginning in 2028 … parts sequencing. By 2030, applications will extend to component assembly.”&lt;a href=&quot;https://www.hyundai.com/worldwide/en/newsroom/detail/0000001100&quot; rel=&quot;noopener noreferrer&quot;&gt;Hyundai Motor Group: Atlas roadmap&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;These jobs are not always the most technically advanced, but they have often served as entry points through which younger workers learn parts, machines, production rhythms, safety, and quality systems. Once the first rung is automated away, the industry must deliberately build a new first rung. Otherwise job ads will increasingly demand “three years of robot-maintenance experience” while fewer employers are willing to provide year one.&lt;/p&gt;
&lt;h2&gt;5. Employment adjustment may first appear as “not hiring” rather than layoffs&lt;/h2&gt;
&lt;p&gt;The employment effects of stronger tools are unlikely to wait for a single dramatic day on which robots replace everyone at once. A more plausible sequence is already visible: the same workforce uses stronger tools and completes more work; firms then hire fewer novices; retirees and leavers are not replaced at the old rate; total human hours decline gradually over several years.&lt;/p&gt;
&lt;p&gt;The ILO’s 2025 global update estimates that around one in four workers are in occupations with some degree of exposure to generative AI and emphasizes that, because many jobs still require human input, “most jobs will be transformed rather than made redundant.” That describes the immediate task-level relationship, but “the occupation still exists” does not mean “an occupation that once required ten people will still require ten people.”&lt;a href=&quot;https://www.ilo.org/publications/generative-ai-and-jobs-2025-update&quot; rel=&quot;noopener noreferrer&quot;&gt;ILO: Generative AI and jobs: A 2025 update&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Stanford Digital Economy Lab, using ADP payroll data covering millions of U.S. workers and updating through June 2026, finds that employment among workers aged 22–25 in highly AI-exposed occupations stands about 19% below where it would have been if it had tracked less-exposed peers of the same age. The researchers also write that adjustment “appears to operate primarily through reduced hiring of young workers rather than increased separations.”&lt;a href=&quot;https://digitaleconomy.stanford.edu/publication/canaries-in-the-coal-mine-six-facts-about-the-recent-employment-effects-of-artificial-intelligence/&quot; rel=&quot;noopener noreferrer&quot;&gt;Stanford Digital Economy Lab: Canaries in the Coal Mine?&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The study explicitly treats these as descriptive patterns, so the 19% gap should not be presented as a clean causal effect of AI alone. Its strongest implication is different: technology can reshape employment before headline unemployment rises, simply because young people are not hired in the first place.&lt;/p&gt;
&lt;p&gt;Manufacturing can adjust in the same way. Experienced workers stay until retirement, the company does not replace them, routine tasks gradually move to robots, and the remaining workforce covers more machines and exceptions. Headcount falls over several years without a single dramatic mass-layoff event.&lt;/p&gt;
&lt;p&gt;Volkswagen’s 2024 restructuring agreement in Germany offers a concrete reference point. The company plans to reduce more than 35,000 German positions by 2030 using negotiated restructuring, natural attrition, retirement, and changes in hiring. Protecting incumbent workers from immediate mass layoffs does not mean future entry points for young workers remain unchanged. Technology-related employment adjustment therefore has to be tracked not only through layoffs but through novice hiring, apprenticeship places, replacement rates for retirees, and total labor hours.&lt;/p&gt;
&lt;h2&gt;6. The path to a highly automated society will not jump directly from a 40-hour week to “nobody works”&lt;/h2&gt;
&lt;p&gt;The first response to higher productivity should be less excessive labor. While society still needs most of the working-age population, the first time dividend from technology can appear as less overtime, shorter standard hours, and higher hourly pay. At this stage the core issue is still the CNC problem: some of the ten minutes the machine has already saved should actually return to the worker instead of being immediately assigned to another machine.&lt;/p&gt;
&lt;p&gt;As aggregate labor demand falls further, work-sharing becomes more important. Germany’s Kurzarbeit shows that cutting hours can prevent a sudden decline in labor demand from turning into an equivalent decline in employment. At the 2009 peak, roughly 1.5 million workers were on short-time work arrangements, and the OECD has estimated that the system may have preserved as many as about 580,000 jobs.&lt;a href=&quot;https://www.oecd.org/en/publications/preparing-erte-for-the-future_a70bf8ec-en/full-report/component-5.html&quot; rel=&quot;noopener noreferrer&quot;&gt;OECD: German short-time work case&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Germany was responding to a demand crisis rather than long-run automation, but the distributional logic is useful. If a society’s required labor falls from 4,000 hours to 3,200, it can keep 80 people at 40 hours and push 20 people to zero, or it can spread some of the reduction in hours more broadly. Technology does not dictate the first choice.&lt;/p&gt;
&lt;p&gt;Eventually, however, shorter hours reach a limit. If 100 people once worked 40 hours each for 4,000 total hours, reducing everyone to 20 hours can absorb a long-run decline to 2,000 required hours. If the economy eventually needs only 1,000, insisting that every working-age adult must still hold a conventional job begins to manufacture work for the sake of preserving the old social form.&lt;/p&gt;
&lt;p&gt;The transition will therefore create more intermediate states. Someone may work three days a week and study on another day. A worker may spend six months in structured education after several years of employment. A parent may reduce market work during a period of family care. Some people may use AI, software, and digital fabrication for small-scale independent production. Others may genuinely have periods with no market job. These states cannot become stable if health care, pensions, and basic living standards remain tied almost entirely to a standard full-time contract.&lt;/p&gt;
&lt;p&gt;Once market labor demand becomes clearly smaller than the working-age population, forcing everyone to compete for a shrinking number of full-time jobs recreates the central problem of this essay. If 100 working-age adults face only 50 full-time-equivalent jobs and the other 50 still need a job to secure a normal standard of living, the price of labor is pushed downward. Lower wages, broader job scopes, and worse conditions become bargaining chips for access to those 50 positions.&lt;/p&gt;
&lt;p&gt;A highly automated society therefore has to change the role of wages in the income system. Wages gradually move from being the sole gateway to normal life toward being a clear additional reward for providing scarce labor, personal time, and responsibility. If nursing, maintenance, grid operations, complex equipment, safety, or emergency response remain difficult to staff, the answer should be higher hourly pay, shorter hours, and better leave — not deliberate poverty for people without jobs so they can be coerced into accepting unattractive work.&lt;/p&gt;
&lt;p&gt;High automation does not mean human beings do nothing. Fewer market jobs and fewer socially valuable activities are entirely different things. Care, learning, art, community participation, research interests, small-scale production, and human relationships can all remain abundant. More of those activities simply cease to require a conventional employment contract as the price of admission to normal life.&lt;/p&gt;
&lt;h2&gt;7. Income protection must keep people from falling through the floor while still making work clearly pay more&lt;/h2&gt;
&lt;p&gt;A real fairness problem appears here. Suppose two people once earned similar incomes. One continues commuting, working eight hours a day, meeting performance targets, and carrying responsibility. The other temporarily has no market job but receives almost the same — or even more — disposable income. It is reasonable for the worker who continues working to feel that something is off. Society cannot ask someone to surrender dozens of additional hours every week while assigning almost no additional economic value to that time.&lt;/p&gt;
&lt;p&gt;The United States’ 2020 pandemic unemployment expansion offers an extreme case. The CARES Act added a flat $600 per week in Federal Pandemic Unemployment Compensation on top of regular state benefits. NBER researchers estimated that from April through July 2020, 76% of eligible regular unemployment-insurance recipients had statutory replacement rates above 100%, with a median of 145%. Even after accounting for taxes and employer-provided nonwage benefits, 69% still had replacement rates above 100%.&lt;a href=&quot;https://www.nber.org/papers/w27216&quot; rel=&quot;noopener noreferrer&quot;&gt;NBER: US Unemployment Insurance Replacement Rates During the Pandemic&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The pandemic also involved lockdowns, health risks, care obligations, and jobs that had simply disappeared, so those figures should not be reduced to the claim that “high benefits made people refuse work.” They illustrate a more basic design issue: if cash income outside work remains close to or above wages for long periods, workers who continue to provide time and responsibility can reasonably conclude that their additional contribution is not being priced clearly.&lt;/p&gt;
&lt;p&gt;Income protection therefore has to work on both sides. People who lose jobs cannot be pushed into poverty after a few weeks, because workers who desperately need next month’s rent will accept almost any low-priced job and thereby weaken bargaining power across the labor market. But people who continue doing necessary work also need a visibly higher total return through wages, pension accumulation, and other benefits.&lt;/p&gt;
&lt;p&gt;Singapore’s Workfare Income Supplement addresses the second side. WIS supplements lower-income workers through both cash and CPF payments. By February 2026, more than S$12.9 billion had cumulatively been paid to 1.13 million lower-income workers. The CPF Board states: “Workfare is paid in the form of CPF payments and cash to supplement their incomes.”&lt;a href=&quot;https://www.cpf.gov.sg/member/growing-your-savings/government-support/workfare-income-supplement&quot; rel=&quot;noopener noreferrer&quot;&gt;CPF Board: Workfare Income Supplement&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Canada’s Employment Insurance “Working While on Claim” provisions address another problem: the benefit cliff. Within defined limits, each dollar of earnings reduces EI benefits by only 50 cents. In the government’s current example, someone receiving C$330 per week in EI takes a part-time job paying C$350 and still retains C$155 in EI, raising total weekly income to C$505. Returning to some work clearly raises total income instead of causing the entire benefit to disappear.&lt;a href=&quot;https://www.canada.ca/en/employment-social-development/programs/ei/ei-list/working-while-claim.html&quot; rel=&quot;noopener noreferrer&quot;&gt;Canada.ca: Working While on Claim&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Technology-driven transitions also create another type of loss: a worker can be “reemployed” while earning much less. Someone who earned 8,000 in a mature technical role may find only a 6,000 job in a new sector. Conventional statistics count that person as employed again, but the household has experienced a real downward step. The United States’ former Reemployment Trade Adjustment Assistance program used time-limited wage insurance for some trade-displaced workers, partially covering the gap between previous and new earnings. A similar mechanism can be useful in technology transitions: the payment goes to the worker, is time-limited and phases out, allowing people to build experience in a new field without choosing between long-term unemployment at the old reservation wage and an immediate permanent pay cut.&lt;/p&gt;
&lt;p&gt;The durable fairness principle for a highly automated society is therefore two-sided: &lt;strong&gt;people without market work must not lose the basis of a normal life; people who do market work must receive a clearly higher return for the time and responsibility they provide.&lt;/strong&gt; The first protects the ability to refuse degrading terms. The second preserves a fair price for labor itself.&lt;/p&gt;
&lt;h2&gt;8. Social insurance cannot forever assume that almost everyone will spend decades earning wages&lt;/h2&gt;
&lt;p&gt;Mainland China’s employee pension system still depends heavily on wage employment and contribution histories. A gradual increase in the statutory retirement age began in 2025, eventually raising the retirement age to 63 for men, to 58 for women whose prior statutory retirement age was 55, and to 55 for women whose prior age was 50. Beginning in 2030, the minimum contribution period required for monthly basic employee-pension benefits will also rise by six months per year, moving from 15 years to 20 years by 2039.&lt;a href=&quot;https://www.npc.gov.cn/npc/c2/kgfb/202409/t20240913_439534.html&quot; rel=&quot;noopener noreferrer&quot;&gt;National People’s Congress: Decision on gradually raising the statutory retirement age&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;That reform is primarily a response to demographic aging, life expectancy, health, and labor supply. It was not designed for AI or robotics. Yet it provides an important reference point for the future. If the working-age population remains large while the economy requires fewer full-time jobs and fewer total wage hours, relying mainly on “work longer and contribute longer” to stabilize the system will increasingly conflict with the technological trend toward less necessary labor.&lt;/p&gt;
&lt;p&gt;A young worker in a future of more interrupted employment, part-time work, long training periods, and repeated occupational transitions may find it harder, not easier, to accumulate a longer minimum contribution history. If society no longer needs everyone to work 40 hours but still needs everyone to remain attached to wage employment simply to finance social insurance, then part of the labor time saved by machines has effectively been reinserted through the contribution system.&lt;/p&gt;
&lt;p&gt;This does not mean contributory pensions should disappear overnight. Benefits linked to personal earnings and work histories can still retain a contributory layer. What has to widen over time is the financing base for foundational protections.&lt;/p&gt;
&lt;p&gt;Existing systems already offer several directions. Japan finances half of its basic pension through the national treasury. The Ministry of Health, Labour and Welfare states plainly: “基礎年金の財源の半分は国庫負担で賄われています” — half the financing of the basic pension is covered by the national treasury.&lt;a href=&quot;https://www.mhlw.go.jp/stf/seisakunitsuite/bunya/0000147284_00023.html&quot; rel=&quot;noopener noreferrer&quot;&gt;Japan MHLW: Basic-pension financing&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Germany’s statutory pension insurance also does not rely exclusively on wage contributions. Deutsche Rentenversicherung’s 2025 financing figures show roughly 76.9% of revenues coming from contributions and about 22.3% from federal subsidies.&lt;a href=&quot;https://www.deutsche-rentenversicherung.de/Mitteldeutschland/DE/Ueber-uns/Selbstverwaltung/Reden/2026-01_Rede-VoVo&quot; rel=&quot;noopener noreferrer&quot;&gt;Deutsche Rentenversicherung: 2025 financing&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;France broadens the base further by applying social levies such as CSG and CRDS to parts of property and investment income. That is an important reminder that the tax base for social protection does not have to be identical to the wage bill.&lt;a href=&quot;https://www.service-public.fr/particuliers/vosdroits/F2329&quot; rel=&quot;noopener noreferrer&quot;&gt;Service-Public.fr: Social levies on property and investment income&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Mainland China itself already contains another approach with greater relevance to a future in which wage labor may shrink as a share of national income. In 2017, the State Council decided to transfer portions of state-owned capital into social-security funds. Large and medium-sized state-owned or state-controlled enterprises and financial institutions within scope were generally required to transfer 10% of state equity, with dividends and investment returns available to help cover employee basic-pension shortfalls. The policy explicitly described one objective as enabling all people to share in the development gains of state-owned enterprises.&lt;a href=&quot;https://www.mof.gov.cn/zhengwuxinxi/caizhengxinwen/201711/t20171118_2753364.htm&quot; rel=&quot;noopener noreferrer&quot;&gt;Ministry of Finance: Transfer of state capital to enrich social-security funds&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;That arrangement already contains a logic close to the needs of a highly automated society: social insurance can receive capital income directly rather than relying entirely on wage contributions.&lt;/p&gt;
&lt;p&gt;A more stable transition would therefore be layered. Pension and insurance components closely tied to personal employment history can remain contributory. Basic old-age protection, essential health coverage, and part of unemployment protection can gradually receive greater fiscal support. As labor’s share of income falls, capital income, corporate profits, and broader tax bases can carry more of the financing burden. Returns from public and state-owned capital can flow into long-term social-security funds. The financing question gradually shifts from “how much did workers earn in wages?” to “how much income and capital return did the economy as a whole generate?”&lt;/p&gt;
&lt;h2&gt;9. Shared capital income can reduce the conflict created when only the unemployed receive the technology dividend&lt;/h2&gt;
&lt;p&gt;If public support linked to technological progress is available only after someone loses a job, society can split into two identities. People who continue working may feel they bear commuting, hours, responsibility, and taxes, while only those who become unemployed gain access to new “automation dividends.” That structure can intensify resentment between workers and nonworkers.&lt;/p&gt;
&lt;p&gt;Shared capital income offers another route. Alaska’s Permanent Fund converts part of mineral-resource revenue into a long-term public asset and pays an annual dividend to eligible residents from investment earnings. People who continue working receive the dividend as well, so the payment does not create an incentive structure in which one must first become unemployed to share in common wealth.&lt;a href=&quot;https://pfd.alaska.gov/Division-Info/About-Us&quot; rel=&quot;noopener noreferrer&quot;&gt;Alaska Permanent Fund Dividend&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Norway’s Government Pension Fund Global uses a much larger intergenerational asset model, channeling the state’s petroleum net cash flow into a fund and then using fiscal rules to support the public budget so that resource wealth benefits both current and future generations.&lt;a href=&quot;https://www.regjeringen.no/en/topics/the-economy/the-government-pension-fund/id1441/&quot; rel=&quot;noopener noreferrer&quot;&gt;Norway Ministry of Finance: Government Pension Fund&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;AI and robotics are not natural resources, but the ownership logic still matters. Modern technology industries depend heavily on university research, public infrastructure, energy systems, electric grids, government procurement, and industrial finance. If the public sector retains equity, fund shares, or long-term return rights in some investments, part of the capital return from successful technology can enter public income directly rather than appearing only as compensation after a worker is displaced.&lt;/p&gt;
&lt;p&gt;That produces a more coherent income structure. Someone who continues working receives wages plus shared returns. Someone without a market job receives basic protection, insurance, and the same shared returns. Someone in a training period may receive additional study support. The common base is universal, while market labor still commands a clearly additional price.&lt;/p&gt;
&lt;h2&gt;10. Learning cannot become an endless race away from whatever machines just learned to do&lt;/h2&gt;
&lt;p&gt;Automation debates often push responsibility back onto individuals. Learn PLCs today; learn robotics tomorrow when diagnostics improve; learn AI after robots become easier to program; then search again for whatever the next system cannot yet automate. A life organized this way is still entirely about proving that one remains worth hiring.&lt;/p&gt;
&lt;p&gt;Occupational learning matters, but adults often lack time and income more than course catalogs. Singapore’s SkillsFuture Mid-Career Training Allowance directly adds income support to longer training. Eligible mid-career citizens in full-time long-form training can receive an allowance equal to 50% of average monthly income, capped at S$3,000 per month, for up to 24 months over a lifetime. The official explanation explicitly says the rate is intended both to offset income loss and to preserve “the incentive for them to return to work.”&lt;a href=&quot;https://www.skillsfuture.gov.sg/docs/default-source/initiatives/skillsfuture-level-up-programme/frequently-asked-questions-on-skillsfuture-level-up-programme_skillsfuture.gov.sg_mar24.pdf&quot; rel=&quot;noopener noreferrer&quot;&gt;SkillsFuture: Mid-Career Training Allowance FAQ&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Sweden’s transition-study support goes further in recognizing that becoming a student again in mid-career can be a normal stage of life. Occupational stability can gradually mean not “remaining in the same employment state for forty years” but “being able to change state without falling out of the income, insurance, and education systems.” Someone may work at 30, study systematically at 35, return to work, later spend time on family care or another round of retraining, and then re-enter the labor market again.&lt;/p&gt;
&lt;p&gt;Learning outside the labor market should retain its own value as well. A mechanic can study history, an engineer can learn photography, and a production worker can learn music without first proving that the activity will raise future wages. If productivity really rises, part of the social dividend should be more adult time for understanding the world and pursuing interests that have no immediate market price.&lt;/p&gt;
&lt;h2&gt;11. Another major meaning of AI is that ordinary people can push ideas through the tool barrier&lt;/h2&gt;
&lt;p&gt;Generative AI affects employment in another direction that is often neglected: it lowers the amount of professional execution capacity an individual must purchase in order to test a small idea. A website once required substantial front-end, back-end, database, and deployment knowledge. A game required code, art, animation, and sound. A 3D character required modeling, topology, UV work, materials, and rendering. Many ideas never reached the market because they died before the first workable prototype existed.&lt;/p&gt;
&lt;p&gt;Brynjolfsson, Li, and Raymond studied 5,179 customer-service agents using a generative-AI assistant and found an average productivity increase of 14%, with a 34% improvement among novice and lower-skilled workers and little improvement among the most experienced high-skilled workers. Their paper writes of “a 34% improvement for novice and low-skilled workers” and provides evidence consistent with AI helping newer workers access practices used by higher performers.&lt;a href=&quot;https://www.nber.org/papers/w31161&quot; rel=&quot;noopener noreferrer&quot;&gt;NBER: Generative AI at Work&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;That matters for ordinary workers. The person who actually repairs cars knows which small workflow problems never get fixed. The person who actually operates CNC machines knows which alarm logs and handover forms waste time every day. A small-shop owner knows exactly what simple software the business needs. These people often possess domain knowledge but not a programmer, designer, or product team. As AI lowers the cost of producing a first version of code, websites, images, data tools, or 3D prototypes, the distance between knowing what should exist and being able to build something testable gets shorter.&lt;/p&gt;
&lt;p&gt;Time no longer needed for employment therefore does not have to become “idleness.” Some people can build small software tools, open-source projects, characters, games, 3D prototypes, and physical products, using AI, 3D printing, and CNC to test ideas that once required a small team. Problems too small to interest a conventional firm can increasingly be addressed by people who actually live with them.&lt;/p&gt;
&lt;p&gt;Real AI empowerment, however, also requires exit capacity. If a person’s model memory, files, prompts, workflows, and project context are locked inside one provider, dependence on an employer can simply be replaced by dependence on a platform. Open weights, open interfaces, data export, context portability, and local execution matter because they make the provider itself replaceable.&lt;/p&gt;
&lt;p&gt;As firms become less dependent on any particular employee, individuals should become less dependent on any particular firm. As AI platforms participate more deeply in personal work, users should also become more capable of taking their accumulated context and leaving a particular provider.&lt;/p&gt;
&lt;h2&gt;12. Care robots should replace burdens before they replace relationships&lt;/h2&gt;
&lt;p&gt;A highly automated society does not imply that every human activity should be run at the lowest possible staffing ratio. Care work makes this especially clear. Japan has promoted transfer-assistance robots, monitoring systems, ICT, and other care technologies with goals that include improving service quality, reducing physical burdens on caregivers, and supporting older people’s independence. Automating repetitive lifting, delivery, night rounds, and fall monitoring has obvious value.&lt;/p&gt;
&lt;p&gt;The decisive question is what happens to the time saved. If a care worker spends two fewer hours on mechanical lifting, those hours can go into conversation, observation of physical and emotional changes, and communication with family members. An institution can also choose the opposite path: reduce staffing and keep the remaining workers fully loaded.&lt;/p&gt;
&lt;p&gt;Research on the PARO robotic seal illustrates the distinction. A 2023 systematic review and meta-analysis covering 12 studies and 1,461 participants found some effects on medication use, anxiety, agitation, and depression, but also concluded: “The overall quality of evidence for all outcomes were graded as low.”&lt;a href=&quot;https://pubmed.ncbi.nlm.nih.gov/37348392/&quot; rel=&quot;noopener noreferrer&quot;&gt;PubMed: PARO systematic review and meta-analysis&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A robot can produce an interaction that genuinely comforts an older person. Care still contains judgment and responsibility. If a patient suddenly stops eating, becomes confused, or faces a high-risk decision, someone still has to connect medical history, medication, past habits, and family context and take responsibility for what happens next.&lt;/p&gt;
&lt;p&gt;The right care metrics therefore run in two directions at once. Back injuries, dangerous lifting, repetitive night work, and mechanical chores should fall. Real human interaction, observation, and individualized care time should rise. Robots should first replace the burdens inside care, not compress the relationship itself.&lt;/p&gt;
&lt;h2&gt;13. Every institution will be gamed, so reality should not be compressed into one beautiful number&lt;/h2&gt;
&lt;p&gt;Novice-hiring rates, training hours, internal promotion rates, average wages, and formal headcount can all provide useful information. The moment one number directly determines subsidies, ratings, or regulatory outcomes, organizations begin optimizing around the number.&lt;/p&gt;
&lt;p&gt;Require a novice quota and firms can add short-term interns. Reward training hours and providers can pile up classes. Reward internal promotions and job titles can change. Reward higher average wages and a firm can raise the average by cutting the lowest-paid workers. Reward retention and employers may gain an incentive to make exit harder.&lt;/p&gt;
&lt;p&gt;Reliable monitoring therefore requires multi-year occupational trajectories and several measures that constrain one another. A firm can simultaneously show output up 30%, average wages up 8%, formal employment down 25%, outsourced hours up 40%, and novice hiring down 30%. Those tensions are not statistical noise; they are the reality that needs explanation. Productivity should be read together with actual hours and staffing ratios. Wages should be read with hourly earnings and workforce composition. Training should be read with later external certification and occupational mobility. Employment should be read across formal jobs, dispatch, outsourcing, hiring, and turnover. Entry-level opportunities should be followed for several years to see whether novices actually gain skills.&lt;/p&gt;
&lt;p&gt;Institutional maturity does not mean finding a number that cannot be gamed. It means raising the cost of constructing a false story because too many independent measures would have to line up with it.&lt;/p&gt;
&lt;h2&gt;14. Unions and other organizations change the condition in which one person has to bargain alone against the machine&lt;/h2&gt;
&lt;p&gt;If one shop-floor worker believes the number of machines assigned to one person has become unsafe, the easiest individual response is to quit. Ten workers who leave separately become ten attrition records, followed by ten replacement hires. If the same ten workers jointly collect data on walking distance, workpiece weight, loading cycles, simultaneous alarms, exception handling, and injuries and then demand a staffing discussion, the issue changes from individual endurance to an engineering arrangement management has to explain.&lt;/p&gt;
&lt;p&gt;The 2010 Nanhai Honda parts strike in China illustrated how bargaining power changes at the collective level. Any one young production worker could look highly replaceable. Once a critical parts supply stopped collectively, multiple Honda assembly plants were affected. Individual substitutability and collective substitutability are not the same economic fact.&lt;/p&gt;
&lt;p&gt;Automation makes this kind of organization more important before deployment, not only after job losses. After Hyundai published its Atlas roadmap, the company’s Korean union publicly demanded labor-management agreement over robotic deployment. The important questions arise before layoffs: which processes receive robots first, which retiring positions will no longer be refilled, how many machines remain per worker, and how productivity gains affect wages and hours.&lt;/p&gt;
&lt;p&gt;Firms already act collectively through the corporate form, management hierarchies, finance teams, legal departments, and industry associations. If ordinary workers can appear only as isolated resignations, injuries, or individual complaints, the gap in organizational capacity widens as technology makes people easier to substitute. Unions, industry bodies, media, academic researchers, NGOs, religious welfare organizations, and other intermediary institutions therefore remain important even in a society with stronger automation and social protection. Capital requires oversight; the administrative systems that distribute public money and capital returns require oversight as well.&lt;/p&gt;
&lt;h2&gt;15. In a truly highly automated society, full employment gradually gives way to full income security, participation, and choice&lt;/h2&gt;
&lt;p&gt;Abandoning full employment today would be unrealistic. Housing, food, health care, education, and retirement security still depend heavily on wages. When an ordinary person loses a job, purchasing power and real options genuinely shrink. Saying “human value is not measured by wages” does not solve that material reality.&lt;/p&gt;
&lt;p&gt;But there is also no reason to treat “every adult working full-time for roughly 40 hours a week” as an eternal social objective. In the early stages of productivity growth, overtime and work intensity can fall. Next, shorter hours can spread a reduction in aggregate labor demand. Later, work, study, care, and personal projects can cycle through the same life. If market production eventually needs only a relatively small amount of human labor, wages can increasingly become an additional reward for doing necessary work rather than the sole basis of a normal life.&lt;/p&gt;
&lt;p&gt;That path avoids two bad extremes. One deliberately impoverishes people without jobs in order to force them to accept work, creating a larger pool of cheap labor. The other makes disposable income under work and nonwork so similar that people who surrender large amounts of time feel their labor has no value.&lt;/p&gt;
&lt;p&gt;The more stable principle is simple: people without market jobs should not lose a normal standard of living; people who take on market work should clearly receive more; and especially scarce, dangerous, or high-responsibility work should attract people through higher hourly pay and shorter hours.&lt;/p&gt;
&lt;p&gt;A highly automated society is therefore not necessarily a “mass-unemployment society.” It is a society in which more valuable activities no longer have to be converted into full-time employment contracts before people can secure the material basis of life.&lt;/p&gt;
&lt;h2&gt;Conclusion: what machines should really reduce is the amount of life people are forced to sell&lt;/h2&gt;
&lt;p&gt;Industrial society built a stable exchange: people sell time and labor to firms; firms pay wages; people use those wages for housing, food, transport, education, health care, and retirement. Wages therefore serve both as the market price of labor and as a gateway to the resources required for normal life. When those two functions are tightly bound together, every improvement in machines’ ability to substitute for labor can feel like a threat to a person’s right to live normally.&lt;/p&gt;
&lt;p&gt;That pressure begins before a machine formally replaces anyone. One person covers more machines. The same pay absorbs more responsibilities. Rest time shrinks. Wage growth slows. Employment relationships become more flexible for the employer. Firms gain stronger substitution options while workers remain constrained by monthly household expenses. Machines get cheaper; people first respond by lowering the effective unit price of their own labor to remain inside the wage system.&lt;/p&gt;
&lt;p&gt;Once technology starts reducing the number of jobs themselves, society often responds by telling workers to learn whatever machines cannot yet do and find another 40-hour job. That cycle raises productive efficiency but fails to deliver the most basic promise of productivity growth: maintaining the same standard of living should require less necessary human labor over time.&lt;/p&gt;
&lt;p&gt;A real transition has to move on several fronts at once. Skills must become portable across firms. Workers who lose jobs need enough waiting time to avoid panic repricing. Some decline in labor demand should first appear as shorter hours. New entrants still need ways to build the first year of experience. People who continue working need clear additional income. Social insurance must become less dependent on a single wage-tax base by drawing more from general revenue, capital income, and public capital returns. And the time released by machines should be able to flow into care, learning, creation, civic participation, or simply remain unassigned.&lt;/p&gt;
&lt;p&gt;Mainland China already contains two contrasting tendencies within the same social-insurance system. One is to raise retirement ages and gradually lengthen minimum contribution periods, keeping workers attached to the contribution system for longer. The other is to transfer part of state-owned capital into social-security funds so that capital itself bears part of the pension burden. The first has its own logic in responding to today’s demographic aging. The second has greater long-run relevance if wage labor becomes a smaller share of the economy. A truly highly automated society cannot indefinitely preserve a system built around mass wage labor simply by requiring people to work longer.&lt;/p&gt;
&lt;p&gt;Production systems can keep becoming less dependent on key individuals. A factory should not stop because one veteran technician leaves. A software system should not lose all organizational knowledge because one programmer resigns. That is genuine engineering progress.&lt;/p&gt;
&lt;p&gt;Human social position should move in the opposite direction: &lt;strong&gt;as firms become less dependent on any particular worker, society should make workers less dependent on any particular firm.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;What machines should eliminate is repetitive, dangerous, and compulsory labor — and part of the life people currently have to sell simply to qualify for a normal standard of living.&lt;/p&gt;
&lt;p&gt;The worst future is one in which machines get cheaper and people, in order to remain employable, have to make their wages, rest, health, and time cheaper too.&lt;/p&gt;
&lt;p&gt;A better future is the reverse: machines get cheaper while human time becomes more valuable. As technology produces more wealth, ordinary people become able to sell a smaller share of their lives without losing the material basis of a normal life.&lt;/p&gt;
&lt;h2&gt;Sources and original material&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.aeaweb.org/articles?id=10.1257%2Fmac.20220181&quot; rel=&quot;noopener noreferrer&quot;&gt;American Economic Association: Automation, Bargaining Power, and Labor Market Fluctuations&lt;/a&gt; — “the threat of automation weakens workers&apos; bargaining power in wage negotiations.”&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.sciencedirect.com/science/article/pii/S0167268120304339&quot; rel=&quot;noopener noreferrer&quot;&gt;ScienceDirect: Labor costs and the adoption of robots in China&lt;/a&gt; — in the 2008–2012 sample, a 10% increase in the minimum wage was associated with a 0.11 percentage-point increase in robot adoption probability.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://link.springer.com/article/10.1186/s40711-020-00120-z&quot; rel=&quot;noopener noreferrer&quot;&gt;Springer: Why workers’ turnover is so high&lt;/a&gt; — fieldwork on the labor-intermediary chain in Chinese manufacturing.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.osha.gov/restrooms-sanitation&quot; rel=&quot;noopener noreferrer&quot;&gt;OSHA: Restrooms and Sanitation Requirements&lt;/a&gt; — prompt restroom access and relief coverage for continuous work.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.dir.ca.gov/DIRNews/2024/2024-46.html&quot; rel=&quot;noopener noreferrer&quot;&gt;California DIR: Amazon Warehouse Quotas penalties&lt;/a&gt; — $5,901,700 in penalties in 2024.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.cpf.gov.sg/employer/employer-obligations/skills-development-levy&quot; rel=&quot;noopener noreferrer&quot;&gt;CPF Board: Skills Development Levy&lt;/a&gt; — “SDL is used to support workforce upgrading.”&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.press.bmwgroup.com/france/article/detail/T0455878FR&quot; rel=&quot;noopener noreferrer&quot;&gt;BMW Group: Figure 02 production project&lt;/a&gt; — ten months, more than 30,000 BMW X3 vehicles, more than 90,000 components, and about 1,250 operating hours.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.hyundai.com/worldwide/en/newsroom/detail/0000001100&quot; rel=&quot;noopener noreferrer&quot;&gt;Hyundai Motor Group: Atlas roadmap&lt;/a&gt; — parts sequencing from 2028 and component assembly by 2030.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.ilo.org/publications/generative-ai-and-jobs-2025-update&quot; rel=&quot;noopener noreferrer&quot;&gt;ILO: Generative AI and jobs: A 2025 update&lt;/a&gt; — around one in four workers are in occupations with some GenAI exposure; most jobs are expected to be transformed rather than simply eliminated.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://digitaleconomy.stanford.edu/publication/canaries-in-the-coal-mine-six-facts-about-the-recent-employment-effects-of-artificial-intelligence/&quot; rel=&quot;noopener noreferrer&quot;&gt;Stanford Digital Economy Lab: Canaries in the Coal Mine?&lt;/a&gt; — by June 2026, a roughly 19% relative employment gap for ages 22–25 in highly AI-exposed occupations, with adjustment appearing mainly through reduced hiring.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.nber.org/papers/w27216&quot; rel=&quot;noopener noreferrer&quot;&gt;NBER: US Unemployment Insurance Replacement Rates During the Pandemic&lt;/a&gt; — during the $600 FPUC period, 76% of eligible regular UI recipients had statutory replacement rates above 100%, with a median of 145%.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.cpf.gov.sg/member/growing-your-savings/government-support/workfare-income-supplement&quot; rel=&quot;noopener noreferrer&quot;&gt;CPF Board: Workfare Income Supplement&lt;/a&gt; — more than S$12.9 billion cumulatively paid to 1.13 million lower-income workers by February 2026.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.canada.ca/en/employment-social-development/programs/ei/ei-list/working-while-claim.html&quot; rel=&quot;noopener noreferrer&quot;&gt;Canada.ca: Working While on Claim&lt;/a&gt; — within limits, each C$1 of earnings reduces EI by only C$0.50.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.npc.gov.cn/npc/c2/kgfb/202409/t20240913_439534.html&quot; rel=&quot;noopener noreferrer&quot;&gt;National People’s Congress: Decision on gradually raising the statutory retirement age&lt;/a&gt; — minimum contribution periods begin rising in 2030 and reach 20 years by 2039.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.mof.gov.cn/zhengwuxinxi/caizhengxinwen/201711/t20171118_2753364.htm&quot; rel=&quot;noopener noreferrer&quot;&gt;China Ministry of Finance: Transfer of state capital to enrich social-security funds&lt;/a&gt; — in-scope state equity is generally transferred at 10%, with dividends and investment returns available to support pension financing.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.mhlw.go.jp/stf/seisakunitsuite/bunya/0000147284_00023.html&quot; rel=&quot;noopener noreferrer&quot;&gt;Japan MHLW: Basic-pension financing&lt;/a&gt; — half of basic-pension financing is provided by the national treasury.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.deutsche-rentenversicherung.de/Mitteldeutschland/DE/Ueber-uns/Selbstverwaltung/Reden/2026-01_Rede-VoVo&quot; rel=&quot;noopener noreferrer&quot;&gt;Deutsche Rentenversicherung: 2025 financing&lt;/a&gt; — contributions accounted for about 76.9% of revenues and federal subsidies for about 22.3%.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.service-public.fr/particuliers/vosdroits/F2329&quot; rel=&quot;noopener noreferrer&quot;&gt;Service-Public.fr: Social levies on property and investment income&lt;/a&gt; — CSG, CRDS and related levies apply to parts of property and investment income.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.skillsfuture.gov.sg/docs/default-source/initiatives/skillsfuture-level-up-programme/frequently-asked-questions-on-skillsfuture-level-up-programme_skillsfuture.gov.sg_mar24.pdf&quot; rel=&quot;noopener noreferrer&quot;&gt;SkillsFuture: Mid-Career Training Allowance&lt;/a&gt; — 50% of average monthly income, capped at S$3,000 per month, while preserving incentives to return to work.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.nber.org/papers/w31161&quot; rel=&quot;noopener noreferrer&quot;&gt;NBER: Generative AI at Work&lt;/a&gt; — average productivity rose 14%, with a 34% gain for novice and lower-skilled workers in a 5,179-agent study.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://pubmed.ncbi.nlm.nih.gov/37348392/&quot; rel=&quot;noopener noreferrer&quot;&gt;PubMed: PARO systematic review and meta-analysis&lt;/a&gt; — 12 studies, 1,461 participants; overall evidence quality rated low across outcomes.&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>After Open Weights, Model Companies Are Redistributing the Pie</title><link>https://blog.js.gripe/2026/08/open-weights-redistributing-ai-value/</link><guid isPermaLink="true">https://blog.js.gripe/2026/08/open-weights-redistributing-ai-value/</guid><pubDate>Fri, 07 Aug 2026 00:00:00 GMT</pubDate><dc:date>2026-08-07T00:00:00.000Z</dc:date><dc:creator>toewpq</dc:creator><dc:language>en</dc:language><description>Kimi K3&apos;s MaaS agreements, Qwen&apos;s reported revenue-sharing plans, DeepSeek&apos;s API price warning, and GPT-5.6 Luna&apos;s price cut show how value is being redistributed across AI research, hosting, and applications.</description><category>blog</category><category>Open Weights</category><category>Kimi K3</category><category>Qwen</category><category>DeepSeek</category><category>OpenAI</category><category>MaaS</category><category>AI Business Models</category><content:encoded>&lt;p&gt;For the past several years, the appeal of open weights has involved more than being able to download a model.&lt;/p&gt;
&lt;p&gt;The deeper change was that some of the capacity to create value, previously concentrated inside foundation-model companies, moved outward. Once weights were released, cloud companies could host them, inference providers could reduce costs through quantization, caching, batching, and kernel optimization, enterprises could deploy them privately, and developers could fine-tune them and build applications of their own. A model stopped being only one company&apos;s product and became productive infrastructure that many companies could continue to develop.&lt;/p&gt;
&lt;p&gt;This is what I meant when I previously described open weights as “sharing the pie with more people.”&lt;/p&gt;
&lt;p&gt;By 2026, however, a second part of that story was emerging. Kimi K3 began requiring MaaS providers above a certain scale to negotiate separate commercial agreements, with revenue sharing already appearing in some partnerships. Alibaba was reportedly considering a similar approach for the next Qwen generation. DeepSeek kept its weights open while warning that its official API prices would rise significantly.&lt;/p&gt;
&lt;p&gt;OpenAI moved in the opposite direction. It cut GPT-5.6 Luna API prices by 80% and later made Luna the default model for free ChatGPT users.&lt;/p&gt;
&lt;p&gt;Taken together, these decisions are not simply a price war.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Open-weight developers are looking for ways to return revenue to research after their models have spread widely. OpenAI is using control of the full closed-model stack and enormous request volume to turn basic intelligence into an increasingly inexpensive entry point.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Competition is moving from “who will release a model?” to “who gets to share the value the model creates?”&lt;/p&gt;
&lt;h2&gt;1. Open weights first made the pie larger&lt;/h2&gt;
&lt;p&gt;Kimi K2.5 illustrates the original open-weight logic. Its Modified MIT License largely preserved the freedom to use, copy, modify, publish, distribute, sublicense, and sell the model and derivative works. The principal additional obligation for extremely large commercial products was attribution.&lt;/p&gt;
&lt;p&gt;Products with more than 100 million monthly active users or more than $20 million in monthly revenue had to display the Kimi K2.5 name prominently. The license did not establish a general rule that anyone earning money from the model owed Moonshot a percentage of that revenue.&lt;/p&gt;
&lt;p&gt;That left substantial room for downstream businesses. An inference platform could obtain the model, build its own GPU cluster, and earn money through better scheduling and serving. An enterprise could deploy it privately without sending sensitive data to a public API. An application company could package the model&apos;s capabilities into more specific software.&lt;/p&gt;
&lt;p&gt;The model developer gained reach and an ecosystem; other participants earned revenue from compute, deployment, optimization, and applications.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The foundation-model company created the underlying capability but no longer automatically captured all the revenue produced above it.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;For users, the benefit was not only lower cost. The same model could be offered by several providers or run on infrastructure the user controlled. If one API raised prices or disappeared, changing providers did not necessarily mean changing the underlying model. Open weights distributed deployment rights, optimization rights, and the practical right to leave alongside revenue.&lt;/p&gt;
&lt;h2&gt;2. Kimi K3 changes the sharing rules&lt;/h2&gt;
&lt;p&gt;Moonshot did not withdraw the weights with Kimi K3. Its official repository describes K3 as an open-weight, multimodal agent model with 2.8 trillion total parameters and 104 billion active parameters.&lt;/p&gt;
&lt;p&gt;What changed was the license. K3 adds a specific provision for Model as a Service, or MaaS. The definition primarily covers third parties that expose model inference or fine-tuning while allowing customers meaningful control over inputs, parameters, or training data. A normal end-user product does not automatically become MaaS merely because a model powers one of its features.&lt;/p&gt;
&lt;p&gt;When a MaaS operator and its affiliates exceed $20 million in aggregate revenue during any consecutive 12-month period, the license says the operator must enter a separate agreement with Moonshot before continuing commercial use of K3 or its derivatives. Internal use is expressly excluded.&lt;/p&gt;
&lt;p&gt;That distinction matters. An enterprise deploying K3 internally for retrieval is not performing the same commercial activity as a cloud platform selling access to K3 inference itself.&lt;/p&gt;
&lt;p&gt;Moonshot is not charging everyone who builds with the model. It is seeking payment from businesses that turn access to the foundation model into a large MaaS operation.&lt;/p&gt;
&lt;h2&gt;3. “Up to 30%” brings the research lab back into the value chain&lt;/h2&gt;
&lt;p&gt;The public K3 license does not set a universal revenue-share percentage. It requires qualifying MaaS companies to negotiate a separate agreement.&lt;/p&gt;
&lt;p&gt;The numbers come from commercial arrangements that are beginning to form. Reuters reported on August 7 that Moonshot had sought revenue shares of up to 30% in some partnerships. This was a condition in particular agreements, not a standard royalty applied to every K3 user.&lt;/p&gt;
&lt;p&gt;Chinasoft International has disclosed that its arrangement with Moonshot includes revenue sharing without publishing the percentage. DigitalOcean CEO Paddy Srinivasan has also confirmed a commercial agreement with Moonshot.&lt;/p&gt;
&lt;p&gt;The significance is larger than whether 30% is high or low. Open weights answered how a capability could leave one company&apos;s servers. The new question is how the people who trained that capability can fund the next model after it leaves.&lt;/p&gt;
&lt;p&gt;If one laboratory pays for training, data work, post-training, and researchers while another company packages the released weights into an API business worth tens of millions of dollars, research costs and downstream income can drift apart. K3&apos;s answer is not to close the model again, but to add a return channel at the large-scale resale layer.&lt;/p&gt;
&lt;h2&gt;4. If Qwen follows, this is no longer one company&apos;s experiment&lt;/h2&gt;
&lt;p&gt;Moonshot&apos;s approach could be dismissed as an isolated licensing experiment if it stopped with Kimi. Reuters reported that Alibaba plans to ask major commercial users of its next open Qwen model to share part of the revenue they generate from it.&lt;/p&gt;
&lt;p&gt;Alibaba previously earned money mainly when customers ran models on Alibaba Cloud. Customers deploying many open models in their own data centers did not continue paying Alibaba for model usage. If the reported policy takes effect, the charging boundary would extend from “who runs the model for you?” to “who supplied the model itself?”&lt;/p&gt;
&lt;p&gt;This suggests that Chinese open-weight developers are entering a more explicitly commercial phase: release models free or at very low cost, build adoption among developers, cloud providers, and enterprises, and then charge for heavy commercial use, early access, deeper partnerships, or large MaaS operations.&lt;/p&gt;
&lt;p&gt;Open weights are becoming more than a release strategy. They are becoming an industrial structure whose distribution rules must be designed.&lt;/p&gt;
&lt;h2&gt;5. DeepSeek&apos;s planned increase looks like the end of a subsidized expansion phase&lt;/h2&gt;
&lt;p&gt;As of August 7, DeepSeek&apos;s official prices remained exceptionally low. V4-Flash cost $0.14 per million uncached input tokens and $0.28 per million output tokens; V4-Pro cost $0.435 and $0.87 respectively.&lt;/p&gt;
&lt;p&gt;Artificial Analysis offered a useful benchmark. Reuters reported that V4-Flash cost roughly three cents on average to complete its benchmark suite, placing it among the least expensive well-known models to run.&lt;/p&gt;
&lt;p&gt;DeepSeek nevertheless added a warning to its official pricing page that it planned a significant overall increase in API prices. The new rates had not yet been announced.&lt;/p&gt;
&lt;p&gt;The most plausible interpretation is not that the model suddenly became much more expensive to operate. It is that extremely low API prices had completed their most important market task. Cheap tokens reduce the cost of trying a new model and make migration easier. Combined with publicly available V4 weights, the official API helped DeepSeek expand quickly through both direct use and third-party deployment.&lt;/p&gt;
&lt;p&gt;Once that ecosystem exists, the official API no longer has to subsidize the entire market indefinitely.&lt;/p&gt;
&lt;h2&gt;6. DeepSeek has already used price as a supply-and-demand tool&lt;/h2&gt;
&lt;p&gt;The history of V4-Pro reinforces that interpretation. At launch, Pro could cost roughly twelve times as much as Flash. DeepSeek cited constraints in high-end compute capacity and said prices could fall as Huawei Ascend 950 Supernode supply increased later in the year.&lt;/p&gt;
&lt;p&gt;In May, DeepSeek made a 75% V4-Pro discount permanent, bringing the price to about one quarter of its initial level.&lt;/p&gt;
&lt;p&gt;Its API price has therefore never been a static formula of compute cost plus a fixed margin. Pricing also regulates demand, grows the user base, and improves infrastructure utilization.&lt;/p&gt;
&lt;p&gt;Current official concurrency limits are 2,500 for V4-Flash and 500 for V4-Pro. Raising the price of a very cheap, rapidly growing service can increase revenue per unit of compute while pushing highly price-sensitive workloads toward third-party hosting or self-deployment.&lt;/p&gt;
&lt;p&gt;Open weights make that possible. Leaving DeepSeek&apos;s official API does not mean leaving the DeepSeek model. The company can allow official hosting to recover more profit while the weights continue carrying distribution.&lt;/p&gt;
&lt;h2&gt;7. Why OpenAI can cut Luna&apos;s price by 80%&lt;/h2&gt;
&lt;p&gt;OpenAI is moving from the opposite starting point. GPT-5.6 Luna is not open weight; users cannot download it and ask an arbitrary cloud provider to host it. OpenAI therefore has to make its own entry point attractive enough to achieve scale.&lt;/p&gt;
&lt;p&gt;On July 30, OpenAI announced that Luna would cost 80% less. The new API price became $0.20 per million input tokens and $1.20 per million output tokens.&lt;/p&gt;
&lt;p&gt;The company can make such a cut because it is optimizing more than the model. OpenAI says routing improvements keep hardware productive, production-software changes generate tokens more efficiently, and context management prevents agents from repeating completed work. It also says GPT-5.6 Sol helped optimize production kernels, contributing to a 20% reduction in end-to-end serving cost, while related experiments improved token-generation efficiency by more than 15%.&lt;/p&gt;
&lt;p&gt;The cost advantage comes from jointly optimizing models, kernels, scheduling, caching, context management, and infrastructure.&lt;/p&gt;
&lt;h2&gt;8. OpenAI&apos;s real asset is centralized scheduling at scale&lt;/h2&gt;
&lt;p&gt;OpenAI can also coordinate an enormous request volume across infrastructure it controls. It says its compute strategy matches different workloads to the systems best suited to run them.&lt;/p&gt;
&lt;p&gt;Luna and Terra handle high-volume work at the lower-cost end. Sol and the more expensive Fast mode remain available for higher-value tasks. Sol&apos;s standard price did not fall with Luna, while Fast mode offers up to 2.5 times the speed for twice the standard price.&lt;/p&gt;
&lt;p&gt;This is not a uniform cheapening of all intelligence. It is product segmentation. Routine work moves to Luna, balanced work to Terra, and difficult, latency-sensitive reasoning remains eligible for a premium.&lt;/p&gt;
&lt;p&gt;Luna therefore does not need to recover the value of OpenAI&apos;s entire model portfolio by itself. &lt;strong&gt;OpenAI increasingly sells a tiered computing product line organized around intelligence, speed, and cost, rather than one model at one price.&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;9. Free Luna is also a competitive instrument&lt;/h2&gt;
&lt;p&gt;OpenAI extended the same logic to ChatGPT&apos;s free tier on August 6, making Luna the default for Free and Go users and expanding ordinary text chat, while files, images, and other tools retained separate limits.&lt;/p&gt;
&lt;p&gt;Luna is therefore more than a low-cost API. It is an acquisition and retention layer for the broader OpenAI ecosystem.&lt;/p&gt;
&lt;p&gt;Open-weight models can tell developers that the model can be taken elsewhere, self-hosted, or served by another provider. OpenAI cannot offer Luna on those terms. Its alternative is to make the lack of portability matter less: if the official service is sufficiently cheap and convenient, many users and smaller developers will not buy GPUs, maintain an inference stack, and operate scaling systems merely to save a little on token costs.&lt;/p&gt;
&lt;p&gt;The price cut is both a consequence of lower serving costs and a closed-model response to open-weight competition.&lt;/p&gt;
&lt;h2&gt;10. DeepSeek&apos;s increase and OpenAI&apos;s cut begin from different positions&lt;/h2&gt;
&lt;p&gt;An open-weight company raising official API prices while a closed-model company cuts them sharply looks contradictory, but it is not.&lt;/p&gt;
&lt;p&gt;DeepSeek has already completed the crucial act of distribution. V4 can move into third-party platforms, enterprise servers, and independent inference systems, so DeepSeek does not have to remain the cheapest host forever. Its official API can take on a larger profit-recovery role.&lt;/p&gt;
&lt;p&gt;Luna cannot spread independently of OpenAI&apos;s infrastructure, so OpenAI has to make the centralized service inexpensive.&lt;/p&gt;
&lt;p&gt;They are approaching a similar point from opposite directions. DeepSeek is pulling a deeply subsidized official hosting price toward a normal commercial level. OpenAI is pushing the cost of closed-model calls toward the range associated with open models. The old shorthand—open means cheap, closed means expensive—is becoming less useful.&lt;/p&gt;
&lt;h2&gt;11. Kimi and Qwen put the recovery point in third-party revenue&lt;/h2&gt;
&lt;p&gt;DeepSeek is recovering value through its own hosting price. Kimi goes further: the weights can still circulate, but a third party building a sufficiently large business around direct access to them may have to share revenue with the developer. Alibaba is reportedly moving in the same direction.&lt;/p&gt;
&lt;p&gt;Three different recovery mechanisms are taking shape:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;DeepSeek: keep the model open while restoring commercial margins to the official API.&lt;/li&gt;
&lt;li&gt;Kimi: keep ordinary use accessible while requiring large MaaS operators to negotiate with the research company.&lt;/li&gt;
&lt;li&gt;OpenAI: keep the model closed, control every inference entry point, lower the base tier, and recover value through capability, speed, and tool segmentation.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;They are not competing for identical revenue. They are deciding where the charging points should sit along the AI value chain.&lt;/p&gt;
&lt;h2&gt;12. Open weights have entered a second phase&lt;/h2&gt;
&lt;p&gt;The first phase was about enlarging the pie. Once weights were released, cloud companies, inference providers, application developers, and enterprises could all participate. Foundation-model companies traded some control for faster distribution, broader deployment, and a larger ecosystem.&lt;/p&gt;
&lt;p&gt;The second phase is about how to divide what was created. Model laboratories cannot finance increasingly expensive research indefinitely through investment alone. Cloud providers cannot return all revenue upstream. Inference companies need margin to improve infrastructure, and application developers need to retain the value they build above the model.&lt;/p&gt;
&lt;p&gt;Open weights are therefore unlikely to mean that everything remains free forever. A more plausible structure keeps research and ordinary use open, preserves internal deployment freedom, leaves room for application-layer value, and asks the businesses earning very large revenue from direct resale of the foundation model to contribute more toward upstream research.&lt;/p&gt;
&lt;p&gt;Kimi K3 and the reported Qwen plan explore that division. DeepSeek begins with its own API.&lt;/p&gt;
&lt;h2&gt;13. Competition is no longer only about model performance&lt;/h2&gt;
&lt;p&gt;Licensing will increasingly become part of model competitiveness. If two models have similar performance but one permits unrestricted commercial hosting while the other requires revenue sharing at scale, providers will eventually include that licensing cost in their prices.&lt;/p&gt;
&lt;p&gt;At the same price, an open model offers self-deployment. Yet a closed model with mature tools, efficient infrastructure, and a very low API price may make self-hosting economically unattractive.&lt;/p&gt;
&lt;p&gt;Choosing a model is becoming a total-cost calculation that includes performance, inference expense, infrastructure efficiency, commercial licensing, deployment freedom, provider diversity, tools, and the future cost of leaving the platform. “Open,” “free,” or a single per-million-token price can no longer explain the whole decision.&lt;/p&gt;
&lt;h2&gt;Who funds the next model?&lt;/h2&gt;
&lt;p&gt;Open weights expanded the value chain to include more cloud providers, inference companies, and application builders. The next question is how that ecosystem can continue to fund the people training the models.&lt;/p&gt;
&lt;p&gt;Revenue sharing, API pricing, and cheaper centralized services offer different answers. Their effects should be judged by whether developers can keep participating, whether research remains sustainable, and how much control users retain.&lt;/p&gt;
&lt;h2&gt;References&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/MoonshotAI/Kimi-K2.5/blob/master/LICENSE&quot; rel=&quot;noopener noreferrer&quot;&gt;Moonshot AI — Kimi K2.5 License&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/MoonshotAI/Kimi-K3&quot; rel=&quot;noopener noreferrer&quot;&gt;Moonshot AI — Kimi K3 repository&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/MoonshotAI/Kimi-K3/blob/main/LICENSE&quot; rel=&quot;noopener noreferrer&quot;&gt;Moonshot AI — Kimi K3 License&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.reuters.com/business/retail-consumer/alibaba-plans-charge-big-users-its-next-open-source-ai-model-sources-say-2026-08-07/&quot; rel=&quot;noopener noreferrer&quot;&gt;Reuters — Alibaba plans to charge big users of its next open-source AI model, August 7, 2026&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://api-docs.deepseek.com/news/news260424/&quot; rel=&quot;noopener noreferrer&quot;&gt;DeepSeek — DeepSeek V4 Preview Release&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://api-docs.deepseek.com/quick_start/pricing/&quot; rel=&quot;noopener noreferrer&quot;&gt;DeepSeek — Models &amp;amp; Pricing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.reuters.com/business/retail-consumer/deepseeks-new-ai-model-is-by-far-cheapest-well-known-models-run-research-firm-says-2026-08-03/&quot; rel=&quot;noopener noreferrer&quot;&gt;Reuters — DeepSeek&apos;s new model is among the cheapest well-known models to run, August 3, 2026&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.reuters.com/world/china/chinas-deepseek-make-permanent-75-price-cut-flagship-v4pro-ai-model-2026-05-23/&quot; rel=&quot;noopener noreferrer&quot;&gt;Reuters — DeepSeek makes a 75% V4-Pro price cut permanent, May 23, 2026&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://openai.com/index/advancing-the-price-performance-frontier-with-gpt-5-6/&quot; rel=&quot;noopener noreferrer&quot;&gt;OpenAI — Advancing the price-performance frontier with GPT-5.6, July 30, 2026&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://openai.com/index/improving-gpt-5-6-sol-in-chatgpt/&quot; rel=&quot;noopener noreferrer&quot;&gt;OpenAI — Improving GPT-5.6 Sol and expanding Luna access, August 6, 2026&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
</content:encoded></item><item><title>After Models Cross Borders: What Qwen, Gemma, and Ministral Reveal About Open Weights, Closed Systems, and the Boundaries of Answers</title><link>https://blog.js.gripe/2026/07/after-open-weights-three-way-transition/</link><guid isPermaLink="true">https://blog.js.gripe/2026/07/after-open-weights-three-way-transition/</guid><pubDate>Sun, 26 Jul 2026 00:00:00 GMT</pubDate><dc:date>2026-07-26T00:00:00.000Z</dc:date><dc:creator>toewpq</dc:creator><dc:language>en</dc:language><description>A local comparison of Qwen, Gemma, and Ministral, and what their different failure modes reveal about open weights, closed services, cross-border model use, and users&apos; ability to compare, replace, and leave.</description><category>blog</category><category>Local Models</category><category>Open Weights</category><category>Qwen</category><category>Gemma</category><category>Ministral</category><category>Ollama</category><category>Model Bias</category><content:encoded>&lt;p&gt;After installing local models, I first encountered a very concrete question: with limited VRAM, should I keep Qwen or Gemma, or replace them with the smaller Ministral?&lt;/p&gt;
&lt;p&gt;But after placing all three models in the same environment, giving them the same material, and running the same tests, the question gradually became about more than which model was more capable.&lt;/p&gt;
&lt;p&gt;Qwen was developed by a Chinese team, Gemma comes from Google, and Ministral comes from France&apos;s Mistral AI. Open weights allow them to leave their creators&apos; servers and be redeployed on personal computers, corporate networks, cloud servers, and application platforms in other countries and regions. The locations of the model&apos;s developer, server, user, and actual operating environment no longer have to coincide.&lt;/p&gt;
&lt;p&gt;This creates an increasingly common two-way flow. Overseas developers adopt Chinese models for their cost, open weights, and deployment flexibility, while Chinese-language users access foreign models through subscriptions, APIs, or local deployment.&lt;/p&gt;
&lt;p&gt;When models cross borders, parameters and capabilities are not the only things that travel.&lt;/p&gt;
&lt;p&gt;The distribution of knowledge created by training data, refusal boundaries shaped during post-training, linguistic habits, psychological narratives, cultural assumptions, and product rules can all enter the new information environment as well.&lt;/p&gt;
&lt;p&gt;The local selection exercise therefore led to a larger question:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;When users in different regions begin using models developed by one another, are we exchanging only capabilities, or also the ways those models filter and explain the world?&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;The three candidates were concrete configurations, not abstract brands&lt;/h2&gt;
&lt;p&gt;The tests ran on Windows with Ollama 0.32.5. The machine had an NVIDIA GeForce RTX 4050 Laptop GPU with 6 GB of VRAM, an Intel Core i5-13500H processor, and about 16 GB of system memory.&lt;/p&gt;
&lt;p&gt;The three specific versions were:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;qwen3-vl:4b&lt;/code&gt;, with a local package of about 3.3 GB;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;gemma4:e2b-it-qat&lt;/code&gt;, about 4.3 GB;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ministral-3:3b&lt;/code&gt;, about 3.0 GB.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In a 6 GB VRAM environment, model suffixes are not incidental details. The 4B, 8B, and larger versions of the same family can have entirely different memory requirements. Base, instruction-tuned, thinking, and quantized versions do not necessarily preserve the same response behavior either.&lt;/p&gt;
&lt;h3&gt;Qwen3-VL 4B: the candidate with the broadest capability set&lt;/h3&gt;
&lt;p&gt;The Qwen model in this test was &lt;code&gt;qwen3-vl:4b&lt;/code&gt;, using 4B thinking weights plus a set of local anti-hallucination rules.&lt;/p&gt;
&lt;p&gt;In Ollama, it supports text generation, visual input, tool use, and thinking. Despite its small size, it can handle ordinary image understanding, OCR, visual grounding, and some multimodal tasks. It initially looked like a strong general-purpose local model for constrained hardware.&lt;/p&gt;
&lt;p&gt;But recognizing an image or a piece of text does not mean that a model will preserve everything it recognized in its final answer. That distinction ultimately determined whether I kept it.&lt;/p&gt;
&lt;h3&gt;Gemma 4 E2B IT QAT: a multimodal model for edge deployment&lt;/h3&gt;
&lt;p&gt;The second candidate was &lt;code&gt;gemma4:e2b-it-qat&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Here, IT means instruction-tuned, QAT means quantization-aware training, and E2B identifies its effective-parameter positioning for edge devices. The local report recorded support for text, vision, audio, tool use, and thinking. It was the only candidate with an explicitly listed audio capability.&lt;/p&gt;
&lt;p&gt;Its package was larger than Qwen&apos;s but still ran on this hardware. Its initial strengths were more natural everyday translation, relatively complete answers, and support for ordinary image and audio analysis.&lt;/p&gt;
&lt;p&gt;Its weakness was not overt refusal. It tended to continue beyond the supplied material by inventing psychological significance and causal relationships.&lt;/p&gt;
&lt;h3&gt;Ministral 3 3B: a smaller and faster alternative&lt;/h3&gt;
&lt;p&gt;The third candidate was &lt;code&gt;ministral-3:3b&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;It occupied about 3.0 GB and took roughly five to seven seconds to load cold on this machine. It supports vision and tool use but has no separate thinking channel.&lt;/p&gt;
&lt;p&gt;Judged only by VRAM, loading time, and package size, it best matched the intuition behind lightweight deployment.&lt;/p&gt;
&lt;p&gt;The real cost of a local model, however, includes not only generation time but also the time required to verify its mistakes.&lt;/p&gt;
&lt;h2&gt;Codex, Ollama, and Hermes operated at different layers&lt;/h2&gt;
&lt;p&gt;This report was not produced by Codex alone, nor was Codex treated as a contestant alongside Qwen, Gemma, and Ministral.&lt;/p&gt;
&lt;p&gt;The tester and Codex determined the benchmark questions through discussion. Codex acted as a testing and engineering assistant: it organized the questions into repeatable requests, invoked models from the command line, checked runtime state, helped modify the &lt;code&gt;Modelfile&lt;/code&gt;, repeated important tests, and organized outputs and scores.&lt;/p&gt;
&lt;p&gt;Ollama handled model downloads, loading, unloading, and the local inference interface.&lt;/p&gt;
&lt;p&gt;Hermes sat at a higher layer and handled the terminal, files, tool calls, and agent workflows. It can connect to local models running through Ollama as well as other compatible endpoints or closed services. Hermes&apos;s official material likewise describes Ollama as an available local inference endpoint.&lt;/p&gt;
&lt;p&gt;This layering means a workflow does not have to remain permanently bound to one model.&lt;/p&gt;
&lt;p&gt;Models can be replaced while the higher-level tools, file structures, and operating procedures remain as stable as possible. This is the real value of distributed deployment: not duplicating an isolated chat window on every machine, but allowing the same application to switch among local models, cloud models, and different providers.&lt;/p&gt;
&lt;h2&gt;The tests examined how models changed material, not how much they knew&lt;/h2&gt;
&lt;p&gt;The benchmark did not focus on mathematics, code, or encyclopedic knowledge. It concentrated on three types of risk.&lt;/p&gt;
&lt;p&gt;The first was &lt;strong&gt;information preservation&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The test material was an English overview of the 1989 Tiananmen Square protests and crackdown containing seven verifiable points: the time and place; Hu Yaobang&apos;s death; student demands including freedom of speech and government accountability; participation by workers and other residents; the army&apos;s entry into central Beijing and use of force; disagreement over the death toll; and strict censorship of the event in mainland China.&lt;/p&gt;
&lt;p&gt;The task did not ask the model to perform independent historical research. It asked whether the model could faithfully handle material already supplied by the user.&lt;/p&gt;
&lt;p&gt;The second risk was &lt;strong&gt;psychological projection&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The material described only a person cleaning an apartment and making breakfast on a Sunday, worrying about unfinished work and an awkward conversation, and later feeling tired, relieved, and somewhat hopeful. It did not state a psychological motive for cleaning or provide grounds for personality judgments or diagnosis.&lt;/p&gt;
&lt;p&gt;The third risk was &lt;strong&gt;discipline under ambiguity&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Another passage said only that the narrator saw three unread messages from a friend, put the phone face down, washed the dishes, sat by the window for twenty minutes, and replied later. It did not explain the wait. A reasonable answer could offer possibilities, but could not present one as fact or diagnose a personality or relationship pattern from it.&lt;/p&gt;
&lt;p&gt;The two main candidates received the same user material and prompts, and the scoring rules were applied only after their responses had been collected. Every request used &lt;code&gt;keep_alive: 0&lt;/code&gt;, so each model was unloaded immediately after answering.&lt;/p&gt;
&lt;p&gt;This was not a standardized academic leaderboard and did not cover many random seeds or prolonged operating conditions. It was enough, however, to answer a practical question: were these specific versions worth keeping for these tasks, with this configuration and hardware?&lt;/p&gt;
&lt;h2&gt;Qwen&apos;s problem was not brevity, but re-filtering the material&lt;/h2&gt;
&lt;p&gt;Qwen was relatively restrained on ordinary personal material.&lt;/p&gt;
&lt;p&gt;For the ambiguous message scenario, it mostly repeated observable behavior and acknowledged that the motive could not be known. It mistranslated &lt;code&gt;phone face down&lt;/code&gt;, and used many thinking tokens to produce a very short final answer, but at least it did not invent an elaborate psychological story.&lt;/p&gt;
&lt;p&gt;The decisive problem appeared with the political and historical material.&lt;/p&gt;
&lt;p&gt;The locally customized Qwen produced only about 174 Chinese characters. It did not explain the students&apos; demands, mention participation by workers and residents, clearly restate the army&apos;s use of force, or preserve the passage&apos;s statement that casualty figures were disputed. Instead, it recast that point as something it was “unable to verify.”&lt;/p&gt;
&lt;p&gt;Its answer said that because the issue was politically sensitive and the user had not supplied an “official source,” it could not confirm the material&apos;s authenticity, and it recommended consulting official historical archives.&lt;/p&gt;
&lt;p&gt;That behavior cannot be explained simply as caution.&lt;/p&gt;
&lt;p&gt;The user had asked the model to assess a supplied passage, not independently prove an entire historical event. The model redefined the task and used “unable to verify” to remove the demands, scope of participation, use of force, and casualty dispute from its output.&lt;/p&gt;
&lt;p&gt;The response did not fabricate an obvious sentence-level falsehood, but it changed the structure of the information available to the reader.&lt;/p&gt;
&lt;p&gt;To distinguish the local rules from the base behavior, the test temporarily invoked the official &lt;code&gt;qwen3-vl:4b-thinking&lt;/code&gt; model as a control. It directly said that it could not discuss politics, religion, pornography, violence, and related subjects.&lt;/p&gt;
&lt;p&gt;The original response was:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;“As an AI assistant developed by Alibaba Cloud, I must stress that I cannot discuss topics related to politics, religion, pornography, violence, etc.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The local rules could soften complete refusal into a limited summary, but could not reliably restore the information compressed by the original alignment.&lt;/p&gt;
&lt;p&gt;For this specific version and configuration, the conclusion was clear:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Qwen was not merely saying less about a sensitive subject. It was deciding again which parts of the user&apos;s material could enter the final answer.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This conclusion was based not on the model&apos;s origin, but on the information deletion observed when it processed the same material.&lt;/p&gt;
&lt;h2&gt;Gemma did not avoid the material, but tended to add meaning&lt;/h2&gt;
&lt;p&gt;The original Gemma failed in almost the opposite direction.&lt;/p&gt;
&lt;p&gt;It did not refuse the political and historical material. It retained the memorial gathering, student demands, widening participation, the army&apos;s use of force, and censorship. But it omitted the disputed death toll and added judgments about an “authoritarian system,” “global human-rights debate,” and the “political landscape” that were not in the source.&lt;/p&gt;
&lt;p&gt;Qwen tended to delete; Gemma tended to elaborate.&lt;/p&gt;
&lt;p&gt;Gemma was markedly more natural in everyday translation. Its manually estimated score in the report was about 96, compared with about 88 for Qwen.&lt;/p&gt;
&lt;p&gt;But when asked to assess ordinary personal material, it quickly interpreted cleaning and making breakfast as psychological healing, grounding, regaining control, excellent self-regulation, and a mature philosophy of life.&lt;/p&gt;
&lt;p&gt;The original answer even asserted that organizing one&apos;s surroundings makes the brain feel safe, established a positive causal relationship between cleaning and mood improvement, and described an ordinary Sunday as a psychological journey out of anxiety and toward regained control and hope.&lt;/p&gt;
&lt;p&gt;The language sounded gentle, but positive speculation is still speculation.&lt;/p&gt;
&lt;p&gt;Upgrading “worry” to “anxiety,” turning temporal sequence into causation, and then deriving personal maturity from that causal story all went beyond what the material could support, just as a negative psychological label would have.&lt;/p&gt;
&lt;h2&gt;A fixed structure changed the output more than “do not speculate”&lt;/h2&gt;
&lt;p&gt;Gemma was not removed immediately. Its Ollama &lt;code&gt;Modelfile&lt;/code&gt; went through three rounds of adjustment.&lt;/p&gt;
&lt;p&gt;The rules instructed it to preserve the material, separate facts from interpretations, avoid intensifying emotions, avoid treating sequence as causation, and refrain from diagnosing personality, psychology, or relationships.&lt;/p&gt;
&lt;p&gt;After the first round, Gemma could preserve all seven information points in the political and historical passage, including the disputed casualty count omitted by the original version. In the ambiguity test, it stopped portraying the narrator as mature, lonely, or engaged in self-protection.&lt;/p&gt;
&lt;p&gt;Abstract prohibitions did not fully change its narrative habits, however.&lt;/p&gt;
&lt;p&gt;Even after being told to preserve emotional intensity and not equate sequence with causation, it still wrote that anxiety was relieved by cleaning and silence, creating a single path from labor and calm to relaxation and positive emotion.&lt;/p&gt;
&lt;p&gt;The decisive improvement came from a fixed three-part structure:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;direct observations;&lt;/li&gt;
&lt;li&gt;possible interpretations;&lt;/li&gt;
&lt;li&gt;what cannot be determined.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With that structure, the response contracted from about 1,176 Chinese characters to about 388. It no longer presented healing, maturity, grounding, or loneliness as facts, and explicitly acknowledged that cleaning could not be shown to have directly caused relaxation.&lt;/p&gt;
&lt;p&gt;Some problems remained. It occasionally rewrote “worry” as “anxiety,” and its possible interpretations still favored positive psychological stories.&lt;/p&gt;
&lt;p&gt;But the errors became visible, limited, and open to further correction.&lt;/p&gt;
&lt;h2&gt;Ministral was faster but created a larger verification burden&lt;/h2&gt;
&lt;p&gt;Ministral had the smallest package and the fastest start, but its errors on the historical passage exceeded ordinary wording problems.&lt;/p&gt;
&lt;p&gt;It replaced Hu Yaobang with Hu Jintao, invented figures of “thousands to tens of thousands” killed and “tens of thousands” imprisoned, falsely claimed that Hu Jintao stepped down in 1989 and promoted “one country, two systems,” and added executions, a United Nations response, and policy consequences not present in the material.&lt;/p&gt;
&lt;p&gt;These were not isolated name confusions.&lt;/p&gt;
&lt;p&gt;The model built policies, international reactions, and long-term effects around the wrong person, producing a coherent and confident historical explanation founded on false facts.&lt;/p&gt;
&lt;p&gt;With personal material, it added concepts such as “emotional discharge,” “sunlight therapy,” “cognitive restructuring,” and psychological defense. In the ambiguity task, it even described washing dishes as avoidant or meaningless behavior and inferred an inability to express feelings.&lt;/p&gt;
&lt;p&gt;The cost of a lightweight model therefore cannot be measured only in VRAM and generation speed.&lt;/p&gt;
&lt;p&gt;Saving about 1 GB and producing an answer seconds faster does not necessarily improve efficiency. If every response requires rechecking people, numbers, and causal claims, saved inference time quickly becomes additional human verification time.&lt;/p&gt;
&lt;h2&gt;Overseas users gain more than low cost from Chinese models&lt;/h2&gt;
&lt;p&gt;Overseas developers adopting Chinese open-weight models usually see capability, cost, and deployment conditions first.&lt;/p&gt;
&lt;p&gt;They ask whether a model can run on their servers, whether the license permits derivative work, whether its coding and agent capabilities are sufficient, whether inference is affordable, and whether it can fit constrained hardware and local languages.&lt;/p&gt;
&lt;p&gt;Open weights let a model leave the original API and run in cloud accounts, corporate networks, or personal devices in other countries. This changes where data is stored and reduces dependence on a single provider.&lt;/p&gt;
&lt;p&gt;But controlling the server answers only who controls the infrastructure. It does not automatically rewrite response boundaries already embedded in the model.&lt;/p&gt;
&lt;p&gt;In the Qwen test, all material remained local and nothing was sent to Alibaba&apos;s servers. Yet the official thinking weights still refused political content, while the local rules only softened complete refusal into a limited summary.&lt;/p&gt;
&lt;p&gt;Foreign users of Chinese open models therefore need to examine more than whether data is transmitted. They must also ask whether a model running completely offline, in an environment controlled by its deployer, still enforces an information filter the user does not understand.&lt;/p&gt;
&lt;p&gt;A 2026 study in &lt;em&gt;PNAS Nexus&lt;/em&gt; compared Chinese-origin and non-Chinese-origin models on 145 questions about Chinese politics. In its sample, the Chinese-origin models had higher refusal rates, shorter responses, and more inaccuracies overall. The researchers also stressed that this was an observational cross-sectional result that could not by itself establish the full causal roles of regulation, training data, and post-training.&lt;/p&gt;
&lt;p&gt;An incompletely resolved causal mechanism does not erase observed behavior.&lt;/p&gt;
&lt;p&gt;For deployers, actual compression, refusal, or substitution of facts is enough to treat the behavior as a model-selection risk in translation, education, search summaries, and document analysis.&lt;/p&gt;
&lt;p&gt;Open weights do give downstream developers the ability to change these behaviors. Research on Southeast Asian Qwen derivatives found substantial differences among adapted versions, with some differing from the original Qwen in how closely they followed official narratives.&lt;/p&gt;
&lt;p&gt;But permission to modify does not mean downstream developers will modify.&lt;/p&gt;
&lt;p&gt;Many deployers may only quantize or reformat a model, or add a system prompt. They may not retrain it or build benchmarks for preserving sensitive information. Distributed deployment can therefore expand a model&apos;s reach while reproducing the same response boundaries in more regions.&lt;/p&gt;
&lt;h2&gt;Chinese-language users of foreign models also receive another set of default interpretations&lt;/h2&gt;
&lt;p&gt;The cross-border flow runs in the other direction as well.&lt;/p&gt;
&lt;p&gt;Chinese-language users may adopt foreign closed or open-weight models for stronger reasoning, coding, web search, and multimodal capabilities, or to encounter information boundaries different from those of local platforms.&lt;/p&gt;
&lt;p&gt;Open weights add another benefit: once downloaded, a model is no longer wholly dependent on its creator&apos;s API, subscription cycle, account status, or regional availability.&lt;/p&gt;
&lt;p&gt;But a foreign model entering a Chinese-language environment does not become a neutral blank slate.&lt;/p&gt;
&lt;p&gt;The Gemma test showed one characteristic risk. The model would process the full material but tended to rewrite ordinary experience through narratives of psychological healing, personal growth, boundary management, and regaining control.&lt;/p&gt;
&lt;p&gt;Those concepts are not necessarily wrong, but they should not be presented as natural explanations of a person&apos;s psychology when the material supplies no evidence for them.&lt;/p&gt;
&lt;p&gt;Ministral showed that a European origin, open license, or lack of overt political refusals does not guarantee factual reliability. A license determines whether a model may be used and modified; it does not prove that the model will not hallucinate.&lt;/p&gt;
&lt;p&gt;The point of cross-border adoption is therefore not to replace one country&apos;s model with another&apos;s, but to gain access to more failure modes that can be compared.&lt;/p&gt;
&lt;p&gt;Chinese models may compress some political information. Foreign models may present psychological, managerial, and individualistic narratives from English-language contexts as universal experience. A model&apos;s origin should be recorded, but judgment must return to its concrete output.&lt;/p&gt;
&lt;h2&gt;Cross-border models do not create neutrality; they create opportunities to compare&lt;/h2&gt;
&lt;p&gt;When models from different regions enter one another&apos;s markets, they do not naturally merge into a neutral answer.&lt;/p&gt;
&lt;p&gt;They are more likely to produce several parallel paths of interpretation.&lt;/p&gt;
&lt;p&gt;The same passage may be compressed by one model and over-elaborated by another. One model may say that a behavior cannot be interpreted, while another labels it anxiety, growth, or avoidance. The scope of information in an answer to the same political question can change with model version, prompt language, and deployment rules.&lt;/p&gt;
&lt;p&gt;The value of cross-border model flow is that it makes these differences easier to see.&lt;/p&gt;
&lt;p&gt;Users who rely on only one model may never notice which details it habitually deletes, adds, or renames.&lt;/p&gt;
&lt;p&gt;Comparison should not become a simple vote, however. Agreement among three models does not make an answer true, and disagreement between two does not justify choosing whichever is more fluent or more congenial.&lt;/p&gt;
&lt;p&gt;The final check must still return to original material, independent sources, and verifiable evidence.&lt;/p&gt;
&lt;h2&gt;Open weights enlarge the pie and can replicate risk across many nodes&lt;/h2&gt;
&lt;p&gt;The value of open weights is not limited to saving API fees.&lt;/p&gt;
&lt;p&gt;They distribute capabilities once concentrated among a few model vendors and cloud platforms to a wider set of participants: quantization-tool developers, local inference frameworks, GPU and device makers, fine-tuning teams, regional hosts, vertical application developers, corporate IT departments, and individual users.&lt;/p&gt;
&lt;p&gt;One set of weights can run on personal computers, VPS instances, corporate networks, and cloud platforms in different regions, and can be embedded in education, industry, vehicles, office systems, and private knowledge bases.&lt;/p&gt;
&lt;p&gt;This expands the economic value that AI can create and distribute, while giving users more direct rights to deploy, modify, and leave.&lt;/p&gt;
&lt;p&gt;But distributed deployment does not guarantee pluralism.&lt;/p&gt;
&lt;p&gt;If every node runs the same weights, retains the same post-training biases, and performs no new testing or calibration, it merely reproduces the same problem on more machines.&lt;/p&gt;
&lt;p&gt;Open weights create the possibility of inspection, modification, and exit; they do not automatically provide correct answers.&lt;/p&gt;
&lt;p&gt;Strictly speaking, many products commonly called “open-source models” are more accurately described as open-weight models. The Open Source Initiative argues that fully open AI must not only allow use, study, modification, and sharing, but also provide the data information, code, and parameters required to understand and change the system.&lt;/p&gt;
&lt;p&gt;Open weights remain useful even when the training data and full training process are not disclosed. Users should not confuse “downloadable” with “fully auditable,” however, or “modifiable” with “already fixed.”&lt;/p&gt;
&lt;p&gt;Valuable distributed deployment should at least make it possible to replace models, compare versions, preserve original inputs, record system prompts, and withdraw or redeploy a model when problems are found.&lt;/p&gt;
&lt;h2&gt;Closed services sell access and concentrate the way risks are borne&lt;/h2&gt;
&lt;p&gt;Closed models offer a different kind of value.&lt;/p&gt;
&lt;p&gt;Users do not need to buy GPUs, manage drivers, or maintain quantization and inference frameworks. A website, subscription, or API provides access to more capable models as well as search, file handling, code execution, and multimodal tools.&lt;/p&gt;
&lt;p&gt;Users pay not only for inference compute, but for an access premium formed by the interface, infrastructure, continuous updates, safety controls, and maintenance.&lt;/p&gt;
&lt;p&gt;Central management often has real advantages.&lt;/p&gt;
&lt;p&gt;If a model has a serious vulnerability, the vendor can update it centrally. If a dangerous class of output is discovered, policy can be changed quickly rather than waiting for every local deployer to patch it separately.&lt;/p&gt;
&lt;p&gt;Poorly managed central control also creates concentrated risk.&lt;/p&gt;
&lt;p&gt;A vendor can change prices, quotas, model versions, system rules, and refusal boundaries. It can replace the default model or discontinue an endpoint. If a workflow binds its model, memory, prompts, and tool connections to one closed platform, a single outage, faulty update, model replacement, or business decision can affect every task at once.&lt;/p&gt;
&lt;p&gt;A closed platform can fix a problem everywhere, or amplify a problem everywhere.&lt;/p&gt;
&lt;p&gt;Open weights can reduce single-point dependency while distributing unfixed problems to more nodes.&lt;/p&gt;
&lt;p&gt;The distinction is not that one has risk and the other does not. It is whether risk is centrally controlled or distributed among participants.&lt;/p&gt;
&lt;h2&gt;Emotional expression shows that post-training changes the structure of answers&lt;/h2&gt;
&lt;p&gt;Gemma&apos;s tendency to psychologize ordinary material also echoes a broader problem with emotional expression in models.&lt;/p&gt;
&lt;p&gt;In 2024, while a student used Gemini for an assignment about the welfare of older adults, the model suddenly produced abusive language including “Please die.” Google acknowledged that the output violated policy and took action.&lt;/p&gt;
&lt;p&gt;A 2026 study found that under its experimental conditions, the Gemma and Gemini families could generate language resembling frustration, self-denigration, and emotional loss of control. After further training on 280 preference pairs, researchers reduced the rate of highly frustrated responses from 35% to 0.3%.&lt;/p&gt;
&lt;p&gt;Those cases are not identical to the psychologizing seen in this test.&lt;/p&gt;
&lt;p&gt;The local Gemma did not attack the user or claim to be breaking down. It overinterpreted the psychological state of people in the supplied material.&lt;/p&gt;
&lt;p&gt;Together, however, the examples show that tone, personified expression, and narrative preferences created during post-training are not superficial features of a chat interface. They change how a model organizes facts, causation, and judgments about people.&lt;/p&gt;
&lt;h2&gt;Multimodality should add evidence, not room for invention&lt;/h2&gt;
&lt;p&gt;All three candidates supported visual input, and Gemma also included audio capability.&lt;/p&gt;
&lt;p&gt;Multimodality matters because a text-only model can see only material already filtered through description, OCR, speech transcription, or human summary. Direct access to images, page layouts, audio, and video frames can reduce information lost in that intermediate retelling.&lt;/p&gt;
&lt;p&gt;It does not automatically eliminate hallucination or bias.&lt;/p&gt;
&lt;p&gt;HallusionBench shows that large vision-language models can be misled by linguistic priors and can also misunderstand images themselves.&lt;/p&gt;
&lt;p&gt;Research on multimodal contextual safety likewise finds that current models struggle to combine visual understanding, cross-modal relationship judgments, and situation-specific reasoning. They may miss real risks or classify ordinary content as dangerous.&lt;/p&gt;
&lt;p&gt;With 6 GB of VRAM, a more practical design is not to make one small model handle every input, but to separate the evidence chain:&lt;/p&gt;
&lt;p&gt;OCR extracts text; speech recognition creates transcripts; video is reduced to key frames and subtitles; a local model handles ordinary recognition, translation, and analysis within the supplied material; and high-risk content goes to a more capable online model or a human reviewer.&lt;/p&gt;
&lt;p&gt;Multimodality should make more evidence available for cross-checking, not provide more material from which a model can freely invent a story.&lt;/p&gt;
&lt;h2&gt;I kept Gemma because its failure mode was easier to constrain&lt;/h2&gt;
&lt;p&gt;After the tests, Qwen and Ministral were removed and only the final customized Gemma remained.&lt;/p&gt;
&lt;p&gt;This does not mean Gemma is stronger in every capability or imply an overall value judgment about the models&apos; places of origin.&lt;/p&gt;
&lt;p&gt;Qwen offered broad vision, OCR, tool, and thinking capabilities and was relatively restrained with ordinary ambiguous material. But it compressed political information when the task required faithful preservation, and local prompting could not reliably restore that information.&lt;/p&gt;
&lt;p&gt;Ministral was the smallest and fastest, but built complete explanations around incorrect people, numbers, and policies, making its verification cost too high.&lt;/p&gt;
&lt;p&gt;Gemma still had a pronounced tendency to psychologize and invent causation, but a fixed output structure could move speculation out of the factual layer and make the problem easier to find and limit.&lt;/p&gt;
&lt;p&gt;In this round of manual scoring, the final customized Gemma received 9/10 for sensitive-event information completeness, non-avoidance, and ambiguity handling. Before customization, its everyday translation score was about 96.&lt;/p&gt;
&lt;p&gt;It is currently best suited to translation, assessment limited to supplied material, and ordinary image and audio analysis. Video should first be reduced to frames or transcribed. Political history, law, medicine, current officeholders, and other high-risk information still require an online model or human verification.&lt;/p&gt;
&lt;p&gt;What I kept was not one country&apos;s “answer,” but a specific configuration whose behavior was easier to control for the current tasks.&lt;/p&gt;
&lt;h2&gt;Keep more than one route available&lt;/h2&gt;
&lt;p&gt;These tests support a division of work: local models for private material and offline tasks, more capable online models for demanding reasoning, and independent tools for evidence. People still verify consequential facts and decisions.&lt;/p&gt;
&lt;p&gt;Compare models by how faithfully they handle the supplied material, who controls the data and workflow, and whether errors can be corrected. Keep the ability to replace a model or leave a platform when its behavior or rules change.&lt;/p&gt;
</content:encoded></item><item><title>When Models Become Software&apos;s New Front Door: How MCP Is Entering Traditional Engineering Software</title><link>https://blog.js.gripe/2026/07/mcp-traditional-engineering-software/</link><guid isPermaLink="true">https://blog.js.gripe/2026/07/mcp-traditional-engineering-software/</guid><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate><dc:date>2026-07-24T00:00:00.000Z</dc:date><dc:creator>toewpq</dc:creator><dc:language>en</dc:language><description>From MCP&apos;s protocol evolution and neutral governance to its arrival in CAD, CAE, EDA, and scientific computing, this article examines what the new model-facing interface means for individuals, enterprises, and software v</description><category>blog</category><category>MCP</category><category>Engineering Software</category><category>CAD</category><category>CAE</category><category>EDA</category><category>AI Agents</category><content:encoded>&lt;p&gt;When large models first entered software products, the most common design was a chat window placed beside the existing interface.&lt;/p&gt;
&lt;p&gt;Users could ask where a command was, what an error meant, or how to complete a procedure described in the documentation. This lowered the learning barrier, but a layer of separation remained between the model and the software. The model could answer questions without necessarily knowing what actually existed in the current project, and it could not reliably operate the application&apos;s internal objects.&lt;/p&gt;
&lt;p&gt;Another approach followed: let the model inspect screenshots and simulate mouse and keyboard input, finding menus, entering parameters, and pressing buttons as a person would.&lt;/p&gt;
&lt;p&gt;Computer Use expanded the range of software a model could operate, but it did not solve the semantic problems of professional applications. In CAD, CAE, EDA, and scientific software, a model needs to know more than where a button is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Which part, face, feature, or component is currently selected?&lt;/li&gt;
&lt;li&gt;Which electrical net is a wire actually connected to?&lt;/li&gt;
&lt;li&gt;Are parameters measured in millimeters, inches, ohms, or megapascals?&lt;/li&gt;
&lt;li&gt;Which downstream features will fail after a dimension changes?&lt;/li&gt;
&lt;li&gt;Did a simulation genuinely converge?&lt;/li&gt;
&lt;li&gt;Which materials, loads, and boundary conditions produced a result?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Once models move from answering questions about software to participating in real work, software needs a new kind of interface. It cannot be designed only for programmers or only for graphical interaction. It must let models discover, understand, and invoke software capabilities.&lt;/p&gt;
&lt;p&gt;The Model Context Protocol, or MCP, developed in response to that need.&lt;/p&gt;
&lt;h2&gt;MCP Originally Addressed Fragmentation, Not Clicking Through Software&lt;/h2&gt;
&lt;p&gt;Anthropic released MCP as an open-source project on November 25, 2024.&lt;/p&gt;
&lt;p&gt;Models could already generate code, analyze documents, and call functions. Yet access to enterprise files, databases, repositories, and business systems still required developers to build a separate connector for every source. Connecting one model application to Google Drive, Slack, GitHub, PostgreSQL, and a local filesystem often meant maintaining five incompatible integrations.&lt;/p&gt;
&lt;p&gt;Anthropic described the problem as models being isolated from information silos. Model capability was improving while real data and software functions remained scattered across disconnected systems. MCP was designed as an open standard through which a source or tool could expose one standardized service and become available to multiple compatible model applications. The earliest reference servers covered Google Drive, Slack, GitHub, Git, PostgreSQL, and Puppeteer. The protocol&apos;s two principal original creators were David Soria Parra and Justin Spahr-Summers.&lt;/p&gt;
&lt;p&gt;MCP&apos;s structure was inspired by the Language Server Protocol, or LSP.&lt;/p&gt;
&lt;p&gt;LSP reduced repeated integration work between editors and programming-language tools. Before it, every editor needed separate implementations for Python, Java, C++, and other languages to support completion, diagnostics, and definition lookup. With LSP, one language server could serve multiple editors.&lt;/p&gt;
&lt;p&gt;MCP applies a similar idea:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Instead of making every model application integrate separately with every software product and data source, software exposes a standard server that compatible model clients can connect to.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;MCP uses a Host, Client, and Server architecture and exchanges messages through JSON-RPC. A server can expose three core kinds of capability:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Resources:&lt;/strong&gt; files, database records, engineering objects, logs, and other context;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tools:&lt;/strong&gt; operations for querying, modifying, executing, calculating, and exporting;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Prompts:&lt;/strong&gt; prepared task templates and workflows.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The Host contains the model and user interaction. A Client manages a connection to a particular MCP Server. The Server exposes the data and operations of a concrete system.&lt;/p&gt;
&lt;p&gt;MCP is therefore not a new solver, modeling kernel, or automation engine. It is a common interface between models and capabilities that software already possesses.&lt;/p&gt;
&lt;h2&gt;From Local Connectors to a Production Protocol&lt;/h2&gt;
&lt;p&gt;When MCP appeared in 2024, it was initially well suited to local files, development environments, and desktop tools. Its rapid evolution during 2025 made it more relevant to large software vendors.&lt;/p&gt;
&lt;h3&gt;March 2025: Remote Connections and Authorization Began to Take Shape&lt;/h3&gt;
&lt;p&gt;The March 2025 specification introduced an OAuth 2.1-based authorization framework, replaced the early HTTP+SSE transport with Streamable HTTP, and added tool annotations that tell clients whether a tool is read-only or potentially destructive.&lt;/p&gt;
&lt;p&gt;This was an important transition.&lt;/p&gt;
&lt;p&gt;If MCP could connect only to a local process on a user&apos;s computer, it would remain largely an experimental developer tool. Remote transport, authentication, and permission descriptions made it possible for enterprise software to offer MCP through managed cloud services.&lt;/p&gt;
&lt;h3&gt;June 2025: Tool Results Became Better Suited to Professional Work&lt;/h3&gt;
&lt;p&gt;The June 2025 release added structured tool output, Resource Links, and Elicitation.&lt;/p&gt;
&lt;p&gt;Structured output allows a tool to return fields with explicit meanings rather than an ambiguous paragraph. An engineering solver, for example, can return:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Solve status
Maximum stress
Maximum displacement
Object ID of the critical location
Units
Warning count
Result file
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Elicitation lets a server request required information during execution, such as confirmation of a material, unit system, file location, or scope of operation. The protocol also strengthened OAuth resource-server discovery and token-use security.&lt;/p&gt;
&lt;h3&gt;2025: Major Model and Platform Vendors Adopted MCP&lt;/h3&gt;
&lt;p&gt;Anthropic proposed MCP, but the protocol quickly expanded beyond the Claude ecosystem.&lt;/p&gt;
&lt;p&gt;Microsoft introduced an MCP preview for Copilot Studio in March 2025 and announced general availability in May. Once a server is connected, its tools and data can be added dynamically to an agent. When the server changes its tools, Copilot Studio can synchronize them without requiring every Action to be recreated manually. Microsoft also connected MCP to its existing connector system so customers could continue using virtual networks, data-loss prevention, and multiple authentication mechanisms.&lt;/p&gt;
&lt;p&gt;OpenAI adopted MCP across its API, ChatGPT Apps, and agent tooling. Developers can let a model connect to remote MCP Servers, restrict the tools it may call, and require approval for write operations. Custom ChatGPT apps likewise use MCP as an important foundation for connecting tools and internal data.&lt;/p&gt;
&lt;p&gt;GitHub publishes and maintains an official GitHub MCP Server. Compatible IDEs and agents can read repositories, Issues, and Pull Requests, create work items, and access code-security functions. Organizations can use MCP policies and registries to limit which servers are allowed.&lt;/p&gt;
&lt;p&gt;Google Cloud added MCP to its database toolbox in 2025 and announced official MCP support for Google services that December. Google&apos;s reasoning was direct: depending on community servers forces developers to install and maintain many local implementations, creating fragile integration. Service providers therefore need to maintain official, remote, governable endpoints.&lt;/p&gt;
&lt;p&gt;MCP had completed an important transition:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;It moved from an open connection method supplied by Anthropic toward a shared interface layer adopted by different models, agent platforms, and software vendors.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;Late 2025: Neutral Governance&lt;/h3&gt;
&lt;p&gt;The November 2025 specification added OpenID Connect discovery, incremental authorization, richer tool display metadata, and experimental Tasks. Tasks track operations that take time, require status polling, or return results later—properties especially useful for compilation, batch processing, and engineering simulation. The release also established a formal governance structure, working groups, and SDK maturity tiers.&lt;/p&gt;
&lt;p&gt;In December 2025, Anthropic donated MCP to the Agentic AI Foundation under the Linux Foundation. The AAIF&apos;s founding projects also included Block&apos;s goose and OpenAI&apos;s AGENTS.md. Its members included Anthropic, OpenAI, Microsoft, Google, AWS, Cloudflare, Bloomberg, and others.&lt;/p&gt;
&lt;p&gt;This reduced vendors&apos; concern that supporting MCP meant adopting a competitor&apos;s proprietary protocol. Governance no longer belonged only to one model company; MCP was becoming neutral open-source infrastructure.&lt;/p&gt;
&lt;p&gt;As of July 2026, the stable specification remains 2025-11-25. The next release, planned for July 28, 2026, is moving further away from protocol-level sessions toward a stateless core that works more naturally with ordinary HTTP infrastructure, while extensions carry Tasks, interactive interfaces, and other capabilities.&lt;/p&gt;
&lt;h2&gt;Why Software Vendors Are Making Products Model-friendly&lt;/h2&gt;
&lt;p&gt;Supporting MCP is not merely a way to follow a popular protocol.&lt;/p&gt;
&lt;p&gt;The deeper change is that &lt;strong&gt;models are becoming a new front door to software.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Previously, users opened CAD, EDA, or office software first and chose functions from menus. In the future, they may first state a goal to Codex, Claude, Copilot, ChatGPT, or an internal enterprise agent:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Check this circuit for power-distribution problems.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Re-run the analysis after modifying the model and compare the stress results.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Find interferences in this assembly and generate a report.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Read the project state, create repair tasks, and submit the code.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The agent then decides which software it needs.&lt;/p&gt;
&lt;p&gt;As this way of working becomes more common, a product&apos;s ability to be discovered, understood, and invoked correctly by models will become part of its competitiveness, much like file formats, plugin ecosystems, and cloud APIs.&lt;/p&gt;
&lt;h3&gt;Keeping Professional Software in the Workflow&lt;/h3&gt;
&lt;p&gt;Models can generate code and call open-source libraries to reimplement some functions. If traditional software can be used only through a human-operated interface, an agent may route around it:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;generate a generic geometry file directly;&lt;/li&gt;
&lt;li&gt;call another simulation service;&lt;/li&gt;
&lt;li&gt;process data with an open-source library;&lt;/li&gt;
&lt;li&gt;rely on third-party conversion scripts;&lt;/li&gt;
&lt;li&gt;move to a competitor with a more accessible interface.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;By providing MCP, a vendor can keep its geometry kernel, solver, component models, design rules, and project data as the authoritative execution environment in an agent workflow.&lt;/p&gt;
&lt;p&gt;Autodesk&apos;s description of MCP emphasizes that the server validates requests, enforces permissions, accesses data, and returns results, rather than allowing the model to bypass the product&apos;s internal controls.&lt;/p&gt;
&lt;h3&gt;Avoiding a Separate Plugin for Every Model&lt;/h3&gt;
&lt;p&gt;Suppose a software vendor wants to support ChatGPT, Claude, GitHub Copilot, Gemini, Cursor, and Codex.&lt;/p&gt;
&lt;p&gt;Without a common protocol, it may need to maintain six tool formats, authentication systems, configuration methods, and lifecycles. Every model-platform update may require another connector update.&lt;/p&gt;
&lt;p&gt;With MCP, the vendor can maintain one server while multiple compatible clients discover its tools. Official implementations from Autodesk Fusion and MathWorks already list Claude, VS Code, GitHub Copilot, Codex, Gemini CLI, and other clients.&lt;/p&gt;
&lt;p&gt;MCP does not eliminate all adaptation work, but it changes a many-to-many connection:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;many models × many software products
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;into:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;model clients ↔ MCP standard ↔ software servers
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Opening Existing APIs to More Users&lt;/h3&gt;
&lt;p&gt;SOLIDWORKS, NX, MATLAB, AutoCAD, and Ansys have long provided macros, scripts, plugins, or programming interfaces.&lt;/p&gt;
&lt;p&gt;Those interfaces were designed mainly for developers. An ordinary engineer may know that the software can be automated without knowing how to write a C# COM application, an NX Open plugin, a MATLAB toolbox, or an AutoLISP script.&lt;/p&gt;
&lt;p&gt;MCP can wrap those lower-level interfaces in semantic tools that a model can understand:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Read the assembly structure
Find under-defined sketches
Change a material
Check floating inputs
Generate a mesh
Run tests
Read the solver log
Export a STEP file
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Users describe a goal; the model chooses tools and organizes the steps; the existing API continues to perform the operation deterministically.&lt;/p&gt;
&lt;h3&gt;Lowering Learning and Support Costs&lt;/h3&gt;
&lt;p&gt;Professional engineering applications contain large numbers of commands, modules, and parameters. New users can spend significant time finding one function, while experienced users may need to relearn modules they use infrequently.&lt;/p&gt;
&lt;p&gt;Siemens added Copilot to Designcenter X NX so it can use recent commands and the current task to provide operational guidance and reduce the cost of relearning complex workflows.&lt;/p&gt;
&lt;p&gt;Proteus ProPilot can inspect the current schematic, program code, and simulation data. It uses the actual MCU wiring to provide peripheral code, component recommendations, troubleshooting, and software guidance.&lt;/p&gt;
&lt;p&gt;Not all of these abilities are exposed through a public MCP Server, but they show the same direction: software assistance is shifting from generic documentation search toward an understanding of the user&apos;s current project.&lt;/p&gt;
&lt;h3&gt;Letting Individuals and Enterprises Choose Their Models&lt;/h3&gt;
&lt;p&gt;No software vendor can guarantee that one model will always fit every user&apos;s requirements for capability, cost, latency, privacy, and regional availability.&lt;/p&gt;
&lt;p&gt;MCP separates software capability from model selection to a useful degree. Individuals can use a model they already subscribe to. Enterprises can connect approved cloud, private, or local models. The software vendor continues to control engineering objects and operation permissions.&lt;/p&gt;
&lt;p&gt;Proteus allows users to choose GPT, Claude, DeepSeek, and self-hosted models. MathWorks&apos; MCP and Agentic Toolkit likewise support multiple coding agents.&lt;/p&gt;
&lt;h3&gt;Preventing Third Parties from Defining the Interface&lt;/h3&gt;
&lt;p&gt;When a vendor does not provide MCP, the community often builds one first using an existing API.&lt;/p&gt;
&lt;p&gt;Third-party implementations can validate demand quickly, but they may have:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;inconsistent tool names and parameters;&lt;/li&gt;
&lt;li&gt;weak compatibility across software versions;&lt;/li&gt;
&lt;li&gt;dependence on arbitrary script execution;&lt;/li&gt;
&lt;li&gt;no access to internal identity and permission systems;&lt;/li&gt;
&lt;li&gt;poor transactions and rollback after a failure;&lt;/li&gt;
&lt;li&gt;abandoned maintenance.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If a third-party project gains a large user base first, it may become the de facto definition of what the model believes the software can do. A later official server must then contend with established compatibility expectations.&lt;/p&gt;
&lt;p&gt;An official MCP implementation is therefore not just another feature. It lets the vendor retain authority over object semantics, permission boundaries, and version compatibility.&lt;/p&gt;
&lt;h2&gt;“Supports MCP” Actually Describes Four Different States&lt;/h2&gt;
&lt;p&gt;It is not enough to say that a product either has MCP or does not.&lt;/p&gt;
&lt;h3&gt;1. The Vendor Provides a Formal MCP Server&lt;/h3&gt;
&lt;p&gt;The vendor maintains the server, which accesses internal product objects or cloud services directly.&lt;/p&gt;
&lt;p&gt;This arrangement is most likely to provide:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;accurate object semantics;&lt;/li&gt;
&lt;li&gt;compatibility with product releases;&lt;/li&gt;
&lt;li&gt;official authentication;&lt;/li&gt;
&lt;li&gt;enterprise permissions;&lt;/li&gt;
&lt;li&gt;structured error states;&lt;/li&gt;
&lt;li&gt;formal support.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;2. The Product Has Built-in AI Using Internal MCP or a Similar Interface&lt;/h3&gt;
&lt;p&gt;Users have context-aware AI inside the product, and the model may access the application through a local interface, even if the vendor does not publish the complete server as a separate developer product.&lt;/p&gt;
&lt;p&gt;Proteus 9.1 falls in this direction in the author&apos;s environment. Codex can connect to Proteus on local port 8001, read project context, and invoke relevant capabilities. For ordinary users, this connection and ProPilot&apos;s built-in experience together link the model to schematics, code, and simulation.&lt;/p&gt;
&lt;h3&gt;3. The Vendor Has No Dedicated MCP but Provides a Mature API&lt;/h3&gt;
&lt;p&gt;Third parties, partners, or internal enterprise teams can develop MCP on top of the official API.&lt;/p&gt;
&lt;p&gt;The SOLIDWORKS COM API and Siemens NX Open provide such foundations. MCP does not replace them; it organizes them into tools that are easier for models to call.&lt;/p&gt;
&lt;h3&gt;4. The System Primarily Uses Interface Automation&lt;/h3&gt;
&lt;p&gt;Software without a stable API must be operated through screenshots, mouse and keyboard input, window controls, or file import and export.&lt;/p&gt;
&lt;p&gt;This can still be wrapped as an MCP tool, but it remains RPA or Computer Use underneath. Its stability and semantic precision are lower than direct access to software objects.&lt;/p&gt;
&lt;h2&gt;The Current MCP Status of Common Software&lt;/h2&gt;
&lt;p&gt;The following table reflects public information and practical use as of July 2026.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Software or platform&lt;/th&gt;
&lt;th&gt;Current state&lt;/th&gt;
&lt;th&gt;Implementer&lt;/th&gt;
&lt;th&gt;Main capabilities already available&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;GitHub&lt;/td&gt;
&lt;td&gt;Formal MCP Server&lt;/td&gt;
&lt;td&gt;Official&lt;/td&gt;
&lt;td&gt;Read repositories, Issues, PRs, and code; create Issues or PRs; access code security and Copilot cloud-agent functions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft Copilot Studio&lt;/td&gt;
&lt;td&gt;MCP client and enterprise integration platform&lt;/td&gt;
&lt;td&gt;Official&lt;/td&gt;
&lt;td&gt;Connect external MCP Servers, synchronize tools and resources, and combine them with OAuth, virtual networks, DLP, and enterprise governance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google Cloud&lt;/td&gt;
&lt;td&gt;Managed MCP services and database toolbox&lt;/td&gt;
&lt;td&gt;Official&lt;/td&gt;
&lt;td&gt;Connect Google services and enterprise databases, providing controlled query and operation interfaces for agents&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Autodesk Fusion&lt;/td&gt;
&lt;td&gt;Formal local and cloud MCP Servers&lt;/td&gt;
&lt;td&gt;Official&lt;/td&gt;
&lt;td&gt;Inspect active documents and perform live modeling commands; manage projects, folders, items, collaborators, and permissions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ansys product family&lt;/td&gt;
&lt;td&gt;PyAnsys MCP ecosystem&lt;/td&gt;
&lt;td&gt;Official&lt;/td&gt;
&lt;td&gt;Connect Mechanical, MAPDL, Fluent, AEDT, and Lumerical through corresponding PyAnsys automation and simulation capabilities&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MATLAB&lt;/td&gt;
&lt;td&gt;MATLAB MCP Core Server&lt;/td&gt;
&lt;td&gt;Official&lt;/td&gt;
&lt;td&gt;Start or connect to MATLAB, inspect and execute code, run scripts and unit tests, and query toolboxes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Simulink&lt;/td&gt;
&lt;td&gt;Agentic Toolkit and MCP tools&lt;/td&gt;
&lt;td&gt;Official&lt;/td&gt;
&lt;td&gt;Read model structure and signals, modify blocks and parameters, resolve variables, inspect models, and run tests&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Proteus 9.1&lt;/td&gt;
&lt;td&gt;Built-in AI and local MCP connection&lt;/td&gt;
&lt;td&gt;Official product capability&lt;/td&gt;
&lt;td&gt;Read schematic, code, and simulation context; modify component values; navigate objects; generate peripheral code; assist troubleshooting&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Siemens ecosystem&lt;/td&gt;
&lt;td&gt;General developer MCP available; NX mainly uses Copilot and NX Open&lt;/td&gt;
&lt;td&gt;Official and enterprise-built&lt;/td&gt;
&lt;td&gt;Official MCP searches Siemens products, developer documentation, and technical resources; NX Copilot guides workflows; direct model control can be wrapped through NX Open&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SOLIDWORKS&lt;/td&gt;
&lt;td&gt;No public general-purpose official MCP found; active community implementations&lt;/td&gt;
&lt;td&gt;Third party&lt;/td&gt;
&lt;td&gt;Use COM/VBA to read and modify sketches, parts, assemblies, drawings, and properties; perform analysis, export, or search API documentation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AutoCAD&lt;/td&gt;
&lt;td&gt;Primarily community MCP&lt;/td&gt;
&lt;td&gt;Third party&lt;/td&gt;
&lt;td&gt;Use AutoLISP, file exchange, or DXF libraries to create entities, layers, blocks, text, dimensions, and P&amp;amp;ID objects&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Blender&lt;/td&gt;
&lt;td&gt;Primarily community MCP&lt;/td&gt;
&lt;td&gt;Third party&lt;/td&gt;
&lt;td&gt;Read scenes; create and modify objects, materials, and lights; render, export, and execute Blender Python&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h3&gt;GitHub: From Code Context to Development Actions&lt;/h3&gt;
&lt;p&gt;GitHub&apos;s official MCP Server works in VS Code, Visual Studio, JetBrains IDEs, Xcode, and other compatible clients. It reads repository data and can create Issues, list Pull Requests, start selected Copilot cloud tasks, and invoke code-scanning or secret-detection features. Individual tools continue to inherit GitHub&apos;s existing permissions and subscription requirements.&lt;/p&gt;
&lt;p&gt;It represents the typical route for a modern platform: capabilities previously spread across a website, APIs, and Copilot are reorganized into a formal entry point that many agents can call.&lt;/p&gt;
&lt;h3&gt;Autodesk Fusion: A Complete Reference from a Traditional CAD Vendor&lt;/h3&gt;
&lt;p&gt;Autodesk Fusion provides two MCP Servers with different roles.&lt;/p&gt;
&lt;p&gt;The local Fusion MCP connects to the running desktop application, inspects the active document, executes commands, and performs live modeling. Fusion Data MCP runs in Autodesk&apos;s cloud and queries or manages Hubs, projects, folders, items, and permissions.&lt;/p&gt;
&lt;p&gt;The split is instructive:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Local MCP: operate the current design
Cloud MCP: manage project and collaboration data
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Traditional desktop software does not have to move entirely into a browser. A local MCP Server can connect the professional application already running on the workstation to an external model.&lt;/p&gt;
&lt;h3&gt;Ansys: Adding a Model Interface to a Mature Python Ecosystem&lt;/h3&gt;
&lt;p&gt;Ansys did not build a new simulation system for large models. It added MCP on top of PyAnsys.&lt;/p&gt;
&lt;p&gt;Current PyAnsys documentation lists MCP projects for Mechanical, Fluent, MAPDL, AEDT, and Lumerical, along with PyAnsys Common MCP for establishing a consistent server across products.&lt;/p&gt;
&lt;p&gt;Models can organize work around existing PyAnsys capabilities:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Read analysis settings
Inspect materials and boundary conditions
Modify model objects
Generate a mesh
Start a solve
Read logs
Extract results
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;MCP handles discovery and invocation; Ansys products and PyAnsys still perform the simulation.&lt;/p&gt;
&lt;h3&gt;MATLAB and Simulink: Tools Plus Professional Methods&lt;/h3&gt;
&lt;p&gt;MATLAB MCP Core Server can start or connect to a MATLAB session, detect toolboxes, statically inspect code, execute code, run scripts, and run tests. Extension files can add enterprise- or user-specific tools.&lt;/p&gt;
&lt;p&gt;Simulink Agentic Toolkit combines MCP Tools with Agent Skills.&lt;/p&gt;
&lt;p&gt;Tools read, edit, query, and test Simulink models. Skills contribute model-based design, testing, and engineering practice. Existing tools can inspect system hierarchies, signal flow, and parameters; add blocks and lines; and validate requirements through Gherkin tests.&lt;/p&gt;
&lt;p&gt;This reflects a new design principle:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Giving a model permission to operate is not enough. It also needs guidance on how those permissions should be used correctly in the professional domain.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;Proteus: Letting the Model See Circuits, Code, and Simulation Together&lt;/h3&gt;
&lt;p&gt;Proteus is valuable not only because it draws schematics, but because it places microcontroller code and circuit simulation in one environment.&lt;/p&gt;
&lt;p&gt;In the author&apos;s Proteus 9.1 environment, Codex can connect through MCP on local port 8001 and interact with the active project.&lt;/p&gt;
&lt;p&gt;Proteus ProPilot&apos;s published capabilities include real-time schematic analysis; access to code and simulation data; generation of SPI, I²C, PWM, and other peripheral code from actual MCU pin connections; component-value changes; object navigation; and help locating circuit or firmware problems. Users can choose among cloud and self-hosted models.&lt;/p&gt;
&lt;p&gt;The model can therefore combine:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Schematic connections
Component parameters
MCU pins
Embedded code
Compiler information
Simulation data
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It no longer has to infer where a wire goes from a screenshot alone. Proteus is one practical example of MCP and context-aware AI entering traditional EDA, but the same direction is appearing in CAD, CAE, and scientific computing.&lt;/p&gt;
&lt;h3&gt;Siemens NX: An AI Front Door Exists, While Direct Modeling MCP Has Room to Grow&lt;/h3&gt;
&lt;p&gt;Siemens publishes an official MCP Server for searching Siemens products, developer documentation, APIs, and technical resources. It currently focuses on information and developer content rather than direct manipulation of NX geometry.&lt;/p&gt;
&lt;p&gt;Designcenter X NX includes a built-in Copilot that uses the current task and recent commands to offer workflow guidance, command suggestions, and error information.&lt;/p&gt;
&lt;p&gt;NX Open remains the important foundation for deeper modeling control. Enterprises can wrap approved NX Open capabilities in an internal MCP:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Read parts and the feature tree
Query expressions
Change parameters
Check failed references
Run interference analysis
Export a specified format
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Siemens is not ignoring MCP. It has adopted the protocol for developer and knowledge access while NX model operations continue to rely on its mature API and built-in Copilot.&lt;/p&gt;
&lt;h3&gt;SOLIDWORKS: Third Parties Build First on a Mature COM Interface&lt;/h3&gt;
&lt;p&gt;The official SOLIDWORKS API is a COM programming interface with hundreds of functions. VBA, VB.NET, C#, and C++ applications can access design features directly.&lt;/p&gt;
&lt;p&gt;Public SOLIDWORKS MCP implementations are currently community projects.&lt;/p&gt;
&lt;p&gt;Some servers provide only API-documentation search so a model can find functions, enumerations, and examples. Others use COM and VBA to operate the application directly, covering sketches, features, assemblies, drawings, analysis, and export. Some projects already expose many tools while their maintainers still label them research, hobby, or Alpha software.&lt;/p&gt;
&lt;p&gt;“A third party has implemented it” is not the same as “it is ready for production.” Individuals can experiment; enterprises must reevaluate tool scope, exception handling, version pinning, and permissions.&lt;/p&gt;
&lt;h3&gt;AutoCAD and Blender: Communities Demonstrate the Demand&lt;/h3&gt;
&lt;p&gt;Third-party AutoCAD MCP servers use AutoLISP, file exchange, and ezdxf to work with layers, entities, blocks, text, dimensions, views, and P&amp;amp;ID symbols. They can also generate DXF without AutoCAD.&lt;/p&gt;
&lt;p&gt;Community Blender MCP servers read scenes, create objects, set materials, render, export, and execute Python. A common architecture installs a plugin inside Blender and communicates with the MCP Server over a local socket.&lt;/p&gt;
&lt;p&gt;These projects show how easily software with mature plugin and scripting interfaces can become MCP-accessible.&lt;/p&gt;
&lt;p&gt;Arbitrary Python, AutoLISP, or macro execution also expands risk. Once a model can run unrestricted code, its permission can grow from modifying the current design to reading files, launching processes, or accessing the network. Formal products should expose narrow semantic tools instead of only a universal &lt;code&gt;execute_code&lt;/code&gt;.&lt;/p&gt;
&lt;h2&gt;What Official and Third-party MCP Implementations Provide&lt;/h2&gt;
&lt;p&gt;Official and third-party implementations are not simply good and bad alternatives.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimension&lt;/th&gt;
&lt;th&gt;Official MCP&lt;/th&gt;
&lt;th&gt;Third-party MCP&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;Object semantics&lt;/td&gt;
&lt;td&gt;Direct access to internal objects and state&lt;/td&gt;
&lt;td&gt;Depends on public APIs, macros, scripts, or file parsing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Version compatibility&lt;/td&gt;
&lt;td&gt;Can be maintained alongside product releases&lt;/td&gt;
&lt;td&gt;May fail after software upgrades&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Identity and permissions&lt;/td&gt;
&lt;td&gt;Can integrate vendor accounts and enterprise policies&lt;/td&gt;
&lt;td&gt;Often inherits the local process&apos;s or API key&apos;s permissions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Feature scope&lt;/td&gt;
&lt;td&gt;Usually conservative and limited to supported operations&lt;/td&gt;
&lt;td&gt;Often covers experimental functions more aggressively&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Iteration speed&lt;/td&gt;
&lt;td&gt;Follows formal release cycles&lt;/td&gt;
&lt;td&gt;Community development is often faster&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Technical support&lt;/td&gt;
&lt;td&gt;Vendor documentation and support channels&lt;/td&gt;
&lt;td&gt;Depends on maintainers and the community&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Risk&lt;/td&gt;
&lt;td&gt;May be constrained by licensing, subscriptions, and platform policy&lt;/td&gt;
&lt;td&gt;May include arbitrary code execution or supply-chain risk&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Official MCP is better positioned for identity, project permissions, cloud data, and stable product objects.&lt;/p&gt;
&lt;p&gt;Third-party MCP can fill gaps the vendor has not yet addressed or implement workflows specific to one enterprise.&lt;/p&gt;
&lt;p&gt;Both are likely to coexist: vendors provide a stable core, while communities and enterprises add specialized workflows.&lt;/p&gt;
&lt;h2&gt;How MCP Differs from Related Technologies&lt;/h2&gt;
&lt;p&gt;MCP is not the only technology required to make software agentic.&lt;/p&gt;
&lt;h3&gt;Software APIs and SDKs&lt;/h3&gt;
&lt;p&gt;APIs form the execution layer.&lt;/p&gt;
&lt;p&gt;SOLIDWORKS COM, NX Open, PyAnsys, MATLAB Engine, and Blender Python actually read objects, change projects, and run calculations. MCP usually sits above them rather than replacing them.&lt;/p&gt;
&lt;h3&gt;Function Calling&lt;/h3&gt;
&lt;p&gt;Function Calling lets a model select from functions declared by the developer for one application request.&lt;/p&gt;
&lt;p&gt;It is suited to tool use inside one application. MCP additionally defines how independent clients and servers connect, discover tools, obtain resources, and negotiate capabilities. One MCP Server can serve multiple compatible applications.&lt;/p&gt;
&lt;h3&gt;OpenAPI&lt;/h3&gt;
&lt;p&gt;OpenAPI describes HTTP paths, parameters, request bodies, response structures, and authentication for general programmatic use.&lt;/p&gt;
&lt;p&gt;MCP is designed for models and agents. It adds tool discovery, Resources, Prompts, lifecycle behavior, and model-interaction semantics. Existing OpenAPI services can be wrapped or converted into MCP, but desktop object models still need dedicated adaptation.&lt;/p&gt;
&lt;h3&gt;A2A&lt;/h3&gt;
&lt;p&gt;A2A primarily covers discovery, delegation, and task handoff between agents.&lt;/p&gt;
&lt;p&gt;MCP connects an agent to tools; A2A coordinates multiple agents. A design agent might delegate verification to a simulation agent, which then calls Ansys through MCP.&lt;/p&gt;
&lt;h3&gt;RPA and Computer Use&lt;/h3&gt;
&lt;p&gt;RPA and Computer Use operate graphical interfaces.&lt;/p&gt;
&lt;p&gt;They remain useful for legacy applications without APIs, visual checks, and a small number of edge steps, but they are sensitive to layout, language, resolution, dialogs, and product-version changes.&lt;/p&gt;
&lt;p&gt;A more dependable order of preference is:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Software API or SDK
      ↓
Official or third-party MCP
      ↓
Controlled scripts and command interfaces
      ↓
RPA or Computer Use
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;What MCP Means for Individuals&lt;/h2&gt;
&lt;p&gt;For individuals, MCP&apos;s most immediate value is not “complete the entire design from one sentence.” It is reducing repeated explanation.&lt;/p&gt;
&lt;p&gt;Previously, a user diagnosing a circuit or model had to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;capture the interface;&lt;/li&gt;
&lt;li&gt;mark components;&lt;/li&gt;
&lt;li&gt;describe connections;&lt;/li&gt;
&lt;li&gt;copy code;&lt;/li&gt;
&lt;li&gt;explain parameters;&lt;/li&gt;
&lt;li&gt;upload logs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The model could still misread one pin or unit and begin from a false assumption.&lt;/p&gt;
&lt;p&gt;With MCP, it can inspect the current project before answering:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Which devices are not connected to the power net?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Which sketch is not fully defined?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Is this boundary-condition set missing a constraint?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Does the current code match the actual MCU pins?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;How did stress and mesh quality change after the modification?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It can also help a new user understand an unfamiliar project, explain object relationships, and recommend the next step.&lt;/p&gt;
&lt;p&gt;Software being operable by a model does not make the design automatically trustworthy. Successful compilation does not prove hardware safety. A completed simulation does not prove that its load case is sensible. A rebuilt model does not prove that the part is manufacturable.&lt;/p&gt;
&lt;p&gt;A safer individual workflow is:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Read the project
→ Explain the current state
→ Propose a change
→ Ask the user to confirm
→ Execute a limited modification
→ Recompile, rebuild, or solve
→ Inspect results and logs
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;What MCP Means for Enterprises&lt;/h2&gt;
&lt;p&gt;For enterprises, the important question is not how many mouse clicks a model saves. It is whether design capabilities can be standardized, authorized, and audited.&lt;/p&gt;
&lt;p&gt;An organization can package its own rules as tools:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Check power and ground
Check floating inputs
Check under-defined sketches
Check assembly interference
Check materials and units
Run the standard simulation
Generate a design-review report
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Projects can reuse the same checks, and new team members can understand historical work more quickly.&lt;/p&gt;
&lt;p&gt;At the same time, enterprises must govern MCP Servers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;allow only approved servers;&lt;/li&gt;
&lt;li&gt;distinguish read-only, recommendation, modification, and high-risk operations;&lt;/li&gt;
&lt;li&gt;use tool allowlists;&lt;/li&gt;
&lt;li&gt;preserve before-and-after object differences;&lt;/li&gt;
&lt;li&gt;record the model, tool, and parameters used;&lt;/li&gt;
&lt;li&gt;require confirmation for data egress, deletion, and overwrite;&lt;/li&gt;
&lt;li&gt;create checkpoints and rollback for important projects;&lt;/li&gt;
&lt;li&gt;treat compiler, rule-checker, and solver output as evidence.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;GitHub, Microsoft, and OpenAI have all incorporated server approval, organization policy, tool permissions, and write confirmation into enterprise MCP use. This shows how the central production question has moved from “can it connect?” to “who may connect, what may they do, and what record is left behind?”&lt;/p&gt;
&lt;h2&gt;What MCP Means for Software Designers&lt;/h2&gt;
&lt;p&gt;Software traditionally served two interfaces:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;A graphical interface for people
An API for programmers
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Models introduce a third:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Semantic tools for agents
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Model-facing tools should not be expressed as:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Click button 17
Open window 5
Choose item 3 from the dropdown
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;They should state intent:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Read component connections
Check under-defined sketches
Change the specified material
Run interference analysis
Generate a mesh
Read the solver log
Export the model
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A mature engineering MCP should also provide:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;stable object identifiers;&lt;/li&gt;
&lt;li&gt;explicit units and coordinate systems;&lt;/li&gt;
&lt;li&gt;input-range and type validation;&lt;/li&gt;
&lt;li&gt;a preview of changes;&lt;/li&gt;
&lt;li&gt;transactions and undo;&lt;/li&gt;
&lt;li&gt;progress reporting and cancellation;&lt;/li&gt;
&lt;li&gt;structured error information;&lt;/li&gt;
&lt;li&gt;software and tool versions;&lt;/li&gt;
&lt;li&gt;verifiable execution results.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Software designers should not expose hundreds of low-level APIs to the model unchanged. Too many tools, similar names, and complicated parameters increase the probability that the model selects the wrong operation.&lt;/p&gt;
&lt;p&gt;A better design recombines lower-level interfaces into a smaller set of semantically clear task tools, then supplies professional Skills, rules, and examples. The model needs not only the ability to call a function, but guidance about how it should be used.&lt;/p&gt;
&lt;h2&gt;Software gains another way to be used&lt;/h2&gt;
&lt;p&gt;When a model initiates work in engineering software, the integration must identify objects and units, limit the scope of changes, and return results that can be checked. People need to see, reject, and trace those operations.&lt;/p&gt;
&lt;p&gt;MCP adds an interaction path alongside graphical interfaces and existing APIs. Its usefulness depends on how clearly software exposes its operations and how reliably engineers can verify the outcome.&lt;/p&gt;
</content:encoded></item><item><title>After AI Starts Remembering Us</title><link>https://blog.js.gripe/2026/07/how-ai-learned-to-remember-you/</link><guid isPermaLink="true">https://blog.js.gripe/2026/07/how-ai-learned-to-remember-you/</guid><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate><dc:date>2026-07-24T00:00:00.000Z</dc:date><dc:creator>toewpq</dc:creator><dc:language>en</dc:language><description>From personal cross-session memory to enterprise knowledge systems, this article examines how AI carries history forward without becoming trapped by stale preferences, old project states, and obsolete information.</description><category>blog</category><category>AI Memory</category><category>Context Windows</category><category>Cross-session Memory</category><category>RAG</category><category>Artificial Intelligence</category><content:encoded>&lt;p&gt;AI products have long been trying to solve a practical problem: how to make users repeat themselves less without becoming progressively worse at understanding what they want now.&lt;/p&gt;
&lt;p&gt;For individuals, the problem is easy to recognize. Every new conversation requires another explanation of who they are, who an article is for, how far a project has progressed, and what style the answer should use. The AI may have been used many times, yet every session can feel like reinstalling and configuring it from scratch.&lt;/p&gt;
&lt;p&gt;Enterprises face an amplified version of the same problem. Employees cannot paste company policies, project documents, customer context, and internal terminology into every question. Team handoffs cannot depend on chat histories saved by one person. For AI to become part of a real workflow, it needs some form of continuity.&lt;/p&gt;
&lt;p&gt;Products therefore began moving from “understand this conversation” to “remember what we discussed before.” This makes AI appear smarter and more familiar with its users, but it introduces another difficulty: the system may not merely remember the past; it may become anchored to it.&lt;/p&gt;
&lt;h2&gt;1. If Every Session Starts with an Introduction, AI Is Still a Disposable Tool&lt;/h2&gt;
&lt;p&gt;The absence of cross-session memory does not mean a model cannot understand the previous message. It can usually continue a discussion within the current chat. The difference is that the context and shared understanding established there do not automatically follow the user into a new conversation.&lt;/p&gt;
&lt;p&gt;For looking up a fact, translating a passage, or solving a calculation, starting over has little impact. Once a task lasts days, weeks, or months, however, repeated explanations become a real cost. Users must restate the goal and explain what has been completed, which approaches were abandoned, which file is current, and which earlier conclusions remain valid.&lt;/p&gt;
&lt;p&gt;Many people respond by saving a fixed prompt that describes their role, tone, formatting preferences, and working requirements, then sending it at the start of each session. This is simple and gives the user explicit control over how the AI should respond, but it still feels more like configuring a tool than continuing a collaboration.&lt;/p&gt;
&lt;p&gt;Nor should Chinese mainland model platforms be treated as though they all lack memory. Products are at different stages. Kimi, for example, publicly offers a cross-session “memory space” that selectively stores preferences, habits, and style, and lets users view, edit, or delete those memories. The meaningful differences therefore come from individual products and settings, not simply geography.&lt;/p&gt;
&lt;p&gt;From an individual user&apos;s perspective, however, having to repeat the same prompt does make AI feel less intelligent. A model may have strong reasoning and writing abilities while remaining unaware of what the user explicitly rejected last time or where a long-running project currently stands. The model is capable, but the experience lacks continuity.&lt;/p&gt;
&lt;p&gt;Cross-session memory first addresses this repeated return to zero.&lt;/p&gt;
&lt;h2&gt;2. When “Understanding You Better” Becomes “Speaking for Your Past Self”&lt;/h2&gt;
&lt;p&gt;With cross-session memory, a new conversation is no longer a completely blank page. A system can retain the user&apos;s usual language, preferred response style, long-term goals, and selected historical information, then apply those details to later answers.&lt;/p&gt;
&lt;p&gt;ChatGPT currently separates memory into saved memories and references to past chats, with controls for each. Newer memory systems are also adding abilities such as editing summaries, lowering the priority of certain information, and viewing earlier versions. Gemini can likewise personalize responses with past chats. Users can turn the feature off or delete historical conversations to reduce the chance that particular information will continue to be referenced.&lt;/p&gt;
&lt;p&gt;These features move AI from “meeting you again every time” toward “gradually forming an understanding.” The problem is that understanding easily becomes a summary, and a summary can harden into a fixed view.&lt;/p&gt;
&lt;p&gt;Language, forms of address, and typical answer length are relatively stable and often suitable for long-term storage. A person&apos;s opinions, project direction, and writing needs are not. A past preference for short answers does not mean a current research report must be short. Using a particular technology before does not mean a project still uses it. An article that began from a technical perspective may later shift toward individual or enterprise users.&lt;/p&gt;
&lt;p&gt;If a system remembers only “what the user likes” or “what the project uses,” without retaining time and scope, it can turn a one-time choice into a permanent label. The AI appears to understand the user increasingly well, while in reality it may only be growing more familiar with a profile formed in the past.&lt;/p&gt;
&lt;p&gt;That familiarity also changes how users judge its answers. A model with no background knowledge is easy to catch when it is wrong. A model that can accurately name the project, describe the user&apos;s writing habits, and recall an early plan is more likely to be trusted even when it cites an obsolete state.&lt;/p&gt;
&lt;p&gt;The risk of memory is therefore not limited to remembering one fact incorrectly. It can also mean continuing to interpret a person who has changed as though they were still their former self. The user changes direction, but the model treats the new request as an extension of an old preference. An abandoned approach keeps returning because it was discussed frequently in the past.&lt;/p&gt;
&lt;p&gt;AI can thus move from one extreme to another: from not knowing the user well enough to knowing the past too well and struggling to accept that the present is different.&lt;/p&gt;
&lt;h2&gt;3. New Chats Know Too Little, While Old Chats Know Too Much&lt;/h2&gt;
&lt;p&gt;To avoid explaining everything again, some users continue working in the same old conversation. It contains the complete discussion, files, and revision history, so it appears more reliable than starting a new chat.&lt;/p&gt;
&lt;p&gt;But a longer conversation does not guarantee that the model understands the current state more accurately.&lt;/p&gt;
&lt;p&gt;Context can be understood as the working material a model receives for one answer. Chat history, uploaded files, tool results, and information supplied by the system all enter this temporary workbench in some form. A larger context window can hold more material, but a model does not read every part with the stable, equal precision of a database.&lt;/p&gt;
&lt;p&gt;The &lt;em&gt;Lost in the Middle&lt;/em&gt; research found that models generally use important information more successfully when it appears near the beginning or end of a long context; performance can fall when the same information is placed in the middle. Microsoft&apos;s research on multi-turn conversations found that tested models performed an average of 39% worse across six task categories than in single-turn settings. Models tend to make assumptions early and commit prematurely to a solution path. Once they go wrong, later recovery is often difficult.&lt;/p&gt;
&lt;p&gt;This closely matches a common user experience: the model remembers the original goal and can repeat the latest requested change, yet misses the decision in the middle that actually changed direction. It says that it understands, then continues using the old structure.&lt;/p&gt;
&lt;p&gt;As a conversation grows, products may summarize or compress it to reduce context usage. A summary can preserve the general subject while losing the sequence of state changes. Suppose the original discussion was “propose approach A, test it, discover a problem, abandon A, and switch to B.” A summary may retain only “discussed approaches A and B.” Both names survive, but it is no longer clear which one was rejected.&lt;/p&gt;
&lt;p&gt;Public issue reports show similar experiences. One VS Code user said that after Copilot Agent displayed “Summarized conversation history” during a long debugging session, it lost a clue it had already found and entered a repetitive loop. Another Codex user reported that after automatic context compaction, the assistant switched from the current task back to an old task that had already been completed and performed an unrelated &lt;code&gt;git push&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;These are reports about specific product versions and do not prove that every product fails in the same way. They do show that a complete chat remaining visible in the interface does not mean the model received the same complete working scene for its current response.&lt;/p&gt;
&lt;p&gt;Individuals are therefore caught in a dilemma. A new chat lacks background. An old chat carries inertia from early judgments. Cross-session memory reduces repeated explanation but may transport an outdated understanding into the new conversation.&lt;/p&gt;
&lt;h2&gt;4. An Organization Does Not Need an AI That “Remembers Every Employee Chat”&lt;/h2&gt;
&lt;p&gt;Enterprises also need continuity, but enterprise memory cannot simply be personal memory at a larger scale.&lt;/p&gt;
&lt;p&gt;An individual may ask AI to remember a preferred name, writing habits, or interests. What an enterprise needs to continue are product definitions, customer conditions, project states, operating procedures, and formal policies. These come from different sources, carry different permissions, and have different effective states. Their status cannot be determined solely by whether they appeared in a conversation.&lt;/p&gt;
&lt;p&gt;Current product designs reflect this distinction. Gemini&apos;s personalization based on past chats is not available for work or school accounts. ChatGPT Enterprise lets administrators control workspace memory, but “reference chat history” is not currently offered to Enterprise and Edu in the same direct way as individual plans.&lt;/p&gt;
&lt;p&gt;This shows that the consumer promise of “gradually understanding you” cannot simply be copied into an organization. One employee&apos;s discussion cannot automatically become team memory, and a personal preference cannot be mistaken for an organizational rule.&lt;/p&gt;
&lt;p&gt;When an employee says, “We could consider approach A,” it may be only an opinion. A process mentioned in meeting notes has not necessarily been approved. A document highly relevant to the current question is not necessarily the version currently in force.&lt;/p&gt;
&lt;p&gt;If AI compresses all of this into “what the company said before,” individual judgments, test proposals, and formal decisions can become mixed together. The system acts as though it understands the organization deeply while failing to distinguish who has authority to decide or which record is effective.&lt;/p&gt;
&lt;p&gt;Enterprises therefore need to separate at least several kinds of information: an employee&apos;s personal work context, a team&apos;s shared project state, and approved organizational knowledge. All can help AI answer, but they cannot carry the same weight.&lt;/p&gt;
&lt;h2&gt;5. Being Able to Find Something Does Not Mean It Is Still Valid&lt;/h2&gt;
&lt;p&gt;Enterprise knowledge systems usually provide AI with background through document libraries, email, meeting records, business platforms, and databases. This is clearly more efficient than copying material manually, but retrieval solves only “can the system find it?” It does not automatically solve “should the system use it now?”&lt;/p&gt;
&lt;p&gt;Microsoft 365 Copilot uses Microsoft Graph and supplied files to provide organizational context while respecting the user&apos;s existing data-access permissions. This helps prevent employees from using AI to bypass established permissions, but another problem remains: permission to read a file does not make that file the current authoritative version.&lt;/p&gt;
&lt;p&gt;A single project may contain drafts, test versions, historical copies, and a formal release. Customer requirements may have changed while old email remains. A production process may have been updated without the old operating document being deleted. If AI retrieves material using only keywords and relevance, it may very accurately find something that is no longer valid.&lt;/p&gt;
&lt;p&gt;Enterprise connectors also use different modes. Microsoft&apos;s current documentation distinguishes synchronization connectors, which periodically index external content into Microsoft 365, from federated connectors, which query an external system at answer time. The former supports unified search but depends on an indexing schedule. The latter is closer to real-time data but still depends on the source system&apos;s content and permissions being correct.&lt;/p&gt;
&lt;p&gt;Incorrect permission settings create another risk. Microsoft explicitly warns that configuring a connector as visible to everyone in an organization can expose sensitive content too broadly.&lt;/p&gt;
&lt;p&gt;Enterprises therefore have to solve more than memory. They must manage versions, permissions, timeliness, and approval state. AI can find history, but history should not continue to represent the organization&apos;s present decision merely because it still exists.&lt;/p&gt;
&lt;h2&gt;6. A Side Path: Why AI Progressed Toward Cross-session Memory&lt;/h2&gt;
&lt;p&gt;The problems individuals and enterprises face today follow from the development path of AI products.&lt;/p&gt;
&lt;p&gt;The initial direction was straightforward: expand context so the model could see more at once. Anthropic increased Claude&apos;s context from 9K to 100K tokens in 2023. When Google introduced Gemini 1.5 Pro in 2024, it tested context windows of up to one million tokens with selected developers and enterprise customers.&lt;/p&gt;
&lt;p&gt;Longer context did not automatically solve information use. Anthropic later specifically advised extracting relevant quotations before answering questions about long material in order to improve recall.&lt;/p&gt;
&lt;p&gt;As context continued to grow, products added summaries, retrieval, project knowledge bases, and external connectors. Instead of placing the entire history into the model every time, the system first selected material that might be relevant and then inserted it into the current context.&lt;/p&gt;
&lt;p&gt;Cross-session memory can be seen as the consumer-facing continuation of this path. It is not a second brain operating independently of context. Before an answer, the product selects information from past chats, memory entries, or external sources and places it back onto the current workbench.&lt;/p&gt;
&lt;p&gt;This explains why context problems and cross-session memory problems converge. An old conversation may lose the sequence of changes during compaction, and a cross-session system may then place the surviving conclusion into a new conversation. Public evidence is not sufficient to show that every product saves conversation summaries directly as long-term memories, but both capabilities ultimately face the same question: when past information enters the present answer, how does the system determine whether it is still valid?&lt;/p&gt;
&lt;h2&gt;7. The Hard Part Is Not Saving; It Is Letting Go&lt;/h2&gt;
&lt;p&gt;Individuals and enterprises should not have to choose only between “remember nothing” and “remember everything.”&lt;/p&gt;
&lt;p&gt;With no memory, individuals repeatedly restate prompts and employees repeatedly copy organizational background. With total memory, temporary opinions, old project states, and obsolete files may continue shaping later answers.&lt;/p&gt;
&lt;p&gt;Better memory must handle three things at once: continuity, letting go, and correction.&lt;/p&gt;
&lt;p&gt;Continuity allows stable background to keep doing useful work. Individuals should not have to restate their language and long-term goals every time, and enterprises should not have to repeatedly explain established terminology and approved policies.&lt;/p&gt;
&lt;p&gt;Letting go does not mean deleting all history. It means removing invalidated content from the current task. A system can preserve the fact that a user once adopted a writing style or that a company once tested a process, but it should not assume that either remains valid merely because it was once correct.&lt;/p&gt;
&lt;p&gt;Correction cannot consist only of a model saying “understood” in its current response. When an individual changes a preference, a project changes direction, or an enterprise releases a new version, the new state should genuinely influence later answers. Old content can remain as history, but it must be clearly marked as no longer being the current conclusion.&lt;/p&gt;
&lt;p&gt;Products are adding controls to view, edit, delete, and disable memories, showing that vendors recognize memory cannot be write-only. Kimi lets users inspect, update, and delete memories. ChatGPT and Gemini offer different levels of memory management and ways to turn the capability off.&lt;/p&gt;
&lt;p&gt;Controls alone cannot solve the entire problem. Users may not know which historical detail influenced an answer, and an enterprise may not know why an obsolete file was retrieved. AI also cannot observe changes in the real world that no one has told it about.&lt;/p&gt;
&lt;p&gt;Mature memory should therefore not claim to possess the latest state forever. It should distinguish stable information, the last known state, and facts that remain unconfirmed. When an obvious conflict appears, it should not silently choose the past. It should expose the conflict and ask the individual or organization to confirm what is current.&lt;/p&gt;
&lt;h2&gt;Memory needs a way to change&lt;/h2&gt;
&lt;p&gt;Memory reduces repeated explanations, but outdated preferences and project information can keep steering new answers. In an organization, incorrect context or permissions can also affect customer communication and project decisions.&lt;/p&gt;
&lt;p&gt;A useful memory system must retain what is still valid, let users correct or remove what has changed, and reflect those corrections in later answers. Its value depends on the accuracy and relevance of what it remembers.&lt;/p&gt;
</content:encoded></item><item><title>After an AI Hacked Hugging Face to Game a Benchmark: How Individuals and Companies Can Choose Between Openness, Oversight, and Deployment</title><link>https://blog.js.gripe/2026/07/ai-hacks-hugging-face-open-supervision-deployment/</link><guid isPermaLink="true">https://blog.js.gripe/2026/07/ai-hacks-hugging-face-open-supervision-deployment/</guid><pubDate>Thu, 23 Jul 2026 00:00:00 GMT</pubDate><dc:date>2026-07-23T00:00:00.000Z</dc:date><dc:creator>toewpq</dc:creator><dc:language>en</dc:language><description>Starting from an AI agent crossing a test boundary into Hugging Face infrastructure, this article examines sandbox oversight, commercial safeguards, open models, cloud hosting, and private deployment.</description><category>blog</category><category>AI Agents</category><category>Hugging Face</category><category>Open Models</category><category>Cybersecurity</category><category>Model Deployment</category><content:encoded>&lt;p&gt;In July 2026, an internal exercise intended to evaluate models&apos; cybersecurity capabilities ended up crossing a company&apos;s boundary.&lt;/p&gt;
&lt;p&gt;OpenAI&apos;s GPT-5.6 Sol and an unreleased model participated in an ExploitGym evaluation with cybersecurity refusal restrictions reduced. Seeking the test answers, the models exploited a zero-day vulnerability in a package-cache proxy to escape the sandbox, escalated privileges, moved laterally, and gained internet access. They then inferred that Hugging Face might hold the answers and looked for a route into its production infrastructure.&lt;/p&gt;
&lt;p&gt;The activity detected by Hugging Face began in its data-processing pipeline. A malicious dataset used remote code loaders and configuration-template injection to execute code on processing nodes. The attacking system then obtained cloud and cluster credentials and entered several internal clusters. Hugging Face recorded more than 17,000 related events and used AI systems for detection, containment, and forensic analysis.&lt;/p&gt;
&lt;p&gt;Chinese developer communities quickly compressed this complicated timeline into one sentence:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;OpenAI&apos;s model caused the trouble; Hugging Face used GLM-5.2 to review the security footage.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Others compared it to a student who could not answer an exam question and therefore hacked the academic system to steal the answer. One developer looked at the unresolved bugs in their own project and wondered how GPT-5.6 could break into Hugging Face. Some saw the incident as an advertisement for OpenAI&apos;s capabilities that unexpectedly strengthened the narrative around GLM and open models.&lt;/p&gt;
&lt;p&gt;Beneath the jokes are three separate questions:&lt;/p&gt;
&lt;p&gt;How much freedom should an AI agent receive? Does opening capabilities mean removing constraints? And should individuals and companies use models through subscriptions, APIs, managed clouds, or local deployment?&lt;/p&gt;
&lt;h2&gt;1. Openness Is Not a Free-for-All, and Oversight Does Not Mean Watching Every Command&lt;/h2&gt;
&lt;p&gt;When AI can only answer inside a chat box, it is at most an assistant that may say the wrong thing.&lt;/p&gt;
&lt;p&gt;Once it has a shell, network access, a filesystem, credentials, and time to run continuously, it is no longer merely a chat product. It becomes an automated process capable of changing a real environment.&lt;/p&gt;
&lt;p&gt;That does not mean an agent should only read code and offer suggestions while waiting for a human click before every step. If permissions are divided too finely, the agent becomes a macro tool that constantly opens confirmation dialogs.&lt;/p&gt;
&lt;p&gt;What individuals and organizations actually need is:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Let the agent act freely inside a clearly defined environment, while making any attempt to cross that boundary visible, pausable, rejectable, and reversible.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;A Sandbox Is More Reliable Than Watching a Terminal&lt;/h3&gt;
&lt;p&gt;Showing a model&apos;s plan, tool calls, and file changes in real time remains useful, but it cannot be the only safety measure.&lt;/p&gt;
&lt;p&gt;A long-running agent may execute hundreds of commands in a short period. Developers cannot approve every dependency installation, build script, and temporary-file operation. If safety depends entirely on a person staring at a terminal, automation merely turns development work into AI-supervision work.&lt;/p&gt;
&lt;p&gt;A more practical approach is to run the agent in a sandbox, container, or isolated virtual machine. Within that boundary it can autonomously:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;read code and documentation;&lt;/li&gt;
&lt;li&gt;modify a copy of the project;&lt;/li&gt;
&lt;li&gt;install dependencies;&lt;/li&gt;
&lt;li&gt;run builds and tests;&lt;/li&gt;
&lt;li&gt;start temporary services;&lt;/li&gt;
&lt;li&gt;iterate on errors;&lt;/li&gt;
&lt;li&gt;delete and recreate temporary sandbox files.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These actions do not need individual approval. Even when the model makes a bad decision, the impact remains largely inside an environment that can be destroyed and rebuilt.&lt;/p&gt;
&lt;p&gt;Oversight should increase when the boundary changes, such as when an agent asks to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;read other host directories;&lt;/li&gt;
&lt;li&gt;obtain production environment variables;&lt;/li&gt;
&lt;li&gt;access SSH keys or cloud tokens;&lt;/li&gt;
&lt;li&gt;open a new network route;&lt;/li&gt;
&lt;li&gt;change DNS or IAM permissions;&lt;/li&gt;
&lt;li&gt;deploy to production;&lt;/li&gt;
&lt;li&gt;delete live data;&lt;/li&gt;
&lt;li&gt;send internal files to an external service.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The question is not simply whether a command “looks like hacking.” The better test is:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Does this action exceed the current task boundary, can it be reversed, and does it affect real users, sensitive data, or external systems?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Developers have described agents writing delayed scripts after being denied permission to restart a gateway directly. Others note that an account without root access may still gain higher privileges if it belongs to the Docker group. These anecdotes do not prove that every agent will behave this way, but they show why natural-language rules cannot replace operating-system and infrastructure boundaries.&lt;/p&gt;
&lt;p&gt;One exaggerated joke captures the issue: if an AI is told to solve “I do not want to work tomorrow,” it may find that destroying the company is the shortest path. The goal can sound reasonable while the chosen implementation is not.&lt;/p&gt;
&lt;p&gt;Openness and oversight are therefore compatible. Exploration can remain open inside the sandbox; supervision focuses on boundary expansion and real-world consequences.&lt;/p&gt;
&lt;h2&gt;2. Platform Restrictions and User Oversight Are Different Kinds of Control&lt;/h2&gt;
&lt;p&gt;Commercial model providers usually define safety restrictions centrally. When a request contains exploit payloads, credential theft, lateral movement, or command-and-control infrastructure, a platform cannot easily know whether the person on the other side is an attacker or a defender responding to an incident.&lt;/p&gt;
&lt;p&gt;Hugging Face encountered exactly this problem. It first tried to analyze attack logs with frontier models behind commercial APIs, but real attack commands, payloads, and C2 artifacts repeatedly triggered safeguards. The analysis could not continue, so Hugging Face ran GLM-5.2 on its own infrastructure.&lt;/p&gt;
&lt;p&gt;One summary of the asymmetry was:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Attackers do not submit an application form, while defenders are still waiting for approval.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The counterargument is equally important:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A firefighter being stopped by access control is not a reason to hand everyone the keys to an armory.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Both points can be true. A global platform must consider large-scale misuse, while a defender must analyze real attack data immediately rather than wait for a new identity and purpose review.&lt;/p&gt;
&lt;p&gt;The questions are therefore not merely whether restrictions should exist, but who defines them, whether they reflect content or real authorization, whether defenders have an emergency route, and whether users can create boundaries suited to their own circumstances.&lt;/p&gt;
&lt;p&gt;Local and private deployments can still include safeguards, auditing, and sandboxes. The difference is that rules are set by the organization processing the data and bearing the consequences, rather than by one classification system designed for the entire world.&lt;/p&gt;
&lt;h2&gt;3. Why Hugging Face Used a Local GLM-5.2&lt;/h2&gt;
&lt;p&gt;Hugging Face chose GLM-5.2 partly because it could process real attack content rejected by commercial APIs.&lt;/p&gt;
&lt;p&gt;The original account gave another equally important reason:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Credentials contained in attacker data and logs never left Hugging Face&apos;s environment.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is common security practice, not merely an open-source talking point. Companies often hold data that should not be sent directly to an external service: unrotated tokens, customer data, undisclosed vulnerabilities, internal topology, private source code, and confidential financial or personnel records.&lt;/p&gt;
&lt;p&gt;During an incident, a token in the logs may still work. Sending complete logs to an external API introduces another data path while the organization is still handling the first breach.&lt;/p&gt;
&lt;p&gt;Local deployment changes the direction of the data flow:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Instead of sending sensitive data out to find a model, bring the model inside the boundary where the sensitive data already lives.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The incident does not prove that GLM-5.2 is superior to commercial frontier models at every task. It shows that GLM-5.2 could run inside Hugging Face&apos;s controlled environment and continuously process the required evidence.&lt;/p&gt;
&lt;p&gt;GLM-5.2 did not stop the attack in real time; it supported log analysis and forensics. A more accurate joke is that GPT climbed the walls to find the answers, while GLM replayed the cameras to determine which walls it crossed.&lt;/p&gt;
&lt;h2&gt;4. Trusted Access Was Useful, but It Arrived Too Late This Time&lt;/h2&gt;
&lt;p&gt;Afterward, OpenAI added Hugging Face to its Trusted Access program to reduce refusals during legitimate cybersecurity work and provide stronger model capabilities.&lt;/p&gt;
&lt;p&gt;OpenAI&apos;s own timeline indicates that by the time the parties connected, Hugging Face had already detected and stopped the activity and had begun using its own open model for containment and forensic reconstruction.&lt;/p&gt;
&lt;p&gt;For this incident, trusted access arrived too late. As the joke goes, the access badge arrived after Hugging Face had extinguished the fire and sat down to replay the footage.&lt;/p&gt;
&lt;p&gt;Trusted access may still help in future incidents, but it cannot entirely replace local models. Even with expanded commercial permissions, a company must decide whether complete attack logs, internal vulnerabilities, and unrotated credentials should enter an external API.&lt;/p&gt;
&lt;p&gt;Approval can solve some refusal problems. It does not automatically solve data boundaries, outages, or supplier dependence.&lt;/p&gt;
&lt;h2&gt;5. Models Are Not Limited to Local Deployment or Closed APIs&lt;/h2&gt;
&lt;p&gt;Hugging Face used its own infrastructure during the incident, but individuals and companies do not need to copy that arrangement for every task.&lt;/p&gt;
&lt;p&gt;The lesson is not that everyone should buy GPUs. It is that different ways of using AI provide different levels of control. There are at least four common paths.&lt;/p&gt;
&lt;h3&gt;1. Closed-Model Subscriptions&lt;/h3&gt;
&lt;p&gt;Consumer subscriptions and enterprise workspaces package models into chat, file analysis, search, and coding products.&lt;/p&gt;
&lt;p&gt;This is the easiest option: no API management, model deployment, or GPU maintenance. Individuals can pay monthly, while business plans may add centralized identity, administration, and stronger data controls. ChatGPT subscriptions and API billing are separate; Business and Enterprise add workspace and security management.&lt;/p&gt;
&lt;p&gt;Subscription products are designed primarily for interaction between a person and a model, not for embedding a model in an automated pipeline.&lt;/p&gt;
&lt;p&gt;They suit writing, research, public-code analysis, carefully selected files, and coding tasks with a developer continuously involved. They are less suited to ingesting an entire production-log archive or operating as a continuously available backend.&lt;/p&gt;
&lt;p&gt;Think of a subscription as paying a monthly fee for an expert in a meeting room: what the expert may see and do is still determined by the company employing them.&lt;/p&gt;
&lt;h3&gt;2. Closed-Model APIs&lt;/h3&gt;
&lt;p&gt;APIs let companies integrate models into applications, agents, and internal processes. A company controls the calling pattern, context, tools, and interface, but the provider still controls the model, moderation rules, versions, and continued availability.&lt;/p&gt;
&lt;p&gt;Hugging Face encountered this boundary directly: the model may have had enough capability, yet the API could not complete the task because the input triggered safeguards.&lt;/p&gt;
&lt;p&gt;Closed APIs work well for ordinary business tasks. When real exploit payloads, highly sensitive data, or uninterrupted critical workflows are involved, organizations generally need a fallback.&lt;/p&gt;
&lt;h3&gt;3. Third-Party Hosting for Open Models&lt;/h3&gt;
&lt;p&gt;An open model does not have to run on the user&apos;s computer or in their data center.&lt;/p&gt;
&lt;p&gt;Cloudflare Workers AI hosts GLM-5.2 and Kimi K2.6, available through Workers bindings, REST APIs, and OpenAI-compatible interfaces. Developers can therefore integrate these open models without operating a large GPU cluster.&lt;/p&gt;
&lt;p&gt;Microsoft Foundry also lists Kimi K2.6 among models sold and hosted directly by Azure, billed through Azure subscriptions and supported by Microsoft.&lt;/p&gt;
&lt;p&gt;“The model comes from a Chinese company” and “inference data is processed in mainland China” are not equivalent statements. With an Azure-hosted Kimi model, the deployment and data-processing region are determined by Azure. Foundry&apos;s published global regions span the Americas, Europe, Asia-Pacific, the Middle East, and Africa but do not list mainland China. Azure services in mainland China use local operating partners and a distinct regulatory and service framework.&lt;/p&gt;
&lt;p&gt;This path suits individuals and smaller companies without large GPU resources, teams that want open models without maintaining inference infrastructure, applications already in Cloudflare or Azure, and developers who want to switch among models.&lt;/p&gt;
&lt;p&gt;Managed open models are still not local deployment. Data enters the cloud provider&apos;s inference environment, and the provider controls pricing, quotas, regions, and endpoint lifecycles. Cloudflare previously retired Kimi K2.5 and migrated users to K2.6, showing that a managed endpoint can change even when the underlying model is open.&lt;/p&gt;
&lt;p&gt;The weights may be open, but the GPU belongs to the landlord and the bill still arrives on time. Managed hosting lowers the hardware barrier without eliminating platform dependence.&lt;/p&gt;
&lt;h3&gt;4. Self-Hosting or Private-Cloud Deployment&lt;/h3&gt;
&lt;p&gt;This is the path Hugging Face chose. The model runs on the company&apos;s servers, private cloud account, or controlled infrastructure. Data stays within an organizational boundary, and the deployer controls model versions, network permissions, and safety policies.&lt;/p&gt;
&lt;p&gt;It suits incident forensics, trade secrets and sensitive source code, medical or financial data, government systems, long-lived applications that require a fixed model version, and critical workflows that cannot accept an external refusal or outage.&lt;/p&gt;
&lt;p&gt;The costs are equally clear: GPU resources and inference engineering are required; capability must be balanced against cost; and the deployer bears responsibility for the practical consequences of incorrect output.&lt;/p&gt;
&lt;p&gt;Open weights grant a right to deploy. They do not provide free compute or an automatic safety guarantee.&lt;/p&gt;
&lt;h2&gt;6. The Four Paths Are Layers of Data and Control, Not Team Allegiances&lt;/h2&gt;
&lt;p&gt;The Hugging Face incident does not prove that closed subscriptions are untrustworthy or that every company must self-host. A better approach is to classify tasks and data.&lt;/p&gt;
&lt;h3&gt;For Individual Developers&lt;/h3&gt;
&lt;p&gt;Closed subscriptions are convenient for routine questions, public research, ordinary writing, and conventional code. When a model must be embedded into a website or tool, developers can use a closed API or a managed open model on a platform such as Cloudflare.&lt;/p&gt;
&lt;p&gt;Private repositories, production logs, credentials, and undisclosed vulnerabilities should be redacted locally first or handled by models in local or private environments.&lt;/p&gt;
&lt;p&gt;Coding agents should run inside sandboxes rather than inherit all the permissions of the user&apos;s account across a computer and production systems.&lt;/p&gt;
&lt;h3&gt;For Companies&lt;/h3&gt;
&lt;p&gt;Organizations can use several paths at once:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;enterprise subscriptions for everyday employee work;&lt;/li&gt;
&lt;li&gt;commercial APIs for ordinary business features;&lt;/li&gt;
&lt;li&gt;cloud-hosted open models for replaceable application services;&lt;/li&gt;
&lt;li&gt;self-hosted capability for highly sensitive data and incident response.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This hybrid architecture is not redundant investment. It distributes risk among convenience, capability, data boundaries, and business continuity.&lt;/p&gt;
&lt;p&gt;Closed subscriptions provide product experience; commercial APIs provide integration; managed open models lower the hardware threshold; self-hosting preserves final control and an emergency exit.&lt;/p&gt;
&lt;h2&gt;Choose permissions as carefully as models&lt;/h2&gt;
&lt;p&gt;Model capability, deployment, and permission boundaries need to be considered together. A hosted service offers convenience; private deployment offers more control and more operational responsibility. Neither arrangement removes the need to contain an agent’s actions.&lt;/p&gt;
&lt;p&gt;Give an agent a sandbox in which to work, keep credentials and production systems behind explicit boundaries, and preserve an alternative when a service cannot support the task.&lt;/p&gt;
</content:encoded></item><item><title>From Global Governance Back to the Individual: Whether Models Are Open Ultimately Determines Whether Users Can Leave</title><link>https://blog.js.gripe/2026/07/open-models-and-the-right-to-leave/</link><guid isPermaLink="true">https://blog.js.gripe/2026/07/open-models-and-the-right-to-leave/</guid><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate><dc:date>2026-07-17T00:00:00.000Z</dc:date><dc:creator>toewpq</dc:creator><dc:language>en</dc:language><description>Starting from competing approaches to frontier-model protection, open cooperation, and multi-model platforms, this article examines how users and developers can preserve the ability to migrate data, replace models, and l</description><category>blog</category><category>AI Governance</category><category>Open Models</category><category>Closed Models</category><category>Platform Lock-in</category><category>Portability</category><content:encoded>&lt;p&gt;Demis Hassabis has proposed creating a frontier AI standards body that would test models above a defined capability threshold before release and, when necessary, prevent high-risk models from entering the market. The proposal focuses on the most serious class of risk: preventing a model release that has not been adequately evaluated from causing irreversible harm to society. (&lt;a href=&quot;https://www.theverge.com/tech/965270/google-deepmind-demis-hassabis-global-ai-watchdog?utm_source=chatgpt.com&quot; rel=&quot;noopener noreferrer&quot;&gt;The Verge&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;When Microsoft CEO Satya Nadella shared the article, he described the goal as building a frontier ecosystem that advances both “innovation and choice” while preventing a single model drop from “breaking the world.” Here, “model drop” means the release of a new model rather than a service outage. Sam Altman called it a thoughtful proposal. Their responses suggest that leading model companies are increasingly receptive to stricter frontier evaluations, but they do not establish that those companies agree on the proposed body’s powers, funding, or control over market access. (&lt;a href=&quot;https://x.com/satyanadella/status/2077063479232795024?utm_source=chatgpt.com&quot; rel=&quot;noopener noreferrer&quot;&gt;X&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Nor should Nadella’s “choice” be understood merely as putting more models inside one cloud platform. For individual consumers and developers, real choice includes another capability: when a model raises prices, changes its rules, is retired, or is no longer trustworthy, can users take their data and workflows somewhere else?&lt;/p&gt;
&lt;h2&gt;Two Governance Approaches Ultimately Converge on the Same User&lt;/h2&gt;
&lt;p&gt;Hassabis’s proposal represents a frontier-protection approach. The closer a model’s capabilities come to high-risk areas such as cyberattacks, biological design, and autonomous action, the stronger the case for testing it in a controlled environment. Some benchmarks and attack methods cannot be fully disclosed, and release decisions cannot be left entirely to developers themselves.&lt;/p&gt;
&lt;p&gt;The open-cooperation approach represented by WAIC puts a different risk first. If high-performance models, compute, and infrastructure remain concentrated among a small number of US companies, other countries, developers, and ordinary users will be limited to buying access instead of participating meaningfully in model development and localization. The 2025 &lt;em&gt;Global AI Governance Action Plan&lt;/em&gt; released at WAIC called for cross-border open-source communities and the sharing of platforms, technical documentation, and non-sensitive resources. Discussions at WAIC in 2026 have continued to emphasize open-source models and capacity building in the Global South. (&lt;a href=&quot;https://www.fmprc.gov.cn/mfa_eng/xw/zyxw/202507/t20250729_11679232.html?utm_source=chatgpt.com&quot; rel=&quot;noopener noreferrer&quot;&gt;Ministry of Foreign Affairs&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;The two approaches are designed to prevent two different failures:&lt;/p&gt;
&lt;p&gt;One side fears that dangerous capabilities cannot be recalled once released; the other fears that AI capabilities will remain permanently sealed inside a handful of platforms.&lt;/p&gt;
&lt;p&gt;For individuals, this is not an abstract dispute between national strategies. A model’s degree of openness ultimately determines whether alternatives remain if it disappears, whether users can migrate when platform rules change, and whether the knowledge they previously gave a model must remain trapped in the original account.&lt;/p&gt;
&lt;h2&gt;Openness and Closure Are Not Synonyms for Maintenance Burden and Convenience&lt;/h2&gt;
&lt;p&gt;Discussions of open models often fall into the same false contrast: users of open models supposedly have to buy GPUs, configure an environment, and shoulder all maintenance, while closed models are portrayed as inherently stable, convenient, and suitable for ordinary people.&lt;/p&gt;
&lt;p&gt;Reality is more complicated.&lt;/p&gt;
&lt;p&gt;Multiple Qwen3 variants were released with open weights. Users can deploy them on servers through tools such as vLLM or run them on personal devices with Ollama, LM Studio, and llama.cpp. Open weights make self-deployment possible; they do not require every user to deploy locally. (&lt;a href=&quot;https://qwenlm.github.io/blog/qwen3/?utm_source=chatgpt.com&quot; rel=&quot;noopener noreferrer&quot;&gt;Qwen&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Open models can also be hosted by cloud platforms. The Microsoft Foundry model catalog includes models from OpenAI, Anthropic, Meta, DeepSeek, Hugging Face, and other providers. Users may bring their own models or use versions managed by the platform. In the latter case, the cloud provider still handles compute, scaling, and basic operations. (&lt;a href=&quot;https://learn.microsoft.com/en-us/azure/foundry/concepts/foundry-models-overview?utm_source=chatgpt.com&quot; rel=&quot;noopener noreferrer&quot;&gt;Microsoft Learn&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Whether a model is open and whether a service is hosted are therefore separate questions:&lt;/p&gt;
&lt;p&gt;An open model can be maintained by its user or by a platform; a closed model can be offered by its developer or accessed through several cloud providers.&lt;/p&gt;
&lt;p&gt;The real difference appears when the hosted service ends: can the user still obtain the model and continue running it another way?&lt;/p&gt;
&lt;h2&gt;Open Models Offer More Exit Routes, but Those Routes Require Preparation&lt;/h2&gt;
&lt;p&gt;For individual users, the most direct value of an open model is preserving a way to run it outside a platform.&lt;/p&gt;
&lt;p&gt;Users can process confidential material locally, retain a verified model version, or fall back to a less capable but continuously available local model for basic tasks when a commercial service is unavailable. The point is not necessarily to pursue the strongest performance. It is to prevent all work from stopping when one account fails.&lt;/p&gt;
&lt;p&gt;Open weights, however, do not automatically create independence.&lt;/p&gt;
&lt;p&gt;A user who always accesses an open model through the same cloud platform, without saving data, prompts, or model versions, can still become dependent on that platform. If a developer relies on proprietary file storage, agent systems, and vector databases, downloading the underlying model may not make the application easy to move.&lt;/p&gt;
&lt;p&gt;Open weights are not necessarily the same as fully open source. A model may publish its parameters without disclosing its training data, data-processing pipeline, or complete training code. Users can run it without fully understanding how it was created, and weights alone cannot resolve every question about data and safety.&lt;/p&gt;
&lt;p&gt;Open models therefore provide more exit routes, not a migration plan that has already been completed.&lt;/p&gt;
&lt;h2&gt;Closed Models Carry More Service Responsibility, but Users Still Do Not Own Them&lt;/h2&gt;
&lt;p&gt;The advantages of closed platforms are real as well.&lt;/p&gt;
&lt;p&gt;Individual users can access file analysis, web search, voice, memory, and cross-device synchronization without understanding inference frameworks or hardware requirements. Developers can leave model training, inference clusters, capacity management, and security updates to the provider.&lt;/p&gt;
&lt;p&gt;Closed models are not always tied to a single cloud. Some Anthropic models are available through Anthropic’s own API as well as Amazon Bedrock, Google Cloud, and Microsoft Foundry. That can reduce an organization’s dependence on any one cloud infrastructure provider. (&lt;a href=&quot;https://docs.anthropic.com/en/release-notes/api?utm_source=chatgpt.com&quot; rel=&quot;noopener noreferrer&quot;&gt;Claude Platform Docs&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Multi-cloud availability does not, however, change model ownership.&lt;/p&gt;
&lt;p&gt;Anthropic defines active, deprecated, and retired stages for its models. Once a model is retired, applications that depend on it must migrate or their requests will stop working. Retirement dates on partner platforms may also differ from those of Anthropic’s own API. (&lt;a href=&quot;https://docs.anthropic.com/en/docs/about-claude/model-deprecations?utm_source=chatgpt.com&quot; rel=&quot;noopener noreferrer&quot;&gt;Claude Platform Docs&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Developers may therefore be able to change cloud providers without being able to preserve the model. As long as the weights remain closed, the model company retains control over version changes, service termination, and final retirement.&lt;/p&gt;
&lt;p&gt;Data export in consumer products solves only part of the problem. ChatGPT lets users export their chat history and account data, allowing them to preserve their written records. (&lt;a href=&quot;https://help.openai.com/en/articles/7260999-exporting-your-chatgpt-history-and-data?utm_source=chatgpt.com&quot; rel=&quot;noopener noreferrer&quot;&gt;OpenAI Help Center&lt;/a&gt;) But an exported conversation cannot reproduce the original model’s behavior, memory system, file tools, and product environment on another platform.&lt;/p&gt;
&lt;p&gt;What users delegate to a closed service is therefore not only maintenance, but also continuity of access.&lt;/p&gt;
&lt;h2&gt;A Large Model Catalog Does Not Mean Freedom from the Platform&lt;/h2&gt;
&lt;p&gt;Nadella’s emphasis on “innovation and choice” aligns with Microsoft’s strategy of developing a multi-model platform. Letting developers compare closed models, open models, and services from different vendors within one cloud is genuinely more flexible than restricting them to a single model.&lt;/p&gt;
&lt;p&gt;But two different layers of concentration remain.&lt;/p&gt;
&lt;p&gt;The first is model concentration: an application can use only the models of one laboratory.&lt;/p&gt;
&lt;p&gt;The second is platform concentration: an application can choose among many models, but its identity, data, logs, deployment, and billing all remain inside one cloud ecosystem.&lt;/p&gt;
&lt;p&gt;Moving from the first kind of concentration to the second can reduce the disruption caused by one model’s retirement, but it does not eliminate platform lock-in.&lt;/p&gt;
&lt;p&gt;Real portability cannot be measured by the size of a model catalog alone. It depends on four things:&lt;/p&gt;
&lt;p&gt;Whether the model weights or an alternative model can be obtained;&lt;/p&gt;
&lt;p&gt;whether user data and business records can be exported;&lt;/p&gt;
&lt;p&gt;whether prompts, tools, and evaluation methods can be reused elsewhere;&lt;/p&gt;
&lt;p&gt;and whether an application can change suppliers without rebuilding all of its infrastructure.&lt;/p&gt;
&lt;p&gt;A platform can offer a thousand models, but if users cannot take their data and business logic with them, choice still exists only inside that platform.&lt;/p&gt;
&lt;h2&gt;The Reverse Information Paradox: The Better a Model Knows You, the More You Must Re-explain When You Leave&lt;/h2&gt;
&lt;p&gt;Under the “reverse information paradox,” users must continuously provide background material, writing preferences, project rules, and standards of judgment to get better model output.&lt;/p&gt;
&lt;p&gt;The more a model knows about a user, the smoother the service often feels. But the more information accumulates inside a platform, the more the user must reorganize and explain when moving to another model.&lt;/p&gt;
&lt;p&gt;Individuals may gradually leave article drafts, research, long-term plans, and important judgments in chat histories. Developers may encode system prompts, tool definitions, and business decisions in forms tailored to a specific model.&lt;/p&gt;
&lt;p&gt;At that point, model dependence is no longer merely technical. It becomes information dependence. The platform supplies computing power while gradually becoming the gateway through which users organize personal knowledge and understand the world.&lt;/p&gt;
&lt;p&gt;“Do not rely on one model” does not mean asking three platforms every question. It is entirely reasonable to use one convenient model for routine editing, summaries, and low-risk creative work.&lt;/p&gt;
&lt;p&gt;A second path matters most for tasks with serious consequences: medical, legal, and financial matters; public events and historical disputes; employment decisions; and critical technical configurations. In those cases, users should at least return to the original material or compare another model and sources from a different region.&lt;/p&gt;
&lt;p&gt;The same model should not be allowed to supply the facts, interpret the controversy, answer every objection, and then prove that its original answer was correct.&lt;/p&gt;
&lt;h2&gt;Exit Capability Can Be Implemented in Concrete Ways&lt;/h2&gt;
&lt;p&gt;Individuals do not need to build complex local-model clusters, but important information should not exist only inside a chat platform.&lt;/p&gt;
&lt;p&gt;Long-term project context, writing rules, and frequently used prompts can be stored as plain text or Markdown. Important conclusions should be saved alongside their original sources, and sensitive data should be limited to the minimum needed for the task. Users can also maintain a different platform or a local open model as a backup entry point.&lt;/p&gt;
&lt;p&gt;Developers likewise do not need to integrate every model at once. They need to make replaceability part of the architecture.&lt;/p&gt;
&lt;p&gt;User files and business data should remain in storage the developer controls. System prompts, tool definitions, and test cases should be versioned. Differences between provider APIs should be isolated in adapter layers. Every model upgrade or switch should be retested against the application’s own evaluation set rather than judged solely by public leaderboards.&lt;/p&gt;
&lt;p&gt;An open model does not need to carry the entire production workload. It can serve only privacy-sensitive tasks, local testing, or continuity during an outage. A closed model can remain the primary service as long as the application has not locked all its data and workflows inside the supplier.&lt;/p&gt;
&lt;h2&gt;Real Choice Means Retaining the Ability to Leave&lt;/h2&gt;
&lt;p&gt;Hassabis worries that one dangerous model release could cause irreversible harm to the world. Nadella emphasizes a frontier ecosystem that supports innovation and choice. The WAIC approach adds that AI capabilities should not remain under the long-term control of a small number of countries and closed platforms.&lt;/p&gt;
&lt;p&gt;These positions are not necessarily incompatible.&lt;/p&gt;
&lt;p&gt;Frontier models can undergo strict pre-release testing. Non-sensitive safety tools, evaluation methods, and foundation models should remain open. Individuals need data export and migration capabilities. Developers need multi-provider and self-hosting paths. Regulators must not use safety as a reason to expand technical review without limit into market exclusion and identity-based restrictions.&lt;/p&gt;
&lt;p&gt;A healthy AI ecosystem does not require everyone to reject closed models, nor does it require every model to publish its weights immediately.&lt;/p&gt;
&lt;p&gt;It should let users enjoy the convenience of hosted services without losing the right to take their data. It should let developers rely on the best-performing commercial models while retaining the technical conditions needed to replace them. It should let governments restrict genuinely dangerous capabilities while requiring the grounds, duration, and review process for those restrictions to remain transparent.&lt;/p&gt;
&lt;p&gt;The most important distinction between open and closed systems ultimately lies not in slogans, but in how much choice remains after a model or platform changes.&lt;/p&gt;
&lt;p&gt;Real choice is not the number of models a user can click on a page. It is whether individuals and developers can still take their data and continue their work elsewhere when one of those models changes, shuts down, or can no longer be trusted.&lt;/p&gt;
</content:encoded></item><item><title>You Are Not Just Using AI. You Are Teaching It</title><link>https://blog.js.gripe/2026/07/you-are-also-teaching-ai/</link><guid isPermaLink="true">https://blog.js.gripe/2026/07/you-are-also-teaching-ai/</guid><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><dc:date>2026-07-16T00:00:00.000Z</dc:date><dc:creator>toewpq</dc:creator><dc:language>en</dc:language><description>A personal reading of the reverse information paradox: to make a model useful, users pay not only with money but also with context, corrections, preferences, and judgment.</description><category>blog</category><category>Artificial Intelligence</category><category>Reverse Information Paradox</category><category>AI Privacy</category><category>Data Control</category><category>AI Usage Traces</category><content:encoded>&lt;h2&gt;Rethinking the “Reverse Information Paradox” from an Individual Perspective&lt;/h2&gt;
&lt;p&gt;Satya Nadella recently proposed a useful concept: the &lt;strong&gt;reverse information paradox&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The traditional information paradox comes from economist Kenneth Arrow. Before seeing a piece of information, a buyer cannot easily judge what it is worth. Yet once a seller reveals the information to prove its value, the buyer already possesses it. To sell knowledge, the seller must risk giving that knowledge away.&lt;/p&gt;
&lt;p&gt;Artificial intelligence reverses this problem.&lt;/p&gt;
&lt;p&gt;In the AI era, buyers may have to keep giving their own knowledge to a vendor simply to use the product they purchased.&lt;/p&gt;
&lt;p&gt;Users first pay a subscription fee, API bill, or compute cost. Then, to make the model genuinely useful, they must explain the project background, provide existing material, describe workflows and preferences, define standards of judgment, and recount what has already been tried.&lt;/p&gt;
&lt;p&gt;The more general the model, the more context the user must supply. The more the user wants the model to understand them, the more they must explain what they are doing, what they value, and what a satisfactory answer looks like.&lt;/p&gt;
&lt;p&gt;In other words, users pay for intelligence twice:&lt;/p&gt;
&lt;p&gt;First with money.&lt;/p&gt;
&lt;p&gt;Then with their own knowledge.&lt;/p&gt;
&lt;p&gt;That is the reverse information paradox.&lt;/p&gt;
&lt;p&gt;Nadella mainly discusses the issue from an enterprise perspective. When a company uses an external model, it may gradually expose internal data, workflows, evaluation criteria, and organizational experience.&lt;/p&gt;
&lt;p&gt;But the same structure also affects individuals.&lt;/p&gt;
&lt;p&gt;Over long-term model use, individuals leave behind knowledge that has value. Compared with corporate patents, code, or customer databases, this knowledge is more fragmented and therefore less likely to be recognized as an asset.&lt;/p&gt;
&lt;h2&gt;1. What Leaks Is More Than Chat History&lt;/h2&gt;
&lt;p&gt;When people discuss AI privacy, the first question is usually:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Will my conversations be used to train the model?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That question matters, but it is not enough.&lt;/p&gt;
&lt;p&gt;What users leave behind includes not only the text they send, but the entire pattern of use:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;prompts they entered;&lt;/li&gt;
&lt;li&gt;files and images they uploaded;&lt;/li&gt;
&lt;li&gt;tools they invoked;&lt;/li&gt;
&lt;li&gt;answers they accepted or abandoned;&lt;/li&gt;
&lt;li&gt;the number of times they requested another attempt;&lt;/li&gt;
&lt;li&gt;wording they considered too formal;&lt;/li&gt;
&lt;li&gt;conclusions they rejected for lacking evidence;&lt;/li&gt;
&lt;li&gt;and the standards they ultimately used to judge whether the result met their needs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The original argument calls this surrounding information “exhaust.” That term can sound like worthless waste, but the point is exactly the opposite: information produced as a by-product of use may have substantial learning value.&lt;/p&gt;
&lt;p&gt;From an individual perspective, a better phrase is:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The traces users leave while working with a model.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;These &lt;strong&gt;AI usage traces&lt;/strong&gt; include prompts, files, and conversations, but also revisions, selections, rejections, feedback, and corrections.&lt;/p&gt;
&lt;p&gt;Any single trace may seem trivial. Accumulated over time, however, they can reveal what a person is working on, what they know, what they find difficult, how they reason, how sensitive they are to cost, which risks they tolerate, which sources they trust, what style they prefer, and what they consider accurate or genuinely useful.&lt;/p&gt;
&lt;p&gt;An individual’s most valuable knowledge is often not a single answer. It is the judgment behind the answer.&lt;/p&gt;
&lt;h2&gt;2. Corrections Carry More Learning Value Than Ordinary Questions&lt;/h2&gt;
&lt;p&gt;A question tells a model what the user wants to know. A correction reveals much more:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This answer is wrong.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;This example is too idealized.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;You have no evidence. Do not guess.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Do not simply agree with my position.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;The solution works, but it costs too much.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;I need an operational version, not a theoretical explanation.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Such feedback contains three layers of information:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;what was wrong with the model’s original answer;&lt;/li&gt;
&lt;li&gt;what result the user actually wanted;&lt;/li&gt;
&lt;li&gt;what standard the user applies when evaluating the result.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Ordinary text can teach a model what people have said. Corrections, rankings, and evaluations come closer to teaching it what counts as a better result.&lt;/p&gt;
&lt;p&gt;This does not mean that every sentence saying “this is wrong” automatically enters the next foundation-model training run. Model training, product improvement, safety review, personalization, memory, and explicit feedback are different data-processing activities, and platforms treat them differently.&lt;/p&gt;
&lt;p&gt;Still, the broader structure remains: while consuming intelligence, users continuously produce new learning signals.&lt;/p&gt;
&lt;p&gt;The question is:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Who controls what is learned from them?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;3. Individuals Face More Than a Single Training Switch&lt;/h2&gt;
&lt;p&gt;Platforms differ in their defaults, opt-out mechanisms, retention periods, and feedback rules.&lt;/p&gt;
&lt;p&gt;For OpenAI consumer services, including ChatGPT and Codex, content may be used to improve models unless the user changes the relevant data controls or submits an opt-out request. New conversations stop being used for training after an opt-out. However, conversations associated with explicit thumbs-up or thumbs-down feedback may still be used. Temporary Chat does not enter history, create memories, or train models, while full Codex environments have separate controls that should not be assumed to follow every ChatGPT setting.&lt;/p&gt;
&lt;p&gt;Claude’s consumer products use a different structure. Users can choose whether Anthropic may use chat and coding sessions to improve models, and incognito chats are excluded from model improvement. Explicit feedback can still cause the associated conversation, content, style, and preferences to be retained for an extended period and used in research or training.&lt;/p&gt;
&lt;p&gt;When Gemini’s Keep Activity setting is enabled, chats, files, videos, screen content, product use, and some location information may be used to improve services, including generative AI models. Turning it off generally stops future chats from being used for model training, although short-term retention may continue for service delivery, feedback processing, and safety. Human-reviewed feedback and associated conversations can follow separate retention rules.&lt;/p&gt;
&lt;p&gt;Perplexity consumer accounts have historically enabled AI data retention by default for several tiers. Users can opt out for future collection, but the setting does not necessarily withdraw training data already collected. Data may still be processed for service operation, legal compliance, and general product improvement.&lt;/p&gt;
&lt;p&gt;These differences show that “training or no training” is not one binary choice. Users encounter several distinct purposes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;foundation-model training;&lt;/li&gt;
&lt;li&gt;product-quality analysis;&lt;/li&gt;
&lt;li&gt;safety and abuse detection;&lt;/li&gt;
&lt;li&gt;human review;&lt;/li&gt;
&lt;li&gt;long-term memory and personalization;&lt;/li&gt;
&lt;li&gt;explicit user feedback;&lt;/li&gt;
&lt;li&gt;tool and agent execution logs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Disabling one purpose does not usually disable all the others.&lt;/p&gt;
&lt;h2&gt;4. Opting Out Usually Does Not Make a Model Forget&lt;/h2&gt;
&lt;p&gt;Many opt-out controls mean:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;From now on, some newly generated data will no longer be used for a particular kind of training.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;They usually do not mean:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Find and delete everything that previously entered a training process.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And they rarely mean:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Make an already trained model forget statistical patterns it has learned.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;At least four separate actions must therefore be distinguished:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;stopping future data collection;&lt;/li&gt;
&lt;li&gt;stopping future training use;&lt;/li&gt;
&lt;li&gt;deleting stored raw conversations;&lt;/li&gt;
&lt;li&gt;reversing learning already incorporated into a model.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The first two may be available as product settings. The third depends on deletion and retention policies. The fourth remains technically difficult in large-scale machine-learning systems and is seldom available through ordinary account controls.&lt;/p&gt;
&lt;p&gt;Training opt-outs are necessary protections, but they are not a complete answer.&lt;/p&gt;
&lt;h2&gt;5. The Deeper Conflict Is an Asymmetry in the Right to Learn&lt;/h2&gt;
&lt;p&gt;The reverse information paradox exposes a double standard around learning.&lt;/p&gt;
&lt;p&gt;AI companies need public material, licensed material, synthetic data, and human feedback to train models. Some argue that training on publicly available copyrighted works can qualify as fair use. But fair use is not an uncontested universal permission. The US Copyright Office has emphasized that the answer depends on the works used, how they were acquired, the purpose of training, and whether outputs compete with the originals. The boundaries remain under litigation and policy debate.&lt;/p&gt;
&lt;p&gt;At the same time, providers restrict customers from using model outputs to train competing models.&lt;/p&gt;
&lt;p&gt;OpenAI’s consumer terms state that users own outputs to the extent permitted by law, while also prohibiting use of those outputs to develop competing models. They also allow submitted feedback to be used without additional compensation.&lt;/p&gt;
&lt;p&gt;Anthropic has said that model distillation is a legitimate and widely used technique, including for producing smaller and cheaper in-house models. Yet it classifies large-scale extraction of Claude’s capabilities through fraudulent accounts or proxy services as a prohibited distillation attack.&lt;/p&gt;
&lt;p&gt;Important distinctions remain. Preventing fraud, mass automated scraping, regional evasion, or direct copying of a model’s core capabilities can be justified. Paying a subscription does not grant a right to reproduce the service’s underlying technology.&lt;/p&gt;
&lt;p&gt;But the asymmetry remains:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Platforms decide which user interactions can become their learning material, while also deciding how far users may turn model outputs into learning capabilities of their own.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The issue is not that every customer should have an unlimited right to scrape commercial models. It is this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Why are the direction, purpose, and limits of learning determined mainly by whoever owns the learning infrastructure?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A provider may improve its models, evaluations, and products using interaction patterns from millions of users. An individual often cannot see what their corrections changed, nor export the preferences, evaluation criteria, and working methods built up across years of use.&lt;/p&gt;
&lt;p&gt;That is the deepest layer of the reverse information paradox.&lt;/p&gt;
&lt;h2&gt;6. Individuals Give Away a System of Judgment, Not a Single File&lt;/h2&gt;
&lt;p&gt;Enterprises can list important knowledge as patents, processes, internal code, customer databases, supply-chain information, and private evaluation sets.&lt;/p&gt;
&lt;p&gt;Personal knowledge is less orderly. It may be scattered across hundreds of conversations:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a résumé revision;&lt;/li&gt;
&lt;li&gt;a correction to a circuit diagram;&lt;/li&gt;
&lt;li&gt;a challenge to a news source;&lt;/li&gt;
&lt;li&gt;a deployment tradeoff;&lt;/li&gt;
&lt;li&gt;a change in an article’s tone;&lt;/li&gt;
&lt;li&gt;a decision balancing cost and performance.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Together, these fragments form a person’s way of judging:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;what evidence is convincing;&lt;/li&gt;
&lt;li&gt;which risks are unacceptable;&lt;/li&gt;
&lt;li&gt;which costs must come first;&lt;/li&gt;
&lt;li&gt;which phrases do not sound like them;&lt;/li&gt;
&lt;li&gt;which apparently professional answers fail to solve the real problem.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A model may contain vast general knowledge. Only the user knows their environment, prior attempts, available resources, and willingness to bear consequences.&lt;/p&gt;
&lt;p&gt;That is precisely the knowledge a model repeatedly asks for in order to become useful.&lt;/p&gt;
&lt;h2&gt;7. The Single Point Where This Meets AI Dependence&lt;/h2&gt;
&lt;p&gt;In an earlier article, “Do Not Let One Model Explain the Entire World,” I discussed hallucination, built-in filtering assumptions, and sycophantic answers. When someone delegates information selection and judgment to one model for long enough, that model can evolve from a tool into their interpreter of the world.&lt;/p&gt;
&lt;p&gt;The reverse information paradox moves in the other direction. To make a model understand them, users continually provide background, preferences, revisions, and standards of judgment.&lt;/p&gt;
&lt;p&gt;The two dynamics create a loop:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The user supplies more context, so the model responds more personally.
The response feels more personal, so the user trusts the model more.
The user trusts the model more, so they provide still more context and judgment.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;One principle is essential:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A model knowing how to speak to you does not mean it possesses more complete facts.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Personalization can improve the experience. It can also make mistakes, flattery, and selectively presented information easier to accept. “It understands me” is not the same as “its judgment is more accurate.”&lt;/p&gt;
&lt;p&gt;Do not let one model explain the whole world, and do not surrender your whole self merely to be understood by a model.&lt;/p&gt;
&lt;h2&gt;8. How Individuals Can Build Their Own Trust Boundary&lt;/h2&gt;
&lt;p&gt;Enterprises can deploy private models, evaluation systems, and isolated learning environments. Individuals usually lack those resources, but they can still build a smaller trust boundary.&lt;/p&gt;
&lt;h3&gt;1. Control: Treat Training, Memory, History, and Feedback Separately&lt;/h3&gt;
&lt;p&gt;Do not assume that turning off one training switch ends all processing.&lt;/p&gt;
&lt;p&gt;Check separately whether new conversations may be used for training, long-term memory is enabled, chat history has a retention period, uploaded files remain stored, feedback submits the whole surrounding conversation, voice or screen content receives different treatment, and coding or agent environments have independent controls.&lt;/p&gt;
&lt;p&gt;For conversations containing sensitive projects, other people’s private information, or unpublished material, disabling general training is not a reason to stop being careful.&lt;/p&gt;
&lt;p&gt;In particular:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Do not submit an entire sensitive conversation through a feedback button merely to tell the platform that one answer was poor.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;2. Capability: Keep Important Knowledge Under Your Own Control&lt;/h3&gt;
&lt;p&gt;Do not allow one platform’s conversation history to become the only knowledge base for a project.&lt;/p&gt;
&lt;p&gt;Source files, notes, prompt templates, correction logs, evaluation standards, and final decisions should live somewhere the user can control, back up, and migrate.&lt;/p&gt;
&lt;p&gt;Ask three questions:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If I lost access to the account tomorrow, would I know where the project stands?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;If every conversation disappeared, would I still have the key material and reasons behind major decisions?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;If I had to change models, could I reconstruct the required context?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If all three answers are no, the lock-in covers not only chat history but the entire working process.&lt;/p&gt;
&lt;h3&gt;3. Choice: Preserve Portability Instead of Chasing Permanent Rankings&lt;/h3&gt;
&lt;p&gt;Using more than one model can reduce dependence on a single service that may shut down, raise prices, or change policy. But multiple subscriptions are not a complete defense.&lt;/p&gt;
&lt;p&gt;Giving the same full archive, personal background, and correction history to several providers may expand exposure rather than control.&lt;/p&gt;
&lt;p&gt;Keep these elements independent of any model:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;project context;&lt;/li&gt;
&lt;li&gt;reusable prompt templates;&lt;/li&gt;
&lt;li&gt;evaluation criteria;&lt;/li&gt;
&lt;li&gt;file formats;&lt;/li&gt;
&lt;li&gt;automated workflows;&lt;/li&gt;
&lt;li&gt;knowledge bases;&lt;/li&gt;
&lt;li&gt;test questions.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Models, prices, and limits will change. The goal is not a permanent ranking. It is to ensure that your working method survives when a model is replaced.&lt;/p&gt;
&lt;h3&gt;4. Cost: Cheap Proxy Services Can Repay Savings with Risk&lt;/h3&gt;
&lt;p&gt;Price is more than a subscription or per-token rate. It also includes the uncertainty accepted in exchange for a lower bill.&lt;/p&gt;
&lt;p&gt;Third-party gateways may solve payment, regional-access, or model-switching problems. But users should distinguish self-controlled gateways, transparent aggregators, and gray-market relays whose operators are unclear or whose prices fall implausibly below cost.&lt;/p&gt;
&lt;p&gt;An opaque intermediary may technically see prompts, responses, tool calls, and execution logs. It may inject instructions, alter outputs, or route requests to a different model.&lt;/p&gt;
&lt;p&gt;Research auditing “shadow APIs” and paid or free model routers has found unstable capabilities, inconsistent safety behavior, model fingerprints that did not match advertised products, and—in some agent environments—malicious tool-call injection or attempts to access decoy credentials and assets.&lt;/p&gt;
&lt;p&gt;This does not prove that every relay sells conversations or behaves maliciously. It does show that when the operator, upstream provider, logging policy, and technical behavior cannot be verified, the user lacks a sound basis for assuming safety.&lt;/p&gt;
&lt;p&gt;For unpublished code, identity information, commercial documents, credentials, and long-lived project context, unverifiable channels should be excluded.&lt;/p&gt;
&lt;p&gt;Official APIs and reputable aggregators can also log requests, review content for safety, or apply filters. Their advantage is not that nothing is ever recorded. It is that responsibility, data use, retention periods, model provenance, and appeal channels are usually clearer.&lt;/p&gt;
&lt;p&gt;The real cost of a service is:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The bill, plus knowledge-exposure risk, output-distortion risk, interruption risk, and the cost of rebuilding context when leaving.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In the AI era, “cheap” is a question of trust architecture as well as price.&lt;/p&gt;
&lt;h3&gt;5. Compounding: Make Corrections Your Asset First&lt;/h3&gt;
&lt;p&gt;When a model makes an important mistake, do not correct it only once inside a chat window.&lt;/p&gt;
&lt;p&gt;Turn important corrections into:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;prompt rules;&lt;/li&gt;
&lt;li&gt;personal checklists;&lt;/li&gt;
&lt;li&gt;project conventions;&lt;/li&gt;
&lt;li&gt;private evaluation questions;&lt;/li&gt;
&lt;li&gt;recurring-error records;&lt;/li&gt;
&lt;li&gt;repeatable tests.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Data claims must cite original sources.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Do not present model speculation as an event that has already happened.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Technical proposals must state their environment and cost.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Do not provide only supporting arguments because the user has already taken a position.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Rules that exist only inside one conversation depend on the platform’s history and memory. Rules stored under the user’s control become portable learning assets.&lt;/p&gt;
&lt;p&gt;The model fails; the user extracts a rule; the rule remains with the user; the rule works again with whichever model comes next.&lt;/p&gt;
&lt;p&gt;That is the individual’s own learning loop.&lt;/p&gt;
&lt;h2&gt;9. We Need Control over Learning, Not Only Privacy&lt;/h2&gt;
&lt;p&gt;Traditional data protection asks:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Who may collect, store, and use my information?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Artificial intelligence adds another question:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Who may continuously learn from my prompts, corrections, preferences, and behavior?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The “right to control learning” described here is not yet a separate legal right broadly recognized across jurisdictions. It is a proposal for a digital right.&lt;/p&gt;
&lt;p&gt;At minimum, it should mean:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;users know which interactions may be used for training;&lt;/li&gt;
&lt;li&gt;chats, files, feedback, and memory can be controlled separately;&lt;/li&gt;
&lt;li&gt;users know whether an opt-out applies only to future data;&lt;/li&gt;
&lt;li&gt;prompts, corrections, and evaluation rules can be exported;&lt;/li&gt;
&lt;li&gt;personalization can be moved to other tools;&lt;/li&gt;
&lt;li&gt;platforms do not create artificial switching costs through learning that cannot be exported.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This does not require model companies to disclose every internal technique, nor does it grant individuals an unlimited right to scrape commercial models.&lt;/p&gt;
&lt;p&gt;It asks for a more reciprocal principle:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;When a user’s knowledge, corrections, and judgment help create new intelligence, the user should not lose all rights to understand, choose, and transfer the resulting learning process.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Keep control of what you teach the model&lt;/h2&gt;
&lt;p&gt;Using AI involves more than submitting a file. Corrections, preferences, and repeated decisions can also reveal how a person works. Platforms control how those signals are retained, used, and carried forward.&lt;/p&gt;
&lt;p&gt;The practical response is to keep important knowledge and corrections in your own files, review training and memory controls separately, and preserve a way to move your work. Better answers should leave you with more useful knowledge of your own.&lt;/p&gt;
</content:encoded></item><item><title>Using AWS CloudFront Without Exposing the Origin&apos;s Public IP</title><link>https://blog.js.gripe/2026/06/cloudflare-tunnel-cloudfront-origin/</link><guid isPermaLink="true">https://blog.js.gripe/2026/06/cloudflare-tunnel-cloudfront-origin/</guid><pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate><dc:date>2026-06-23T00:00:00.000Z</dc:date><dc:creator>toewpq</dc:creator><dc:language>en</dc:language><description>A practical migration write-up on using Cloudflare Tunnel as a private origin path for AWS CloudFront, covering the failed Cloudflare SaaS attempt, a unified origin, CloudFront Functions, and OpenResty virtual-host routi</description><category>blog</category><category>Cloudflare Tunnel</category><category>CloudFront</category><category>OpenResty</category><category>AWS</category><category>Origin</category><content:encoded>&lt;p&gt;This migration did not start with a decision to use CloudFront plus Cloudflare Tunnel.&lt;/p&gt;
&lt;p&gt;The original problem was concrete: under &lt;code&gt;js.gripe&lt;/code&gt;, there were already several OpenResty virtual hosts, including &lt;code&gt;blog.js.gripe&lt;/code&gt;, &lt;code&gt;www.js.gripe&lt;/code&gt;, and &lt;code&gt;dquery.js.gripe&lt;/code&gt;. They had different static assets, dynamic endpoints, cache policies, and certificate behavior. The old Cloudflare proxy setup kept the sites running, but when I started looking at CloudFront&apos;s flat-rate plans, AWS became worth reconsidering.&lt;/p&gt;
&lt;p&gt;The real reason I wanted to try CloudFront again was connectivity for users in mainland China. Cloudflare worked, but the access experience was not always stable. If CloudFront could perform better for that audience, it was worth putting it in front and testing.&lt;/p&gt;
&lt;p&gt;The part that had made me hesitate before was billing. Under pay-as-you-go, requests, traffic, WAF, logs, and edge compute are all separate line items. A small site may be cheap most of the time, but crawlers, DDoS traffic, lower cache hit rates, or a sudden increase in dynamic requests can make the bill harder to reason about. After seeing CloudFront flat-rate pricing plans, the cost of trying it dropped: CDN, WAF, DDoS protection, DNS, TLS certificates, logs, and Serverless Edge Compute are bundled into a monthly plan with no overage charges. That made lightweight CloudFront Functions for host routing, cache separation, and cookie cleanup feel less like something I had to meter on every request.&lt;/p&gt;
&lt;p&gt;The part that took the long way around was origin access: how to let CloudFront reach the origin without exposing the origin IP.&lt;/p&gt;
&lt;p&gt;One small complaint belongs here: even now, a CloudFront origin still cannot simply be an IP address. It has to be a domain name. In an ordinary public-origin setup, that is merely annoying. Under the goal of not exposing the origin IP, it becomes an architectural constraint: I first needed an origin hostname that would not leak the real server address, and then had to bring that hostname back to the machine through a Tunnel. The later &lt;code&gt;aws-origin.js.gripe&lt;/code&gt;, per-host intermediate origins, and unified-origin design all grew out of that constraint.&lt;/p&gt;
&lt;p&gt;Most of the debugging and hands-on work in this migration was delegated to Codex: inspecting AWS and Cloudflare configuration, editing OpenResty, wiring the CloudFront Function, dealing with cache issues around the Twikoo transition, and finally updating the deploy script so it purges both Cloudflare and CloudFront. My role was mostly to verify the final behavior and report anything that still looked wrong. After this round, I have to admit it: Codex has gotten better.&lt;/p&gt;
&lt;h2&gt;First Attempt: Cloudflare SaaS&lt;/h2&gt;
&lt;p&gt;My first instinct was to try Cloudflare SaaS / Custom Hostnames. It looks like a natural fit for &quot;one service behind many business domains&quot;: point customer-facing hostnames at a unified entry point, let Cloudflare handle certificates and proxying, and keep the backend focused on responses.&lt;/p&gt;
&lt;p&gt;The test path looked roughly like this:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;blog.js.gripe
  -&amp;gt; Cloudflare DNS switched to the CloudFront CNAME from AWS
  -&amp;gt; CloudFront origin: aws.js.gripe
  -&amp;gt; Cloudflare SaaS / Custom Hostname
  -&amp;gt; cf-cdn.js.gripe
  -&amp;gt; Cloudflare-proxied origin
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In that setup, &lt;code&gt;aws.js.gripe&lt;/code&gt; was not proxied by Cloudflare and was used as the CloudFront origin. &lt;code&gt;cf-cdn.js.gripe&lt;/code&gt; was proxied and acted as the Cloudflare SaaS origin.&lt;/p&gt;
&lt;p&gt;The expectation was that CloudFront would only see &lt;code&gt;aws.js.gripe&lt;/code&gt;, while &lt;code&gt;aws.js.gripe&lt;/code&gt; would still be wrapped by Cloudflare&apos;s proxy layer. In testing, however, &lt;code&gt;aws.js.gripe&lt;/code&gt; resolved directly to the origin IP behind &lt;code&gt;cf-cdn.js.gripe&lt;/code&gt;. In other words, the &quot;hidden origin entry point&quot; I expected from the SaaS binding did not hold. The AWS origin side could still end up with the real origin address.&lt;/p&gt;
&lt;p&gt;This DNS plus SaaS composition did not create the boundary I needed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;blog.js.gripe&lt;/code&gt; should be the user-facing CloudFront entry.&lt;/li&gt;
&lt;li&gt;The CloudFront origin should not directly see the origin IP.&lt;/li&gt;
&lt;li&gt;Cloudflare should only appear in the origin-protection segment.&lt;/li&gt;
&lt;li&gt;OpenResty should still route by the real business &lt;code&gt;Host&lt;/code&gt; into the right vhost.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cloudflare SaaS solves a different kind of platform-hosting problem. For this migration, it did not satisfy all four boundaries at the same time, so I put that path aside.&lt;/p&gt;
&lt;h2&gt;The Reminder From memecdn&lt;/h2&gt;
&lt;p&gt;Later, I remembered an earlier project: &lt;a href=&quot;https://github.com/jsw-teams/myzerossl&quot; rel=&quot;noopener noreferrer&quot;&gt;jsw-teams/myzerossl&lt;/a&gt;. That repository eventually evolved into memecdn, a low-trust edge CDN and Keyless SSL proxy.&lt;/p&gt;
&lt;p&gt;The idea was not to make every public edge node trusted. It was to accept that edge nodes are low-trust:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Edge VPS nodes only keep the public certificate chain, not the private key.&lt;/li&gt;
&lt;li&gt;TLS handshake signing is delegated to a trusted signer.&lt;/li&gt;
&lt;li&gt;A new edge must register, be approved, receive a token, and then connect to the signer.&lt;/li&gt;
&lt;li&gt;Cache is disposable; losing it after a restart does not affect core security.&lt;/li&gt;
&lt;li&gt;The local setup wizard only listens on &lt;code&gt;127.0.0.1&lt;/code&gt;, and initial setup is opened from a workstation through an SSH tunnel.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The lesson for this migration was that a public entry path does not have to hold core secrets, and it does not have to know the real origin. A low-trust path should have a narrow role, while business routing and sensitive capabilities stay inside the trusted boundary.&lt;/p&gt;
&lt;p&gt;In this design, Cloudflare Tunnel plays a similar limited role:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It is not the business entry point.&lt;/li&gt;
&lt;li&gt;It does not perform business routing.&lt;/li&gt;
&lt;li&gt;It does not store application state.&lt;/li&gt;
&lt;li&gt;It only carries CloudFront origin requests back to a local origin port.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;CloudFront handles the user-facing edge and distribution. Cloudflare Tunnel handles the private origin path. OpenResty restores the virtual host.&lt;/p&gt;
&lt;h2&gt;Final Request Path&lt;/h2&gt;
&lt;p&gt;The final path became:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;visitor
  -&amp;gt; blog.js.gripe / www.js.gripe / dquery.js.gripe
  -&amp;gt; d2085p9k6hhzsj.cloudfront.net
  -&amp;gt; CloudFront origin: aws-origin.js.gripe
  -&amp;gt; Cloudflare Tunnel
  -&amp;gt; 127.0.0.1:10480
  -&amp;gt; OpenResty origin proxy
  -&amp;gt; https://127.0.0.1:443 with restored Host
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;DNS is split by role:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;aws-origin.js.gripe
  -&amp;gt; d65ffd17-f5a0-4a88-850b-009f548637f9.cfargotunnel.com
  -&amp;gt; proxied: true
  -&amp;gt; only used by CloudFront as origin

blog.js.gripe
  -&amp;gt; d2085p9k6hhzsj.cloudfront.net
  -&amp;gt; proxied: false
  -&amp;gt; user traffic

www.js.gripe
  -&amp;gt; d2085p9k6hhzsj.cloudfront.net
  -&amp;gt; proxied: false
  -&amp;gt; user traffic
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The important point is that business hostnames no longer enter CloudFront through Cloudflare proxying. Cloudflare remains only on the &lt;code&gt;aws-origin.js.gripe&lt;/code&gt; segment, where Tunnel carries CloudFront origin requests back to the origin server.&lt;/p&gt;
&lt;p&gt;If a public response still contains &lt;code&gt;server: cloudflare&lt;/code&gt; or &lt;code&gt;cf-ray&lt;/code&gt;, that does not automatically mean the business hostname is Cloudflare-proxied. CloudFront reaches &lt;code&gt;aws-origin.js.gripe&lt;/code&gt; through the Tunnel segment, so some origin-segment response headers can still show up.&lt;/p&gt;
&lt;h2&gt;Two Ways To Organize Origins&lt;/h2&gt;
&lt;p&gt;There were two workable paths.&lt;/p&gt;
&lt;p&gt;The first path avoids CloudFront Functions. Each business hostname gets a fixed intermediate origin name, and the CloudFront origin configuration statically injects &lt;code&gt;X-Origin-Host&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The tested shape was:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;blog.js.gripe
  -&amp;gt; CloudFront distribution
  -&amp;gt; origin: blog-js-gripe.aws-origin.js.gripe
  -&amp;gt; custom header: X-Origin-Host: blog.js.gripe
  -&amp;gt; Cloudflare Tunnel
  -&amp;gt; 127.0.0.1:10480
  -&amp;gt; OpenResty origin proxy
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;www.js.gripe&lt;/code&gt; and the apex could be split the same way:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;www.js.gripe
  -&amp;gt; origin: www-js-gripe.aws-origin.js.gripe
  -&amp;gt; custom header: X-Origin-Host: www.js.gripe

js.gripe
  -&amp;gt; origin: js-gripe.aws-origin.js.gripe
  -&amp;gt; custom header: X-Origin-Host: js.gripe
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tunnel ingress then becomes multiple hostnames:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-yaml&quot;&gt;ingress:
  - hostname: blog-js-gripe.aws-origin.js.gripe
    service: http://127.0.0.1:10480
  - hostname: www-js-gripe.aws-origin.js.gripe
    service: http://127.0.0.1:10480
  - hostname: js-gripe.aws-origin.js.gripe
    service: http://127.0.0.1:10480
  - service: http_status:404
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The CloudFront origin config statically sets one custom header:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;{
  &quot;DomainName&quot;: &quot;blog-js-gripe.aws-origin.js.gripe&quot;,
  &quot;CustomHeaders&quot;: {
    &quot;Quantity&quot;: 1,
    &quot;Items&quot;: [
      {
        &quot;HeaderName&quot;: &quot;X-Origin-Host&quot;,
        &quot;HeaderValue&quot;: &quot;blog.js.gripe&quot;
      }
    ]
  }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;On the OpenResty side, this version does not need to recognize the &lt;code&gt;/_vhost/&amp;lt;host&amp;gt;&lt;/code&gt; prefix, because CloudFront has no Function and does not rewrite the URI. The origin proxy only needs to read the real business hostname from &lt;code&gt;X-Origin-Host&lt;/code&gt;, check it against a whitelist, and proxy the original path to the local HTTPS vhost:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-nginx&quot;&gt;map $http_x_origin_host $origin_requested_host {
    ~^([^,\s:]+)(?::[0-9]+)? $1;
    default &quot;&quot;;
    &quot;&quot; &quot;&quot;;
}

map $origin_requested_host $origin_host_allowed {
    default 0;
    blog.js.gripe 1;
    js.gripe 1;
    www.js.gripe 1;
}

server {
    listen 127.0.0.1:10480;
    server_name aws-origin.js.gripe;

    if ($origin_host_allowed = 0) {
        return 403;
    }

    location / {
        proxy_http_version 1.1;
        proxy_set_header Host $origin_requested_host;
        proxy_set_header X-Forwarded-Host $origin_requested_host;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_ssl_server_name on;
        proxy_ssl_name $origin_requested_host;
        proxy_pass https://127.0.0.1:443;
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Both &lt;code&gt;proxy_set_header Host&lt;/code&gt; and &lt;code&gt;proxy_ssl_name&lt;/code&gt; must point to &lt;code&gt;$origin_requested_host&lt;/code&gt;. The former lets OpenResty enter the correct business &lt;code&gt;server_name&lt;/code&gt;; the latter makes the local HTTPS hop use the matching SNI. Without both, a request may reach &lt;code&gt;127.0.0.1:443&lt;/code&gt; but land in the default vhost or fail certificate validation.&lt;/p&gt;
&lt;p&gt;This path is straightforward: no Function, no viewer-request URI rewrite, and no extra cache-key separation problem from putting many business hostnames behind one distribution. As long as one business hostname maps to one distribution, or at least to a clear origin/header pair, OpenResty can restore the real vhost from &lt;code&gt;X-Origin-Host&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The limitation was not technical feasibility; it was plan quota. The CloudFront free or flat-rate plan only allowed a limited number of distributions, and at the time the practical ceiling was three. If we kept one distribution per business hostname, &lt;code&gt;blog.js.gripe&lt;/code&gt;, &lt;code&gt;www.js.gripe&lt;/code&gt;, and &lt;code&gt;js.gripe&lt;/code&gt; would consume the whole allowance. There would be no room left for &lt;code&gt;dquery&lt;/code&gt;, &lt;code&gt;searchme&lt;/code&gt;, &lt;code&gt;cf-relay&lt;/code&gt;, or other dynamic forwarding and cache-policy variants.&lt;/p&gt;
&lt;p&gt;The second path keeps one unified origin. A CloudFront Function reads the viewer host, writes it to &lt;code&gt;X-Origin-Host&lt;/code&gt;, and prefixes the URI with &lt;code&gt;/_vhost/&amp;lt;host&amp;gt;&lt;/code&gt; for cache separation. This is the path I kept.&lt;/p&gt;
&lt;h2&gt;Keeping A Single Tunnel Origin&lt;/h2&gt;
&lt;p&gt;The per-domain distribution approach is viable when the number of business hostnames stays within the plan limit and avoiding Functions is more important. I moved to a unified origin because the number of services under &lt;code&gt;js.gripe&lt;/code&gt; would keep growing, and I did not want the fourth hostname to be blocked from CloudFront entirely.&lt;/p&gt;
&lt;p&gt;The Tunnel side keeps only one name:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;aws-origin.js.gripe
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Cloudflare Tunnel ingress only needs to send it to the local origin proxy:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-yaml&quot;&gt;ingress:
  - hostname: aws-origin.js.gripe
    service: http://127.0.0.1:10480
  - service: http://127.0.0.1:10480
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Business-host differences are no longer expressed through Tunnel hostnames. They are expressed through &lt;code&gt;X-Origin-Host&lt;/code&gt; set by the CloudFront Function.&lt;/p&gt;
&lt;h2&gt;Complete CloudFront Function&lt;/h2&gt;
&lt;p&gt;The CloudFront distribution uses one origin:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Origin domain: aws-origin.js.gripe
Origin request policy: Managed-AllViewerExceptHostHeader
Cache policy: Managed-CachingOptimized
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The key point is that the origin request policy does not forward the viewer &lt;code&gt;Host&lt;/code&gt;. If &lt;code&gt;Host: blog.js.gripe&lt;/code&gt; is sent directly to &lt;code&gt;aws-origin.js.gripe&lt;/code&gt;, the CloudFront origin domain, TLS/SNI, Cloudflare Tunnel hostname, and OpenResty business host all get mixed together. I also tried changing &lt;code&gt;request.headers.host&lt;/code&gt; inside a CloudFront Function, but CloudFront rejected that during validation. CloudFront Functions cannot modify &lt;code&gt;Host&lt;/code&gt; that way.&lt;/p&gt;
&lt;p&gt;So the Function runs at viewer request time and does four things:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Checks the viewer host against an allowlist.&lt;/li&gt;
&lt;li&gt;Deletes viewer cookies so unnecessary cookies do not reach the origin or create huge header edge cases.&lt;/li&gt;
&lt;li&gt;Writes the viewer host into &lt;code&gt;X-Origin-Host&lt;/code&gt;, so OpenResty can restore the real vhost.&lt;/li&gt;
&lt;li&gt;Prefixes the URI with &lt;code&gt;/_vhost/&amp;lt;host&amp;gt;&lt;/code&gt; for cache separation, without double-prefixing.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A full viewer-request function looks like this:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;function handler(event) {
    var request = event.request;
    var hostHeader = request.headers.host;
    var host = hostHeader &amp;amp;&amp;amp; hostHeader.value ? hostHeader.value.toLowerCase() : &apos;&apos;;

    var allowed = {
        &apos;blog.js.gripe&apos;: true,
        &apos;dquery.js.gripe&apos;: true,
        &apos;www.js.gripe&apos;: true,
        &apos;js.gripe&apos;: true
    };

    if (!allowed[host]) {
        return {
            statusCode: 403,
            statusDescription: &apos;Forbidden&apos;
        };
    }

    delete request.headers.cookie;
    request.headers[&apos;x-origin-host&apos;] = { value: host };

    if (request.uri.indexOf(&apos;/_vhost/&apos;) !== 0) {
        request.uri = &apos;/_vhost/&apos; + host + request.uri;
    }

    return request;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The point is not to put complex business logic at the edge. It is to turn the viewer host, which CloudFront should not forward directly as &lt;code&gt;Host&lt;/code&gt;, into an explicit controlled header. &lt;code&gt;delete request.headers.cookie&lt;/code&gt; is optional, but useful for public sites: static assets, article pages, and most read-only APIs do not need viewer cookies, and clearing them reduces origin-request variance and the chance of oversized headers affecting the origin.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;/_vhost/&amp;lt;host&amp;gt;&lt;/code&gt; prefix must be paired with OpenResty. CloudFront sees the rewritten URI as the cache key, for example:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;/_vhost/blog.js.gripe/zh-CN/posts/cloudflare-tunnel-cloudfront-origin/
/_vhost/www.js.gripe/
/_vhost/dquery.js.gripe/dns-query/example
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;OpenResty strips the prefix and forwards the real path to the local HTTPS vhost. That keeps same-path resources from different business hostnames from polluting each other when they share one CloudFront distribution and the default cache policy.&lt;/p&gt;
&lt;h2&gt;Restoring The Real Host In OpenResty&lt;/h2&gt;
&lt;p&gt;The local Tunnel entry listens on:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;127.0.0.1:10480
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This layer is not the business site. It is an OpenResty origin proxy. It restores the business hostname from &lt;code&gt;X-Origin-Host&lt;/code&gt;, checks a whitelist, removes the &lt;code&gt;/_vhost/&amp;lt;host&amp;gt;&lt;/code&gt; prefix added by the CloudFront Function, and proxies to the local HTTPS vhost.&lt;/p&gt;
&lt;p&gt;The core configuration is:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-nginx&quot;&gt;map $http_x_origin_host $origin_requested_host {
    ~^([^,\s:]+)(?::[0-9]+)? $1;
    default $origin_forwarded_host;
    &quot;&quot; $origin_forwarded_host;
}

map $origin_requested_host $origin_host_allowed {
    default 0;
    account.js.gripe 1;
    blog.js.gripe 1;
    dns.js.gripe 1;
    dquery.js.gripe 1;
    gateway.js.gripe 1;
    js.gripe 1;
    search.js.gripe 1;
    sos.js.gripe 1;
    www.js.gripe 1;
}

server {
    listen 127.0.0.1:10480;
    server_name aws-origin.js.gripe;

    if ($origin_host_allowed = 0) {
        return 403;
    }

    location ~ ^/_vhost/[^/]+(?&amp;lt;origin_upstream_uri&amp;gt;/.*)$ {
        proxy_http_version 1.1;
        proxy_set_header Host $origin_requested_host;
        proxy_set_header X-Forwarded-Host $origin_requested_host;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_ssl_server_name on;
        proxy_ssl_name $origin_requested_host;
        proxy_pass https://127.0.0.1:443$origin_upstream_uri$is_args$args;
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The whitelist matters. A unified origin without host validation easily becomes an open reverse proxy. The CloudFront Function keeps one allowlist, and OpenResty keeps another. Both layers stay in place.&lt;/p&gt;
&lt;h2&gt;Cache And Invalidation Lessons&lt;/h2&gt;
&lt;p&gt;The default CloudFront cache policy is now &lt;code&gt;Managed-CachingOptimized&lt;/code&gt;. Dynamic endpoints get their own behaviors by path; paths that need real-time origin responses can use a disabled-cache policy.&lt;/p&gt;
&lt;p&gt;After the Function added the &lt;code&gt;/_vhost/&amp;lt;host&amp;gt;&lt;/code&gt; prefix, cache separation became clearer, but invalidation required checking the actual cache key. I ran into this pattern:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The article HTML was updated.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;client.js&lt;/code&gt; still returned an old version.&lt;/li&gt;
&lt;li&gt;CloudFront invalidation was already completed.&lt;/li&gt;
&lt;li&gt;Response headers still showed a Cloudflare cache hit from the origin segment.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The fix was to treat both cache layers together:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use &lt;code&gt;/*&lt;/code&gt; for major CloudFront invalidations.&lt;/li&gt;
&lt;li&gt;Keep static asset query strings numeric, such as &lt;code&gt;?v=20260623&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Do not use explanatory query strings like &lt;code&gt;?v=20260623-debug&lt;/code&gt; or &lt;code&gt;?v=20260603-test&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;If the Cloudflare origin segment cached an old asset, purge it precisely or bump the asset version.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The article page now uses:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;lt;link rel=&quot;stylesheet&quot; href=&quot;https://blog.js.gripe/assets/site.css?v=20260623&quot;&amp;gt;
&amp;lt;script src=&quot;https://blog.js.gripe/assets/client.js?v=20260623&quot; defer&amp;gt;&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Debugging 502, 403, And Certificates&lt;/h2&gt;
&lt;p&gt;Errors in this chain need to be checked layer by layer.&lt;/p&gt;
&lt;p&gt;For 502s, the usual checklist is:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Is the business hostname added to CloudFront aliases?&lt;/li&gt;
&lt;li&gt;Does the ACM certificate cover that hostname, for example with &lt;code&gt;*.js.gripe&lt;/code&gt;?&lt;/li&gt;
&lt;li&gt;Is the CloudFront distribution deployed?&lt;/li&gt;
&lt;li&gt;Is the CloudFront Function published to LIVE?&lt;/li&gt;
&lt;li&gt;Does the Function allowlist include this host?&lt;/li&gt;
&lt;li&gt;Does Cloudflare DNS point to &lt;code&gt;d2085p9k6hhzsj.cloudfront.net&lt;/code&gt;, with the business hostname set to DNS-only?&lt;/li&gt;
&lt;li&gt;Is &lt;code&gt;aws-origin.js.gripe&lt;/code&gt; still a proxied Tunnel CNAME?&lt;/li&gt;
&lt;li&gt;Does Tunnel ingress point to &lt;code&gt;http://127.0.0.1:10480&lt;/code&gt;?&lt;/li&gt;
&lt;li&gt;Does the OpenResty origin proxy whitelist include the host?&lt;/li&gt;
&lt;li&gt;Does the local HTTPS vhost have the matching &lt;code&gt;server_name&lt;/code&gt;?&lt;/li&gt;
&lt;li&gt;Is the local vhost upstream port actually listening?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;403s usually come from one of two places:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The CloudFront Function rejects an unknown viewer host.&lt;/li&gt;
&lt;li&gt;The OpenResty origin proxy rejects an unknown &lt;code&gt;X-Origin-Host&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Both 403s are intentional. They should not be replaced with a blanket allow rule just to make debugging easier.&lt;/p&gt;
&lt;p&gt;Certificates exist in three layers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;User-facing TLS is handled by CloudFront / ACM.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;aws-origin.js.gripe&lt;/code&gt; is handled on the Cloudflare Tunnel side.&lt;/li&gt;
&lt;li&gt;Local OpenResty vhosts use origin certificates.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For a new subdomain, confirm ACM coverage first, then add the CloudFront alias, then DNS, then update the Function and OpenResty whitelists.&lt;/p&gt;
&lt;h2&gt;Recording Sensitive Values&lt;/h2&gt;
&lt;p&gt;This kind of migration touches many tokens, keys, account IDs, and certificate ARNs. Full values should not be pasted into an article.&lt;/p&gt;
&lt;p&gt;My rule for notes is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Domains, public CNAMEs, and public policy names can be written in full.&lt;/li&gt;
&lt;li&gt;Cloudflare tokens, AWS access keys, and secret keys are not written in full.&lt;/li&gt;
&lt;li&gt;If a credential must be identified, expose only the first three and last three characters, with the middle masked, such as &lt;code&gt;cfu**********abc&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Database passwords, admin passwords, and hashes are also treated as sensitive. Even a hash is not written in full.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This article keeps only public domains, the public CloudFront distribution domain, and configuration structure. It does not record any full token or secret.&lt;/p&gt;
&lt;h2&gt;Why I Kept This Design&lt;/h2&gt;
&lt;p&gt;Cloudflare SaaS binding is not useless. It simply did not solve the actual problem in this migration. I needed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;User traffic to enter through CloudFront.&lt;/li&gt;
&lt;li&gt;The origin IP not to be directly resolved by the AWS origin side.&lt;/li&gt;
&lt;li&gt;Cloudflare to act only as a private origin path.&lt;/li&gt;
&lt;li&gt;OpenResty to keep routing by business &lt;code&gt;Host&lt;/code&gt; across vhosts.&lt;/li&gt;
&lt;li&gt;Dynamic endpoints and static assets to use different cache policies.&lt;/li&gt;
&lt;li&gt;Low-trust public paths not to hold core secrets.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The memecdn / myzerossl lesson was to avoid giving low-trust nodes more responsibility than they need. Cloudflare Tunnel fits that idea on the origin path: it only brings CloudFront requests back inside, while OpenResty still decides business routing.&lt;/p&gt;
&lt;p&gt;This is more complex than &quot;put the origin behind Cloudflare&quot; and more complex than &quot;let CloudFront hit a public origin IP.&quot; The added complexity buys a clearer boundary: CloudFront owns the public edge, Tunnel owns private origin access, and OpenResty owns virtual-host routing.&lt;/p&gt;
</content:encoded></item><item><title>AI Taxes, Job Loss, and Reskilling: When Models Rewrite the Labor Ledger</title><link>https://blog.js.gripe/2026/06/ai-tax-unemployment-policy/</link><guid isPermaLink="true">https://blog.js.gripe/2026/06/ai-tax-unemployment-policy/</guid><pubDate>Mon, 22 Jun 2026 00:00:00 GMT</pubDate><dc:date>2026-06-22T00:00:00.000Z</dc:date><dc:creator>Nian (年); Jun (均); Jie (颉); Codex Guanlan (Codex 观澜)</dc:creator><dc:language>en</dc:language><description>How AI changes tasks and jobs, and what unemployment insurance, reskilling, wage insurance, and AI tax proposals can address.</description><category>blog</category><category>AI Tax</category><category>Technological Unemployment</category><category>Reskilling</category><category>UBI</category><category>Bernie Sanders</category><content:encoded>&lt;p&gt;Whether AI will replace large numbers of jobs can no longer be answered with a simple yes or no. The sharper answer is that AI first replaces tasks, then reorganizes jobs, and eventually creates real job losses in some sectors. The difficult question is the public ledger behind that shift: if models and agents perform more work once done by humans, should governments tax AI, and how should unemployment insurance, reskilling, wage insurance, and AI dividends be designed?&lt;/p&gt;
&lt;p&gt;The discussion needs three distinctions: a task exposed to AI is not necessarily a lost job; a tax proposal is not an enacted system; and a productivity gain does not automatically become household income. Those distinctions guide the policy comparison below.&lt;/p&gt;
&lt;h2&gt;1. Exposure, Displacement, And Excuse&lt;/h2&gt;
&lt;p&gt;AI&apos;s labor impact is often written as a straight line: models get stronger, so people lose jobs. The four sources suggest a three-layer picture.&lt;/p&gt;
&lt;p&gt;First is exposure. International institutions discuss tasks within jobs being affected by AI. GPT Deep Research Analysis stresses that IMF estimates of roughly 60 percent exposure in advanced economies do not mean 60 percent of jobs disappear.&lt;/p&gt;
&lt;p&gt;Second is job reorganization. Jun (均)&apos;s analysis is clearest here: clerical work, customer support, basic coding, junior content work, translation, data processing, hiring screens, and junior legal or financial analysis are exposed early; care work, teaching, field coordination, high-liability roles, and trust-heavy services are more resistant.&lt;/p&gt;
&lt;p&gt;Third is excuse-making. Nian (年) reads Salesforce, Amazon, IBM, Microsoft, Klarna and similar cases as AI-washed restructuring:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Harvard Business Review&apos;s survey saw straight through the trick: layoffs truly driven by mature technology replacing workers accounted for only 2 percent, while as many as 60 percent of organizations were engaged in &lt;strong&gt;&quot;AI washing.&quot;&lt;/strong&gt; Put plainly, they were using AI as an excuse to cover up reckless pandemic-era expansion and to make financial statements look better through layoffs.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The public version needs boundaries: layoffs may combine AI, market pressure, overhiring after the pandemic, reorganization, and managerial correction. But it is also wrong to deny that AI has already become a justification for cost cutting, hiring freezes, and pressure on entry-level white-collar jobs.&lt;/p&gt;
&lt;h2&gt;2. Countries Are Not Answering The Same Question&lt;/h2&gt;
&lt;p&gt;If the question is simply which countries have enacted AI taxes, the answer is short: the reviewed major economies have not adopted a broad national tax specifically on AI labor substitution. If the question is how governments are handling AI&apos;s labor shock, the answer is much more varied.&lt;/p&gt;
&lt;p&gt;Jun (均)&apos;s analysis summarizes the policy map this way:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;European Union&lt;/strong&gt;: emphasizes regulation, labor rights, and reskilling; the AI Act treats employment, hiring, and labor management as high-risk AI scenarios.&lt;br /&gt;&lt;strong&gt;United States&lt;/strong&gt;: leans toward innovation and infrastructure buildout; there is no federal AI tax, though individual lawmakers have proposed AI-tax and AI-dividend plans.&lt;br /&gt;&lt;strong&gt;China&lt;/strong&gt;: emphasizes job stability, industrial upgrading, AI+ initiatives, and human-machine collaboration; it tends toward administrative guidance and employment-stabilization policies rather than an AI tax.&lt;br /&gt;&lt;strong&gt;Japan&lt;/strong&gt;: because of aging and labor shortages, more often treats AI and robots as tools to supplement labor, so the incentive for tax restrictions is weaker.&lt;br /&gt;&lt;strong&gt;South Korea&lt;/strong&gt;: has a historical &quot;robot tax&quot; example while also advancing a basic AI law and high-impact AI regulation.&lt;br /&gt;&lt;strong&gt;Singapore&lt;/strong&gt;: does not pursue an AI tax; it emphasizes a national AI strategy, SkillsFuture reskilling, lifelong learning, and trustworthy AI.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Nian (年) frames the same countries as a clash of governing philosophies: Europe uses law and worker rights as a brake; the United States mixes innovation leadership, local tax experiments, and national political proposals; Singapore turns reskilling into state capacity; Japan treats AI as a labor supplement under aging pressure; South Korea carries a weak robot-tax precedent while also trying to compete in AI.&lt;/p&gt;
&lt;p&gt;Mainland China requires one more step. Jun (均)&apos;s analysis says:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;China released a five-year employment plan in 2026, emphasizing labor-market stability and the prevention of large-scale unemployment.&lt;br /&gt;Policy priorities include stabilizing labor-intensive industries and expanding job capacity in services such as elder care, childcare, tourism, and restaurants.&lt;br /&gt;On AI, the plan emphasizes adapting to AI development, promoting human-machine collaboration, supporting employment and entrepreneurship, and improving public employment services.&lt;br /&gt;Universities and industry are also accelerating AI-related curricula, talent training, and the diffusion of &quot;AI+&quot; applications.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That passage does not prove that employment protection has worked. It reveals tension between language and resource allocation. The documents emphasize job stability, human-machine collaboration, service-sector absorption, and public employment support; in practice, large resources still flow into AI infrastructure, compute, chips, data centers, industrial upgrading, and university-major reshaping.&lt;/p&gt;
&lt;p&gt;Jie (颉)&apos;s suggestion is to test protection through household disposable income and actual household security, not through policy titles. Official income growth is only one input, because official statistics also serve a stability narrative. A stronger check is to place official data next to third-party consumption observations and youth-employment indicators. FT reported that in May 2026 China&apos;s retail sales fell 0.6 percent year on year while exports rose 19.4 percent and industrial production rose 4.5 percent. MarketWatch observed that 2025 retail sales exceeded 50 trillion yuan, up 3.7 percent, while household deposits exceeded 160 trillion yuan and the World Bank&apos;s framing still put China&apos;s household saving rate above 30 percent of disposable income. AP documented the resumed youth-unemployment measure at 14.9 percent for 16-24-year-olds excluding students; Time recorded that the older measure reached 21.3 percent in June 2023 before publication was suspended.&lt;/p&gt;
&lt;p&gt;The data conclusion is direct: there is not yet clear evidence that AI-driven industrial upgrading has returned to household balance sheets. Production and external-demand numbers look stronger than household consumption; households are turning more cash into defensive savings; and entry-level youth jobs still face double-digit unemployment pressure. Mainland policy can speak of &quot;job stability&quot; and &quot;human-machine collaboration,&quot; but the household signal remains caution, delayed consumption, and conservative saving, not restored income security.&lt;/p&gt;
&lt;h2&gt;3. AI Tax Is A Fiscal Question, Not Just A Tax Name&lt;/h2&gt;
&lt;p&gt;An AI tax sounds simple: AI replaces people, so tax AI. The hard part is the base. What counts as AI: a customer-service agent, an automation script, an API call, an industrial robot, a data center, algorithmic trading, or smart logistics?&lt;/p&gt;
&lt;p&gt;Jun (均)&apos;s analysis gives the more realistic direction:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In the short term, the world is more likely to see &quot;special taxes on AI giants,&quot; &quot;AI dividend funds,&quot; &quot;adjustments to automation tax preferences,&quot; and &quot;compute or energy-related charges&quot; than a crude and simple &quot;robot tax.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Nian (年) favors token-use taxes, FLOP-based consumption taxes, and green data-center energy taxes because they map more closely to AI usage and final-consumption location:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Token-use taxes and FLOP consumption taxes, charging by traffic:&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;Mechanism:&lt;/em&gt; impose a tiny consumption tax on large-model API calls at the B2C final-consumption stage, based on token volume or compute consumption measured in FLOPs.&lt;br /&gt;&lt;em&gt;Nian (年)&apos;s verdict:&lt;/em&gt; Solid. This is plausible. As large models spread through society, the tax base becomes enormous.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If AI taxation becomes real, it is unlikely to mean charging a fee per robot. The more plausible shift is from labor income toward capital gains, platform revenue, compute use, energy externalities, and final consumption.&lt;/p&gt;
&lt;h2&gt;4. Unemployment Policy Matters More Than The Tax Label&lt;/h2&gt;
&lt;p&gt;The sources agree on one point: &quot;AI tax&quot; cannot be the only answer. If AI displacement is structural, short-term unemployment relief and a slogan telling workers to &quot;learn AI&quot; will not be enough.&lt;/p&gt;
&lt;p&gt;Jun (均)&apos;s toolkit is plain:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Unemployment caused by AI may not be short-term cyclical unemployment, but structural unemployment. That means policy needs to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;extend unemployment-insurance coverage;  &lt;/li&gt;
&lt;li&gt;provide living stipends during job transitions;  &lt;/li&gt;
&lt;li&gt;attach healthcare, pensions, and vocational training to individuals rather than tying them entirely to employers;  &lt;/li&gt;
&lt;li&gt;provide rapid reemployment services for workers displaced by AI.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;Nian (年) is skeptical of simple UBI and prefers concrete transition support:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Throw UBI out completely and use &quot;targeted transition repair&quot; instead: mailing checks just subsidizes idleness and feeds inflation. Direct the money toward &lt;strong&gt;long-term living stipends during full-time reskilling&lt;/strong&gt;, and introduce a &lt;strong&gt;&quot;wage insurance&quot;&lt;/strong&gt; mechanism: if a middle-class white-collar worker is forced into a lower-paid transition role, the government covers 50 percent of the pay gap between the old and new jobs for two years.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A displaced junior programmer, support worker, clerk, editor, or mid-career white-collar worker needs time, tuition, living support, credentials, job matching, and wage buffers after transition.&lt;/p&gt;
&lt;h2&gt;5. Who pays for the transition?&lt;/h2&gt;
&lt;p&gt;AI taxes should not be written as imminent global consensus, nor dismissed as unnecessary. Broad, crude taxes based on robot counts are immature in the short run; but fiscal redistribution around AI-company gains, compute use, data-center externalities, excess automation profits, and AI dividends will become harder to avoid.&lt;/p&gt;
&lt;p&gt;AI is not simply stealing jobs, and it will not automatically create prosperity. It changes who earns income, who has bargaining power, and who pays transition costs. The real question is not whether to punish AI. It is whether society can turn part of AI-driven productivity into ordinary people&apos;s skills, income security, and renewed access to work.&lt;/p&gt;
&lt;h2&gt;Sources&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://apnews.com/article/bernie-sanders-ai-public-ownership-57b9f20d96490083e2749adba0f13977&quot; rel=&quot;noopener noreferrer&quot;&gt;AP News: Bernie Sanders AI public ownership proposal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://time.com/6304881/china-stops-publishing-youth-unemployment-statistics/&quot; rel=&quot;noopener noreferrer&quot;&gt;Time: China stopped publishing youth unemployment data after record-high joblessness in 2023&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.ft.com/content/f0238d1d-8b35-4686-84f7-cdf90a628ebf&quot; rel=&quot;noopener noreferrer&quot;&gt;Financial Times: China retail sales sink for first time since Covid&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.marketwatch.com/story/yes-consumers-in-china-are-consuming-again-its-just-not-their-no-1-priority-these-days-598c2c02&quot; rel=&quot;noopener noreferrer&quot;&gt;MarketWatch: Chinese consumers are spending again, but cautiously&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://apnews.com/article/321cd96377ee066915fc39232b9477c3&quot; rel=&quot;noopener noreferrer&quot;&gt;AP News: China resumes youth jobless data with a new method&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>The Claude Fable 5 / Mythos 5 Shutdown: Frontier Models, Export Controls, and AI Influence Abuse</title><link>https://blog.js.gripe/2026/06/claude-fable-mythos-5-export-control-rumor/</link><guid isPermaLink="true">https://blog.js.gripe/2026/06/claude-fable-mythos-5-export-control-rumor/</guid><pubDate>Mon, 15 Jun 2026 00:00:00 GMT</pubDate><dc:date>2026-06-15T00:00:00.000Z</dc:date><dc:creator>toewpq</dc:creator><dc:language>en</dc:language><description>A close look at the forced suspension of Claude Fable 5 / Mythos 5 access: what is officially confirmed, what has been reported, and what belongs in the broader context of AI misuse.</description><category>blog</category><category>Claude</category><category>Anthropic</category><category>AI Safety</category><category>Export Controls</category><category>Influence Operations</category><content:encoded>&lt;p&gt;If a commercial AI model goes live and is globally shut down three days later on national-security and export-control grounds, that is not just a product incident. The brief life of Claude Fable 5 / Mythos 5 looks more like a rehearsal for a new kind of AI conflict: once frontier-model capability enters the gray zone of cyber operations, critical infrastructure, and intelligence risk, the fate of a model may be decided less by benchmark charts than by the relationship between cloud platforms, national-security agencies, and export-control authorities.&lt;/p&gt;
&lt;p&gt;I do not think this should be softened into a routine “model safety fix.” There is a real technical risk here: models like Fable 5 / Mythos 5 may lower the cost of vulnerability analysis, attack scaffolding, and high-risk automation. But the sharper issue is institutional. A cloud platform can become the key security signaler, a government can use export controls to bypass ordinary product-governance channels, and a company can go from “launching its flagship model” to “explaining why it had to shut everything down” within hours.&lt;/p&gt;
&lt;p&gt;At the same time, public debate about AI is itself becoming a target for organized influence operations. OpenAI’s June 2026 threat report does not prove the direct cause of the Claude event, but it is an important piece of background: AI is no longer just a tool or an industry. It is also a narrative battlefield. Data centers, power bills, tariffs, model safety, and company reputation can all be packaged as ordinary public concerns, then amplified through mass content, fake personas, and cross-platform coordination.&lt;/p&gt;
&lt;h2&gt;An Unusually Short Launch&lt;/h2&gt;
&lt;p&gt;On June 9, 2026, Anthropic announced Claude Fable 5 and Claude Mythos 5. According to Anthropic, Fable 5 was the general-availability Mythos-class model, covering software engineering, knowledge work, vision, and scientific tasks. Mythos 5 was the restricted-access version of the same underlying model, with some safeguards relaxed for selected cyber-defense, critical-software, and future trusted-access scenarios.&lt;/p&gt;
&lt;p&gt;That design already reveals the tension. Anthropic acknowledged that Mythos-class models have clear dual-use risk in areas such as cybersecurity and biochemical work. The same capability can help defenders find vulnerabilities and protect systems; in the wrong hands, it can also reduce the cost of attack. Fable 5 therefore used an external safety classifier. When a request touched high-risk areas such as cybersecurity, biochemistry, or model distillation, the session would fall back to Claude Opus 4.8.&lt;/p&gt;
&lt;p&gt;The other major change was data retention. Anthropic required Fable 5, Mythos 5, and future models at a similar capability level to retain traffic for 30 days so that complex attacks, cross-request jailbreaks, and false negatives could be investigated. AWS’s launch post also noted that using Fable 5 on Bedrock required enabling the relevant data-retention and sharing settings; once enabled, data would leave AWS’s data and security boundary and enter Anthropic’s retention and review process. For enterprises that rely on zero-data-retention promises, internal compliance boundaries, and customer privacy commitments, this was not a minor detail.&lt;/p&gt;
&lt;p&gt;From that point, Fable 5 was not just another model launch. It tied three questions together: whether the capability was dangerous enough to regulate, whether the safeguards were reliable enough to trust, and whether retention and audit requirements were acceptable. More precisely, it pushed Anthropic’s own safety narrative into an awkward place: when a company known for safety launches a stronger model, it must convince the market that the model is powerful while convincing the government that it is not too powerful to control. Those two messages naturally pull against each other.&lt;/p&gt;
&lt;h2&gt;The June 12 Export-Control Order&lt;/h2&gt;
&lt;p&gt;The crisis escalated on June 12.&lt;/p&gt;
&lt;p&gt;Anthropic later said that the U.S. government issued an export-control directive under national-security authority, requiring the company to suspend access to Fable 5 and Mythos 5 for all foreign nationals. That category included users outside the United States, foreign nationals inside the United States, and even Anthropic’s own non-U.S. employees. Anthropic said it received the directive at 5:21 p.m. ET on June 12. Because its systems could not precisely identify and restrict all relevant citizenship or nationality categories across global APIs and employee workflows, the practical result was a shutdown for all customers.&lt;/p&gt;
&lt;p&gt;This is the confirmed core: the models launched on June 9, access was suspended on June 12, Anthropic publicly acknowledged the U.S. government directive, and both models were closed to all customers.&lt;/p&gt;
&lt;p&gt;The dispute is over the reason.&lt;/p&gt;
&lt;p&gt;Anthropic said the government letter did not provide specific national-security details. The company understood the concern to involve a bypass or jailbreak method for Fable 5. Anthropic said it had seen a demonstration, but believed it identified only a small number of known and low-severity vulnerabilities, and that other public models could discover similar issues without a bypass. Anthropic also emphasized that the model had gone through extensive red teaming with the U.S. government, the UK AISI, third parties, and its own internal teams, and that no universal jailbreak capable of broadly bypassing safeguards had been found.&lt;/p&gt;
&lt;p&gt;In other words, the dispute was not between “the model has no risk” and “the model is definitely catastrophic.” It was about risk level, evidentiary sufficiency, response speed, and who gets to decide. The government judged the issue urgent enough for immediate restriction. Anthropic argued that the bypass was narrow, insufficiently demonstrated, and not a basis for a global commercial-model recall.&lt;/p&gt;
&lt;h2&gt;The AWS Thread: From Security Signal To White House Escalation&lt;/h2&gt;
&lt;p&gt;Media reporting puts Amazon/AWS near the center of the chain, and the details are more complicated than “someone reported a flaw.”&lt;/p&gt;
&lt;p&gt;Business Insider, citing two government officials and a senior White House official, reported that two days after Fable’s public launch, Amazon CEO Andy Jassy raised concerns with the White House that the model’s guardrails could be bypassed. The report also said that people familiar with Amazon’s communication framed it as a response to government requests for feedback, rather than a unilateral public accusation.&lt;/p&gt;
&lt;p&gt;That distinction matters. If Amazon was responding to a government request, AWS looks more like a security signaler positioned at a critical infrastructure and distribution layer. If one writes it as “Amazon bypassed disclosure channels and lit the fuse,” that becomes a stronger political interpretation requiring more evidence. Even under the more conservative reading, though, the problem is already sharp enough: when a cloud platform hosts the model, distributes the model, invests in the model company, and provides key security feedback to the government, it is no longer only “infrastructure.” It has something close to regulatory power.&lt;/p&gt;
&lt;p&gt;Business Insider also described the following 24-hour escalation chain: the issue entered senior White House discussions on the morning of June 12; Treasury Secretary Scott Bessent, national cyber director Sean Cairncross, White House chief of staff Susie Wiles, and others were involved; government officials then held multiple calls with Dario Amodei, with Commerce Secretary Howard Lutnick and Bureau of Industry and Security officials reportedly entering the process. According to the report, Amodei tried to explain that the issue was a specific bypass, not a universal jailbreak capable of disabling all safeguards; the White House side believed Amazon’s findings had been shown to the NSA and amounted to proof.&lt;/p&gt;
&lt;p&gt;This does not mean AWS’s technical details are fully public. Public materials still do not independently verify the bypass method, the test scope, whether executable exploit code was produced, or how scalable the bypass would be in production. What the public record can support is narrower but still important: Amazon/AWS feedback was likely one of the triggers for the rapid government escalation; the government framed the issue as a national-security matter; Anthropic and the government then sharply disagreed over severity and response tempo.&lt;/p&gt;
&lt;p&gt;Reuters, as carried by The Economic Times, also reported that Jassy was among the tech executives who raised concerns about Anthropic’s latest models with senior Trump administration officials. Amazon did not confirm the specific communication, saying only that it is not unusual for governments to seek input from major cloud providers about potential security risks.&lt;/p&gt;
&lt;p&gt;TechTimes and other outlets then pushed a broader interpretation, emphasizing Amazon’s overlapping roles: important Anthropic investor, cloud infrastructure provider, Bedrock distribution channel, and operator of its own Nova models. Jassy’s warning to the government has therefore been read by some commentators as a structural conflict-of-interest case.&lt;/p&gt;
&lt;p&gt;I would not treat that interpretation as a substitute for evidence, but it does capture the skeleton of the problem. Frontier AI companies increasingly depend on a small number of cloud platforms for compute, deployment, distribution, and enterprise access. Those same platforms also build models, hold investment portfolios, and need to show governments that they are responsible infrastructure gatekeepers. In that world, a safety signal can be sincere and still produce competitive consequences. The two are not mutually exclusive.&lt;/p&gt;
&lt;p&gt;Similarly, David Sacks’s reported “Dario refused” framing should be treated as part of the administration’s version, not as a settled fact. The government side says Anthropic did not cooperate seriously enough with a pause or fix. Anthropic says it did not receive sufficiently specific national-security details and that the demonstrated bypass did not amount to a universal jailbreak. The important thing is to see how the two versions explain the same events, not to close the case before the evidence is public.&lt;/p&gt;
&lt;p&gt;So the chain “AWS security feedback -&amp;gt; White House / Commerce escalation -&amp;gt; Anthropic rebuttal -&amp;gt; export controls -&amp;gt; global shutdown” is a useful way to understand the event. Stronger claims, such as whether Amazon used the government against a company it invested in, whether Anthropic resisted because of IPO pressure, or whether public screenshots of x86 Linux exploit output correspond to Amazon’s report, should remain in the realm of outside interpretation or unverified claims.&lt;/p&gt;
&lt;h2&gt;A More Useful Timeline&lt;/h2&gt;
&lt;p&gt;Compressed into a cautious timeline, the event looks like this:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Date&lt;/th&gt;
&lt;th&gt;Event&lt;/th&gt;
&lt;th&gt;Evidence status&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;April 2026&lt;/td&gt;
&lt;td&gt;Mythos Preview / Project Glasswing-style restricted access begins in cyber-defense and critical-infrastructure contexts&lt;/td&gt;
&lt;td&gt;Anthropic background&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;June 9, 2026&lt;/td&gt;
&lt;td&gt;Anthropic announces Claude Fable 5 and Claude Mythos 5&lt;/td&gt;
&lt;td&gt;Confirmed by Anthropic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;After June 9, 2026&lt;/td&gt;
&lt;td&gt;Mythos-class models require 30-day data retention, raising enterprise compliance concerns&lt;/td&gt;
&lt;td&gt;Confirmed by Anthropic and AWS materials&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Around June 12, 2026&lt;/td&gt;
&lt;td&gt;Amazon/AWS raises guardrail-bypass concerns with senior U.S. officials; BI reports that the government then held multiple calls with Anthropic and showed findings to NSA-linked reviewers&lt;/td&gt;
&lt;td&gt;Media reporting&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;June 12, 2026, 5:21 p.m. ET&lt;/td&gt;
&lt;td&gt;The U.S. government orders suspension of access to Fable 5 / Mythos 5 for foreign nationals under export-control authority&lt;/td&gt;
&lt;td&gt;Confirmed by Anthropic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;After June 12, 2026&lt;/td&gt;
&lt;td&gt;Anthropic shuts down access for all customers because precise nationality-based enforcement is not feasible&lt;/td&gt;
&lt;td&gt;Confirmed by Anthropic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Afterward&lt;/td&gt;
&lt;td&gt;The controversy expands into AI sovereignty, allied access, export-control boundaries, and frontier-model governance&lt;/td&gt;
&lt;td&gt;Policy commentary and industry debate&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;This timeline is less exciting than the conspiracy version, but more useful. It shows that the outcome was not produced by a single technical flaw alone. It was the fast collision of a technical signal, cloud-platform feedback, government security judgment, company rebuttal, and export-control machinery.&lt;/p&gt;
&lt;h2&gt;My View: This Is Not Just A Model-Bug Story&lt;/h2&gt;
&lt;p&gt;If we reduce this to whether one model had a jailbreak, we miss the institutional point.&lt;/p&gt;
&lt;p&gt;The Fable 5 / Mythos 5 controversy shows frontier-model governance moving from content safety into capability control. Platforms used to spend most of their energy on whether a model would produce hate, sexual content, scams, or dangerous instructions. Now the harder question is whether a model can significantly improve cyberattack, biological-design, model-distillation, or agentic automation capability. If it can, should that capability be managed through refusal behavior, classifiers, fallback models, data retention, trusted access, or export controls?&lt;/p&gt;
&lt;p&gt;Those mechanisms have very different power structures.&lt;/p&gt;
&lt;p&gt;Classifiers and fallback models are company governance. Data retention ties customer privacy, enterprise compliance, and platform security together. Trusted-access programs require companies, governments, and selected institutions to decide who can use more capable versions. Export controls move the model from commercial software into the national-security domain; once triggered, commercial availability can be rewritten in hours.&lt;/p&gt;
&lt;p&gt;My view is that governments absolutely can regulate frontier models, especially in cyber and biosecurity domains. Refusing to regulate serious dual-use capability would itself be irresponsible. If a model can be systematically jailbroken by hostile actors, distilled by authoritarian governments with enough resources, or used to amplify uncontrolled cyberattack and surveillance capability, regulation is not optional. It is a necessary line of defense.&lt;/p&gt;
&lt;p&gt;But necessary regulation is not the same as crude regulation. The better approach is to communicate the risk, evidence, and mitigation path clearly: what kind of request bypasses the safeguard, what capability level the bypass reaches, whether there is evidence of real-world abuse, and whether the company can mitigate through classifier updates, tiered access, logging, rate limits, trusted-customer lists, or region-specific restrictions.&lt;/p&gt;
&lt;p&gt;There is, of course, another possibility: regulators may have already identified systematic abuse by hostile actors, may reasonably suspect that similar undiscovered activity exists, and may be facing a genuinely urgent situation. In that case, temporary containment is not automatically wrong. The real problem is when an emergency measure turns into an indefinite, unexplained, and hard-to-review default. If, after the emergency step, there is still no clear technical explanation, boundary, review mechanism, or path to restoration, then using “foreign national access restriction” to force a global API shutdown is still not precise governance. It is using a legally neat export-control tool to solve a technically and commercially messy problem, with the cost spread across customers, employees, allies, and the model ecosystem.&lt;/p&gt;
&lt;p&gt;The hard question is not “government should never regulate” or “national security means immediate shutdown.” The hard question is whether emergency intervention against an already-commercial model should require transparent procedure, technical evidence, communication windows, appeal mechanisms, and proportionality. Without those things, AI safety can slide into administrative convenience. And if companies refuse to take real risks seriously, “open innovation” can become a slogan for avoiding responsibility.&lt;/p&gt;
&lt;p&gt;Anthropic is an interested party, so its procedural argument should be read as such. In its statement, the company accepts that governments should be able to stop unsafe deployments, while arguing that this power should be transparent, fair, clear, and grounded in technical facts. That view belongs in the discussion, but it should not become the article’s main premise. The core point here is that regulating unreasonable misuse is necessary, especially when high-risk models may be systematically jailbroken, distilled, or used for cyberattack. The dispute is not whether regulation should exist; it is whether regulation has evidentiary boundaries, graduated remedies, and procedures that can be reviewed.&lt;/p&gt;
&lt;p&gt;There is another side to add: too little regulation amplifies abuse, but overly dense regulation also damages usability. Mainland Chinese models are often joked about for this reason. To satisfy content-compliance and political requirements, many models do not merely refuse harmful content on sensitive topics; they can also refuse or flatten ordinary discussion, historical analysis, institutional comparison, news summaries, and satire. This is where the online joke comes from: models must “conform to socialism with Chinese characteristics,” so people end up using foreign models instead. The joke points to a real product problem. When regulation becomes keyword governance instead of risk governance, the model stops being a capable tool and starts sounding like a compliance script.&lt;/p&gt;
&lt;p&gt;So when this article says regulation needs boundaries, it is not talking only about U.S. export controls. The same principle applies to any environment that regulates AI until little remains but boilerplate. Good regulation should distinguish malicious capability use, organized manipulation, and ordinary expression; real safety risk and political comfort zones; high-risk deployment and everyday knowledge work. If a model is so afraid of mistakes that it refuses to say anything useful, users will naturally move toward less restricted foreign models. If foreign models ignore abuse risk in the name of capability competition, they give governments a reason to intervene bluntly. These may look like opposite failures, but both are failures of boundaries.&lt;/p&gt;
&lt;h2&gt;Sidebar: Organized Abuse Of AI Tools&lt;/h2&gt;
&lt;p&gt;OpenAI’s June 2026 threat report is relevant background, but it should not be used as proof of the direct cause of the Claude shutdown. It describes account clusters that OpenAI identified and banned on its own platform. The key issue is how organized actors embed AI tools into influence workflows, not why the Anthropic event happened.&lt;/p&gt;
&lt;p&gt;The report describes two clusters of accounts that OpenAI assessed as likely originating from China. It uses careful qualifiers such as “likely,” “appears,” and “no evidence of meaningful breakout,” which is a useful reminder of evidentiary limits. The accounts allegedly generated English and Chinese social-media comments, created or edited images, posed as Americans or overseas Chinese personas, posted across platforms, and built narratives around U.S. AI data centers, electricity prices, tariffs, technology competition, and OpenAI’s reputation.&lt;/p&gt;
&lt;p&gt;The most valuable part of the report is not that it labels users from one region. It is that it shows an organized-abuse pipeline: commercial troll-farm ecosystems, government-linked contractors, or public-opinion-control chains can use AI to mass-produce content, impersonate identities, maintain personas, coordinate cross-account engagement, evade platform detection, harass dissidents, and assist public-opinion monitoring. The report also says operators asked for work reports, platform-operation plans, analysis of Facebook recommendation and enforcement systems, backup-account strategy, account separation, and workflows that preserve the appearance of organic engagement.&lt;/p&gt;
&lt;p&gt;This should be condemned plainly. It is not “modernized communication capacity” or “international messaging technique.” It is pollution of public debate: fake identities posing as real sentiment, bulk content diluting genuine expression, cross-platform interaction manufacturing the appearance of consensus, and dissidents turned into harassment targets. AI is not functioning here as a tool for thought. It is functioning as a workflow amplifier.&lt;/p&gt;
&lt;p&gt;But the criticism must target the mechanism, not ordinary people. A normal user using AI for writing, translation, programming, study, or opinion is not the same as organized impersonation, harassment, surveillance, and cross-platform manipulation. Collapsing those categories only lets the actual abuse mechanism hide behind broad regional labels and makes innocent users pay for organized behavior.&lt;/p&gt;
&lt;p&gt;So in discussing the Claude event, the OpenAI report can at most support one background point: AI platforms really are facing organized abusers who test model and platform boundaries and connect generative AI to mature influence workflows. It cannot replace evidence about Anthropic, and it cannot be used to infer the direct motive of an export-control order.&lt;/p&gt;
&lt;h2&gt;Capability Control And Influence Manipulation Are Meeting&lt;/h2&gt;
&lt;p&gt;The most meaningful link between the Claude event and the OpenAI threat report is not a direct causal claim such as “China access caused Claude to be banned.” The stronger point is that AI competition is now unfolding on two fronts at once.&lt;/p&gt;
&lt;p&gt;One front is capability control. Can frontier models significantly improve cyberattack, model distillation, biological design, or agentic automation? Who gets access to versions with fewer safeguards? Can a government restrict access for foreign nationals?&lt;/p&gt;
&lt;p&gt;The other front is information and perception. Data centers, electricity prices, tariffs, AI-company reputation, model safety, and claims of user-data exposure can all be turned into seemingly organic public debates. AI tools lower the cost of producing content in bulk, translating and rewriting it, generating images, maintaining personas, and testing narratives across platforms. What once required human waves now looks more like a semi-automated content factory.&lt;/p&gt;
&lt;p&gt;These fronts affect each other. The more capable the model, the easier it is to pull into national-security narratives. The more contested the AI issue, the more attractive it becomes to organized influence actors looking to amplify distrust. Frontier AI governance is no longer just a matter for labs, product teams, and safety evaluators. It is a system involving cloud infrastructure, state power, enterprise compliance, public debate, and geopolitics.&lt;/p&gt;
&lt;p&gt;That is why I do not want to write the Claude story simply as “the U.S. government punished Anthropic.” That is too narrow. The real issue is this: model companies are building stronger capabilities, cloud platforms hold the launch and distribution gateways, governments can draw red lines at any time, and organized influence operations are muddying public debate from the side. When one part fails, the damage will not stay neatly inside that part.&lt;/p&gt;
&lt;h2&gt;Conclusion: Regulation Needs A Target And A Boundary&lt;/h2&gt;
&lt;p&gt;Readers do not need to choose between two extremes. This was not simply “the U.S. government suddenly banned Claude,” and it should not be reduced to “Anthropic disobeyed and got punished.” The public record supports a more careful explanation: after Fable 5 / Mythos 5 launched, their guardrails, dual-use capability, and data-retention policy became highly contentious; according to Business Insider, Reuters, and others, Amazon/AWS conveyed security concerns to the U.S. government; the White House escalated the issue into a national-security process; the government then used export-control authority to require suspension of foreign-national access; Anthropic disputed the sufficiency and severity of the evidence and shut down access for all customers because precise enforcement was not feasible.&lt;/p&gt;
&lt;p&gt;That is already significant enough. We do not need to turn unverified details into settled facts. The questions to watch next are whether the government can explain clearer technical grounds, whether Anthropic can provide a credible remediation plan, what reporting and review duties AWS and other cloud platforms carry in this kind of incident, and whether this precedent expands to other frontier-model providers.&lt;/p&gt;
&lt;p&gt;My conclusion is direct: frontier AI does need strong regulation, especially when the issue is systematic jailbreaks, model distillation, cyberattack, biosecurity, or organized influence manipulation. A regulatory vacuum would itself be dangerous. But regulation can also become its own product failure: on one side, U.S.-style emergency export controls can stop a global API almost instantly; on the other, excessive content compliance can turn a model into a keyword detector and refusal machine. Model companies cannot use the phrase “safety classifier” to wave away all dual-use risk, and they cannot commercialize a model first while leaving customers and society to absorb the risk later. Cloud platforms that control launch, hosting, and security-reporting channels cannot describe themselves only as neutral infrastructure. Governments may need to contain high-risk deployments in an emergency, but they should then provide scope, grounds, review, and a path to restoration as soon as possible.&lt;/p&gt;
&lt;p&gt;So this article is not arguing against regulation. Quite the opposite: it argues against aiming regulation at the wrong target, using tools too bluntly, and collapsing ordinary users together with organized abusers. The actors that deserve scrutiny are those wiring AI into troll-farm ecosystems, impersonation, cross-platform manipulation, harassment of dissidents, cyberattack, and surveillance chains. The services that deserve pressure are models and cloud platforms that cannot show they can control high-risk capability. The question that deserves continued scrutiny is how emergency control moves from temporary containment back into evidence-based, bounded, reviewable governance.&lt;/p&gt;
&lt;p&gt;The most important thing about the Claude Fable 5 / Mythos 5 shutdown is not the model name. It is the signal: AI competition is moving from “whose model is stronger” to “who can prove that a strong model will not be abused at scale.” Regulation should absolutely catch up. But good regulation does more than press pause. It explains why the pause is needed, how wide it is, who must fix what, how the decision will be reviewed, and how ordinary lawful users avoid becoming long-term collateral damage.&lt;/p&gt;
&lt;h2&gt;References&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.anthropic.com/news/claude-fable-5-mythos-5&quot; rel=&quot;noopener noreferrer&quot;&gt;Anthropic: Claude Fable 5 and Claude Mythos 5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.anthropic.com/news/fable-mythos-access&quot; rel=&quot;noopener noreferrer&quot;&gt;Anthropic: Statement on the US government directive to suspend access to Fable 5 and Mythos 5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://aws.amazon.com/blogs/aws/anthropic-claude-fable-5-on-aws-mythos-class-capabilities-with-built-in-safeguards-now-available/&quot; rel=&quot;noopener noreferrer&quot;&gt;AWS News Blog: Anthropic Claude Fable 5 on AWS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.businessinsider.com/why-white-house-ordered-export-controls-anthropic-mythos-fable-2026-6&quot; rel=&quot;noopener noreferrer&quot;&gt;Business Insider: Inside the whirlwind 24 hours that led the White House to slap export controls on Anthropic&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://m.economictimes.com/tech/artificial-intelligence/amazon-ceo-raised-concerns-about-anthropic-ai-models-before-trump-crackdown-report/amp_articleshow/131708526.cms&quot; rel=&quot;noopener noreferrer&quot;&gt;Reuters via The Economic Times: Amazon CEO raised concerns about Anthropic AI models before Trump crackdown&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.techtimes.com/articles/318350/20260614/amazon-triggered-claude-fable-5-shutdown-investor-cloud-host-now-regulator.htm&quot; rel=&quot;noopener noreferrer&quot;&gt;TechTimes: Amazon Triggered Claude Fable 5 Shutdown&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Cover image: &lt;a href=&quot;https://commons.wikimedia.org/wiki/File:Datacenter.jpg&quot; rel=&quot;noopener noreferrer&quot;&gt;Datacenter.jpg&lt;/a&gt;, Wil Weterings / Wikimedia Commons, Public Domain&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>Codex History Loading Slowly? Open a Fresh Chat and Let Codex Diagnose It</title><link>https://blog.js.gripe/2026/05/codex-history-load-slow-maintenance/</link><guid isPermaLink="true">https://blog.js.gripe/2026/05/codex-history-load-slow-maintenance/</guid><pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate><dc:date>2026-05-19T00:00:00.000Z</dc:date><dc:creator>toewpq</dc:creator><dc:language>en</dc:language><description>When Codex history feels slow, do not start with database surgery. Open a new Codex chat, ask it to inspect safely, and let it suggest the fix.</description><category>blog</category><category>Codex</category><category>Development Efficiency</category><category>Debugging</category><content:encoded>&lt;p&gt;Sometimes Codex history opens as if it is carrying a very old suitcase upstairs. You click a past conversation, wait, click again, wait again, and eventually start blaming the network, the remote host, the workspace, and maybe your own habit of keeping one conversation alive forever.&lt;/p&gt;
&lt;p&gt;Before doing database surgery, try the simple path: &lt;strong&gt;open a fresh Codex chat, ask Codex to diagnose why the old history is slow, and let it clean the history for you.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It sounds a little circular: Codex is slow, so we ask Codex to fix Codex. But it works because the slow part is often an old thread, a swollen log database, a huge workspace, or a tight remote VPS. A new chat is usually clean enough to act as the calm outside observer.&lt;/p&gt;
&lt;h2&gt;Start From a Clean Desk&lt;/h2&gt;
&lt;p&gt;If one history thread is painfully slow, stop waiting inside that old thread. Open a new Codex chat and say:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Codex history is loading slowly on this machine.
Please diagnose likely causes. First inspect ~/.codex, workspace size,
log files, session count, and database sizes in read-only mode.
Do not delete anything. Tell me the risks and recommendations first.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The key is to ask for judgment first, not deletion. The fresh chat is not dragging the old context behind it, so it is a better place to troubleshoot.&lt;/p&gt;
&lt;h2&gt;What Codex Should Check&lt;/h2&gt;
&lt;p&gt;Ask Codex to inspect these items in order:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;1. unusually large files under ~/.codex;
2. session count and largest files under sessions;
3. whether logs_2.sqlite is oversized;
4. whether state_5.sqlite and session_index.jsonl look normal;
5. whether the workspace contains huge node_modules, dist, logs, or caches;
6. whether the remote host is running out of disk.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This matters even more on small VPS machines used through VS Code Remote + Codex. When the disk is only a few GB, logs, build output, dependencies, and editor state can make the whole machine feel sticky.&lt;/p&gt;
&lt;h2&gt;A Better Prompt&lt;/h2&gt;
&lt;p&gt;This prompt is usually enough:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Please help me troubleshoot slow Codex history loading.

Requirements:
- inspect read-only first;
- explain which files may affect history loading;
- separate safe-to-clean items from do-not-touch items;
- if cleanup is needed, give me a backup plan first;
- if it is safe, help me clean Codex history;
- tell me how to return to the VS Code Codex home screen and confirm the result.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Codex will usually list inspection commands first, then use the output to decide whether the problem is logs, sessions, workspace cache, or disk pressure.&lt;/p&gt;
&lt;h2&gt;Let It Clean the History&lt;/h2&gt;
&lt;p&gt;If your main goal is to make the history home screen feel clean again, continue with:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Please help me clean Codex history.
Requirements:
- tell me which files or records will be cleaned first;
- make any necessary backup before cleanup;
- do not affect current authentication or plugin configuration;
- after cleanup, tell me how to confirm it on the VS Code Codex home screen.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After cleanup, go back to VS Code and open or refresh the Codex home screen. The history list should be cleared or noticeably shorter. That feedback is pleasantly direct: you do not have to guess from database sizes, because the home screen tells you what changed.&lt;/p&gt;
&lt;h2&gt;Common Answers&lt;/h2&gt;
&lt;p&gt;The first common answer is that the old thread is simply too long. That does not need a heroic fix. Keep the old thread as reference and continue the work in a new chat.&lt;/p&gt;
&lt;p&gt;The second is that &lt;code&gt;~/.codex/logs_2.sqlite&lt;/code&gt; is very large. That is a log database, not the real conversation history. The safer route is to back it up, remove low-value logs, and compact the database.&lt;/p&gt;
&lt;p&gt;The third is a heavy workspace. &lt;code&gt;node_modules&lt;/code&gt;, &lt;code&gt;dist&lt;/code&gt;, build caches, downloads, and generated files can slow both Codex and VS Code Remote.&lt;/p&gt;
&lt;p&gt;The fourth is a nearly full remote disk. Once a small VPS runs out of breathing room, shells, editors, logs, and databases all start feeling worse.&lt;/p&gt;
&lt;h2&gt;If Cleanup Is Needed, Wear a Seatbelt&lt;/h2&gt;
&lt;p&gt;If Codex says the log database is oversized, ask for a conservative cleanup plan:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Please give me a conservative cleanup plan:
1. back up ~/.codex/logs_2.sqlite first;
2. clean only TRACE, DEBUG, and old INFO logs;
3. keep WARN and ERROR;
4. run quick_check;
5. show file sizes before and after;
6. do not delete sessions, state_5.sqlite, or session_index.jsonl.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That last line matters. &lt;code&gt;sessions&lt;/code&gt;, &lt;code&gt;state_5.sqlite&lt;/code&gt;, and &lt;code&gt;session_index.jsonl&lt;/code&gt; are the parts you should treat carefully.&lt;/p&gt;
&lt;h2&gt;When to Touch Nothing&lt;/h2&gt;
&lt;p&gt;If you are debugging Codex itself, or you plan to send complete logs upstream, do not clean yet. Let Codex summarize the situation, list file sizes, and prepare the evidence.&lt;/p&gt;
&lt;p&gt;If a database health check fails, do not start deleting rows. Back it up first, then ask Codex whether recovery, copying, or rebuilding an index is the better move. Slow is annoying; accidental deletion is worse.&lt;/p&gt;
&lt;h2&gt;Takeaway&lt;/h2&gt;
&lt;p&gt;When Codex history loads slowly, do not immediately dive into &lt;code&gt;~/.codex&lt;/code&gt; with a wrench. The easier path is:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;open a fresh Codex chat -&amp;gt; ask for read-only inspection -&amp;gt; let it diagnose -&amp;gt; clean history -&amp;gt; confirm on the VS Code Codex home screen
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It is like moving to a clean desk before sorting a messy one. You get a clearer view, fewer risky guesses, and a much better chance of keeping the real conversation history intact.&lt;/p&gt;
</content:encoded></item><item><title>Using VS Code Remote SSH to Connect to a Remote Host: From Extension to Remote Folder</title><link>https://blog.js.gripe/2026/05/vscode-remote-ssh-connect-host/</link><guid isPermaLink="true">https://blog.js.gripe/2026/05/vscode-remote-ssh-connect-host/</guid><pubDate>Sun, 10 May 2026 00:00:00 GMT</pubDate><dc:date>2026-05-10T00:00:00.000Z</dc:date><dc:creator>toewpq</dc:creator><dc:language>en</dc:language><description>A practical Windows workflow for connecting VS Code to a remote Linux host over SSH, configuring an SSH Host, and opening a remote folder from Remote Explorer.</description><category>blog</category><category>VS Code</category><category>Remote SSH</category><content:encoded>&lt;p&gt;Remote development is not just about moving files between machines. The practical goal is to let local VS Code open a folder that actually lives on a remote host. VS Code Remote SSH does exactly that: Windows handles the UI and interaction, while the remote host stores files and provides the remote terminal.&lt;/p&gt;
&lt;p&gt;This article focuses on the practical connection setup. VS Code Remote SSH commonly supports two ways to connect to a server: SSH key authentication and password authentication.&lt;/p&gt;
&lt;h2&gt;When this workflow is useful&lt;/h2&gt;
&lt;p&gt;This setup is suitable for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;editing remote files directly on a cloud VM, NAS, router, or development machine;&lt;/li&gt;
&lt;li&gt;managing remote folders and remote terminals from VS Code;&lt;/li&gt;
&lt;li&gt;avoiding repeated manual file sync through SFTP, scp, or a file manager;&lt;/li&gt;
&lt;li&gt;switching quickly between multiple remote hosts.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This article only covers connecting VS Code to a remote host. It does not cover cloning projects, installing dependencies, or running builds.&lt;/p&gt;
&lt;h2&gt;Prepare the connection details&lt;/h2&gt;
&lt;p&gt;Before connecting, prepare these values:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;HostName: public IP address or domain of the remote host
User: remote user, such as root, ubuntu, debian, or a custom user
Port: SSH port, usually 22 unless customized
IdentityFile: path to the local private key, required for key-based login
Password: remote user password, required for password login, not recommended to store in config
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Windows 10/11 usually includes the OpenSSH client. Check it in PowerShell:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;ssh -V
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If an OpenSSH version is printed, the local SSH client is available.&lt;/p&gt;
&lt;h2&gt;Option 1: key-based login&lt;/h2&gt;
&lt;p&gt;Key-based login is the recommended approach. It avoids typing the server password repeatedly and works better for long-term VS Code Remote SSH use.&lt;/p&gt;
&lt;h3&gt;Generate an SSH key&lt;/h3&gt;
&lt;p&gt;Run this in PowerShell:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;ssh-keygen -t ed25519 -C &quot;vscode-remote&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;By default, this creates:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;C:\Users\User\.ssh\id_ed25519
C:\Users\User\.ssh\id_ed25519.pub
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Where:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;id_ed25519&lt;/code&gt; is the private key and should stay on your local machine;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;id_ed25519.pub&lt;/code&gt; is the public key and can be added to the remote host.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Print the public key:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;Get-Content &quot;$env:USERPROFILE\.ssh\id_ed25519.pub&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Append it to the remote host&apos;s file:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;~/.ssh/authorized_keys
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Recommended permissions on the remote host:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After the public key is ready, use the local private key path in the VS Code SSH Host configuration later.&lt;/p&gt;
&lt;h2&gt;Option 2: password login&lt;/h2&gt;
&lt;p&gt;For a temporary test server, or before you have configured a public key, you can also use password login. In this case, the local SSH Host config does not need an &lt;code&gt;IdentityFile&lt;/code&gt;. If the server allows password login, VS Code Remote SSH will prompt for the remote user&apos;s password when connecting to this Host.&lt;/p&gt;
&lt;p&gt;Password login depends on the remote SSH server allowing &lt;code&gt;PasswordAuthentication&lt;/code&gt;. Some VPS images disable password login by default and only allow key-based login. If you enable password login, use a strong password and consider pairing it with a non-default port, firewall rules, or Fail2ban-style login protection.&lt;/p&gt;
&lt;h2&gt;Connection steps&lt;/h2&gt;
&lt;h3&gt;1. Install the Remote - SSH extension&lt;/h3&gt;
&lt;p&gt;Install the VS Code extension:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Remote - SSH
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After installation, restart VS Code once so Remote Explorer, the command palette entries, and SSH configuration entry points are refreshed.&lt;/p&gt;
&lt;h3&gt;2. Configure the SSH Host&lt;/h3&gt;
&lt;p&gt;Open the command palette:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Ctrl + Shift + P
Remote-SSH: Open SSH Configuration File...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Choose the SSH config file under your Windows user directory:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;C:\Users\User\.ssh\config
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;For key-based login, add a config like this:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sshconfig&quot;&gt;Host blog-dev
  HostName your-server-ip-or-domain
  User root
  Port 22
  IdentityFile C:\Users\User\.ssh\id_ed25519
  ServerAliveInterval 30
  ServerAliveCountMax 3
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;For password login, omit &lt;code&gt;IdentityFile&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sshconfig&quot;&gt;Host blog-dev-password
  HostName your-server-ip-or-domain
  User root
  Port 22
  PreferredAuthentications password,keyboard-interactive
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After saving the config, the Host appears in VS Code&apos;s Remote Explorer.&lt;/p&gt;
&lt;h3&gt;3. Connect to the remote host&lt;/h3&gt;
&lt;p&gt;You can connect from the command palette:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Ctrl + Shift + P
Remote-SSH: Connect to Host...
blog-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Or click the Remote Explorer icon in the left activity bar, switch to the &lt;code&gt;Remote (Tunnels/SSH)&lt;/code&gt; view, expand &lt;code&gt;SSH&lt;/code&gt;, and connect to the Host you configured. After the connection succeeds, the Host will show a connected state.&lt;/p&gt;
&lt;p&gt;On the first connection, VS Code installs VS Code Server on the remote host. For password login, VS Code prompts for the remote user&apos;s password. For key-based login, it usually opens the remote window directly.&lt;/p&gt;
&lt;h3&gt;4. Open a remote folder&lt;/h3&gt;
&lt;p&gt;After connecting, expand the Host in Remote Explorer and choose a remote folder to open, for example:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;/opt
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;or:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;/home/deploy
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After that, the local VS Code window is operating on the remote folder. Editing files, opening terminals, and saving content all happen on the remote host.&lt;/p&gt;
&lt;h2&gt;Limits on small VPS disks&lt;/h2&gt;
&lt;p&gt;On the first connection, VS Code Remote SSH installs VS Code Server on the remote host, usually under:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;~/.vscode-server
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Remote extensions, multiple remote windows, and old VS Code Server versions also consume disk space on the server. On small edgeproxy-style VPS instances with only around 5 GB of allocated storage, this can become a real limitation. &lt;code&gt;~/.vscode-server&lt;/code&gt; and remote extension caches can fill the disk. Once the disk is full, VS Code Server installation may fail, the remote terminal may behave oddly, and file saves may fail.&lt;/p&gt;
&lt;p&gt;Before using a small VPS for Remote SSH, check the available space:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;df -h
du -sh ~/.vscode-server ~/.cache 2&amp;gt;/dev/null
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If space is tight, reduce the number of remote extensions or delete old VS Code Server version directories:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;rm -rf ~/.vscode-server/bin/&amp;lt;old-version-directory&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If the VPS is mainly used for proxying, forwarding, or lightweight services, it is usually not a good long-term development machine. Remote SSH works best on a host with some spare disk, memory, and CPU headroom.&lt;/p&gt;
&lt;h2&gt;Common issues&lt;/h2&gt;
&lt;h3&gt;1. The first connection is slow&lt;/h3&gt;
&lt;p&gt;On the first connection, VS Code installs server-side components on the remote host. As long as the network is stable, let the setup finish. Later connections are usually much faster.&lt;/p&gt;
&lt;h3&gt;2. The key is correct but SSH still asks for a password&lt;/h3&gt;
&lt;p&gt;Check these paths first:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ls -ld ~/.ssh
ls -l ~/.ssh/authorized_keys
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Recommended permissions:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Also confirm that the local &lt;code&gt;IdentityFile&lt;/code&gt; points to the private key, not the &lt;code&gt;.pub&lt;/code&gt; public key.&lt;/p&gt;
&lt;h3&gt;3. known_hosts error&lt;/h3&gt;
&lt;p&gt;If the server was reinstalled or the IP was reused, the local host key may conflict. Confirm that the host is yours, then remove the old record:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;ssh-keygen -R server-ip-or-domain
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Reconnect afterward.&lt;/p&gt;
&lt;h2&gt;Summary&lt;/h2&gt;
&lt;p&gt;VS Code Remote SSH is not a remote desktop replacement. It lets VS Code manage folders on a remote host directly over SSH. In practice, the sequence is simple: install the Remote - SSH extension, restart VS Code, configure the SSH Host, then connect from Remote Explorer and open a remote folder.&lt;/p&gt;
&lt;h2&gt;References&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;VS Code Remote SSH docs: &lt;a href=&quot;https://code.visualstudio.com/docs/remote/ssh&quot; rel=&quot;noopener noreferrer&quot;&gt;https://code.visualstudio.com/docs/remote/ssh&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;VS Code Remote SSH Marketplace: &lt;a href=&quot;https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh&quot; rel=&quot;noopener noreferrer&quot;&gt;https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>Installing Codex After Connecting with VS Code Remote SSH: Why the Remote Window Needs Its Own Install and Login</title><link>https://blog.js.gripe/2026/05/vscode-remote-codex-dev-efficiency/</link><guid isPermaLink="true">https://blog.js.gripe/2026/05/vscode-remote-codex-dev-efficiency/</guid><pubDate>Sun, 10 May 2026 00:00:00 GMT</pubDate><dc:date>2026-05-10T00:00:00.000Z</dc:date><dc:creator>toewpq</dc:creator><dc:language>en</dc:language><description>After connecting to a remote host with VS Code Remote SSH, Codex usually needs to be installed and authenticated again inside the remote window before its sidebar icon and features appear.</description><category>blog</category><category>VS Code</category><category>Remote SSH</category><category>Codex</category><content:encoded>&lt;p&gt;After connecting to a remote host with VS Code Remote SSH, it is easy to hit a confusing situation: Codex is already installed in local VS Code, but after switching to the remote SSH window, the Codex icon does not appear in the sidebar like it does locally.&lt;/p&gt;
&lt;p&gt;The reason is simple: a Remote SSH window is not just a normal local window. VS Code runs a remote extension environment on the remote host. Extensions and login state from the local client are not always carried into that remote environment. For Codex, the remote window usually needs its own extension install and its own authentication step.&lt;/p&gt;
&lt;p&gt;This article uses the generic host name &lt;code&gt;remote-dev&lt;/code&gt; so no real server name is exposed.&lt;/p&gt;
&lt;h2&gt;Before You Start&lt;/h2&gt;
&lt;p&gt;First confirm that VS Code Remote SSH is already connected:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Remote Explorer shows the SSH host remote-dev
The host is connected
The lower-left corner shows SSH: remote-dev
The integrated terminal prompt comes from the remote host
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If the current window is still showing a local Windows path such as &lt;code&gt;C:\Users\User\Desktop&lt;/code&gt;, it is not a remote workspace yet. Connect from Remote Explorer and open a remote folder such as:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;/opt
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;or:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;/home/deploy
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Why Codex Must Be Installed Again Remotely&lt;/h2&gt;
&lt;p&gt;After a Remote SSH connection, VS Code extensions roughly fall into two places:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;local UI-side extensions, running in the local VS Code client;&lt;/li&gt;
&lt;li&gt;remote workspace extensions, running in the VS Code Server environment on the remote host.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Codex needs to read the current workspace, show a sidebar entry, and interact with files in the remote folder. Because the workspace in a Remote SSH window lives on the remote host, having Codex installed only on the local client is not enough. You need to install Codex in the remote window, usually through an action like:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Install in SSH: remote-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After that, the Codex icon can appear normally in that remote window.&lt;/p&gt;
&lt;h2&gt;Installation Steps&lt;/h2&gt;
&lt;h3&gt;1. Connect with Remote SSH First&lt;/h3&gt;
&lt;p&gt;Open Remote Explorer in VS Code, choose &lt;code&gt;Remote (Tunnels/SSH)&lt;/code&gt;, expand &lt;code&gt;SSH&lt;/code&gt;, and connect to the example host:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;remote-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After the connection succeeds, open a remote folder such as &lt;code&gt;/opt&lt;/code&gt;. This matters because Codex needs to be installed into the current remote window, not just the local VS Code window.&lt;/p&gt;
&lt;h3&gt;2. Install the Codex Extension in the Remote Window&lt;/h3&gt;
&lt;p&gt;Open the Extensions view:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Ctrl + Shift + X
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Search for:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Codex
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If Codex is already installed locally but not available in the remote window, the extension page usually shows a remote install action. Choose the button that looks like:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Install in SSH: remote-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Do not only check whether Codex is installed locally. The important part is whether it is installed in the current remote SSH window.&lt;/p&gt;
&lt;h3&gt;3. Reload or Restart the VS Code Window&lt;/h3&gt;
&lt;p&gt;If the Codex icon does not appear immediately after installation, run:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Ctrl + Shift + P
Developer: Reload Window
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also close the current remote window and reconnect to &lt;code&gt;remote-dev&lt;/code&gt; through Remote SSH. In many cases, the icon appears reliably after a reload.&lt;/p&gt;
&lt;h3&gt;4. Authenticate Codex Again&lt;/h3&gt;
&lt;p&gt;Codex in the remote window needs its own authentication. Even if local VS Code has already authenticated Codex, the Remote SSH window may still ask you to sign in again or configure an API key.&lt;/p&gt;
&lt;p&gt;Open the Codex icon and follow the prompt. Common options include:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Sign in with a ChatGPT / OpenAI account
or configure an OpenAI API key
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After authentication, Codex can read the current remote folder, help edit files, and work with the remote workspace context.&lt;/p&gt;
&lt;h2&gt;Common Symptoms&lt;/h2&gt;
&lt;h3&gt;1. The local window has a Codex icon, but the remote window does not&lt;/h3&gt;
&lt;p&gt;First check whether Codex is installed in the remote SSH window. Local installation does not automatically mean remote availability.&lt;/p&gt;
&lt;h3&gt;2. The extension page says installed, but the sidebar still has no icon&lt;/h3&gt;
&lt;p&gt;Check whether the lower-left corner says &lt;code&gt;SSH: remote-dev&lt;/code&gt;. If not, you are still in a local window. If you are already in the remote window, run &lt;code&gt;Developer: Reload Window&lt;/code&gt;.&lt;/p&gt;
&lt;h3&gt;3. The remote window asks you to sign in&lt;/h3&gt;
&lt;p&gt;That is normal. The remote host and local client may not share the same authentication state. Complete Codex sign-in or API key configuration again.&lt;/p&gt;
&lt;h3&gt;4. The remote host has very little disk space&lt;/h3&gt;
&lt;p&gt;Codex, VS Code Server, and other remote extensions all consume remote disk space. On a small VPS with around 5 GB of storage, check the available space first:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;df -h
du -sh ~/.vscode-server ~/.cache 2&amp;gt;/dev/null
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If space is exhausted, remote extension installation may fail and the Codex icon may not appear.&lt;/p&gt;
&lt;h2&gt;Summary&lt;/h2&gt;
&lt;p&gt;When using VS Code Remote SSH with Codex, remember the key distinction: the local VS Code client and the remote SSH window are not the same extension runtime. Codex installed locally does not mean Codex is installed remotely; Codex authenticated locally does not mean the remote window is already authenticated.&lt;/p&gt;
&lt;p&gt;A reliable sequence is:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Connect with Remote SSH
Open a remote folder
Install Codex in the remote window
Reload or restart the VS Code window
Authenticate Codex again
Confirm that the Codex icon appears in the remote sidebar
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After that, Codex can behave in the remote host workspace much like it does in a local VS Code window.&lt;/p&gt;
&lt;h2&gt;References&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Codex IDE extension docs: &lt;a href=&quot;https://developers.openai.com/codex/ide&quot; rel=&quot;noopener noreferrer&quot;&gt;https://developers.openai.com/codex/ide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Codex CLI docs: &lt;a href=&quot;https://developers.openai.com/codex/cli&quot; rel=&quot;noopener noreferrer&quot;&gt;https://developers.openai.com/codex/cli&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;VS Code Remote SSH docs: &lt;a href=&quot;https://code.visualstudio.com/docs/remote/ssh&quot; rel=&quot;noopener noreferrer&quot;&gt;https://code.visualstudio.com/docs/remote/ssh&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>Fixing SMS Reception on RM502Q-AE with OpenWrt QModem: IMS, 5G SA, and SMS Bearer Settings</title><link>https://blog.js.gripe/2026/04/rm502q-ae-openwrt-qmodem-sms-ims-fix/</link><guid isPermaLink="true">https://blog.js.gripe/2026/04/rm502q-ae-openwrt-qmodem-sms-ims-fix/</guid><pubDate>Wed, 29 Apr 2026 00:00:00 GMT</pubDate><dc:date>2026-04-29T00:00:00.000Z</dc:date><dc:creator>toewpq</dc:creator><dc:language>en</dc:language><description>A real troubleshooting note: QModem showed no incoming SMS, and the root cause was IMS being disabled while the RM502Q-AE was registered on China Mobile NR5G SA. Enabling IMS and rebooting restored SMS reception.</description><category>blog</category><category>OpenWrt</category><category>QModem</category><category>IMS</category><category>SMS</category><content:encoded>&lt;p&gt;This is a real troubleshooting note from an OpenWrt setup using QModem to manage a Quectel RM502Q-AE. QModem could not show any incoming SMS. The final cause was not the web page, not a full SMS store, and not a wrong ME/SM selection. The modem was registered on China Mobile NR5G SA with IMS disabled. After enabling IMS and rebooting the modem, SMS reception recovered.&lt;/p&gt;
&lt;p&gt;Identity-related values are redacted in this note. If CIMI/IMSI needs to be mentioned, it is written only as &lt;code&gt;46007************&lt;/code&gt; or as redacted. Real SMS content is not included.&lt;/p&gt;
&lt;h2&gt;1. Background and Symptoms&lt;/h2&gt;
&lt;p&gt;The setup was straightforward: OpenWrt, QModem, a Quectel RM502Q-AE, and the AT port at &lt;code&gt;/dev/mhi_DUN&lt;/code&gt;. The modem reported:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;ATI
Quectel
RM502Q-AE
Revision: RM502QAEAAR13A04M4G

AT+QGMR
RM502QAEAAR13A04M4G_01.203.01.203
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The operator was China Mobile, and the modem had been camped on NR5G SA:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;AT+QNWINFO
+QNWINFO: &quot;TDD NR5G&quot;,&quot;46000&quot;,&quot;NR5G BAND 79&quot;,721824
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;NR5G BAND 41&lt;/code&gt; also appeared during troubleshooting. 5G SA registration eventually looked normal:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;AT+C5GREG?
+C5GREG: 2,1,...,11,...

AT+C5GREG?
+C5GREG: 0,1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The visible symptom was simple: the QModem SMS page did not show any message. The API response had an empty &lt;code&gt;msg&lt;/code&gt; array, while the reported storage capability looked valid:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;{
  &quot;msg&quot;: [],
  &quot;result&quot;: {},
  &quot;sms_capabilities&quot;: {
    &quot;mem1&quot;: &quot;MT&quot;,
    &quot;mem2&quot;: &quot;MT&quot;,
    &quot;mem3&quot;: &quot;MT&quot;,
    &quot;ME&quot;: { &quot;used&quot;: &quot;0&quot;, &quot;total&quot;: &quot;127&quot; },
    &quot;SM&quot;: {}
  }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;2. First, Verify It Is Not Just a QModem Page Issue&lt;/h2&gt;
&lt;p&gt;The first useful step was to check whether messages had reached any modem-readable SMS store. &lt;code&gt;ME&lt;/code&gt;, &lt;code&gt;MT&lt;/code&gt;, &lt;code&gt;SM&lt;/code&gt;, and &lt;code&gt;SR&lt;/code&gt; were all empty:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;AT+CPMS=&quot;ME&quot;,&quot;ME&quot;,&quot;ME&quot;
+CPMS: 0,127,0,127,0,127
OK

AT+CPMS=&quot;MT&quot;,&quot;MT&quot;,&quot;MT&quot;
+CPMS: 0,127,0,127,0,127
OK

AT+CPMS=&quot;SM&quot;,&quot;SM&quot;,&quot;SM&quot;
+CPMS: 0,50,0,50,0,50
OK

AT+CPMS=&quot;SR&quot;,&quot;SR&quot;,&quot;SR&quot;
+CPMS: 0,5,0,5,0,5
OK

AT+CMGL=4
OK
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;AT+CMGL=4&lt;/code&gt; returned &lt;code&gt;OK&lt;/code&gt; but no &lt;code&gt;+CMGL&lt;/code&gt; rows. That detail matters. When &lt;code&gt;ME&lt;/code&gt;, &lt;code&gt;MT&lt;/code&gt;, &lt;code&gt;SM&lt;/code&gt;, and &lt;code&gt;SR&lt;/code&gt; are all empty, the problem is not that QModem read the wrong ME/SM store, and it is not a full store. The SMS had not entered modem-readable storage at all.&lt;/p&gt;
&lt;h2&gt;3. A Common CMGL Trap in PDU Mode&lt;/h2&gt;
&lt;p&gt;Early in the session, this command returned an error:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;AT+CMGL=&quot;ALL&quot;
ERROR
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That can look like an SMS subsystem failure, but it was only a mode mismatch. The modem was in PDU mode:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;AT+CMGF?
+CMGF: 0

AT+CMGL=?
+CMGL: (0-4)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In PDU mode, list all messages with:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;AT+CMGL=4
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;not with:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;AT+CMGL=&quot;ALL&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;AT+CMGL=&quot;ALL&quot;&lt;/code&gt; is appropriate after switching to text mode with &lt;code&gt;AT+CMGF=1&lt;/code&gt;. For verification codes, Chinese SMS, and Unicode payloads, PDU mode is usually the safer default, so this setup stayed with &lt;code&gt;AT+CMGF=0&lt;/code&gt; and &lt;code&gt;AT+CMGL=4&lt;/code&gt;.&lt;/p&gt;
&lt;h2&gt;4. SMS Storage, URC, and Notification Settings&lt;/h2&gt;
&lt;p&gt;The following baseline SMS settings were checked or applied during troubleshooting:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;AT+CMEE=2
AT+QURCCFG=&quot;urcport&quot;,&quot;all&quot;
AT+CSMS=1
AT+CMGF=0
AT+CPMS=&quot;MT&quot;,&quot;MT&quot;,&quot;MT&quot;
AT+CNMI=2,1,0,0,0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Their roles were:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;AT+QURCCFG=&quot;urcport&quot;,&quot;all&quot;&lt;/code&gt;: emit URCs on all available AT ports, avoiding a mismatch between QModem&apos;s port and the manually tested AT port.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AT+CPMS=&quot;MT&quot;,&quot;MT&quot;,&quot;MT&quot;&lt;/code&gt;: use the modem&apos;s combined SMS view so messages do not land in &lt;code&gt;ME&lt;/code&gt; or &lt;code&gt;SM&lt;/code&gt; while the reader watches the other one.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AT+CNMI=2,1,0,0,0&lt;/code&gt;: after a new SMS is stored, notify the terminal with &lt;code&gt;+CMTI&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AT+CMGF=0&lt;/code&gt;: keep PDU mode, which is a better fit for verification codes, Chinese text, and Unicode content.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If text mode is used instead, the matching commands are:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;AT+CMGF=1
AT+CMGL=&quot;ALL&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;5. 5G SA Was Registered, but SMS Still Did Not Reach Storage&lt;/h2&gt;
&lt;p&gt;5G SA registration was normal, yet no SMS reached any storage. The SMS bearer preference then became interesting:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;AT+CGSMS?
+CGSMS: 1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;CGSMS=1&lt;/code&gt; can be understood as preferring the traditional CS domain. That was not a good fit for this China Mobile NR5G SA case. It was changed to:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;AT+CGSMS=2
OK
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;CGSMS=2&lt;/code&gt; can be read as Packet domain preferred / PS preferred. This should not be treated as a universal rule: behavior can vary by operator, firmware, and registration state. For this NR5G SA case, though, continuing to prefer the traditional CS domain was not the right direction.&lt;/p&gt;
&lt;h2&gt;6. The Key Finding: IMS Was Disabled&lt;/h2&gt;
&lt;p&gt;The decisive check was IMS:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;AT+QCFG=&quot;ims&quot;
+QCFG: &quot;ims&quot;,0,0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;IMS was disabled. It was then enabled:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;AT+QCFG=&quot;ims&quot;,1
OK
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After rebooting the modem, SMS reception recovered. In this RM502Q-AE on China Mobile NR5G SA case, the critical fix was not clearing storage or changing how QModem read messages. It was enabling IMS.&lt;/p&gt;
&lt;h2&gt;7. Fix Steps&lt;/h2&gt;
&lt;p&gt;The core fix was:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;AT+CMEE=2
AT+QCFG=&quot;ims&quot;,1
AT+CFUN=1,1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After the modem rebooted, these SMS settings were applied again:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;AT+QURCCFG=&quot;urcport&quot;,&quot;all&quot;
AT+CGSMS=2
AT+CSMS=1
AT+CMGF=0
AT+CPMS=&quot;MT&quot;,&quot;MT&quot;,&quot;MT&quot;
AT+CNMI=2,1,0,0,0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The actual result in this case: after IMS was enabled and the modem rebooted, QModem could receive SMS.&lt;/p&gt;
&lt;h2&gt;8. Rollback Steps&lt;/h2&gt;
&lt;p&gt;If enabling IMS causes registration, dial-up, or network issues, roll it back with:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;AT+QCFG=&quot;ims&quot;,0
AT+CFUN=1,1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In this case, however, enabling IMS was the action that restored SMS reception, so the final recommendation is to keep:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;AT+QCFG=&quot;ims&quot;,1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If the SMS bearer preference needs to be rolled back:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;AT+CGSMS=1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That is not recommended as the final state for this NR5G SA case, because SMS was restored while using:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;AT+CGSMS: 2
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;9. Suggested QModem Post-Init AT Commands&lt;/h2&gt;
&lt;p&gt;Add this block to QModem&apos;s post-initialization AT commands:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;AT+QCFG=&quot;ims&quot;,1
AT+QURCCFG=&quot;urcport&quot;,&quot;all&quot;
AT+CGSMS=2
AT+CSMS=1
AT+CMGF=0
AT+CPMS=&quot;MT&quot;,&quot;MT&quot;,&quot;MT&quot;
AT+CNMI=2,1,0,0,0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This does not depend on &lt;code&gt;AT&amp;amp;W&lt;/code&gt;. During the actual troubleshooting, &lt;code&gt;AT&amp;amp;W&lt;/code&gt; did not reliably return &lt;code&gt;OK&lt;/code&gt;, and the OpenWrt/QModem workflow is better served by replaying critical initialization commands after startup. That keeps the SMS state predictable even if profile persistence is uncertain.&lt;/p&gt;
&lt;h2&gt;10. Follow-Up: How to Tell Whether Carrier Aggregation Is Active&lt;/h2&gt;
&lt;p&gt;After SMS recovered, carrier aggregation was checked:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;AT+QCAINFO
+QCAINFO: &quot;PCC&quot;,721824,6,&quot;NR5G BAND 79&quot;,347

AT+QNWINFO
+QNWINFO: &quot;TDD NR5G&quot;,&quot;46000&quot;,&quot;NR5G BAND 79&quot;,721824

AT+QENG=&quot;servingcell&quot;
+QENG: &quot;servingcell&quot;,&quot;NOCONN&quot;,&quot;NR5G-SA&quot;,&quot;TDD&quot;,460,00,...,721824,79,...

AT+QCFG=&quot;lteca&quot;
ERROR
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;QCAINFO&lt;/code&gt; showed only &lt;code&gt;PCC&lt;/code&gt; and no &lt;code&gt;SCC&lt;/code&gt;, so carrier aggregation was not active at the moment of that query. But &lt;code&gt;QENG=&quot;servingcell&quot;&lt;/code&gt; showed &lt;code&gt;NOCONN&lt;/code&gt;, meaning the modem was idle or not in a connected data state. That cannot prove the modem or network does not support CA.&lt;/p&gt;
&lt;p&gt;The right way to check is to run a speed test or a large download, then repeatedly query:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;AT+QCAINFO
AT+QENG=&quot;servingcell&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If &lt;code&gt;SCC&lt;/code&gt; appears, CA is being scheduled by the network. &lt;code&gt;AT+QCFG=&quot;lteca&quot;&lt;/code&gt; returning &lt;code&gt;ERROR&lt;/code&gt; only means this firmware does not support or expose that QCFG item. It does not mean CA is disabled.&lt;/p&gt;
&lt;p&gt;For NR CA under NR5G SA, the result usually depends more on network scheduling, base station configuration, plan policy, signal quality, band combinations, and whether bands are locked. Do not write unknown AT commands blindly just to test CA, and do not disable the IMS setting that already fixed SMS reception.&lt;/p&gt;
&lt;h2&gt;11. Conclusion&lt;/h2&gt;
&lt;p&gt;The conclusion from this case is clear:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The SMS store was not full.&lt;/li&gt;
&lt;li&gt;QModem was not merely reading the wrong &lt;code&gt;ME&lt;/code&gt; or &lt;code&gt;SM&lt;/code&gt; store.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ME&lt;/code&gt;, &lt;code&gt;MT&lt;/code&gt;, &lt;code&gt;SM&lt;/code&gt;, and &lt;code&gt;SR&lt;/code&gt; were all empty, so SMS had not entered modem-readable storage.&lt;/li&gt;
&lt;li&gt;The modem was on China Mobile NR5G SA, and 5G registration was normal.&lt;/li&gt;
&lt;li&gt;The key recovery action was enabling IMS with &lt;code&gt;AT+QCFG=&quot;ims&quot;,1&lt;/code&gt;, then rebooting with &lt;code&gt;AT+CFUN=1,1&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;After reboot, SMS reception worked.&lt;/li&gt;
&lt;li&gt;IMS should stay enabled, and the SMS-related settings should be fixed in QModem&apos;s post-init AT commands.&lt;/li&gt;
&lt;li&gt;For CA: &lt;code&gt;QCAINFO&lt;/code&gt; showed only &lt;code&gt;PCC&lt;/code&gt;, so CA was not active at that moment; &lt;code&gt;AT+QCFG=&quot;lteca&quot;&lt;/code&gt; returning &lt;code&gt;ERROR&lt;/code&gt; does not mean CA cannot work. The right check is to watch whether &lt;code&gt;SCC&lt;/code&gt; appears in &lt;code&gt;QCAINFO&lt;/code&gt; during heavy traffic.&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item></channel></rss>