Repository navigation
Conversation
…f the hosted MCP The plug-in sent every call to the hosted MCP, a service written for agents: errors came back as text, so a paid call's outcome was guessed with patterns, and each call made an extra hop through a token exchange. - RestBackend keeps the ScenarioBackend interface and calls the REST API with scenario-sdk 2.5.0: teams and projects, models (filtered by capability), generation with dryRun for price checks, jobs, assets, 3D conversion links, multipart uploads. - core/rest.py builds the SDK's HTTP client (OS trust store, system proxies, no redirects) and keeps the spending rules: paid calls are sent once with retries off, and a token the API's gateway refuses (403 with x-amzn-errortype) is renewed and resent once. - tools/vendor_sdk.py unpacks the SDK and its dependencies, pinned by SHA-256, into _vendor/sdk; core/sdk.py loads the pydantic_core build for the running Maya, after the packages installed in Maya's Python but before setuptools/_vendor, whose older typing_extensions Maya puts on the path. - SCENARIO_API_URL replaces SCENARIO_MCP_URL; recommend and wait_jobs go, nothing called them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…tus test Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… and publish its changelog There was no release: no version bump, no changelog from the merged pull requests, and no package to download. - release-please keeps the release PR (version in pyproject.toml, scenario_maya/__init__.py and ScenarioForMaya.mod, changelog); merging it builds scenario-maya-X.Y.Z.zip from the release commit, checks it byte for byte, attests it, attaches it with SHA256SUMS and a Sigstore bundle to a draft, checks it again on macOS, then publishes the draft. - tools/package.py builds a reproducible ZIP (module, vendored SDK, install_scenario.py, licence); tools/release/ holds the package check, the draft finder and the contributors section, ported from photoshop-plugin. - publish-changelog posts each published release's notes to www.scenario.com/changelog; RELEASING.md lists the settings it needs. - The first release is 0.1.0: the manifest starts at 0.0.0. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rcel proxy The plug-in had no page to download it from, and its downloads were not counted, unlike photoshop.scenario.com and blender.scenario.com. - site/index.html, one page in the style of the other plug-in sites, with the pictures of docs/media; pages.yml publishes it to GitHub Pages after each release with the release's ZIP under /download/ (checked against its SHA256SUMS and build attestation) and download/latest.json. - tools/site_proxy (vercel.json, middleware.ts), ported from photoshop-plugin: forwards maya.scenario.com to Pages, counts ZIP downloads in PostHog without identifying visitors, and answers /download/latest. - tools/release/stamp_site.py fills the page with the release's version; the proxy tests run in CI on the Node of .nvmrc, required by ci-ok. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…age after it Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
Author
|
@coderabbitai review |
Action performed
|
- A paid call whose answer cannot be read is Not confirmed, not refused. - RestClient refuses a base URL that is not HTTPS (loopback excepted). - An API key reads every /projects page until one has its project. - upload_complete reads an upload again while it is not readable yet. - The GUI install stage checks the label against the key's own project. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…n the user's step A live generation quoted 12.75 CU and showed 11 charged: a job's cuCost is its main action only, and the quality gate's 1.75 CU is in cuCostDetails. The charge is now the sum of cuCostDetails when the job has them. The GUI generate stage undid the playblast's own step instead of the card; it now undoes that step first. SCENARIO_GUI_URL_FILE lets an agent open the sign-in page in a browser it drives. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # tests/gui/gui_checks.py
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # tests/gui/gui_checks.py
# Conflicts: # AGENTS.md # RELEASING.md
…and who can use it Co-Authored-By: Claude Opus 5.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.
What does this PR change?
The plug-in had no page to download it from, and its downloads were not counted, unlike photoshop.scenario.com. This adds maya.scenario.com, as photoshop-plugin does:
site/index.html(one page, the pictures ofdocs/media), published to GitHub Pages bypages.ymlafter each release with the release's ZIP under/download/(checked against itsSHA256SUMSand build attestation) anddownload/latest.json; andtools/site_proxy, the Vercel project that holds the domain, forwards it to Pages, counts ZIP downloads in PostHog without identifying visitors, and answers/download/latest. The middleware and its tests are ported from photoshop-plugin; the tests run in CI on the Node of.nvmrc(newsite proxyjob, required byci-ok).Stacked on #17; retarget to
mainonce #16 and #17 are merged. After merge, an administrator does whatRELEASING.md("Site") lists: Pages source "GitHub Actions", the Vercel projectmaya-plugin-siterooted attools/site_proxywithPOSTHOG_PROJECT_TOKENand the domain, and the Route 53 CNAME in scenario-labs/management. Until then the page publishes to the Pages address only.Validation
uv run --with pytest pytest -qpasses; for changes that touch Maya code,tools/test_maya.shpasses too. The Maya version and OS are listed below.python3 tools/lint.py,uvx ruff check .anduvx ruff format --check .pass.install_scenario.pyonto a Maya viewport with no errors or warnings in the Script Editor, and its contents were inspected.tools/test_maya_gui.shor by hand), with before/after screenshots for UI.python3 tools/contract_check.py(free) when calls to Scenario change; any paid run had prior authorization for its project and budget.Commands and results:
uv run --python 3.13 --with pytest pytest -q: 181 passed, includingtests/unit/test_site.py(the page links/download/latest, has no em dash, names only support@scenario.com, every local file it uses exists; stamping fills version and ref and refuses anything else).node --test tests/site/*.test.json Node 24: 11 passed (download counts, anonymous ids, client classes, ignored paths and resumed downloads, no token no count,/download/latestredirect and its fallback to the releases page).docs/mediaand show only the masked "My Team / My Project".pages.ymlitself (it publishes only frommainof this repository), and the proxy on Vercel (the project does not exist yet). No Maya code changed.Public content
Rules
AGENTS.mdstill hold (price check first, single-use quotes, paid calls sent once,SCENARIO_NO_SPEND).Authorship and licensing
Written with Claude Code (Claude Opus 5.5). The middleware, its tests, the publish steps and the version stamping are ported from photoshop-plugin (MIT, same organization); the Scenario logo is a trademark of Scenario, as its file says.
🤖 Generated with Claude Code
Summary by CodeRabbit