affaan-m/ECC · error

checked goal text

Error message

checked goal text

What it means

Same invariant pattern as the Standard branch but for computer-use dispatch: body_text.expect("checked goal text") asserts the goal text was validated earlier. If None reaches this point, the binary panics, indicating the pre-validation of the computer-use goal was skipped.

Solutions

  1. Ensure the goal text is validated/non-empty before entering the match, replacing expect with an explicit bail.
  2. Trace why the earlier check was skipped for this command path.
  3. If hit as a user, confirm a non-empty goal was supplied to the computer-use dispatch command.

Example fix

// before
session::manager::create_computer_use_remote_dispatch_request(
    db, cfg, body_text.expect("checked goal text"), /* ... */)
// after
let goal = body_text.ok_or_else(|| anyhow::anyhow!("goal text is required for computer-use dispatch"))?;
session::manager::create_computer_use_remote_dispatch_request(db, cfg, goal, /* ... */)
Defensive patterns

Strategy: validation

Validate before calling

let goal = draft.goal_text.as_deref().map(str::trim).filter(|t| !t.is_empty());
anyhow::ensure!(goal.is_some(), "goal text required for computer-use dispatch");

Try / catch

// any occurrence of this panic indicates a skipped validation:
std::panic::catch_unwind(|| dispatch_computer_use(...)).unwrap_or_else(|_| {
    eprintln!("internal error: goal text validation skipped — please report");
});

Prevention

When it happens

Trigger: A computer-use remote dispatch where the goal-text validation step did not populate body_text before create_computer_use_remote_dispatch_request is called.

Common situations: New or modified dispatch flows missing the goal check, or a command variant that reaches ComputerUse dispatch with an empty goal (e.g. empty --goal or empty stdin).

Understand the failure class

Background: "This is a bug, please report it": internal invariant violations, unreachable panics, and SNH errors explained — this error's family across 47 libraries.

Related errors


AI-assisted analysis of affaan-m/ECC@8321021c54 (2026-09-16). Data as JSON: /api/errors/7225f3edbfde67aa. Report an issue: GitHub.

Appendix: source

Thrown at ecc2/src/main.rs:7242

                    target_session_id.as_deref(),
                    draft.priority.unwrap_or(TaskPriorityArg::Normal).into(),
                    draft.agent.as_deref().unwrap_or(&cfg.default_agent),
                    draft.profile.as_deref(),
                    draft.use_worktree.unwrap_or(cfg.auto_create_worktrees),
                    session::SessionGrouping {
                        project: draft.project.clone(),
                        task_group: draft.task_group.clone(),
                    },
                    "migrate_remote",
                    None,
                )?
            }
            session::RemoteDispatchKind::ComputerUse => {
                let defaults = cfg.computer_use_dispatch_defaults();
                session::manager::create_computer_use_remote_dispatch_request(
                    db,
                    cfg,
                    body_text.expect("checked goal text"),
                    draft.target_url.as_deref(),
                    draft.context.as_deref(),
                    target_session_id.as_deref(),
                    draft.priority.unwrap_or(TaskPriorityArg::Normal).into(),
                    draft.agent.as_deref(),
                    draft.profile.as_deref(),
                    Some(draft.use_worktree.unwrap_or(defaults.use_worktree)),
                    session::SessionGrouping {
                        project: draft.project.clone(),
                        task_group: draft.task_group.clone(),
                    },
                    "migrate_remote_computer_use",
                    None,
                )?
            }
        };

        item.status = LegacyRemoteImportRequestStatus::Imported;

View on GitHub (pinned to 8321021c54)