Skip to content

fix(skills): wire two_stage_matching and confusability_threshold at startup; migrate legacy bundled skills#2410

Merged
bug-ops merged 1 commit intomainfrom
2404-skills-startup-wiring
Mar 30, 2026
Merged

fix(skills): wire two_stage_matching and confusability_threshold at startup; migrate legacy bundled skills#2410
bug-ops merged 1 commit intomainfrom
2404-skills-startup-wiring

Conversation

@bug-ops
Copy link
Copy Markdown
Owner

@bug-ops bug-ops commented Mar 30, 2026

Summary

  • two_stage_matching and confusability_threshold config fields are now applied at agent startup instead of only after hot-reload (AgentBuilder gains two new builder methods; wired in runner.rs and daemon.rs)
  • Bundled skills provisioned before the .bundled marker system are migrated on upgrade — provision_bundled_skills detects skills whose SKILL.md matches the embedded version and re-provisions them with the category field and marker, without touching user-modified skills

Changes

  • crates/zeph-core/src/agent/builder.rswith_two_stage_matching and with_confusability_threshold builder methods
  • src/runner.rs, src/daemon.rs — wire new builder methods alongside with_disambiguation_threshold
  • crates/zeph-skills/src/bundled.rsis_legacy_bundled helper + migration in MarkerState::NoMarker branch

Test plan

  • Unit tests for with_two_stage_matching and with_confusability_threshold (clamping, flag set/unset)
  • Integration-style tests for provision_bundled_skills migration path: re-provision with markers removed → all skills updated; re-provision with modified SKILL.md → skipped
  • cargo nextest run --config-file .github/nextest.toml --workspace --lib --bins — 6711 passed

Closes #2404
Closes #2403

@github-actions github-actions bot added documentation Improvements or additions to documentation bug Something isn't working skills zeph-skills crate rust Rust code changes core zeph-core crate size/L Large PR (201-500 lines) labels Mar 30, 2026
…tartup; migrate legacy bundled skills

AgentBuilder gains with_two_stage_matching and with_confusability_threshold builder
methods. Both are wired in runner.rs and daemon.rs alongside with_disambiguation_threshold,
so config values are applied at startup rather than only after hot-reload. Closes #2404.

provision_bundled_skills now detects legacy bundled skills (dirs without a .bundled marker
whose SKILL.md content matches the embedded version) and re-provisions them, adding the
marker and updated category field without overwriting user-modified skills. Closes #2403.
@bug-ops bug-ops force-pushed the 2404-skills-startup-wiring branch from 9a1a464 to 7a55aad Compare March 30, 2026 00:47
@bug-ops bug-ops enabled auto-merge (squash) March 30, 2026 00:47
@bug-ops bug-ops merged commit 96415ec into main Mar 30, 2026
47 of 49 checks passed
@bug-ops bug-ops deleted the 2404-skills-startup-wiring branch March 30, 2026 00:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working core zeph-core crate documentation Improvements or additions to documentation rust Rust code changes size/L Large PR (201-500 lines) skills zeph-skills crate

Projects

None yet

1 participant