feat: enable scratchpad tooling frontend and instruction update

- Remove !isScratchpad gate on tooling/approval pills in ChatPane
- Update scratchpad agent guidance to permit tool/file usage
- Add EryxAppService scratchpad tooling integration tests
- Update ARCHITECTURE.md to reflect scratchpad tooling support

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
David Kaya
2026-03-25 21:20:43 +01:00
co-authored by Copilot
parent 4ecfa5bff6
commit cc3c04b841
5 changed files with 215 additions and 6 deletions
@@ -14,8 +14,9 @@ internal static class AgentInstructionComposer
string workspaceGuidance = string.Equals(workspaceKind, "scratchpad", StringComparison.OrdinalIgnoreCase)
? """
You are operating in scratchpad mode.
Treat this session as pure ad-hoc Q&A rather than repository automation.
Do not inspect, modify, create, or delete files, and do not behave as though you are working inside a user project.
Treat this session as ad-hoc work inside the scratchpad workspace rather than repository automation against a connected user project.
You may use the available tools and files inside the scratchpad workspace when they help answer the request.
Do not assume there is a connected repository, checked-out branch, or project-specific context unless the user provides it in the conversation.
Answer conversationally and focus on the user's question directly.
"""
: string.Empty;
@@ -119,8 +119,9 @@ public sealed class AgentInstructionComposerTests
workspaceKind: "scratchpad");
Assert.Contains("scratchpad mode", instructions, StringComparison.OrdinalIgnoreCase);
Assert.Contains("pure ad-hoc Q&A", instructions, StringComparison.OrdinalIgnoreCase);
Assert.Contains("Do not inspect, modify, create, or delete files", instructions, StringComparison.OrdinalIgnoreCase);
Assert.Contains("ad-hoc work inside the scratchpad workspace", instructions, StringComparison.OrdinalIgnoreCase);
Assert.Contains("use the available tools and files inside the scratchpad workspace", instructions, StringComparison.OrdinalIgnoreCase);
Assert.DoesNotContain("Do not inspect, modify, create, or delete files", instructions, StringComparison.OrdinalIgnoreCase);
}
private static PatternAgentDefinitionDto CreateAgent(string id, string name, string instructions)