Migrate to the tenki SDK 0.5.1 and drop project ID support - #2
Merged
Conversation
The Python SDK now publishes as `tenki` (LuxorLabs/tenki.cloud#477); the `tenki_sandbox` namespace remains as a legacy alias but new code should use the canonical one. Pin `tenki[async]>=0.5.1` and import `from tenki import ...` in the core, the frontmatter `requirements:` of both distributables, and the live integration tests. Project scoping was removed from the API: `AsyncClient.create()` in 0.5.1 no longer accepts `project_id`, so passing it raises TypeError. Drop the `tenki_project_id` valve, the create-call argument, and the `TENKI_PROJECT_ID` env plumbing in `scripts/try_live.py` and the live tests. `workspace_id` is unchanged and still the way to scope a sandbox. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Review Complete Risk: 🟡 Medium (28/100) — 1 low finding · 61 LOC across 14 files Files Reviewed: 14 By Severity:
PR migrates from tenki-sandbox to the tenki SDK, removing project_id support. Two low-severity findings: a removed config field lacks deprecation notice, and a CI workflow still sets a now-unused TENKI_PROJECT_ID env var. Files Reviewed (14 files) |
Leftover from the project-ID removal: nothing reads TENKI_PROJECT_ID anymore now that the live tests no longer plumb it into Valves. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Flagged in review: the valve disappears from plugin settings with no explanation. A stale stored value is ignored rather than fatal, so this is a docs matter, not a migration — say so, and point operators at tenki_workspace_id. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Two related SDK changes:
1.
tenki-sandbox→tenki. The Python SDK now publishes under the canonicaltenkiname (LuxorLabs/tenki.cloud#477). Verified against the real 0.5.1 wheel:tenkiships the implementation and re-exports everything fromtenki_sandbox, sofrom tenki import AsyncSandboxis equivalent and the legacy namespace still works as an alias.pyproject.toml:tenki-sandbox[async]>=0.3.5→tenki[async]>=0.5.1src/open_webui_tenki/core.pyand the live tests:from tenki import ...requirements:frontmatter in both distributables (viascripts/build.py)2. Project ID support removed.
AsyncClient.create()in 0.5.1 no longer acceptsproject_id— passing it now raisesTypeError, so this is a required change, not just cleanup.tenki_project_idvalve and its create-call argumentTENKI_PROJECT_IDplumbing fromscripts/try_live.pyandtests/integration/test_live.pytenki_workspace_idis unchanged and remains the way to scope a sandboxNotes
open-webui/are regenerated bypython scripts/build.py; the source of truth issrc/open_webui_tenki/.tenki_project_idis removed from the Valves schema. Operators who had set it will see it disappear from the plugin settings after re-import; no action needed since the API no longer honors project scoping.Test plan
pytest— 59 passed, 10 skipped (live integration tests, gated onTENKI_API_KEY)ruff check .andruff format --check .— cleanpython scripts/build.pyregenerated both distributables;test_build.pyloads and instantiates them🤖 Generated with Claude Code