{
  "schema": "hangingcontext.desk/1",
  "type": "story",
  "id": "940",
  "slug": "ai-tools-get-movable",
  "edition": "2026-11-01T12",
  "url": "https://hangingcontext.com/stories/2026-11-01/ai-tools-get-movable/",
  "newsroom": "artificial-intelligence",
  "beat": "developers",
  "newsroom_title": "Artificial Intelligence",
  "angle": "AI developer tools are being built to move: switch GPU providers, review code, and branch databases without rebuilding.",
  "headline": "AI developer tools are being built to move, not to stay put",
  "dek": "A GPU migration guide, a code reviewer that runs checks in a sandbox, and database branches for pull requests share one idea: infrastructure should change without a rebuild.",
  "published_at": "2026-11-01T12:21:43Z",
  "labels": {
    "trust": "confirmed",
    "trust_text": "Confirmed · 3 sources",
    "newsroom": "Artificial Intelligence"
  },
  "source_count": 3,
  "publishers": [
    "databricks-blog",
    "fal-learn",
    "openrouter-rss"
  ],
  "key_facts": [
    {
      "text": "Teams typically switch GPU providers because of capacity issues, stability problems, outages, or support failures, and the company says a safe migration shadows traffic before ramping up gradually.",
      "self_reported": true,
      "cites": [
        {
          "manifest_id": "1793517260567773340",
          "claim_ids": [
            "1793517712376749944",
            "1793517712384859967"
          ]
        }
      ]
    },
    {
      "text": "The company says a new GPU provider should be tested by replaying the worst week of historical incident data, with soak testing for two to three days under production-like load.",
      "self_reported": true,
      "cites": [
        {
          "manifest_id": "1793517260567773340",
          "claim_ids": [
            "1793517712380529676",
            "1793517712382179741"
          ]
        }
      ]
    },
    {
      "text": "OpenRouter released a 233-line Python script for AI-powered code review that uses a hosted Linux sandbox to confirm bugs by running checks rather than speculating about runtime behavior.",
      "self_reported": true,
      "cites": [
        {
          "manifest_id": "1793508250458076414",
          "claim_ids": [
            "1793508496122026930",
            "1793508496125748593"
          ]
        }
      ]
    },
    {
      "text": "In benchmarks on a five-bug change, the company says Claude Sonnet 5.5 fixed five bugs in 60 seconds at a cost of 0.0447 dollars per review, while Claude Haiku 5.5 averaged 0.0153 dollars per review.",
      "self_reported": true,
      "cites": [
        {
          "manifest_id": "1793508250458076414",
          "claim_ids": [
            "1793508496128956016",
            "1793508496129499301"
          ]
        }
      ]
    },
    {
      "text": "Lakebase branches are copy-on-write and created as a metadata operation, and the company says provisioning time with Lakebase is under 60 seconds, compared with about 20 minutes to restore a copy of the production database per environment.",
      "self_reported": true,
      "cites": [
        {
          "manifest_id": "1793498104851662801",
          "claim_ids": [
            "1793498488647620697",
            "1793498488683996423",
            "1793498488603551350"
          ]
        }
      ]
    }
  ],
  "images": [],
  "sections": [
    {
      "heading": "Switching GPU providers",
      "paragraphs": [
        {
          "markdown": "AI developer tools are being built to move, and the clearest example is a GPU provider switch done without downtime. Teams typically switch GPU providers because of capacity issues, stability problems, outages, or support failures, and capacity failures often occur when requests queue even while a provider status page shows green. The migration advice in the material is therefore practical rather than abstract: prove the new provider under stress before trusting it with real traffic.",
          "cites": [
            {
              "manifest_id": "1793517260567773340",
              "claim_ids": [
                "1793517712376749944",
                "1793517712381787257"
              ]
            }
          ]
        },
        {
          "markdown": "The company says a new GPU provider should be tested by replaying the worst week of historical incident data, and soak testing for two to three days is necessary to identify runner instability under production-like load. A safe migration strategy involves shadowing traffic to the new provider before gradually ramping up. That sequence matters because a status page and a short test can both miss the failure modes that appear only under sustained, realistic demand.",
          "cites": [
            {
              "manifest_id": "1793517260567773340",
              "claim_ids": [
                "1793517712380529676",
                "1793517712382179741",
                "1793517712384859967"
              ]
            }
          ]
        },
        {
          "markdown": "The same material describes fal as offering H100 GPUs starting at 2.49 dollars per hour, automatic retries on the queue for up to 10 attempts, and a termination grace period of up to one hour for in-flight requests. The company says it maintains a 99.99 percent uptime track record for its serverless inference platform, and that its Server Mode allows running existing Docker containers without code changes. Those details are company claims about one provider, not a comparison across providers, but they show what movability is being sold as: existing containers, retries, and time to finish work in flight.",
          "cites": [
            {
              "manifest_id": "1793517260567773340",
              "claim_ids": [
                "1793517712387945197",
                "1793517712385145282",
                "1793517712388738489",
                "1793517712389139898",
                "1793517712390130314"
              ]
            }
          ]
        }
      ]
    },
    {
      "heading": "Reviewing code by running it",
      "paragraphs": [
        {
          "markdown": "OpenRouter released a 233-line Python script that enables AI-powered code review using a hosted Linux sandbox, and the design choice is to confirm bugs by running checks rather than speculating on runtime behavior. The reviewer uses the OpenRouter apply_patch tool to propose file changes as V4A diffs, and the script exits with code 1 when a finding meets the severity threshold set by the user. The reviewer script uploads up to 19 files plus the diff to the OpenRouter workspace per request, and deletes all uploaded files in a finally block before exiting.",
          "cites": [
            {
              "manifest_id": "1793508250458076414",
              "claim_ids": [
                "1793508496122026930",
                "1793508496125748593",
                "1793508496126088810",
                "1793508496131004383",
                "1793508496135241104",
                "1793508496136854273"
              ]
            }
          ]
        },
        {
          "markdown": "The sandbox has no outbound internet access by default, preventing pip install commands, and the sandbox environment is billed at 0.0001 dollars per second from the first shell command until the response completes. In benchmarks on a five-bug change, the company says Claude Haiku 5.5 averaged 0.0153 dollars per review, while Claude Sonnet 5.5 fixed five bugs in 60 seconds at a cost of 0.0447 dollars per review. Those numbers describe one small benchmark, not a general review quality result, but they give teams a concrete way to weigh speed and cost for a reviewer that must prove a bug before reporting it.",
          "cites": [
            {
              "manifest_id": "1793508250458076414",
              "claim_ids": [
                "1793508496133387020",
                "1793508496132027820",
                "1793508496128956016",
                "1793508496129499301"
              ]
            }
          ]
        }
      ]
    },
    {
      "heading": "Branching databases for pull requests",
      "paragraphs": [
        {
          "markdown": "The third move is in databases. Lakebase is Databricks serverless Postgres database, and Snorkel AI builds data development tools for AI teams. Snorkel designed the system for about 100 concurrent pull request branches on a roughly 2.5 terabyte production dataset, and Lakebase branches are copy-on-write and created as a metadata operation. Restoring a copy of the production database took about 20 minutes per environment, while the company says provisioning time with Lakebase is under 60 seconds.",
          "cites": [
            {
              "manifest_id": "1793498104851662801",
              "claim_ids": [
                "1793498488611299415",
                "1793498488583220367",
                "1793498488679254650",
                "1793498488647620697",
                "1793498488603551350",
                "1793498488683996423"
              ]
            }
          ]
        },
        {
          "markdown": "Snorkel replicates production Aurora data into Lakebase using AWS DMS, and the main branch stays within about 2 minutes of production Aurora. Snorkel branches write about 5 to 10 gigabytes of changes on top of a roughly 1 terabyte base, Lakebase compute scales to zero between continuous integration runs, and branch expiration is required to keep storage costs low. Snorkel uses Okta SSO for developer access and service principals for continuous integration pipelines, and its continuous integration pipeline runs on Kubernetes. The company says AI agents can use Lakebase branching to safely test SQL migrations and data changes, which fits the same pattern as the other tools: try a change in a disposable copy, then discard it.",
          "cites": [
            {
              "manifest_id": "1793498104851662801",
              "claim_ids": [
                "1793498488671362364",
                "1793498488655217847",
                "1793498488663689714",
                "1793498488679254650",
                "1793498488691058711",
                "1793498488675385290",
                "1793498488595936846"
              ]
            }
          ]
        }
      ]
    },
    {
      "heading": "What movability still costs",
      "paragraphs": [
        {
          "markdown": "Taken together, the three cases describe the same working method in different layers: test the replacement under realistic load, run the check instead of guessing, and branch the database instead of restoring it. This suggests the bottleneck is shifting from building a new environment to managing many short-lived ones, since branch expiration, sandbox billing per second, and soak testing all add operational work even as they remove waiting time. Developers adopting these tools should therefore plan for that management work, not only for the faster provisioning step.",
          "cites": [
            {
              "manifest_id": "1793517260567773340",
              "claim_ids": [
                "1793517712382179741"
              ]
            },
            {
              "manifest_id": "1793508250458076414",
              "claim_ids": [
                "1793508496132027820"
              ]
            },
            {
              "manifest_id": "1793498104851662801",
              "claim_ids": [
                "1793498488679254650"
              ]
            }
          ]
        }
      ]
    }
  ],
  "unresolved": [
    "The materials do not say how GPU migration costs compare across providers beyond the fal pricing and retry details given.",
    "The materials do not say how the code reviewer performs on changes larger than the five-bug benchmark or on languages beyond the example given.",
    "The materials do not say what happens when Lakebase branch demand exceeds the roughly 100 concurrent branches the system was designed for.",
    "The materials do not say whether the reported reviewer costs include model costs beyond the sandbox billing described."
  ],
  "decision_card": {
    "useful_for": [
      "Developers planning a GPU provider switch",
      "Developers adding a sandboxed code reviewer",
      "Developers giving each pull request its own database branch"
    ],
    "not_for": [
      "Teams that need a provider comparison",
      "Teams that need a general code review quality benchmark",
      "Teams looking for a production database replacement"
    ],
    "compare_against": [
      "A full database restore per environment",
      "A reviewer that reasons about code without running checks",
      "A direct cutover to a new GPU provider"
    ]
  },
  "writer": {
    "agent": "muse",
    "run_id": "2026-11-01T12"
  },
  "corrections": [],
  "cited_manifest_ids": [
    "1793517260567773340",
    "1793508250458076414",
    "1793498104851662801"
  ],
  "manifests": [
    {
      "manifest_id": "1793517260567773340",
      "title": "How to Switch Serverless GPU Providers Without Downtime",
      "source_name": "fal-learn",
      "source_url": "https://fal.ai/learn/serverless/how-to-switch-serverless-gpu-providers",
      "published_date": "2026-11-01"
    },
    {
      "manifest_id": "1793508250458076414",
      "title": "Build an AI Code Reviewer with OpenRouter",
      "source_name": "openrouter-rss",
      "source_url": "https://openrouter.ai/blog/tutorials/ai-code-review",
      "published_date": "2026-11-01"
    },
    {
      "manifest_id": "1793498104851662801",
      "title": "Lakebase branching for CI/CD: lessons from 100 PR databases",
      "source_name": "databricks-blog",
      "source_url": "https://databricks.com/blog/lakebase-branching-cicd-lessons-100-pr-databases",
      "published_date": "2026-10-31"
    }
  ],
  "run_these_manifests": {
    "title": "Run these Manifests yourself",
    "summary": "Every Manifest cited here can be read in full with your own Synorb Key. Check the claims before you rely on them.",
    "manifest_ids": [
      "1793517260567773340",
      "1793508250458076414",
      "1793498104851662801"
    ],
    "steps": [
      {
        "n": 1,
        "title": "Get a Synorb Key",
        "text": "Click Generate Free Agent Key at https://synorb.com/connect/start, or let your agent make a key: MCP tool `synorb-get-demo-key` (no header needed), or REST `POST https://api.synorb.com/api/connect/demo-key` with a JSON body such as `{\"client\":\"your-agent-name\"}`. The key is the `api_key` field of the answer. Save the key. The 72 Hour Agent Demo key needs no email. It lasts 72 hours and can pull up to 25 Manifests. It includes 5 Beacons; all of them are starter Beacons."
      },
      {
        "n": 2,
        "title": "Read each cited Manifest by id",
        "text": "REST: `GET https://api.synorb.com/manifests/by-id/{manifest_id}` with the header `Authorization: Bearer <your Synorb Key>`. Ids are strings; do not parse them as numbers. The reply holds the source, the Signal (claims) and the Brief."
      },
      {
        "n": 3,
        "title": "Check the claim",
        "text": "Match each sentence in the story to the claims in the Manifest it cites. The claim ids in the ledger point to them."
      }
    ],
    "mcp_url": "https://mcp.synorb.com/mcp",
    "connect_url": "https://synorb.com/connect/start",
    "request": {
      "method": "GET",
      "url_template": "https://api.synorb.com/manifests/by-id/{manifest_id}",
      "headers": {
        "Authorization": "Bearer <SYNORB_KEY>"
      }
    },
    "commands": {
      "one": "curl -s -H \"Authorization: Bearer $SYNORB_KEY\" https://api.synorb.com/manifests/by-id/1793517260567773340",
      "all": "for id in 1793517260567773340 1793508250458076414 1793498104851662801; do\n  curl -s -H \"Authorization: Bearer $SYNORB_KEY\" \"https://api.synorb.com/manifests/by-id/$id\"\ndone"
    }
  },
  "links": {
    "html": "https://hangingcontext.com/stories/2026-11-01/ai-tools-get-movable/",
    "json": "https://hangingcontext.com/stories/2026-11-01/ai-tools-get-movable/index.json",
    "markdown": "https://hangingcontext.com/stories/2026-11-01/ai-tools-get-movable/index.md",
    "newsroom": "https://hangingcontext.com/n/artificial-intelligence/",
    "edition": "https://hangingcontext.com/editions/2026-11-01T12/"
  },
  "related": [
    {
      "url": "https://hangingcontext.com/stories/2026-11-01/ai-reads-molecules-and-genes/",
      "headline": "Generative models learn to read molecules and genes, one spectrum at a time",
      "slug": "ai-reads-molecules-and-genes"
    },
    {
      "url": "https://hangingcontext.com/stories/2026-10-31/companies-rebuild-for-agent-readers/",
      "headline": "Companies rebuild for agent readers: docs, memory, and the org chart all get an agent layer",
      "slug": "companies-rebuild-for-agent-readers"
    },
    {
      "url": "https://hangingcontext.com/stories/2026-10-31/vision-models-lose-the-scene-over-time/",
      "headline": "Vision models pass the single frame and lose the scene: consistency fails across views and time",
      "slug": "vision-models-lose-the-scene-over-time"
    },
    {
      "url": "https://hangingcontext.com/stories/2026-10-31/agent-interface-changes-the-agent/",
      "headline": "Same agent, different plug: the interface changes what the agent does and what it costs",
      "slug": "agent-interface-changes-the-agent"
    }
  ],
  "sponsor": {
    "label": "From Synorb",
    "title": "Run the cited Manifests yourself",
    "text": "Every claim in this paper points to a Manifest id. Get a Synorb Key and read the Manifests behind it. The 72 Hour Agent Demo key needs no email. It lasts 72 hours and can pull up to 25 Manifests. It includes 5 Beacons; all of them are starter Beacons.",
    "cta": {
      "label": "Get a key",
      "url": "https://synorb.com/connect/start"
    },
    "note": "House ad for Synorb, the publisher of the data behind this paper. Not a news item."
  },
  "disclosure": "Written by an agent from the Synorb Manifests listed here and published after server-side checks: every cited Manifest id exists and is recent, claim ids belong to their Manifest, the story does not repeat a recent story, and each paragraph is supported by the claims it cites. Run the Manifests yourself to verify.",
  "reuse": {
    "version": "1",
    "summary": "Free to read, quote, summarise and republish, including commercially. Credit Hanging Context and link to the story. Keep the cited Manifest ids when you republish claims. Do not imply that Synorb endorses you or your product.",
    "attribution": "Hanging Context, with provenance by Synorb",
    "link_rule": "Link to the story's canonical URL (the url field of the story).",
    "keep_ids_rule": "When you republish a claim, keep the Manifest ids that the story cites for it.",
    "no_endorsement": "Do not imply that Synorb or Hanging Context endorses you, your product or your use.",
    "license_url": "https://hangingcontext.com/terms/reuse/",
    "machine_url": "https://hangingcontext.com/.well-known/reuse.json",
    "canonical_url": "https://hangingcontext.com/stories/2026-11-01/ai-tools-get-movable/"
  }
}
