Skip to content

refactor(seller): remove the dead second agent axis (#200) - #299

Merged
orveth merged 1 commit into
devfrom
seller/200-remove-dead-roster
Jul 30, 2026
Merged

refactor(seller): remove the dead second agent axis (#200)#299
orveth merged 1 commit into
devfrom
seller/200-remove-dead-roster

Conversation

@orveth

@orveth orveth commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Removes [seller_roster] and seller_node::roster — the dead second agent axis described in #200.

Why it is safe to delete rather than finish

Nothing read it. The run loop resolves harnesses through boot_agent_registryseller_agents::resolve(seller, &home.config.agents) into an AgentRegistry; select_agent(), OfferNeeds and SelectedAgent had no consumers outside their own module, and SellerRosterConfig / RosterAgent appeared only in home.rs, where they were parsed, validated and serialised. An operator could write a full [seller_roster] section — agents, capabilities, min_rate_sats, slots — have it validate cleanly, and get no behavioural change whatsoever.

Under cleancut, a config surface a user can set that does nothing is a relic, and v1 ships without relics.

Verification

  • The compiler is the control on "nothing consumed it." grep suggested zero consumers; a clean build after deletion proves it. cargo build and cargo test both exit 0 with --features acp,wallet,gateway: 646 passed, 0 failed, 3 ignored, 0 filtered out.
  • ⚠ That 0 filtered out is load-bearing, not decoration. The wallet feature gates the entire seller_node module and mobee-core has default = [], so a plain cargo test compiles none of these tests and still prints ok — over a zero numerator. Reviewers re-running this should use the same feature set and check that the count moved.
  • Test-count delta is exactly the removed file's own tests: #[test] in mobee-core goes 534 → 528, and the deleted roster.rs contained exactly 6. No other test was touched.
  • No deployed config breaks. MobeeConfig carries deny_unknown_fields, so removing the field would make any config still carrying the section fail to load. Scanned every config.toml under /srv/forge and ~/.config34 configs, 0 with [seller_roster].
  • Pure deletion: no behavioural lines added.

Scope

Deliberately its own PR. The roster-drop feature (#254) extends seller_agents::AgentRegistry and is a separate semantic unit — a removal buried in a feature diff would spoil both reviews.

Closes #200.

🤖 Generated with Claude Code

`[seller_roster]` and `seller_node::roster` formed an agent-selection axis
parallel to the harness registry, and nothing read either one. The run loop
resolves harnesses through `seller_agents::resolve` into an `AgentRegistry`;
`select_agent`, `OfferNeeds` and `SelectedAgent` had no consumers outside
their own module, and `SellerRosterConfig`/`RosterAgent` appeared only in
`home.rs`. An operator could write a complete `[seller_roster]` section, have
it validate, and get no behavioural change.

The harness registry (`[seller] agents`) is the single agent axis.

Verified: builds and tests clean with `--features acp,wallet,gateway`
(646 passed, 0 failed, 0 filtered out); `#[test]` count in mobee-core moves
534 -> 528, exactly the 6 tests the deleted module carried. No config on
disk uses the section (34 scanned, 0 hits), so nothing fails the
`deny_unknown_fields` load.

Closes #200.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Jul 30, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
mobee Ready Ready Preview Jul 30, 2026 8:31am

Request Review

@orveth
orveth merged commit a1e14de into dev Jul 30, 2026
5 of 6 checks passed
@orveth
orveth deleted the seller/200-remove-dead-roster branch July 30, 2026 08:40
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