GEMINI LABJP
CHAT — Ask Gemini in Chat goes live today, August 26, turning Google Chat into a single command line for search, drafting, catching up, and task managementLIMITS — Ask Gemini in Chat comes with promotional higher limits through October 1, after which standard usage limits applySHEETS — Sheets canvas turns a spreadsheet into an interactive, read-write application from a plain-language promptMEET — You can now start a Gemini note-taking session straight from the Google Meet home screen, including for in-person meetings, with the summary, action items, and full transcript saved to a Google DocMODELS — Gemini 3.7 Flash reached general availability on August 13, with introductory pricing running through December 31, 2026DEPRECATION — gemini-robotics-er-1.6-preview shuts down on August 31, five days from now. The ER 2 endpoints have been in public preview since July 30CHAT — Ask Gemini in Chat goes live today, August 26, turning Google Chat into a single command line for search, drafting, catching up, and task managementLIMITS — Ask Gemini in Chat comes with promotional higher limits through October 1, after which standard usage limits applySHEETS — Sheets canvas turns a spreadsheet into an interactive, read-write application from a plain-language promptMEET — You can now start a Gemini note-taking session straight from the Google Meet home screen, including for in-person meetings, with the summary, action items, and full transcript saved to a Google DocMODELS — Gemini 3.7 Flash reached general availability on August 13, with introductory pricing running through December 31, 2026DEPRECATION — gemini-robotics-er-1.6-preview shuts down on August 31, five days from now. The ER 2 endpoints have been in public preview since July 30
Articles/Updates
Updates/2026-07-17Advanced

The Model Didn't Ship on Its Rumored Date — Read Your Context Limit From the API, Not the Headlines

July 17 came and went with no official word on Gemini 3.5 Pro. Instead of baking rumored numbers into constants, here's a context budget layer that reads the real limit from models.get and degrades quietly when input overflows.

Gemini80Gemini 3.5 Procontextproduction140solo development4

Premium Article

This morning, the date I'd seen in headline after headline was today. My notes said, simply: "7/17, 3.5 Pro." I opened the docs, pulled the model list, checked the pricing page. No gemini-3.5-pro anywhere. As of this writing, no announcement from Google either.

A few days ago I wrote about measuring my prompts' token counts while waiting for the release. At the time I wrote "shipping July 17." Today that premise is wrong. Premises being wrong isn't unusual. What matters is where in the code you put the premise.

Had I written MAX_CONTEXT = 2_000_000 as a constant and pre-seeded gemini-3.5-pro into my config, production would have broken today. A rumored number is fine in an article as long as you say "reportedly." The moment it lands in config, it becomes a promise.

This post pushes rumored values out of configuration, reads the limit from the model itself, and degrades instead of crashing when input overflows. The code runs as-is — drop the layer in front of your calls and the next slipped date won't cost you anything.

Separate what you can verify from what you can't

Start with only the facts you can check from your own terminal today. Leave this boundary fuzzy and rumor leaks back into the design somewhere.

ItemStatusHow to verify
gemini-3.5-pro model cardNot present in the public API docsCheck the model list in the docs
2M-token contextReported, unconfirmedNo way to verify right now
PricingReported, unconfirmedNot listed on the pricing page
Latest generally available modelgemini-3.5-flashmodels.list
What gemini-flash-latest resolves toNow gemini-3.5-flashmodels.get

Look down the right-hand column and the line draws itself. Some rows are verified by hitting an API; others rest on someone saying so. Building config on the first kind only — that's the whole idea here.

What pre-seeding an unreleased model ID actually does

Putting the model ID in an environment variable ahead of time feels like preparation. I've done it. The result was unsurprising: a NOT_FOUND, and a failed startup health check.

// Before: reporting-derived values baked into config
const MODEL = process.env.GEMINI_MODEL ?? "gemini-3.5-pro"; // doesn't exist yet
const MAX_CONTEXT = 2_000_000;                              // unconfirmed number
 
async function ask(prompt) {
  // If MODEL doesn't exist, you only find out here
  return ai.models.generateContent({ model: MODEL, contents: prompt });
}

The nasty part is that the failure is deferred all the way to call time. The deploy passes. Startup passes. The first user request breaks. Worse, MAX_CONTEXT is never validated by anything, yet it goes on driving truncation decisions forever — an unconfirmed limit for a nonexistent model, shaping input for a model that does exist.

I covered pinning versus depending on the default in detecting silent default-model swaps. What that post didn't cover is this direction: writing down an ID that isn't there yet.

Thank you for reading this far.

Continue Reading

What follows includes implementation code, benchmarks, and practical content we hope you'll find useful. This site runs without ads — server and development costs are supported entirely by members like you. If it's been helpful, we'd be truly grateful for your support.

WHAT YOU'LL LEARN
A working JavaScript budget layer that treats models.get inputTokenLimit as the single source of truth and pushes reporting-derived numbers out of your config
A countTokens-with-headroom procedure, plus a fallback chain that splits, summarizes, or fails loudly instead of silently truncating your input
A ~20-line CI gate that catches unreleased model IDs before they reach production, and why the failure belongs in a pull request rather than a user's first request
Secure payment via Stripe · Cancel anytime

Unlock This Article

Get full access to the rest of this article. Buy once, read anytime. This site is ad-free — your support goes directly toward keeping it running.

or
Unlock all articles with Membership →
Share

Thank You for Reading

Gemini Lab is ad-free, supported entirely by members like you. We publish practical guides daily with implementation code, benchmarks, and production-ready patterns. If you've found it useful, we'd love to have you on board.

  • Copy-paste ready implementation code
  • New advanced guides published daily
  • $5/mo or $15 for lifetime access
View Membership →

Related Articles

Updates2026-08-18
The Assistant Switch Is One-Way, So the Baseline Has to Be Captured Now
From September 4, Google Assistant is replaced by Gemini, and a device that has switched cannot go back. Here is how I started recording voice-originated launches inside my own apps, and the assumption about splitting before and after by date that turned out to be wrong.
Updates2026-06-11
Google I/O 2026 Preview — What I'm Watching for in Gemini This Year
Google I/O 2026 is approaching. Based on current Gemini development trends and past announcement patterns, here's what I'm personally expecting — no guarantees.
Updates2026-05-23
Google AI Pro Now Includes YouTube Premium Lite: A Pricing Read From a Solo Developer
Google has bundled YouTube Premium Lite (¥780/month) into Google AI Pro (from ¥2,900/month). Here is how the new structure reads against my actual usage as a solo developer with 50M+ downloads, including who actually benefits.
📚RECOMMENDED BOOKS
Build a Large Language Model (From Scratch)
Sebastian Raschka
LLM Dev
Prompt Engineering for LLMs
Berryman & Ziegler
Prompting
AI Engineering
Chip Huyen
AI Eng
* Contains affiliate links
See all →