"No Watermark Detected" Doesn't Mean It Isn't AI — The Asymmetry of SynthID
Images generated with Gemini carry a SynthID watermark. But a positive result and a negative result don't carry the same weight, and that asymmetry changes how you should track provenance.
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.
When Gemini's executed result and its prose disagree on a number — a gate that trusts only code_execution_result
Gemini Code Execution returns the value it actually computed and the sentence describing it as separate parts. Trust the prose and you can inherit a hallucinated number. Here is a verification gate, in working code, that extracts the executed result as the single source of truth and rejects prose that disagrees.
When responseSchema Can't Do $ref: Handling Recursive Schemas in Production with responseJsonSchema
Gemini's responseSchema is an OpenAPI subset with no $ref or $defs, so it can't express shared definitions or recursion. Here's how I moved to responseJsonSchema to reuse localized fields and handle a recursive category tree in production.
Spend Deep Reasoning Only Where It's Needed: Per-Request thinking_level Routing in Gemini
Running every request at high thinking_level bloats latency and cost; forcing low drops accuracy on hard questions. This walks through a router that picks Gemini 3.x thinking_level per request from an inexpensive difficulty estimate, keeping p95 latency inside a mobile budget while reserving deep reasoning for the questions that need it — with measured numbers and working code.
Fill with Gemini Now Speaks 28 Languages — Localize Your App Store Copy in One Sheet
Fill with Gemini in Google Sheets expanded to 28 languages. Here is a practical workflow for localizing app store metadata as a solo developer, plus the review habits that keep machine translation from going live unchecked.
A Risk-Tiered Approval Gate for Gemini Function Calling
Handing full autonomy to an agent is unnerving. This walks through a Gemini function-calling loop that routes tool calls into auto-run and hold-for-approval by risk tier, then feeds the result back to the model after a human signs off.
My ADK Assistant Quietly Forgot a Deadline — Catching Compaction Memory Loss With a Recall Probe
Compacting conversation history in Google ADK with Gemini lowers cost, but it also erodes what your assistant remembers — silently. Here is how I built a recall probe to measure that loss, compared three compaction strategies against the same ledger, and stopped trading memory for tokens.
Resuming Large Gemini Files API Uploads Across the Apps Script 6-Minute Limit
Sending a few hundred megabytes from Drive to the Gemini Files API through Apps Script means fighting a 6-minute execution cap and payload limits. Here is how to decompose resumable upload into start, upload, query and finalize so a killed run never loses progress.
Gemini Prompt Engineering Guide — System Instructions, Few-shot & Chain-of-Thought
Get stable output from Gemini through prompt design, using three techniques: System Instructions, Few-shot, and Chain-of-Thought. Includes a real pitfall I hit while auto-classifying images for a wallpaper app.
When gemini-embedding-2 Retrieval Feels 'Almost Right,' Check task_type First
When gemini-embedding-2 search misses in a frustrating near-hit way, the cause is often a missing or mismatched task_type. Here is how to align document and query intent, plus the code and a tiny harness to prove the difference on your own data.
Extract Social Media Promo Metadata From Short Videos in One Omni Flash Pass
Hand a short clip to the public preview of Gemini Omni Flash once and get captions, chapters, and highlight timestamps back as structured JSON. Covers how this differs from a frame-extraction multi-call setup, where fps and media_resolution actually matter, and a per-clip cost estimate — from the angle of keeping an indie promo workflow moving.