LazyBoy2/docs/CORE-GAPS.md

2.1 KiB

Core gaps vs Grok Bot usability (LazyBoy2 / GrokBoy)

Living checklist for the four product cores. Update when behavior changes.

Core Status Notes
1 Completion contract Present send_message-only voice; ack ≠ delivery; Waiting + revival; silence / deliver-then-yield reminders
2 Path ladder Hardened Prompt section + runtime gate: spawn_subagent kind=computerUse requires prior web_fetch / web_search / browser_* / call_mcp_tool this turn, or force=true for native GUI
3 Human collaboration Present + tightened browser_handoff / request_box_help on shared Chrome profile; prompt requires re-observe after human returns
4 Stable single box Mostly present Docker box + /home/box/chrome-profile; SingletonLock/flock in box runtime — keep health/docs polished

Path ladder (runtime)

Implemented in ToolContext::surfaces_used + Subagents::spawn(..., force):

  • Successful tool calls (except meta/control) record a surface name.
  • tried_web_ladder() is true after any of: web_fetch, web_search, browser_*, call_mcp_tool.
  • computerUse without ladder and without force returns a clear error.

Still soft / follow-ups

  • Ladder is turn-scoped (shared Arc with children) — not persisted across Waiting revivals unless the same ToolContext is reused.
  • Parent can still call screenshot without DOM first (read-only; intentional).
  • No automatic “browser_* failed → suggest force” helper beyond the error string.
  • Box health / profile wipe recovery UX can still be clearer in PRODUCT.md / CLI.

Verify

cargo test -p grokboy-core path_ladder -- --nocapture
cargo test -p grokboy-core computer_use_spawn -- --nocapture
cargo test -p grokboy-core agent_system -- --nocapture

Peer mail vs human steering (2026-09-15)

Owner send_message(task_id=…) peer FYI used to be merged into steering and set skip_all, cancelling the worker's already-planned tool batch (not executed: new input or cancellation arrived). Fix: only InputBroker / human steering aborts a batch; peer mail is injected after tools (or at round start) as data.