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

  1. Run `bun run gen:compat` to regenerate rules.json from the KDL tree
  2. Add/restore a reviewed collapse table for google-gemini-cli in packages/catalog/src/compat/rules/
  3. Update to a catalog version that ships the table
  4. 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

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


AI-assisted analysis of can1357/oh-my-pi@9690622007 (2026-08-31). Data as JSON: /api/errors/8fc0919dd916cdcb. Report an issue: GitHub.