Skip to content

Use Meta Muse Ember for the e2e language model - #193

Merged
jonbeckman merged 1 commit into
masterfrom
cursor/e2e-muse-ember-21c8
Nov 9, 2026
Merged

jonbeckman merged 1 commit into
masterfrom
cursor/e2e-muse-ember-21c8

Conversation

@jonbeckman

Copy link
Copy Markdown
Contributor

Summary

Local e2e runs now default the language model to meta/muse-ember-1.0. Ids that do not start with anthropic/ already go through openai.chat() on the Cloudflare AI Gateway /ai/v1 route, so scripts/e2e/models.ts changes only that constant. E2E_DECISION_MODEL is unchanged.

Language-model calls already forward agents.default.providerOptions into generateText: field text in @e2e-dev/decision (askText) and waitFor / extract in the e2e runner. This sets providerOptions.openai.reasoningEffort to low. Installed ai 7.0.152 documents a top-level reasoning setting, and @ai-sdk/openai 4.0.101 maps providerOptions.openai.reasoningEffort onto Chat Completions reasoning_effort (that provider option wins when both are set). The runner only forwards providerOptions, so that is the option those call sites can carry. The decision model does not receive it.

The organization Actions variable E2E_LANGUAGE_MODEL is not changed. CI keeps using that variable until it is set to meta/muse-ember-1.0.

release:none: this is an internal test-harness change. It does not change the product for users, administrators, or deployment operators, so there is no .tegami/ entry.

Call site

e2e.config.ts:

providerOptions: { openai: { reasoningEffort: "low" } },

scripts/e2e/models.ts:

const DEFAULT_LANGUAGE_MODEL = "meta/muse-ember-1.0"

Proof

Same prompt, gateway id default, model meta/muse-ember-1.0, credential CF_AI_GATEWAY_E2E_TOKEN. CLOUDFLARE_API_TOKEN was not used.

Prompt: a library has 240 books, one quarter are checked out, and one third of the remainder are reserved. Reply with only the number.

Call reasoning_effort sent reasoning_tokens completion_tokens Answer
no reasoning option omitted 154 164 120
reasoningEffort: "low" low 108 118 120

Both responses were HTTP 200 with no SDK warnings. Low effort is honored, and on this prompt most completion tokens are still reasoning tokens (154 of 164, then 108 of 118).

Validation

  • nub run config:check
  • nub run typecheck
  • nub run lint
  • nub run format
  • nub run test: 30 passed, 2 failed (13 files, 32 tests). The runner selected openai.chat/meta/muse-ember-1.0.

The two failures are opencode executes a real prompt and codex executes a real prompt. Both timed out after 180s because the container proxy could not program iptables in this VM (RULE_APPEND failed, missing kernel module). The isolate prompt test and the rest of the core suite passed. Four recorded agent.act steps replayed.

Checklist

  • I added or updated tests for behavior changes, or explained why tests are not needed.
  • I updated documentation and config examples when behavior or configuration changed.
  • I added a .tegami/ release entry, or explained why this pull request uses release:none.
  • I ran nub run config:check, nub run typecheck, nub run lint, nub run format, and nub run test.
  • I did not include credentials, private data, internal URLs, or organization-specific defaults.
  • I updated THIRD_PARTY_NOTICES.md for new third-party code or separately licensed assets.
Open in Web Open in Cursor 

Local runs default to meta/muse-ember-1.0. Language-model calls send
OpenAI reasoning effort low so that model spends fewer output tokens
on reasoning.

Co-authored-by: Jonathan Beckman <jonathantbeckman@gmail.com>
@jonbeckman
jonbeckman marked this pull request as ready for review November 9, 2026 22:15
@jonbeckman jonbeckman added the release:none label Nov 9, 2026 — with Cursor
@jonbeckman
jonbeckman enabled auto-merge (squash) November 9, 2026 22:16
@github-actions

github-actions Bot commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

Tegami

This repository uses Tegami to manage releases. When your changes affect published packages, add a changelog file under .tegami/ before merging.

Create a changelog → · Changelog format

Release preview

Package Bump Version
solzero major 2.0.0 → 3.0.0

This PR does not add changelog files. Pending changelogs from other branches are included in the preview above.

Run nub run tegami locally to create a changelog interactively.

Managed by Tegami.

@github-actions

github-actions Bot commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

🟢 e2e solzero-core: 32 passed

4 agent steps · 4 replayed from cache

Change 5 files changed since c7553a4
Filter decision kept all 30 tests (e2e.config.ts changed, so the decision filter left nothing out)

All 32 tests in 13 files
Test Agent Time
🟢 tests/accounts.e2e.ts · 3 passed 7.0s
🟢 create, use and revoke an isolated user API key 3.6s
🟢 Better Auth 1.7 account APIs select the local account row id 161ms
🟢 Accounts settings shows GitHub as unlinked without OAuth providers 3.3s
🟢 tests/admin.e2e.ts · 1 passed 6.7s
🟢 administrator pages show live control-plane configuration 6.7s
🟢 tests/advanced-sessions.e2e.ts · 2 passed 7.8s
🟢 incognito sessions stay outside normal lists but open directly 3.6s
🟢 session MCP definitions and subagent preferences persist 4.2s
🟢 tests/api-contract.e2e.ts · 1 passed 424ms
🟢 exported API key and session schemas decode actual Worker responses 424ms
🟢 tests/auth.e2e.ts · 4 passed 17.1s
🟢 sign-in gate protects every application route 1.2s
🟢 credential sign-in opens the requested settings page 7.7s
🟢 anonymous callers cannot access any protected API group 115ms
🟢 sign-out removes authenticated UI access 8.1s
🟢 tests/auth.setup.e2e.ts · 2 passed 8.3s
🟢 authenticate isolated admin 5.9s
🟢 authenticate isolated peer 2.4s
🟢 tests/bots.e2e.ts · 1 passed 5.3s
🟢 create a bot and manage a temporary routine through the UI 5.3s
🟢 tests/branding.e2e.ts · 3 passed 325ms
🟢 the selected deployment brand reaches the browser 245ms
🟢 health identifies the configured application without exposing configuration 22ms
🟢 OpenAPI uses the selected deployment brand 58ms
🟢 tests/session-transfer.e2e.ts · 1 passed 2.3s
🟢 admin authentication transfer redeems once and retains its deep link 2.3s
🟢 tests/sessions.e2e.ts · 5 passed 1 step 42.8s
🟢 session tools, archive and restoration persist through the real Worker 1 step 6.0s
🟢 a second account cannot read or mutate another account's session 263ms
🟢 isolate executes a real prompt and persists its output 8.5s
🟢 opencode executes a real prompt and persists its output 14.5s
🟢 codex executes a real prompt and persists its output 13.5s
🟢 tests/settings.e2e.ts · 5 passed 2 steps 27.1s
🟢 all settings categories load real data 8.7s
🟢 runtime default persists after reload 6.4s
🟢 MCP deep link and legacy settings URL open the MCP tab 2.5s
🟢 secret editor creates, finds and deletes a disposable secret 1 step 4.5s
🟢 theme preference survives reload 1 step 5.0s
🟢 tests/skills.e2e.ts · 1 passed 8.2s
🟢 global skill defaults and per-user preferences persist independently 8.2s
🟢 tests/workflows.e2e.ts · 3 passed 1 step 9.2s
🟢 workflow authoring, rename, export, disable and archive persist 1 step 6.4s
🟢 manual workflow executes JavaScript and stores a real R2 artifact 2.7s
🟢 invalid workflow definitions are rejected before storage 101ms

e2e 0.21.3 · 3m 16s · local-cloudflare · run artifacts

@jonbeckman
jonbeckman merged commit ab63007 into master Nov 9, 2026
20 checks passed
@jonbeckman
jonbeckman deleted the cursor/e2e-muse-ember-21c8 branch November 9, 2026 22:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants