今日已更新 123 条资讯 | 累计 42181 条内容
关于我们

标签:#ai

找到 7643 篇相关文章

AI 资讯

Your AI-generated tests aren't testing your code. They're testing the AI's blind spots.

Intro There's a pitch behind every "AI writes your tests too" workflow: more coverage, less manual toil, a safety net that used to take a sprint now takes minutes. The pitch skips over what that safety net is actually made of. When the same model writes the implementation and the test suite, you haven't added a second, independent check. You've asked one reviewer to grade its own homework and handed you the green checkmark as if someone else had signed off. The blind spot loop A model reasons about a function once, forms an implicit set of assumptions (input shapes, timezone handling, what counts as "empty"), and writes the implementation against those assumptions. Ask the same model to write tests for that function, and it doesn't re-derive correct behavior from scratch. It writes tests against the same assumptions it just used to write the code. If it assumed dates always arrive as ISO strings in UTC, the implementation assumes that, and the tests assume it too. The suite goes green. The assumption is still wrong. Tests that pass for the wrong reason (Illustrative, not a specific case, but recognizable to anyone who's shipped an AI-generated suite.) Picture a discount-calculation function where the model assumes quantities are always positive integers. The implementation skips a negative-quantity check. The generated tests exercise 1, 5, and 100, because those are the "normal" values a model reaching for plausible test data will reach for. Nothing ever asks what happens at -1 or 0, because neither pass, the code or the tests, ever considered them worth asking about. Coverage tooling reports 100% on this function. The bug ships anyway. Coverage becomes a false signal High line or branch coverage from an AI-authored suite tells you the code paths were exercised, not that the right inputs exercised them. A suite can hit every line of a function and still never send it a null, an empty array, a duplicate key, or a value at a type boundary, if the author, human or mode

2026-09-04 原文 →
AI 资讯

How to Build a Multi-Step AI Workflow with Human Approval

AI automation becomes much more useful when it can handle multiple steps instead of just answering a single prompt. For example, a sales workflow could receive a new lead, analyze the lead, check information in a CRM, create a personalized email, and then send it. But there is one problem: should AI be allowed to perform every action automatically? For important business actions, the safer approach is to add a human approval step . This gives you the speed of automation while keeping a person in control of decisions that matter. What Is a Multi-Step AI Workflow? A multi-step AI workflow is a process where several actions happen in sequence. For example: New Lead ↓ Collect Lead Information ↓ AI Analyzes Lead ↓ Generate Lead Score ↓ Create Personalized Email ↓ Human Approval ↓ Send Email ↓ Update CRM Instead of asking an AI model to do everything at once, each step has a specific responsibility. This makes the workflow easier to understand, test, and troubleshoot. Why Add Human Approval? AI can make mistakes. It might misunderstand a customer's message, assign the wrong lead score, generate an inappropriate response, or use incorrect information. A human approval step acts as a safety checkpoint. For example, you might allow AI to prepare an email , but require a salesperson to approve it before it is sent. The AI does the repetitive work. The human makes the final decision. A Simple Example Imagine a company receives leads through a website form. The workflow could work like this: Step 1: Capture the lead The form sends the customer's information to your automation system. Name: Sarah Company: ABC Ltd Message: "We need help automating our customer support." Step 2: AI analyzes the lead The AI can classify the lead based on the information provided. Industry: SaaS Interest: Customer Support Automation Priority: High Step 3: Generate a response The AI creates a personalized email. Hi Sarah, Thanks for reaching out. Based on your requirements, we may be able to help aut

2026-09-04 原文 →
AI 资讯

Stop Timing the Happy Path

The happy path was never the bottleneck. I was timing successes and shipping a miss. Production traffic is full of misses. Would you trust a bench that never fails? An AI rewrite loves the clean try. It wraps a lookup in except KeyError. It logs the miss "for observability." It looks professional. It is also a tiny furnace. Exceptions are not cheap branches. Log formatters are not free either. I learned that the loud way. Cheap generation makes the trap faster. A model will emit a polite miss path before you blink. Technical debt used to wait for a human. Now it arrives as a helpful patch tonight. The debt is not the lookup. The debt is a story about speed with no miss mix in the graph. I needed variants, not vibes. I used MonkeyCode's free model access and free server option to draft those variants. Disclosure: This article was prepared as part of MonkeyCode's product outreach. The model proposes shapes. It does not know your miss rate. If the graph disagrees, the patch dies. The lab I actually rerun This is a pocket harness. It is not a production claim. Steal the file. Change the mix. Keep your own picture. I am not posting a trophy chart from a machine you cannot see. # miss_bench.py # Lab harness. Treat printed rows as local output, not a benchmark paper. from __future__ import annotations import logging import time import tracemalloc from typing import Callable logging . basicConfig ( level = logging . DEBUG ) log = logging . getLogger ( " hot " ) HITS = { f " user: { i } " : i for i in range ( 800 )} KEYS = [ f " user: { i } " for i in range ( 1000 )] # 20% misses on purpose def lookup_except ( key : str ) -> int | None : try : return HITS [ key ] except KeyError : log . debug ( " cache miss key=%s " , key ) return None def lookup_get_quiet ( key : str ) -> int | None : return HITS . get ( key ) def lookup_get_log ( key : str ) -> int | None : value = HITS . get ( key ) if value is None : log . debug ( " cache miss key=%s " , key ) return value def run_mix (

2026-09-04 原文 →
AI 资讯

Muse Spark 1.3 - A Review

In this post I'll talk about my brief experience with muse , Meta's LLM harness for developers, as well as Muse Spark 1.3, their latest frontier-level model. The Bad I'll start with the bad, just because I like to end with the positive :) Skill Usage It's not that good following skills. If the skill has disable-model-invocation , sometimes it refuses to launch it, even if you manually call it. I think it happens when you call the skill mid-sentence, but it's not consistent. It's also not as good as other models at following skill instructions. It seems to get confused more often. For example, I have one skill that will address an issue from GitHub to PR. In Claude (Opus 5) and Cursor (Grok 4.6) it works perfectly. The first step is grilling the issue, after that's finished, the next step is autonomous, plan, implement with TDD, review and open PR. With Muse Spark 1.3, sometimes the skill will not continue and I have to nudge it for the next step, just saying something like "continue" is enough, but surely is annoying. Formatting The output is not great. Sometimes it will show me raw markdown, sometimes not. It's not consistent. Sandbox Having a sandbox is good, but in this case, it's a bit too restrictive. For example, I'm working with a Firebase project and I want to use the emulators. Well, too bad. The sandbox doesn't allow you to run files outside your workspace or use external ports. That would be great if I could add exceptions or some kind of configuration, but you can't. You are basically forced into --yolo mode if you don't want to be prompted on repeat for the same things over and over. What's sad is that even if you want to give them access, the models will just get stuck asking for permissions for the same thing over and over again and eventually they will just be stuck doing nothing. The Good Not everything is bad, of course. With a bit of effort I think it's actually quite usable. Price The main reason I decided to try the model. The subscription plan

2026-09-04 原文 →
AI 资讯

Password Reset Email Deliverability for Custom Domain Provider (and Bounce Evidence Limits)

Short answer: for marketplace password recovery, choose the delivery setup that can prove what happened to every message, then keep the suppression decision in your own system. Inbox placement matters, but an evidence trail is the decision axis. A custom sending domain with aligned DKIM and SPF, bounce events, and exportable history gives an auditor something better than a green dashboard. The decision note: which delivery shape leaves evidence? Delivery shape Evidence you can normally retain Best fit Trade-off Managed transactional service Webhooks, message ids, DNS guidance Teams that need mailbox feedback quickly Retention and event detail vary by contract Cloud notification primitive Basic accepted or failed status Small systems with an existing mail pipeline Bounce reason and suppression semantics may be thin Self-hosted MTA Full local logs and routing policy Data-residency teams with on-call capacity Reputation, feedback loops, and maintenance become yours My default is the first shape, with a local ledger beside it. The transport can change; the account-recovery policy should not. That split also makes a provider review concrete: ask for a sample event export, its retention period, and the fields that connect a bounce to a reset request. The catch is operational capacity. A self-hosted stack is not suitable for a marketplace that cannot staff reputation incidents, while a managed service is a poor fit when its export cannot satisfy your retention or residency rules. Keep the cloud primitive for low-volume internal tools, not as an automatic answer for customer recovery. What must a password reset email evidence trail capture? Begin with the reset request. Store a hash of a random, single-use token, its expiry, the account identifier, and the request time. OWASP recommends a consistent response for existing and non-existing accounts, rate limiting, and invalidation after use; those controls prevent delivery telemetry from becoming an account-enumeration signal

2026-09-04 原文 →
AI 资讯

Stop Wasting API Tokens: How to Bridge ChatGPT Web to Your IDE Using MCP

If you are an active user of AI-powered IDEs like Cursor, VS Code with Copilot, or Windsurf, you already know the sinking feeling of seeing this notification: "You have used 100% of your fast premium requests for this billing cycle." Suddenly, your snappy, context-aware coding assistant slows to a crawl or starts racking up expensive pay-as-you-go API bills. At the same time, you are likely paying $20/month for a ChatGPT Plus or Team subscription that sits underutilized in a browser tab. You use it for general questions, but it lacks direct, real-time access to your local codebase, forcing you to engage in a tedious dance of copying and pasting code blocks. What if you could bridge this gap? What if you could let ChatGPT Web do the heavy reasoning and planning using your local context, while saving your premium IDE tokens for fast auto-completions ? In this article, we’ll explore a highly novel, intermediate-level setup that does exactly this. By leveraging the Model Context Protocol (MCP) , Node.js , and secure Cloudflare Tunnels , you can route heavy code-planning tasks directly to your web-based ChatGPT Plus subscription safely and completely free of extra token charges. The Philosophy: Let ChatGPT Think, Let Your IDE Work When building complex software with AI, your workflow generally splits into two distinct phases: Reasoning & Planning (High Token Usage): This is where you ask the AI to read 10 source files, understand the architecture, design a new feature, or find a subtle bug. This consumes massive amounts of context window tokens. Execution & Autocomplete (Low Latency): This is where the AI writes single lines of code, refactors a function, or autocompletes your imports. This requires fast, inline API queries. Paying premium API rates (per token) for Phase 1 is incredibly expensive. This is where this open-source MCP bridge project shines. It exposes a read-only view of your local project as an MCP server. Your web-based ChatGPT (via custom GPTs or MCP int

2026-09-04 原文 →
AI 资讯

AI Can Write Your Code. Can It Actually Debug It?

AI Can Write Your Code. Can It Actually Debug It? AI coding assistants have changed how developers write software. You can describe a feature, generate a function, refactor a component, write a test, or explain an unfamiliar codebase in seconds. But there is one part of software development that is still surprisingly difficult: figuring out why something broke. Writing code and investigating a failure are two very different problems. When an application crashes, the answer usually isn't sitting inside the error message. You have to reconstruct what happened. The Problem With "Just Read the Stack Trace" Consider this Node.js error: TypeError: Cannot read properties of undefined (reading 'email') at getUser (/app/services/user.js:42:18) at processRequest (/app/controllers/auth.js:87:12) at async handler (/app/routes/auth.js:31:5) The immediate problem appears obvious. Something is undefined. But what caused it? Maybe: A database query returned no user. An API returned an unexpected response. Authentication middleware failed. A promise returned an unexpected value. A user record exists but its profile doesn't. An earlier function silently produced invalid state. The stack trace tells you where the program finally failed . It doesn't necessarily tell you where the bug began . That's the difference between error reporting and debugging investigation. AI Coding vs AI Debugging Most AI coding workflows look something like this: Developer ↓ Prompt ↓ AI ↓ Code Debugging is different: Failure ↓ Error ↓ Stack trace ↓ Execution path ↓ Application state ↓ Root cause ↓ Fix The AI needs to reason across that chain. Simply asking: "What does this error mean?" usually produces a list of possible explanations. That's useful, but it's not necessarily an investigation. A better question is: "Given this failure and its context, what is the most likely root cause, what evidence supports it, and how can I reproduce it?" That's a much more interesting problem for AI. A Simple JavaScript De

2026-09-04 原文 →
AI 资讯

Self-Healing CI Fixes Your Environment. Your Coding Agent Fixes the Code.

The agent is already in your workflow. The failed build is where it goes blind. AI coding agents have moved from novelty to daily tool. In Stack Overflow's 2025 Developer Survey, 84% of developers said they are using or planning to use AI tools in their development process, up from 76% the year before, and about one in seven professional developers now use AI agents at work every day . Among developers who have used agents at work, roughly 70% agree the agents have reduced the time they spend on specific tasks . There is one place, though, where that agent still tends to go dark: the failed CI run. The pipeline turns red, and your agent (like you) is handed a wall of log output from jobs it did not write, covering steps it did not touch. It has to reconstruct what actually broke before it can fix anything. That reconstruction is the expensive part, and it is exactly the part Latchkey is built to remove. This piece is about a clean division of labor. Latchkey's self-healing CI repairs the failures that are about your environment, not your code. For the failures that are genuinely about your code, Latchkey does not guess and patch on your behalf. Instead it hands your own coding agent a complete, structured account of the failure over the Model Context Protocol, so your agent can fix the bug with full context instead of starting from a log file. Two kinds of red build, and only one of them is yours to fix Almost every failed build is one of two things. Either the environment let you down (a flaky network, a full disk, a process killed for memory, a missing tool, configuration that drifted), or your code is actually wrong (a compile error, a failing test, a broken assertion). These two cases want opposite treatment, and conflating them is how teams end up rerunning pipelines and hoping for green. Latchkey's self-healing CI handles the first case. When a step fails on a Latchkey managed runner, Latchkey detects the failure, diagnoses the cause, and applies a fix while t

2026-09-04 原文 →
AI 资讯

Secure AI Agent Deployment with Microsoft Execution Containers

Microsoft Execution Containers provide a cross-platform framework for isolating AI agents within secure sandboxes to protect private data and system integrity. This technology allows developers to manage the lifecycle of autonomous code while ensuring that unpredictable agentic workflows do not access sensitive local files or unauthorized network resources. The Evolution of Agent Security and Isolation Trust remains a significant hurdle for developers building modern AI agents, particularly those operating on edge systems. When agents combine local processing with cloud-based intelligence, they often require access to sensitive information to be effective. However, granting this access creates a risk that the agent might call unintended APIs or compromise private user data. Historical attempts to launch autonomous agents in the 1990s largely failed because of these security concerns. Delivering arbitrary code to local machines proved too risky for mainstream adoption. Today, hardware-assisted virtualization has changed the landscape. This technology serves as the foundation for modern security models, including isolated operating system components and cross-platform tools like the Windows Subsystem for Linux. Microsoft now utilizes these virtualization advancements to build a more reliable framework for agent operations. By running agents in secure containers or microVMs, the system separates their activities from the primary operating system. This isolation ensures that even if an agent receives a poorly constructed prompt, it cannot delete critical system files or leak sensitive information. Managing Developer Environments Developers need a way to build code in flexible environments while still planning for restricted production deployments. Microsoft Execution Containers (MXC) address this by offering a policy-based restriction model. This framework allows for the creation of managed, isolated containers that follow specific security protocols. Applying Policy-Ba

2026-09-04 原文 →
AI 资讯

The Pipeline Became the Attack Surface: What the 2026 CI/CD Shifts Mean for Reliability

The Pipeline Became the Attack Surface For most of the last decade, we treated the CI/CD pipeline as plumbing: invisible, trusted, and mostly ignored until it broke. That assumption is no longer safe. The clearest signal came in 2025, when attackers stopped going after the software a pipeline builds and went after the pipeline itself. This week's research pass pulled together three shifts that are all landing at once: a supply-chain attack that redefined the threat model, GitHub's response in its 2026 security roadmap, a pricing change that quietly rewrites the cost math, and a persistent gap between how much teams trust AI in general and how little they trust it inside CI. Here is what the sources actually say. The tj-actions attack changed the threat model On March 14, 2025, researchers discovered that the popular tj-actions/changed-files GitHub Action had been compromised. According to Palo Alto Networks Unit 42, the action was used by over 23,000 GitHub repositories at the time ( Unit 42 ). The mechanics are worth understanding, because they explain why this matters beyond one action. Attackers injected code that dumped the CI/CD runner's memory and wrote sensitive environment variables and secrets straight into the workflow logs. They retroactively modified multiple version tags to point at a single malicious commit, so pipelines that pinned to a tag rather than a commit SHA pulled the payload ( Unit 42 ). The incident is tracked as CVE-2025-30066, described as allowing remote attackers to discover secrets by reading action logs ( GitHub Advisory Database ). The compromise did not start with tj-actions. Unit 42 traced it back through a leaked personal access token that reached reviewdog/action-setup , a dependency in the chain, with earlier steps going back to late 2024 ( Unit 42 ). In other words, the pipeline's own dependency graph was the delivery vehicle. The takeaway is not "avoid one bad action." It is that the automation running your builds is now a firs

2026-09-04 原文 →
AI 资讯

The CI/CD Tools Landscape in 2026: What Each Category Is Actually For

Most "best CI/CD tools" lists are twenty logos in a table, ranked by nothing in particular, with the author's product at the top. This is not that. It is a map of the categories, what each one exists to solve, and how to tell whether you need it yet. I work at Latchkey, so I will say plainly where we sit: we are one option inside one of the six categories below, and I will tell you when we are the wrong answer. Read the rest as a map, not a pitch. A note on what is missing here: I have not invented benchmark numbers or quoted prices for tools I do not operate. Vendor pricing changes often enough that any figure I write today is wrong by the time you read it. Where a number matters, go to the vendor's own pricing page. The mistake most teams make Teams usually shop for CI/CD tools by asking "which one is best." That question has no answer, because the tools are not competing with each other. They are stacked on top of each other. A team that adopts a build accelerator to fix a slow pipeline, when the actual problem is that half their failures are flaky, has bought a faster way to fail. A team that adds pipeline observability before they have enough pipeline to observe has bought a dashboard nobody opens. The useful question is narrower: which layer is currently your constraint? Answer that, and the tool choice inside the layer is usually obvious. Here is the whole landscape in one view. Layer What it solves When it becomes your bottleneck CI platform Running the pipeline at all Never; this is where everyone starts Runners and compute Where jobs run, and how fast they start Queue time or runner cost is visible Build acceleration Doing less work per run Full rebuilds dominate your wall clock Supply chain security What the pipeline is allowed to reach You ship to production or touch customer data Observability and cost Where time and money actually go You cannot answer why last week was slow Artifacts and registries Storing what the pipeline produces You publish images

2026-09-04 原文 →
AI 资讯

The Trust Gap: Why CI/CD Is the Last Place Teams Let AI In, and How to Earn That Trust

Two things are true about software delivery in 2026, and they are pulling in opposite directions. The first: AI is now writing a large share of the code that reaches your pipeline. CloudBees' 2026 State of Code Abundance Report found that AI generates or assists in writing 61% of the average enterprise codebase, and that 81% of enterprise leaders report an increase in production issues tied to AI-generated code. The same report names a confidence gap worth sitting with: 92% of leaders say they are confident in the production readiness of that code, even as the failures climb ( CloudBees, 2026 ). The second: the place best positioned to catch those failures, the CI/CD pipeline, is where teams trust AI the least. JetBrains' TeamCity team reported that 73% of organizations do not use AI in their CI/CD pipelines at all, and 78.2% do not delegate tasks to AI in CI/CD workflows, even though general AI usage in development work exceeds 90%. When asked why, 60% cited unclear use cases or value, 36% cited a lack of trust in AI-generated results, and 33% cited data privacy concerns ( JetBrains TeamCity, 2026 ). That is the trust gap. More machine-written code is arriving, more of it is breaking in production, and the pipeline that should be the safety net is the one room teams will not let automation into. This piece is about why that hesitation is rational, and what automation has to look like to deserve a different answer. Why the pipeline is different The JetBrains analysis put its finger on the reason cleanly: development workflows tolerate experimentation because feedback is immediate and cheap. CI/CD is the opposite. It demands consistent, reproducible signals, and the cost of an error is high. A coding assistant that guesses wrong wastes a few seconds of your time. A pipeline that guesses wrong can hide a real defect, ship it, or erode the one thing a pipeline exists to provide: a trustworthy answer to the question "is this build good?" So the bar for automation in CI/

2026-09-04 原文 →
AI 资讯

CI Got Cheaper in 2026. Reliability Is Now the Harder Problem

The first half of 2026 reset two things at once for engineering teams: what continuous integration costs, and what it takes to keep delivery stable while AI pushes more change through your pipelines than ever. Those two stories are connected, and the connection is the part worth your time. The pricing reset On January 1, 2026, GitHub reduced prices for GitHub-hosted runners by up to 39%, with the size of the cut depending on the machine type ( GitHub Changelog ). Standard hosted-runner usage on public repositories stays free, as it was before. The DevOps publication SamExpert documented the specific per-minute moves. A Linux 2-core runner dropped about 25% (from $0.008 to $0.006 per minute). A Windows 2-core runner dropped about 38% (from $0.016 to $0.010). A Linux 64-core arm64 runner dropped about 39% (from $0.160 to $0.098) ( SamExpert ). If your CI runs mostly on hosted runners, that is real money back, and it is worth recalculating your monthly estimate against the new rates rather than assuming last year's numbers still hold. The same December 2025 announcement carried a more controversial proposal: a $0.002 per-minute charge for self-hosted runner usage in private repositories, scheduled to start March 1, 2026 ( DevClass ). GitHub framed it as ending a cross-subsidy, where revenue from hosted runners was effectively underwriting the cost of operating Actions for everyone, and said the large majority of customers would see no change to their bill. The reaction from developers who run CI on their own hardware was sharp, with some publishing the monthly figures they expected to owe for compute they already pay to operate themselves. Within about a week, GitHub posted that it was postponing the self-hosted billing change to re-evaluate its approach ( SamExpert ). Postponed, it is worth being precise here, is not the same as withdrawn. There is no new date and no guarantee the charge returns in its original form, but there is also no statement that it is gone for

2026-09-04 原文 →
AI 资讯

The 2026 GitHub Actions Reset: Cheaper Runners, Stricter Security, and Smarter Pipelines

The first half of 2026 rearranged three things at once for teams that live in GitHub Actions: what CI costs, how it is secured, and how much of it a machine can now do on its own. None of these landed cleanly. Prices went down for most people while a new platform charge quietly went up. A self-hosted runner fee was announced, met a wall of objections, and was pulled back within a week. And a security roadmap arrived that will change how workflows pin dependencies and scope secrets over the next two to three quarters. Here is a grounded read of what happened, with sources, and an honest account of where Latchkey fits. Hosted runners got cheaper, and a new platform charge arrived On January 1, 2026, GitHub reduced GitHub-hosted runner prices by up to 39%, with the size of the cut depending on the machine type (larger runners saw the larger relative reductions), per GitHub's own changelog ( github.blog ). In concrete terms, community reporting put the Linux 2-core rate moving from $0.008 to $0.006 per minute and the Windows 2-core rate from $0.016 to $0.010 per minute ( samexpert.com ). Alongside the cuts, GitHub introduced a $0.002 per-minute Actions cloud platform charge that applies to all Actions workflows. For GitHub-hosted runners, that charge is already bundled into the reduced meter price, so it is not a separate line item there ( github.com ). Two things stayed the same and are worth repeating, because they get lost in the noise: standard runner usage on public repositories remains free, and GitHub Enterprise Server pricing is unaffected ( github.com ). GitHub framed the net effect as small for most accounts: it stated that 96% of customers would see no change to their bill, and that of the 4% affected, 85% would see costs decrease while the remaining 15% faced a median increase of roughly $13 ( github.com ). That is a reassuring headline. It is also a reminder that the bill depends entirely on your own mix of runner sizes and minutes, which is exactly the thi

2026-09-04 原文 →
AI 资讯

The 2026 CI/CD Squeeze: Faster Code, Shifting Prices, and Where Reliability Fits

Two forces are pulling on delivery pipelines this year. Code is arriving faster than ever, and the cost of running the pipelines that ship it has been unusually unsettled. Let us look at both, honestly, and then talk about where reliability work fits. Pricing was a moving target, and it still is On December 16, 2025, GitHub announced a simpler Actions pricing model that included a new $0.002 per minute "cloud platform charge." The plan was for that charge to reach self-hosted runner usage in private repositories on March 1, 2026 ( GitHub Changelog ). The reaction was strong enough that GitHub reversed the self-hosted portion within days. As GitHub put it, they "missed the mark with this change by not including more of you in our planning," and postponed the self-hosted charge to re-evaluate the approach ( GitHub Changelog ). Postponed is not cancelled, so if you run self-hosted runners in private repos, this is worth watching rather than filing away. GitHub's own framing was that the change would touch a small slice of accounts: it reported that 96% of customers would see no change to their bill, and that of the 4% affected, most would actually see their Actions bill decrease ( GitHub Changelog ). Even so, the principle of paying a per-minute fee for software running on hardware you already own was the sticking point for many teams, and the reversal followed quickly. The other half of the announcement did take effect. On January 1, 2026, GitHub reduced the price of GitHub-hosted runners by up to 39%, depending on the machine type, while leaving free minute quotas unchanged ( GitHub Changelog ). GitHub pointed teams to its runner pricing docs and calculator for the exact per-machine rates rather than publishing a single headline number ( GitHub Changelog ). That "up to" is doing real work in the sentence: the reduction depends on which machines you actually use, so the only way to know your number is to look at your own usage mix. The practical takeaway: the ground u

2026-09-04 原文 →