Skip to content

fix(studio): a prompt always starts an image; bundle errors say what a bundle is - #545

Open
ymote wants to merge 8 commits into
mainfrom
studio/image-tool-contract
Open

ymote wants to merge 8 commits into
mainfrom
studio/image-tool-contract

Conversation

@ymote

@ymote ymote commented Oct 16, 2026

Copy link
Copy Markdown
Contributor

Summary

Two tool-contract fixes from the first live App Studio runs on the desktop development build, where the system agent (an OpenAI model) drove the studio tools from a plain brief (observed, not scripted):

  • studio.image took no image. The model sent a job of its own making ("1", "2", "new", then a name) beside every prompt, six times over two turns, even after a user message told it to send only the prompt. The tool refused each call ("give prompt to start an image, or job alone to poll one") and no generation was ever requested. Now a call with a prompt starts a generation whatever else it carries, and only a call without a prompt polls; every input property carries a description, and the tool text says the tool assigns the job id and that a prompt always starts a new generation.
  • studio.bundle_check did not say what a bundle is. The model passed main.splash itself, then a folder without a manifest, and got "manifest.json: No such file or directory". The manifest error and the tool text now say a bundle is a folder in the workspace holding manifest.json and main.splash, passed as bundle_path.

No behaviour changes for a correct caller. Docs are unchanged: the walkthrough's row already describes polling with the job value alone.

Still open from those runs, not in this PR: the system agent has no Splash language reference or bundle contract to read, so it wrote main.splash in an invented syntax; that needs a guide the studio hands the agent (a tool or a skill), which is a design decision.

Tests

  • phone --features mobile-apps,dev-mode -p octosense-shell studio: 47 passed (the happy-path test now starts with a prompt plus a stray job, and the schema test accepts that shape).
  • desktop --features app-hub studio: 47 passed.
  • Full suites and the two-run gate follow on the gated head.

🤖 Generated with Claude Code

ymote and others added 8 commits October 16, 2026 08:50
…a bundle is

First live runs of App Studio on the desktop development build, with the
system agent (an OpenAI model) driving the tools from a plain brief:

- `studio.image`: the model sent a job of its own making ("1", "2", "new",
  a name) beside every prompt, six times over two turns, even after being
  told not to; the refusal taught it nothing and no image was ever asked
  for. A call with a prompt now starts a generation whatever else it
  carries, only a call without one polls; every property has a
  description and the tool text says the tool assigns the job id.
- `studio.bundle_check`: the model passed `main.splash` itself, then a
  folder without a manifest, and got "manifest.json: No such file…". The
  error and the tool text now say a bundle is a folder in the workspace
  holding manifest.json and main.splash.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

This branch has not been deployed

No deployments
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.

1 participant