Conversation
|
Complex PR? Review this PR in Change Stack to move by importance, not file order. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThe OpenAPI specification is updated from version 0.7.3 to 0.7.4. The ChangesOpenAPI Schema Null-Safety Updates
Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
## Summary - Bumps the `cloudglue-api-spec` submodule to **v0.7.4** ([api-spec #98](cloudglue/cloudglue-api-spec#98)), which marks the include-gated Grain `source_metadata` fields as nullable. - Regenerates the client. The only generated change is in `GrainSourceMetadata` (`generated/common.ts`): `participants`, `highlights`, `ai_summary`, `ai_action_items`, `ai_template_sections`, and `calendar_event` move from `.optional()` → `.nullish()`, with matching `| null` TS types produced by the existing `generate.js` nullish/nullable transforms. - Bumps SDK version `0.7.12` → `0.7.13`. ## Verification - `npm run generate` is reproducible — re-running yields byte-identical output (only `common.ts` changes). - `npm run build` (tsc) passes. - Ran `getSourceMetadata()` against a live Grain connector: fetch + Zod parse both succeed with the new nullable schema. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Version updated to 0.7.13 * Submodule reference updated <!-- end of auto-generated comment: release notes by coderabbit.ai -->
…#62) ## Summary Regenerates the low-level SDK from [cloudglue-api-spec#98](cloudglue/cloudglue-api-spec#98) (API v0.7.4). The only substantive change is in `GrainSourceMetadata`: include-gated fields (`participants`, `highlights`, `ai_summary`, `ai_action_items`, `ai_template_sections`, `hubspot`) are now nullable, with serializer hooks so an explicit `null` round-trips instead of being dropped. Everything else in the diff is the `0.7.3 → 0.7.4` version bump churn. ## Wrapper changes None needed. The data-connector sync and source-metadata endpoints landed previously (#60) and are already exposed via `DataConnectors.get_source_metadata()` / `sync_file()`. The source-metadata endpoint takes only `id`/`url` (no new params in #98), so the lightweight wrapper is already complete. ## Verification Built (`make build` → `cloudglue-0.7.11`) and ran a throwaway script end-to-end against a live Grain connector: - connector discovery, `list_files()`, and `get_source_metadata()` all work - nullable fields deserialize cleanly — `calendar_event`/`hubspot` come back as `None` and round-trip through `to_dict()` as explicit `null` 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Summary
GrainSourceMetadatafields —participants,highlights,ai_summary,ai_action_items,ai_template_sections,hubspot— asnullable: true.null(not omission) when they're requested but empty, so the API can legitimately serialize"ai_summary": nulletc. The previous spec typed them as non-nullable, which is incorrect and makes generated SDK types reject valid responses. Mirrors the corresponding API fix.Test plan
versionis0.7.4andspec/openapi.jsonis valid JSON.GrainSourceMetadatacarrynullable: true; no other schemas touched.ai_summary?: {...} | null).Summary by CodeRabbit
Documentation