Skip to content

Fix/agent skills reload#900

Merged
jaberjaber23 merged 2 commits intoRightNow-AI:mainfrom
neo-wanderer:fix/agent-skills-reload
Mar 30, 2026
Merged

Fix/agent skills reload#900
jaberjaber23 merged 2 commits intoRightNow-AI:mainfrom
neo-wanderer:fix/agent-skills-reload

Conversation

@neo-wanderer
Copy link
Copy Markdown
Contributor

Summary

  • Bug fix: The agent config reload logic was missing skills and mcp_servers from the change detection, so edits to these fields in agent.toml weren't being picked up when loading agents from SQLite.
  • Test: Added a test to verify that skills and mcp_servers are correctly parsed from TOML.

Root Cause

When the kernel loads agents from SQLite, it compares the disk config against the DB version to detect changes. However, the comparison list at kernel.rs:1078-1092 was missing skills and mcp_servers fields.

Additionally, discovered that skills and mcp_servers must be at the top level of the agent.toml, not after [capabilities], due to TOML's implicit table ordering rules.

Changes

  1. kernel.rs: Added skills and mcp_servers to the comparison:

    || disk_manifest.skills != entry.manifest.skills
    || disk_manifest.mcp_servers != entry.manifest.mcp_servers;
  2. integration_test.rs: Added test test_agent_manifest_skills_parsing to verify TOML parsing works correctly.

Correct agent.toml Format

name = "assistant"
version = "0.1.0"
...

skills = ["Productivity"]       # Top level - CORRECT
mcp_servers = []                # Top level - CORRECT

[model]
...

[capabilities]
...

NOT:

[capabilities]
...
skills = ["Productivity"]       # After [capabilities] - WRONG (will be ignored)

Testing

  • cargo clippy --workspace --all-targets -- -D warnings passes
  • cargo test --workspace passes
  • Live integration tested (if applicable)

Security

  • No new unsafe code
  • No secrets or API keys in diff
  • User input validated at boundaries

The agent config reload logic was missing skills and mcp_servers from
the change detection, so edits to these fields in agent.toml weren't
being picked up when loading agents from SQLite.

Added both fields to the comparison to ensure proper hot-reload.
The skills and mcp_servers fields must be at the top level of the
agent.toml, not after [capabilities], due to TOML implicit table
ordering rules.
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.

2 participants