can1357/oh-my-pi · error
missing reviewed collapse table for google-gemini-cli
Error message
missing reviewed collapse table for google-gemini-cli
What it means
The google-gemini-cli dynamic model fetch requires a reviewed collapse table (a KDL-owned table for collapsing discovered model variants) before fetching antigravity discovery models. If the reviewed table is missing from the registry the fetcher refuses to proceed rather than silently mis-collapsing models.
Source
Thrown at packages/catalog/src/provider-models/google.ts:96
}
: undefined),
};
}
export function googleGeminiCliModelManagerOptions(
config?: GoogleGeminiCliModelManagerConfig,
): ModelManagerOptions<"google-gemini-cli"> {
const token = config?.oauthToken;
const endpoint = config?.endpoint ?? CLOUD_CODE_ASSIST_ENDPOINT;
return {
providerId: "google-gemini-cli",
...(token
? {
fetchDynamicModels: async () => {
const fetcher = toDiscoveryFetch(config?.fetch);
const collapseTable = reviewedCollapseTable("google-gemini-cli");
if (collapseTable === undefined) {
throw new Error("missing reviewed collapse table for google-gemini-cli");
}
const models = await fetchAntigravityDiscoveryModels({
token,
fetcher,
collapseTable: collapseTable,
});
// Antigravity's fetchAvailableModels is unreachable for
// credentials without Antigravity entitlement (Code Assist
// Standard returns HTTP 403). Fall back to the account's own
// retrieveUserQuota list on Cloud Code Assist.
if (models === null) {
return fetchGeminiCliQuotaModels({ token, projectId: config?.projectId, endpoint, fetcher });
}
return models
.filter(m => classifyModel("google-gemini-cli", m.id, { lenient: true }).class === "gemini")
.map(m => ({
...m,
provider: "google-gemini-cli" as const,View on GitHub (pinned to 9690622007)
Solutions
- Run `bun run gen:compat` to regenerate rules.json from the KDL tree
- Add/restore a reviewed collapse table for google-gemini-cli in packages/catalog/src/compat/rules/
- Update to a catalog version that ships the table
- Check that the built artifact includes the regenerated rules.json
Example fix
# before: no rules file for this provider # after: add packages/catalog/src/compat/rules/providers/google-gemini-cli.kdl with a reviewed collapse table, then: bun run gen:compat
Defensive patterns
Strategy: try-catch
Try / catch
try {
models = await fetchDynamicModels();
} catch (err) {
if (err instanceof Error && err.message.includes("missing reviewed collapse table")) {
logger.warn("google-gemini-cli dynamic discovery unavailable; using static catalog");
return staticModels;
}
throw err;
} Prevention
- Run `bun run gen:compat` after any KDL rules change and commit rules.json
- Don't remove provider entries from the reviewed collapse tables
- Pin a catalog release that includes the google-gemini-cli table
When it happens
Trigger: fetchDynamicModels for provider google-gemini-cli runs (dynamic model discovery with a token) and reviewedCollapseTable("google-gemini-cli") returns undefined — the KDL rules tree lacks/hasn't compiled that table.
Common situations: Running a build where `bun run gen:compat` wasn't executed after rules changes; an edited or pruned KDL rules tree; stale rules.json.
Related errors
- invalid compiled revision term in ${compiled.source}
- ambiguous overlap for `${provider}/${model}` on axis `${axis
- Model ${spec.provider}/${spec.id} resolved to an empty think
- Unable to find a GitLab Duo Workflow namespace. Set GITLAB_D
- Unable to find a GitLab Duo Workflow namespace with availabl
AI-assisted analysis of can1357/oh-my-pi@9690622007 (2026-08-31).
Data as JSON: /api/errors/8fc0919dd916cdcb.
Report an issue: GitHub.