microsoft / microsoft/amplifier

app-cli: routing.matrix injects hooks-routing with no source: — module never downloads, routing silently disabled

Open
#351 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
3.1k
Forks
261
Avg merge
3h 28m
Merged PRs (30d)
13

Description

(Filed here because microsoft/amplifier-app-cli has issues disabled — this is an app-cli runtime bug.)

Setting routing.matrix in settings.yaml makes app-cli inject a hooks-routing entry into the mount plan with no source: field, appended after Bundle.prepare() has run (amplifier_app_cli/runtime/config.py, the "Routing matrix config injection" block). The module is in neither ~/.amplifier/registry.json nor the CLI environment, so it never downloads and the hook silently never mounts.

No foundation bundle mounts it either — grep -rn routing over bundles/anchors returns nothing, and amplifier run uses anchors by default.

Result: amplifier routing show prints a perfect role→model table while every delegation runs on the root session's model.

Why it hides well: a critique delegation often resolves to the same model the root session already uses — the obvious spot-check passes by coincidence. It only becomes visible when delegating to an agent whose frontmatter model_role maps to a different model than the root session (e.g. anchors:buildercoding), and the delegation comes back on the root model anyway. Confirmed via the session events.jsonl (llm:request model per delegation), not the model's self-report.

Ask: either resolve a real source: for the injected hook entry (the routing-matrix bundle pins one — git+https://github.com/microsoft/amplifier-module-hooks-routing@main), or fail loudly at boot when a mount-plan entry has no resolvable source — anything but silently disabling the feature the settings key just enabled.

Workaround: a minimal user app bundle (~/.amplifier/bundles/routing-hook.md) that mounts hooks-routing with a pinned source:, registered via bundle.app in settings — restores routing for amplifier run delegations.

🤖 Generated with Claude Code

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in amplifier_app_cli/runtime/config.py at the “Routing matrix config injection” block, then reproduce with routing.matrix enabled and inspect session events.jsonl for each delegation’s llm:request model. Done means the injected hooks-routing entry has a resolvable source or app-cli fails loudly at boot, and delegations use the configured model role rather than the root model.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend, cli
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.