Relationships
#2890 Server fallback content extraction drops quoted method keys and lists nested objects as methods
Opened by stack72 · 10/1/2026· Shipped 10/1/2026
Summary
When the contentMetadata a client sends with extension push fails validation (for example a model over the 50-method or 30-argument limit), confirm-push falls back to server-side extraction in lib/app/extract-extension-content.ts. That extractor finds methods with the regex at line 337, which has the same two defects as the CLI extractor fixed for swamp-club#2880:
- quoted method keys such as "list-subscriptions" are skipped, because the key pattern only matches bare identifiers;
- the pattern ignores brace depth, so an object nested inside a method (checks: { ... }) is listed as a method.
The entry-key pattern at line 400 and the argument pattern at line 314 have the same bare-identifier limit.
Impact
After swamp-club#2880 the CLI sends complete method lists. Any push whose client metadata is rejected still ends up with the incomplete server-extracted list, with only a server-side warning. Because the CLI now lists quoted methods, models near the 50-method limit are more likely to hit this fallback.
Suggested fix
Port the depth-0 entry walker from src/domain/extensions/extension_content_extractor.ts in the swamp repo (extractTopLevelEntries and extractMethodsFromEntries), and accept quoted keys in the argument pattern. Consider surfacing the validation failure to the pushing client instead of only logging it.
Shipped
Click a lifecycle step above to view its details.
Sign in to post a ripple.