Files
command-center/agent/managed-skills/cfg-approval-timeout-recovery/SKILL.md
T

2.2 KiB

name, description
name description
cfg-approval-timeout-recovery Use when a cfg://.../save write fails with "user did not answer the approval prompt": the settings-approval dialog has a hardcoded 10 s timeout and no config key; recover via direct config.yml edit once the user has approved the change.

Recovering from cfg:// approval-prompt timeouts

Facts (verified in bundle 2026-10-18)

  • Settings-write approval dialog timeout is hardcoded 10 000 ms (timeout: JKl, JKl=1e4, countdown class treats arg as ms) in the omp dist/cli.js bundle. No config key exists for it (checked full cfg:// registry).
  • ask.timeout is a DIFFERENT gate (ask-tool auto-select; 0 = wait forever). It does not govern cfg approvals.
  • A timed-out approval silently auto-denies: session-only value stays applied, config.yml unchanged. Error says "nothing changed; it stays . NEVER retry unless the user asks."
  • Related: features.unexpectedStopDetection: smart injects forced-continue <system-injection>s on text-only turns ending in a promise to act ("Task incomplete: MUST call the next concrete tool now"). Set mechanical (upstream default) or none; smart drives agents into junk subagent spawns to satisfy the nudge.

Recovery procedure (only when the user has already explicitly approved the change)

  1. Do NOT re-issue cfg://<key>/save after a timeout unless the user explicitly asks again — the harness forbids it.
  2. Edit ~/.omp/agent/config.yml directly:
    • grep the setting key to locate it; read surrounding lines.
    • surgical edit of the single line.
    • validate: python3 -c "import yaml; yaml.safe_load(open('/home/blank/.omp/agent/config.yml'))"
  3. State that the file was edited directly because the invisible 10 s dialog ate the user's approval, and offer the omp config set <key> <value> one-liner as the user-run alternative for future.

Prevention

  • Before any cfg://.../save, warn the user a ~10 s dialog is about to appear and to answer immediately.
  • Bundle-fact lookups: PKGDIR=$(dirname $(readlink -f $(command -v omp)))/.., then grep dist/cli.js for the message string, walk to the call site, resolve minified constants with grep -oE '[,;]CONST=[^,;)]+' (1e4 = 10000).