Skip to content

Add FastMetal execution, Jev routing and free MCP discovery - #15

Merged
copyleftdev merged 3 commits into
mainfrom
feat/fastmetal-adapter
Sep 22, 2026
Merged

copyleftdev merged 3 commits into
mainfrom
feat/fastmetal-adapter

Conversation

@copyleftdev

@copyleftdev copyleftdev commented Sep 22, 2026 •

Copy link
Copy Markdown
Owner

Braess can now execute fixed routes through FastMetal and use FastMetal-hosted Jev for routing decisions. The new braess-fastmetal companion shares the existing bounded generation engine, durable reservations and image-reference checks with OpenRouter. It preserves uncertain attempts without retries and records reported costs separately in JPY.

braess-fastmetal-discover adds optional, free MCP discovery: initialization, tool enumeration, model pricing/capabilities, selected-model details and sanitized balances. Private, create-only snapshots have timestamps and bounded response sizes, deadlines and pagination. Discovery never changes routes or invokes paid MCP tools.

  • Keep existing OpenRouter wire and journal defaults; add explicit FastMetal backend and credential selection.
  • Pin the observed FastMetal Jev response version and reject oversized encoded decision requests before reserving calls.
  • Include sanitized contract fixtures, setup examples, failure tests and both new binaries in Cargo packaging and CI evidence.
  • Update the optional image decoder to Pillow 12.3.0, the patched version for the 18 reported dependency advisories; verify all 144 showcase tests against that pin.
  • Give the catalog correctness fixture time for durable journal writes while preserving dedicated short-deadline tests.
  • Bump the unreleased version to 0.1.0-alpha.8.

Validation: all 15 offline validation stages and sealed-evidence verification passed; 96 Rust tests and 144 discovery-showcase tests passed; strict Clippy, Cargo package verification, version policy and Gitleaks passed. Focused live synthetic calls verified chat/image/reasoning/structured/tool/stream shapes, Jev decisions, the generation binary and the discovery binary. Live MCP returned 85 models and 12 tools. Total account spend after these experiments was approximately ¥0.10544; free MCP checks did not increase it.

Scope: generation remains non-streaming and has no tool execution loop. The companion offers JSON-object output, not a JSON-schema interface. MCP metadata is an observation, not an automatic routing policy or a guarantee of provider behavior. Existing USD demo accounting is not extended to JPY. No package publication or deployment is included.

@coderabbitai

coderabbitai Bot commented Sep 22, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: ab7271f6-4ff5-4942-b0ef-19b33bcecea0

📥 Commits

Reviewing files that changed from the base of the PR and between cf7bbc2 and 71c64c2.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (36)
  • CHANGELOG.md
  • Cargo.toml
  • README.md
  • config/fastmetal.live.example.json
  • config/gateway.fastmetal.live.example.json
  • demo/requirements-media.txt
  • docs/FASTMETAL.md
  • eval/fastmetal-rubric.json
  • scripts/fastmetal_discovery_e2e.py
  • scripts/fastmetal_e2e.py
  • scripts/gateway_catalog_e2e.py
  • scripts/validate_local.py
  • scripts/verify_evidence.py
  • src/bin/braess-fastmetal-discover.rs
  • src/bin/braess-fastmetal.rs
  • src/bin/braess-openrouter.rs
  • src/bin/braess-router.rs
  • src/fastmetal.rs
  • src/fastmetal/discovery.rs
  • src/fastmetal/discovery/fixtures/catalog.json
  • src/fastmetal/discovery/fixtures/initialize.json
  • src/fastmetal/discovery/fixtures/model.json
  • src/fastmetal/discovery/tests.rs
  • src/gateway.rs
  • src/generation/fixtures/fastmetal-reasoning.json
  • src/generation/fixtures/fastmetal-structured.json
  • src/generation/fixtures/fastmetal-text.json
  • src/generation/fixtures/fastmetal-tool.json
  • src/generation/fixtures/fastmetal-vision.json
  • src/generation/journal.rs
  • src/generation/mod.rs
  • src/generation/server.rs
  • src/generation/tests.rs
  • src/generation/vision.rs
  • src/lib.rs
  • src/openrouter.rs
 _______________________________________
< Clippy called, he wants his job back. >
 ---------------------------------------
  \
   \   \
        \ /\
        ( )
      .( o ).
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@copyleftdev
copyleftdev marked this pull request as ready for review September 22, 2026 05:17
@copyleftdev
copyleftdev merged commit 996dc00 into main Sep 22, 2026
2 checks passed
@copyleftdev
copyleftdev deleted the feat/fastmetal-adapter branch September 22, 2026 05:17
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