2.1 KiB
2.1 KiB
Core gaps vs Grok Bot usability (LazyBoy2 / LazyBoy)
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.computerUsewithout ladder and withoutforcereturns a clear error.
Still soft / follow-ups
- Ladder is turn-scoped (shared Arc with children) — not persisted across Waiting revivals unless the same
ToolContextis reused. - Parent can still call
screenshotwithout 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 lazyboy-core path_ladder -- --nocapture
cargo test -p lazyboy-core computer_use_spawn -- --nocapture
cargo test -p lazyboy-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.