All notable changes to this project are documented here.
The format follows Keep a Changelog, and this project adheres to Semantic Versioning.
-
genimg-gemini-webstopped generating images. The cause was not a domain change —gemini.google.comis unchanged. Google hands signed-out visitors an anonymous bootstrap token (thykhd) alongside the signed-in one (SNlM0e), and the client accepted either as proof of a working session. Once the cached cookies expired, every request silently ran as an anonymous visitor: Google served the free Flash tier regardless of the requested model, and that tier declines image generation with prose ("can't create it right now… it's possible you're signed out") instead of an error.Consequences that are now fixed:
--loginexited immediately on stale cookies instead of opening Chrome, because the anonymous token made them look valid.chrome-authwould have persisted signed-out cookies as a successful login.- Image failures surfaced as a generic "No images generated" with no remedy.
scripts/constants.ts: every Gemini endpoint now derives from one origin, so a future host rename is a one-line change — or none at all via the newGEMINI_WEB_BASE_URLenv override.- Sign-in awareness:
fetchGeminiAccessTokenInfo()reports whether the session is authenticated,isGeminiSignedIn()checks it, andGeminiNotSignedInErrorcarries the actionable fix.GeminiWebRunOutput.authenticatedexposes it to programmatic callers. - Fail-fast guard in the executor: media generation checks sign-in up front instead of after a 5-minute timeout.
- Model-drift detection: Gemini echoes the model it actually used, and the CLI
warns when a Pro request is served by a Flash model. This surfaced a real
regression — the
gemini-2.5-proalias id is stale and silently resolves to Flash.gemini-3-pro(the default) maps correctly. --forceflag to re-run the browser login even when cached cookies look valid.- Troubleshooting table in
skills/genimg-gemini-web/SKILL.md.
- Agent Plugins standard support (agent-plugins.org).
The plugin now installs on Claude Code, OpenAI Codex, Cursor and Copilot CLI
from one repository:
plugin.json— Agent Plugins 1.0.0 manifest (validated against the published schema)..codex-plugin/plugin.json— OpenAI Codex manifest with interface metadata..agents/plugins/marketplace.json— Codex/Copilot catalog entry..claude-plugin/*— unchanged in shape, bumped to 1.1.0.
scripts/check-manifests.shasserts name/version/description parity across all host manifests, the Agent Plugins closed-schema shape, install wiring, that everyskills/*directory carries a discoverableSKILL.md, and that both catalogs advertise the same marketplace name.- Marketplace renamed from
sherlock-ai-plugintosherlock-ai-plugin-marketplace. Copilot CLI reads.claude-plugin/marketplace.jsonand Codex reads.agents/plugins/marketplace.json, and both install via<plugin>@<marketplace>— so the two catalogs must agree, and a marketplace named identically to the plugin makessherlock-ai-plugin@sherlock-ai-pluginambiguous. Matches the Seldon plugin's convention. Claude Code users who pinned the old marketplace name should re-add it. - Restored
category: "development"on the Claude marketplace entry (dropped as collateral in b5ccaec, which targeted conflicting component specs;categoryis display metadata and is compatible withstrict:trueauto-discovery).
| Host | Check | Result |
|---|---|---|
| Claude Code | claude plugin validate . |
Passed |
| Agent Plugins 1.0 | plugin.json validated against https://agent-plugins.org/schemas/1.0.0/plugin.schema.json (python jsonschema) |
No errors |
| Manifest consistency | bash scripts/check-manifests.sh |
Consistent |
| OpenAI Codex CLI 0.149.1 | codex plugin marketplace add ./ then codex plugin add sherlock-ai-plugin@sherlock-ai-plugin-marketplace |
Installed 1.1.0; all 6 skills present with SKILL.md under the installed root; removed cleanly afterwards |
check-manifests.sh gate |
tampered copy (marketplace names diverged) | Fails as expected |
| Gemini image generation | 3 real generations after re-login; drift warning fires on -m gemini-2.5-pro |
Working |
Not exercised: GitHub Copilot CLI (not installed on this machine) and Cursor
plugin install (headless install not available). The Codex run above is the
evidence that root-level plugin.json + skills/ auto-discovery installs
correctly on a non-Claude host.
- Initial release:
paper-analyzer,paper2code,paper-comic,visual-architect,deep-research, andgenimg-gemini-webskills.