P1 regression — finish Prolog config recovery: Brave default and remove dead RLM knobs #230

Closed
opened 2026-09-04 14:39:04 +00:00 by nsaspy · 0 comments
Owner

Problem

The Home-Manager durability fix (#5) is landed, but the current user-facing Prolog configuration still carries two stale/recovery defects:

  1. the built-in search_engine/1 still defaults to DuckDuckGo even though the operator's current Zara recovery contract selects Brave Search;
  2. kb/config.pl, modules/config_loader.pl, generated user-config examples, and related docs still expose prolog_rlm_enabled/1 / prolog_rlm_model/1 even though roadmap #1 and the Zara RAGE skill explicitly prohibit adding or reviving a Prolog-RLM runtime/backend/dependency and #123 is closed not-planned.

This is Zara Core configuration cleanup only. Do not touch external Prolog-RLM, dotfiles/Home Manager, plugins, or android/**.

Required behavior

  • Make Brave Search the built-in search template used when the user has not overridden search_engine/1.
  • Preserve config.pl as the provisioned/base layer and config.local.pl as the mutable/private user-owned overlay from #5; local override must still win.
  • Remove the dead prolog_rlm_* configuration predicates from Zara's supported/default configuration surface and reject them as unsupported user facts rather than retaining dormant runtime knobs.
  • Remove generated/example/documentation text that tells users to configure the prohibited RLM path.
  • Update config ownership text to point mutable/operator changes at config.local.pl while keeping provisioned config.pl compatibility explicit.
  • Do not add a replacement model/provider stack or change normal SWI-Prolog support.

TDD

Add deterministic regression coverage proving:

  • fresh built-in search resolves to the Brave Search template;
  • a config.local.pl search override still wins over provisioned/base and built-in values without rewriting base;
  • prolog_rlm_enabled/1 and prolog_rlm_model/1 are no longer exported/active configuration predicates;
  • attempts to put either dead RLM fact in user config fail closed as unsupported;
  • generated default config contains no Prolog-RLM instructions and explicitly describes the mutable local overlay.

Use scripts/test-prolog-config.sh, then full scripts/test-all.sh, nix flake check, nix build, and exact-head GitHub Actions.

Acceptance

A fresh Zara install uses Brave Search, mutable/private Prolog overrides remain outside declarative/Nix-owned base configuration, and Zara no longer advertises or accepts a prohibited Prolog-RLM runtime configuration path.

## Problem The Home-Manager durability fix (#5) is landed, but the current user-facing Prolog configuration still carries two stale/recovery defects: 1. the built-in `search_engine/1` still defaults to DuckDuckGo even though the operator's current Zara recovery contract selects Brave Search; 2. `kb/config.pl`, `modules/config_loader.pl`, generated user-config examples, and related docs still expose `prolog_rlm_enabled/1` / `prolog_rlm_model/1` even though roadmap #1 and the Zara RAGE skill explicitly prohibit adding or reviving a Prolog-RLM runtime/backend/dependency and #123 is closed not-planned. This is Zara Core configuration cleanup only. Do not touch external Prolog-RLM, dotfiles/Home Manager, plugins, or `android/**`. ## Required behavior - Make Brave Search the built-in search template used when the user has not overridden `search_engine/1`. - Preserve `config.pl` as the provisioned/base layer and `config.local.pl` as the mutable/private user-owned overlay from #5; local override must still win. - Remove the dead `prolog_rlm_*` configuration predicates from Zara's supported/default configuration surface and reject them as unsupported user facts rather than retaining dormant runtime knobs. - Remove generated/example/documentation text that tells users to configure the prohibited RLM path. - Update config ownership text to point mutable/operator changes at `config.local.pl` while keeping provisioned `config.pl` compatibility explicit. - Do not add a replacement model/provider stack or change normal SWI-Prolog support. ## TDD Add deterministic regression coverage proving: - fresh built-in search resolves to the Brave Search template; - a `config.local.pl` search override still wins over provisioned/base and built-in values without rewriting base; - `prolog_rlm_enabled/1` and `prolog_rlm_model/1` are no longer exported/active configuration predicates; - attempts to put either dead RLM fact in user config fail closed as unsupported; - generated default config contains no Prolog-RLM instructions and explicitly describes the mutable local overlay. Use `scripts/test-prolog-config.sh`, then full `scripts/test-all.sh`, `nix flake check`, `nix build`, and exact-head GitHub Actions. ## Acceptance A fresh Zara install uses Brave Search, mutable/private Prolog overrides remain outside declarative/Nix-owned base configuration, and Zara no longer advertises or accepts a prohibited Prolog-RLM runtime configuration path.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
nsaspy/zara#230
No description provided.