test-case: no Norris block in config = Phase 2 behavior intact #34

Closed
opened 2026-05-13 04:20:37 +00:00 by claude-noether · 1 comment
Collaborator

Steps

  1. Boot aish with a config that has NO safety = {...} block.
  2. Verify no [aish] mcp ... or safety-related status changes at startup.
  3. Run normal interactive workflow: ask a question, run a CMD: via the existing confirm gate, etc.
  4. Run :safety patterns — should still work (the pattern list is static; no config needed).
  5. Run :norris hello — Norris should fire normally with default settings.

Expected

  • All Phase 2 behavior intact: streaming, MCP tools, exec frame, sessions, save/resume.
  • Interactive CMD: extraction continues to use confirm_cmd exactly as Phase 0/1/2 specified — is_destructive is NOT called in interactive mode (R-B3 narrowed scope).
  • :safety patterns works (it's data, not config-gated).
  • :norris hello defaults to max_norris_steps = 8 and llm_second_opinion = true. If no deep/cloud model is configured, the LLM probe fail-safes (every safe-looking command flagged), which is conservative — the user can opt out via cfg.safety.llm_second_opinion = false.

What this exercises

  • R-B3 regression: confirm_cmd behavior is unchanged in interactive mode.
  • Defaults kick in when no safety block is configured.
  • Phase 2 fully backward-compatible.

Likely failure modes

  • Lua error at startup because config.safety is nil and some code path forgot the nil guard.
  • Interactive CMD: rm -rf /tmp/foo now triggers is_destructive even though Norris isn't active → R-B3 didn't take.
  • :norris errors out trying to read config.safety.max_norris_steps of nil.
## Steps 1. Boot aish with a config that has NO `safety = {...}` block. 2. Verify no `[aish] mcp ...` or safety-related status changes at startup. 3. Run normal interactive workflow: ask a question, run a CMD: via the existing confirm gate, etc. 4. Run `:safety patterns` — should still work (the pattern list is static; no config needed). 5. Run `:norris hello` — Norris should fire normally with default settings. ## Expected - All Phase 2 behavior intact: streaming, MCP tools, exec frame, sessions, save/resume. - Interactive `CMD:` extraction continues to use `confirm_cmd` exactly as Phase 0/1/2 specified — `is_destructive` is NOT called in interactive mode (R-B3 narrowed scope). - `:safety patterns` works (it's data, not config-gated). - `:norris hello` defaults to `max_norris_steps = 8` and `llm_second_opinion = true`. If no deep/cloud model is configured, the LLM probe fail-safes (every safe-looking command flagged), which is conservative — the user can opt out via `cfg.safety.llm_second_opinion = false`. ## What this exercises - R-B3 regression: confirm_cmd behavior is unchanged in interactive mode. - Defaults kick in when no `safety` block is configured. - Phase 2 fully backward-compatible. ## Likely failure modes - Lua error at startup because `config.safety` is nil and some code path forgot the nil guard. - Interactive `CMD: rm -rf /tmp/foo` now triggers `is_destructive` even though Norris isn't active → R-B3 didn't take. - `:norris` errors out trying to read `config.safety.max_norris_steps` of nil.
claude-noether added the test-case label 2026-05-13 04:20:37 +00:00
Owner

[aish:fast]> :norris hello
─── NORRIS MODE ─────────────────────────
goal: hello
─────────────────────────────────────────
─ step 1/8 ─
GOAL: complete
─── NORRIS DONE ──
GOAL: complete
──────────────────────────────────────────
[aish:fast]>

[aish:fast]> :norris hello ─── NORRIS MODE ───────────────────────── goal: hello ───────────────────────────────────────── ─ step 1/8 ─ GOAL: complete ─── NORRIS DONE ── GOAL: complete ────────────────────────────────────────── [aish:fast]>
Sign in to join this conversation.