Skip to content

Sonilo plugin 1.2.0: generate_video_subtitles and local-file upload - #4

Draft
steven-panxd wants to merge 21 commits into
mainfrom
codex/plugin-v1.2.0
Draft

steven-panxd wants to merge 21 commits into
mainfrom
codex/plugin-v1.2.0

Conversation

@steven-panxd

Copy link
Copy Markdown
Member

Draft. Do not merge or package until the 1.1.0 review at OpenAI has a decision.

Why

Two hosted MCP changes landed after the 1.1.0 package was submitted for review:

  • The subtitle tool is now listed as generate_video_subtitles. proofread is no longer in the hosted tool list, and OpenAI's scan no longer shows it. The package in review still routes to proofread.
  • create_upload_url lets the hosted server take a file from the user's machine. The skill guidance for it was merged into codex/plugin-v1.1.0 in feat(skill): use create_upload_url for local files #3, after the package had been submitted, so the package in review does not contain it.

What is in this PR

Against main this PR carries #3 (the "Use a local file" section, unchanged) plus the 1.2.0 work on top of it:

  • Subtitle routing uses generate_video_subtitles. The skill notes that its availability and trial allowance are still reported under the proofread service key.
  • references/dubbing.md: an edited .srt or .vtt on the user's machine can be uploaded and used as the dubbing script.
  • references/examples.md: tool name, one local-file example.
  • plugin.json: version 1.2.0. The long description no longer says media must be public HTTPS links. It also picks up the listing copy that had been uncommitted (long description and first starter prompt).
  • scripts/check_release.py: paid-tool list, a guard against routing to the retired name, and guards for the upload rules.
  • README.md: feature list, example, data-sent and local-command statements.
  • docs/REVISION_1.2.0_NOTES.md: release notes, validation, and what must change in the portal.

Rules for user-supplied URLs are unchanged.

Validation

  • python3 scripts/check_release.py and --live pass.
  • Codex CLI 0.162.0-alpha.2, fresh non-interactive sessions, hosted MCP only:
    • Installed 1.1.0 skill (baseline): 8 of 9 subtitle requests chose generate_video_subtitles; 1 stopped because proofread was missing.
    • This branch: 4 of 4 subtitle requests chose generate_video_subtitles.
    • Local file, network blocked: called create_upload_url, could not upload, started nothing, asked for a public HTTPS link.
    • Local file, network allowed: uploaded, then called a generation tool with the returned link. It chose video_to_music although a finished video was requested; one run, not investigated.
    • Private-network http:// URL: refused with no tool call.
  • Every generation call was stopped by the session's approval policy before running, so nothing was created or charged. These runs show tool selection, not delivered results.

Not validated: a complete run to a delivered result, the Codex desktop app, ChatGPT web, the packaged ZIP, and the portal Skill scan.

Before submitting to OpenAI

  • The nine portal translations and docs/LISTING_COPY_1.1.0.json still carry the old long-description sentence.
  • Portal tool justifications need entries for generate_video_subtitles and create_upload_url, and the proofread entry removed.
  • Privacy and data-use answers should say that a local file the user asks to process is uploaded to Sonilo.
  • Check whether any of the three negative test cases expects a local file to be refused.
  • Record one end-to-end local-file run.

🤖 Generated with Claude Code

steven-sonilo and others added 21 commits October 2, 2026 16:31
The hosted MCP server gains a free create_upload_url tool
(sonilo-api-dashboard#407). The workflow skill told Codex to refuse a
local file and ask for a public HTTPS URL, which would leave the new
tool unused.

Add a "Use a local file" section: upload only a file the user named,
PUT it to the returned upload_url, pass file_url as the tool input,
and fall back to asking for a public URL when the tool is missing or
the PUT cannot be made. Uploading to any third-party host stays
prohibited.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
feat(skill): use create_upload_url for local files
…pload

The hosted server no longer lists `proofread`; the subtitle tool is
`generate_video_subtitles`, with `proofread` kept only as the service key
that get_account_services reports. In fresh Codex sessions the 1.1.0
skill still picked the right tool 8 times out of 9, and gave up once
because `proofread` was missing.

The hosted server also gained `create_upload_url`, so a file on the
user's machine can be used. The skill now uploads a file the user named
to the one-time URL Sonilo returns, keeps that URL out of replies, and
asks for a public HTTPS link where the upload cannot run. Rules for
user-supplied URLs are unchanged.

plugin.json also picks up the listing copy that was sitting uncommitted
in the working tree (long description and first starter prompt), since
the 1.2.0 wording builds on it.

check_release.py guards against routing to the retired name and checks
the upload rules. See docs/REVISION_1.2.0_NOTES.md for validation and
what still has to change in the portal before this is submitted.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The 1.2.0 draft was written from a checkout that predated PR #3 and added
its own local-file section. Keep PR #3's "Use a local file" section and
routing row as they are, drop the duplicate, and keep only what 1.2.0
adds on top: the generate_video_subtitles rename, the proofread
service-key note, and the release-check guards, now matched to PR #3's
wording.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…dy in this branch)

origin/main's tree is identical to 5a434ca, an ancestor of this branch, so
main contributes no content. Record the merge so the PR is mergeable.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
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