Skip to content

1.9.0: Scenarios — rename Catalogs, edit in the dashboard, generate from a project's browser, export and import - #586

Merged
TonsOfFun merged 4 commits into
mainfrom
feat/scenarios-dashboard
Oct 15, 2026
Merged

TonsOfFun merged 4 commits into
mainfrom
feat/scenarios-dashboard

Conversation

@TonsOfFun

@TonsOfFun TonsOfFun commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Release: 1.9.0. Scenario catalogs are new in 1.9, so the rename and dashboard management ship with them. No browser-sidecar/ changes, and nothing depends on the live view's file upload (#588, 1.9.1); the Generate tab uses BrowserPanel as #584 has it.

Stacked on #584 (base feat/claude-code-boot-setup), rebased onto its reworked tip without the upload commit, so this diff shows only the Scenarios work. Retarget to main once #584 merges. Green CI also needs #587 (ruby_llm 2.1.1 breaks two eval tests on main).

What changes

  • Rename: "Catalogs" is now Scenarios in the sidebar, page and copy, at /scenarios, and /catalogs redirects there. The database, the API and the YAML catalog: key are unchanged, so existing documents still import.

  • Editing in the dashboard: create an empty collection, then add, edit and delete products, sets and scenarios in place. A scenario has a prompt, notes as the rubric, expected tools, contains / never contains, tags, enabled and production-only. Every change is checked the same way an import checks a document, and the collection's YAML is rewritten.

  • Generate tab:

    • Pick a project. The page shows the project's explorer controls and the sandbox's live browser.
    • The proposals are the same records as the project's Explorations tab, accepted into a scenario set instead of the evaluation.
    • A missing provider key or an unbooted sandbox is flagged up front, and a project's collection can be created in one click.
  • Export: the whole collection, or any checked products, sets and scenarios, as a YAML download or copied to the clipboard.

  • Import:

    • From a paste, an uploaded file, or a repository's .activeagents/evals.
    • Preview lists by key what will be created, overwritten, removed or kept before anything is written.
    • "Keep what the document leaves out" is on by default in the UI, so importing an exported selection only updates those entries.
  • Accessibility (e0359309): the scenario form's prompt and notes boxes (and every Field/Select) tie their label to the control by id and carry an aria-label. The live test found screen readers reading them as an unnamed "textbox".

Live test (integration build of #584 + #586)

Import preview and apply, adding a scenario, the export round trip and the Generate tab UI all passed. The unnamed text boxes were the only finding, fixed above.

Tests (Ruby 4.0.6), after the rebase

  • actionagent: 1695 runs, 0 failures, 7 skips.
  • frontend: 599 pass.
  • browser-sidecar: 128 pass (unchanged).
  • rubocop clean; the bundle is rebuilt.

Open questions

  1. Claude Code as a generator isn't built: a Claude Code session driving the sandbox browser and submitting proposals, so no provider key is needed. That's proposed as the next branch.
  2. Should the API default to merging on import, like the UI does?
  3. Should the API be renamed to match "Scenarios", with the old routes kept as aliases?
  4. Should the generator offer "accept and run set"?
  5. On the local backend, Run set still needs the first-boot "Run it on this machine" confirmation from the project page.

Review note with how to test: activeagents docs/features/scenarios-dashboard.md.

🤖 Generated with Claude Code

https://claude.ai/code/session_01CJAKwnkBaCGr5qjCcmc3kh

@TonsOfFun
TonsOfFun force-pushed the feat/claude-code-boot-setup branch from 85ae163 to 46add98 Compare October 14, 2026 20:32
@TonsOfFun
TonsOfFun force-pushed the feat/scenarios-dashboard branch from 9f4e3e7 to e035930 Compare October 14, 2026 20:53
@TonsOfFun TonsOfFun changed the title Scenarios: rename Catalogs, edit in the dashboard, generate from a project's browser, export and import 1.9.0: Scenarios — rename Catalogs, edit in the dashboard, generate from a project's browser, export and import Oct 14, 2026
@TonsOfFun
TonsOfFun marked this pull request as ready for review October 14, 2026 21:09
TonsOfFun and others added 3 commits October 14, 2026 17:07
…xport and import

The Catalogs page becomes Scenarios (/catalogs redirects there), and a
collection can now be built and changed in the dashboard rather than only
imported:

- Products, sets and scenarios are created, edited and deleted in place
  (ScenarioCatalogEntriesController). Each change is checked as an import
  checks a document and rewrites the collection's YAML and digest.
- Generate runs the project's explorer in its sandbox's browser, shows the
  browser live, and accepts the exploration's candidates into a chosen set
  (Exploration#accept_into_set!), so project explorations and generated
  scenarios are the same records.
- Any part of a collection exports as YAML (download or copy), and an
  import is previewed by key (created, overwritten, removed or kept) before
  it is applied. A merge mode keeps what the document leaves out, so an
  exported selection imports back without touching the rest.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CJAKwnkBaCGr5qjCcmc3kh
The live test found the scenario form's prompt and notes boxes read as an
unnamed "textbox": a textarea inside a flex label lost its name. Field and
Select now tie their label to the control by id and give it an aria-label.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CJAKwnkBaCGr5qjCcmc3kh
Deleting a collection asks for its key to be typed; deleting a product,
set or scenario is a plain Confirm/Cancel.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CJAKwnkBaCGr5qjCcmc3kh
@TonsOfFun
TonsOfFun force-pushed the feat/scenarios-dashboard branch from e035930 to bad461d Compare October 15, 2026 00:13
@TonsOfFun
TonsOfFun changed the base branch from feat/claude-code-boot-setup to main October 15, 2026 02:20
@TonsOfFun
TonsOfFun merged commit 6959516 into main Oct 15, 2026
23 of 24 checks passed
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