Skip to content

fix(core): Focus Agent and SideQuest config not wired from TOML — always use defaults (enabled=false) #1907

@bug-ops

Description

@bug-ops

Bug

After PR #1900 (context compression), [agent.focus] and [memory.sidequest] config sections are parsed but never passed to the agent — both always use defaults (enabled = false).

Root Cause

AgentBuilder::with_focus_config() and AgentBuilder::with_sidequest_config() are defined in crates/zeph-core/src/agent/builder.rs:565-575 but are never called from bootstrap (crates/zeph-core/src/bootstrap/).

Agent::default() in agent/mod.rs:586-587 uses FocusState::default() and SidequestState::default(), which have enabled = false.

Evidence

With config:

[agent.focus]
enabled = true
compression_interval = 5

[memory.sidequest]
enabled = true
interval_turns = 3

Output of /focus and /sidequest:

Focus Agent status
Enabled:          false   ← should be true

SideQuest status
Enabled:        false     ← should be true
Interval turns: 4         ← should be 3 (from config)

Fix

In the bootstrap AppBuilder (where it constructs AgentBuilder), pass the parsed config:

// crates/zeph-core/src/bootstrap/...
agent_builder = agent_builder
    .with_focus_config(config.agent.focus.clone())
    .with_sidequest_config(config.memory.sidequest.clone());

Impact

  • Focus Agent completely non-functional (cannot be enabled via config)
  • SideQuest completely non-functional (cannot be enabled via config)
  • start_focus/complete_focus tools and automatic focus suggestions never trigger
  • SideQuest eviction never runs regardless of config

Severity

High — new PR #1900 features (Focus Agent, SideQuest) are effectively dead-on-arrival; config has no effect.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions