Feature plan: Step 1 · Step 2 · Step 3 · Step 4

Stage 1 - LLM editor metadata

  • Changes:

    • Added shared LLM provider presets, editable-field metadata, validation, environment locks, and redacted-diff support.

    • Added schema coverage for presets, validation failures, redaction, and locks.

  • Verification:

    • php -l src/ForumRewrite/Support/PrivateConfigSchema.php

    • php -l tests/PrivateConfigSchemaTest.php

    • ./v3 test PrivateConfigSchemaTest PrivateConfigCommandTest LlmProviderConfigTest — 16 passed.

  • Notes:

    • No database, deployment, or terminal UI behavior is applicable to this schema stage.

Stage 2 - Stdin-only LLM save contract

  • Changes:

    • Added private-config update-llm, which accepts editable LLM values only as a JSON request on standard input.

    • Reused schema validation, environment locks, and the existing atomic writer while preserving unrelated values.

    • Added a command test proving the API key stays out of output and unrelated values survive the update.

  • Verification:

    • php -l scripts/write_private_config.php

    • php -l src/ForumRewrite/Support/PrivateConfigSchema.php

    • php -l tests/PrivateConfigCommandTest.php

    • ./v3 test PrivateConfigSchemaTest PrivateConfigCommandTest — 10 passed.

  • Notes:

    • The request is deliberately standard-input-only; no database, deployment, or terminal UI verification applies at this stage.

Stage 3 - Guided terminal input

  • Changes:

    • Added an LLM editor route with provider presets, editable connection fields, masked API-key input, and cancellation-safe prompts.

    • Routes the completed request through a mode-0600 temporary file into the stdin-only save contract, never through command arguments.

  • Verification:

    • bash -n scripts/terminal_operator_ui.sh

    • ./v3 test PrivateConfigSchemaTest PrivateConfigCommandTest TerminalOperatorUiCommandTest TerminalOperatorUiDashboardTest — 14 passed.

  • Notes:

    • Environment-lock messaging and complete fake-terminal editor interaction coverage remain part of final release verification.

Stage 4 - Review, save, and lock recovery

  • Changes:

    • Added explicit redacted review before save and a post-save output view.

    • Refuse the LLM editor when any target setting has an environment override, directing the operator to deployment configuration and restart instead.

  • Verification:

    • bash -n scripts/terminal_operator_ui.sh

    • php -l scripts/write_private_config.php

    • ./v3 test PrivateConfigSchemaTest PrivateConfigCommandTest TerminalOperatorUiCommandTest TerminalOperatorUiDashboardTest — 14 passed.

  • Notes:

    • Cancellation occurs before the stdin request is written; invalid/save failures are shown without persisting partial configuration.

Stage 5 - Release verification and documentation

  • Changes:

    • Documented the LLM-only editor scope, presets, masked/redacted save flow, and environment-lock recovery in the CLI reference.

  • Verification:

    • bash -n scripts/terminal_operator_ui.sh

    • php -l scripts/write_private_config.php

    • ./v3 test PrivateConfigSchemaTest PrivateConfigCommandTest TerminalOperatorUiCommandTest TerminalOperatorUiDashboardTest — 14 passed.

  • Notes:

    • No database migration or deployment is required. Fastmod, agent, recording, web feature flags, arbitrary PHP, and destructive workflows remain out of scope.