test-case: no MCP block = Phase 1 behavior (regression) #24
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Steps
mcpblock in config (delete it or use the default committed config.lua).mcp <alias>: N toolsline.:mcp list— should report(no MCP sessions).Expected
toolsfield is NOT in the broker request body (verify by wireshark / curl-equivalent if you want; otherwise trust that#tools_schema() == 0→ omitted per §12 risk row 1).What this exercises
chat_streamwithopts.tools = {}correctly omits the field (verifiable via the proxy not erroring).Likely failure modes
config.mcpis nil and some code path forgot the guard."tools": []and a strict server rejects it.next(mcp_sessions) ~= nil(Phase 7 finding). mfritsche aish main ≡ luajit main.lua
aish: loaded config from ./config.lua
[aish:fast]> :mcp list
[aish] (no MCP sessions)
[aish:fast]> What is a cpu?
CMD: cat /proc/cpuinfo
execute 'cat /proc/cpuinfo'? [y/N] y
─── exec output ───
processor : 0
BogoMIPS : 48.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x2
CPU part : 0xd05
CPU revision : 0
processor : 1
BogoMIPS : 48.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x2
CPU part : 0xd05
CPU revision : 0
processor : 2
BogoMIPS : 48.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x2
CPU part : 0xd05
CPU revision : 0
processor : 3
BogoMIPS : 48.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x2
CPU part : 0xd05
CPU revision : 0
processor : 4
BogoMIPS : 48.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x4
CPU part : 0xd0b
CPU revision : 0
processor : 5
BogoMIPS : 48.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x4
CPU part : 0xd0b
CPU revision : 0
processor : 6
BogoMIPS : 48.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x4
CPU part : 0xd0b
CPU revision : 0
processor : 7
BogoMIPS : 48.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x4
CPU part : 0xd0b
CPU revision : 0
─── exit 0 ───
[aish:fast]> How are you?
CMD: echo "I'm here!"
execute 'echo "I'm here!"'? [y/N] y
─── exec output ───
I'm here!
─── exit 0 ───
[aish:fast]>
PASS (executed 2026-05-12 at commit
3fa6279).Config with no
mcpblock:mcp <alias>: N toolsstartup line — correct (no servers configured):mcp listreports(no MCP sessions)— correct:mcp toolsreports(no tools)— correct:modelsworks exactly like Phase 1Tools-array-omission verified indirectly by the broker test in commit
efdc728(whenopts.tools = {}was passed, server accepted normally → field was omitted as required).The new system-prompt MCP block being present even when no servers are configured is intentional per PHASE2.md §8 — model just sees instructions that don't apply. No model interaction was needed for this test, so no hallucination risk was exercised here.
Closing.