Skip to content

Settings by conversation: a propose-only settings tool with a per-change approval card and /settings <what you want> #6564

Description

@Hmbown

Founder ask: tell Codewhale what you want the settings to be, it proposes concrete changes, you approve or reject each.

Design

  • A new settings tool with actions search, read and propose. It never writes. The catalog stays out of the static prompt.
  • propose blocks on the same wait as request_user_input. The card shows one row per change: current → new value, file/scope, takes effect now / next session / restart, and a "what this does" line from the schema. The model's reason is shown separately as untrusted text.
  • Each accepted row applies through commands::set_config_value (the same path as /config, /set, presets and the settings editor), using the existing lossless writers.
  • /settings <what you want> starts a model turn. /settings undo restores the values saved before the last apply.

Guardrails

  • Each change has a class: ordinary / elevating / secret / handoff. Loosening posture or sandbox, shell, allow rules, telemetry, notes_path and exec-policy off are elevating. Each elevating row needs its own confirmation and is never part of "Apply all".
  • Secrets are never proposable.
  • base_url, MCP servers, hooks, trust paths and the router are handoff rows: they show a ready-to-run command and don't write.
  • Only an interactive parent session with a person present may propose. Sub-agents, automations and headless runs get search/read only, and this is not inherited by children.
  • v1 writes user scope only.
  • Keys must exist in SETTINGS_SCHEMA; unknown keys get the nearest valid key. Values are dry-run through the real parser.

Slice 1

Schema classification, the sub-agent model keys, nearest-key lookup, tools/settings.rs, the proposal event and card, /settings entry and undo, docs and tests: nothing written on propose; "Apply all" excludes elevating rows; children can't propose; secrets are refused.

Decisions pending: D1–D8 (founder).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    • Status
      Backlog

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions