Skip to content

Creator Workbench previews against the fake runtime when no model is installed #476

Description

@charneykaye

Context

Found during the 360 review pass over #474 (which removed the no-model demo path from first-run). #474's backstop only guards POST /api/sessions. The Creator Workbench creates preview sessions through a different path — POST /api/workbench/packs/{kind}/{slug}/test-session (start_test_session) — whose own docstring notes the session "can be used with the standard /api/sessions/{id}/turn endpoint."

That workbench setup dict carries no runtime_id pin, so _resolve_runtime falls back to the shared app.state.runtime. On a profile with no model installed, that shared runtime is the config default fake (config.py: runtime_id = "fake"), whose every reply is the canned "Hello there. I am a simulated NPC."

Why it matters

A creator authoring a scenario without a model installed previews it against the fake responder — the same "it's just a chatbot" first impression #473 cured for new players, in a different surface. The Workbench sits behind FirstRunGuard, and an incomplete profile (outcome recorded, no model) can reach /workbench, so this is reachable, not theoretical. It's pre-existing (not introduced by #474), and the new 409 backstop deliberately does not cover this route.

Suggested direction (maintainer's call)

A scenario preview is only meaningful against a real model, so the honest behavior is to require one: when the resolved runtime for a workbench test session is model-free (fake/scripted), return a clear "install a model to preview your scenario" response instead of silently serving canned replies. Pinning scripted is not a fix — that runtime only knows the first-words tutorial script, not arbitrary authored scenarios.

References

🤖 Generated with Claude Code

https://claude.ai/code/session_01C9WmcidRL3ABq7qhWHUsrG

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    Status
    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions