Skip to content

Phase 1: bump roe-ai to 1.0.802 (public SDK sync)#41

Merged
jadenfix merged 10 commits into
mainfrom
jaden/sync-v2-bump
May 26, 2026
Merged

Phase 1: bump roe-ai to 1.0.802 (public SDK sync)#41
jadenfix merged 10 commits into
mainfrom
jaden/sync-v2-bump

Conversation

@jadenfix
Copy link
Copy Markdown
Member

@jadenfix jadenfix commented May 20, 2026

Summary

  • Retargets the coordinated Python SDK sync release to 1.0.802.
  • Adds generated wrapper support from openapi/wrappers.yml.
  • Includes the public SDK discovery, table upload, idempotency key, and wrapper transport updates from the shared SDK contract.
  • Keeps this Python PR aligned with the TypeScript and Go SDK sync PRs.

Related PRs

Verification

  • uv run --locked ruff check .
  • uv run --locked pytest

Joins the synced 4-package family (roe-ai, roe-typescript,
roe-golang/v2, roe-mcp) on a shared 2.0.0 baseline. No API surface
changes — code that worked on 1.0.79 / 1.0.80 / 1.0.801 works on
2.0.0 unchanged.

Why: the previous sub-patch versioning (1.0.811, 1.0.801) permanently
shadowed future weekly releases because PyPI compares patches as
integers (1.0.811 > 1.0.82). Resetting to a clean major + letting
roe-main's release fan-out auto-bump the patch via
`roe-sdk compute-next-version` makes the shadowing problem
structurally impossible.

Sibling PRs in the synced 4-package land:
- roe-ai/roe-mcp: Phase 1+2 bootstrap contract + 2.0.0 bump
- roe-ai/roe-typescript: Phase 1 1.0.80 -> 2.0.0
- roe-ai/roe-golang: Phase 1 1.0.80 -> 2.0.0 (v2 module path)
- roe-ai/roe-main: Phase 3+4 adds mcp to targets.yml + the
  compute-sdk-version job that drives synced patch bumps.
@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented May 20, 2026

Greptile Summary

This PR retargets the SDK sync from 2.0.0 to 1.0.82, adding DiscoveryAPI and TablesAPI generated facades, wiring idempotency_key into async agent runs, and migrating several wrapper methods from the sync_detailed + translate_response pattern to the request_raw helper for uniform 404 handling.

  • New generated wrappers (src/roe/api/discovery.py, src/roe/api/tables.py) are emitted by scripts/generate_wrappers.py from openapi/wrappers.yml; the CI drift check now covers them so they stay in sync with the spec.
  • Idempotency key is threaded through call_dynamic via the new extra_headers parameter; applied in both AgentsAPI.run() and run_version() and verified by a focused transport test.
  • File-close lifecycle in TablesAPI.upload correctly distinguishes path-opened handles (close_after=True) from caller-owned BinaryIO objects (close_after=False) using a try/finally block.

Confidence Score: 5/5

Safe to merge — all MCP-facing wrappers, idempotency header propagation, and file-close lifecycle are correctly implemented and covered by unit tests.

The idempotency header wiring in call_dynamic is correct, the generated facades translate errors uniformly through translate_response, and the CI drift check now gates against wrapper/spec divergence. The only gaps are test coverage for run_version idempotency key and a missing 400-error case for the tables upload, neither of which reflects a defect in the shipped code.

No files require special attention; the two test coverage gaps noted are in tests/unit/test_agents_wrapper_transport.py and tests/unit/test_tables.py.

Important Files Changed

Filename Overview
src/roe/api/agents.py Adds idempotency_key to run() and run_version(); migrates several methods to request_raw for uniform 404 handling. Correct and well-tested.
src/roe/utils/_dynamic_call.py Adds optional extra_headers; merged after x-roe-skip-retry, before Content-Type pop. Header ordering is correct.
src/roe/api/tables.py New generated facade; file-close lifecycle correctly handles all four input types via close_after flag + try/finally.
src/roe/api/discovery.py New generated facade; None capability correctly translated to UNSET before calling generated endpoint.
src/roe/client.py Adds getattr to expose generated API groups; dict.get pattern avoids infinite recursion.
scripts/generate_wrappers.py New codegen script; README regex replacement is correct (DOTALL, count=1).
tests/unit/test_agents_wrapper_transport.py Covers 404 routing and run() idempotency header; run_version() idempotency path not independently exercised.
.github/workflows/ci.yml Adds test job; extends drift check to wrappers.yml, readme_blocks.yml, and src/roe/api.

Fix All in Claude Code

Reviews (6): Last reviewed commit: "fix: retarget SDK sync release to 1.0.82" | Re-trigger Greptile

@jadenfix
Copy link
Copy Markdown
Member Author

@greptileai final review please. Included in the synced release fan-out drill: Python no-op spec stayed unchanged, synthetic SDK-visible operations generated into roe._generated, version bumped from 2.0.0 to 2.0.1, README release note stayed historical, and the Python test suite passed.

@jadenfix jadenfix changed the title Phase 1: bump roe-ai to 2.0.0 (synced 4-package release) Phase 1: bump roe-ai to 2.0.0 (public SDK sync) May 21, 2026
@jadenfix
Copy link
Copy Markdown
Member Author

@greptile please review this PR in the context of the related SDK/MCP sync PRs. Focus on release-path correctness, generated-code drift, and whether the centralized contract assumptions are robust.

@jadenfix
Copy link
Copy Markdown
Member Author

@greptile final re-review please in context of the roe-main release fan-out PR. Please focus on generated wrapper drift, README block sync, and whether this 2.0.0 bootstrap is ready to be regenerated by the roe-main prepare-target CLI on future releases.

@jadenfix
Copy link
Copy Markdown
Member Author

@greptile re-review latest commit please. Added Python SDK CI test/lint and widened codegen drift checks to include wrappers, README blocks, generated friendly API files, and README sync output.

@jadenfix jadenfix changed the title Phase 1: bump roe-ai to 2.0.0 (public SDK sync) Phase 1: bump roe-ai to 1.0.82 (public SDK sync) May 22, 2026
@jadenfix
Copy link
Copy Markdown
Member Author

@greptile re-review latest head please. This is now 1.0.82 rather than 2.0.0; please focus on the Python SDK wrappers that MCP calls directly, idempotency header propagation, and generated wrapper drift. Prior Greptile was 5/5 but referenced an older commit; please update against the current head.

@jadenfix jadenfix changed the title Phase 1: bump roe-ai to 1.0.82 (public SDK sync) Phase 1: bump roe-ai to 1.0.802 (public SDK sync) May 26, 2026
@jadenfix jadenfix merged commit ebc878f into main May 26, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants