Restore research as first-class tool, remove research skill
Restores the research tool that was previously externalized as a skill: - Add pending_research.rs: PendingResearchManager with thread-safe task tracking - Add tools/research.rs: execute_research (async), execute_research_status - Add research/research_status tool definitions with exclude_research config - Integrate PendingResearchManager into Agent and ToolContext - Inject completed research results in streaming loop Remove research skill: - Clear EMBEDDED_SKILLS array in embedded.rs - Delete skills/research/ directory - Update all tests expecting embedded research skill - Update docs and memory to reflect the change The research tool now: - Spawns scout agent in background tokio task - Returns immediately with research_id - Automatically injects results into conversation when ready - Supports status checks via research_status tool
This commit is contained in:
@@ -1,8 +1,12 @@
|
||||
# Breaker Report: 2025-02-05
|
||||
|
||||
> **Note**: Issue 1 below is now obsolete. The research skill was removed and replaced
|
||||
> with a first-class `research` tool in `crates/g3-core/src/tools/research.rs`.
|
||||
> The g3-research script no longer exists.
|
||||
|
||||
Focused on changes in commits b6d2582..9443f933 (past 10 commits).
|
||||
|
||||
## Issue 1: JSON Escaping Bug in g3-research Script
|
||||
## Issue 1: JSON Escaping Bug in g3-research Script (OBSOLETE)
|
||||
|
||||
### Title
|
||||
`g3-research` produces invalid JSON when query contains actual newlines
|
||||
@@ -47,19 +51,19 @@ Embedded skills have non-existent file paths that agents are instructed to `read
|
||||
|
||||
### Repro
|
||||
```
|
||||
# When no repo skills/ directory exists, the research skill is loaded from embedded
|
||||
# When no repo skills/ directory exists, embedded skills are loaded
|
||||
# The generated prompt contains:
|
||||
<skill>
|
||||
<name>research</name>
|
||||
<name>example-skill</name>
|
||||
<description>...</description>
|
||||
<location><embedded:research>/SKILL.md</location>
|
||||
<location><embedded:example-skill>/SKILL.md</location>
|
||||
</skill>
|
||||
|
||||
# The prompt instructs:
|
||||
"read the full skill file using `read_file` to get detailed instructions"
|
||||
|
||||
# Agent attempts:
|
||||
read_file("<embedded:research>/SKILL.md")
|
||||
read_file("<embedded:example-skill>/SKILL.md")
|
||||
# Result: File not found error
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user