Skip to content

fix(skills): collate EmbedUnsupported warnings into single info log#1711

Merged
bug-ops merged 11 commits intomainfrom
skill-embedding-warnings-spam
Mar 13, 2026
Merged

fix(skills): collate EmbedUnsupported warnings into single info log#1711
bug-ops merged 11 commits intomainfrom
skill-embedding-warnings-spam

Conversation

@bug-ops
Copy link
Copy Markdown
Owner

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

Summary

Fixes #1387. When using provider = "claude" (which does not support embeddings), startup previously emitted 14 individual WARN log entries — one per skill. This was expected, non-actionable behavior treated as an error.

  • Downgrade the per-skill-aggregated warn!info! for EmbedUnsupported errors (the collation logic was already present on main)
  • Other embedding errors (timeouts, real failures) continue to emit per-skill warn!
  • Add comment on unsupported_provider documenting the last-wins assumption
  • Add tracing-test dev-dependency and test test_unsupported_emits_single_info_not_per_skill that asserts:
    • Summary message is present from the correct module
    • Not logged at WARN level (regression guard)
    • No per-skill "failed to embed skill" lines emitted

Before

WARN zeph_skills::matcher: failed to embed skill 'skill-audit': embedding not supported by claude
WARN zeph_skills::matcher: failed to embed skill 'docker': embedding not supported by claude
... (14 total per startup)

After

INFO zeph_skills::matcher: skill embeddings skipped: embedding not supported by claude (14 skills affected)

Test plan

  • cargo +nightly fmt --check — pass
  • cargo clippy --workspace --features full -- -D warnings — pass
  • cargo nextest run --config-file .github/nextest.toml --workspace --features full --lib --bins — 5349 passed
  • New test test_unsupported_emits_single_info_not_per_skill verifies logging contract

bug-ops added 8 commits March 13, 2026 23:16
When a provider does not support embeddings (e.g. claude), SkillMatcher::new()
previously emitted one WARN per skill, producing 14 identical log entries on
startup. All EmbedUnsupported errors are now collected and emitted as a single
summary warning: "skill embeddings skipped: embedding not supported by <provider>
(N skills affected)". Timeout and other per-skill errors continue to be logged
individually. Adds two tests covering the all-unsupported and partial-unsupported
cases.

Closes #1387
Downgrade the summary from warn to info (M1: non-actionable, expected
behavior when using a provider without embedding support). Add a comment
on unsupported_provider documenting the last-wins assumption (M2). Add
tracing_test assertion to verify exactly one summary log is emitted, not
one per skill (M3). Wire tracing-test as a workspace dev-dependency.

Closes #1387
assert!(!logs_contain("3 individual")) never matched production output —
replace with assert!(!logs_contain("failed to embed skill")) to verify
per-skill EmbedUnsupported errors are not logged individually. Also add
assert!(logs_contain("INFO")) to prevent regression from info! back to warn!.
CHANGELOG: 'single warning' -> 'single info-level log message' to match
the actual info! call. Test: replace broad INFO check with target-scoped
assertion (zeph_skills::matcher: skill embeddings skipped) and a negative
WARN check — ties level regression detection to the specific log line.
@github-actions github-actions Bot added documentation Improvements or additions to documentation skills zeph-skills crate rust Rust code changes dependencies Dependency updates bug Something isn't working size/M Medium PR (51-200 lines) labels Mar 13, 2026
@bug-ops bug-ops enabled auto-merge (squash) March 13, 2026 23:27
@bug-ops bug-ops merged commit 6d7ac5a into main Mar 13, 2026
15 checks passed
@bug-ops bug-ops deleted the skill-embedding-warnings-spam branch March 13, 2026 23:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working dependencies Dependency updates documentation Improvements or additions to documentation rust Rust code changes size/M Medium PR (51-200 lines) skills zeph-skills crate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Skill embedding warnings spam: 14 WARN per startup with claude provider

1 participant