Refactor agent git state into its own struct to tease apart its locking a bit.
I want to invoke calling the git state when editing files, and that
requires separating it somewhat from the agent's messy and coarse
locking.
diff --git a/loop/agent_test.go b/loop/agent_test.go
index bf9d6a9..911b03e 100644
--- a/loop/agent_test.go
+++ b/loop/agent_test.go
@@ -526,11 +526,11 @@
// Create an agent with the state machine
agent := &Agent{
- convo: mockConvo,
- config: AgentConfig{Context: ctx},
- inbox: make(chan string, 10),
- ready: make(chan struct{}),
- seenCommits: make(map[string]bool),
+ convo: mockConvo,
+ config: AgentConfig{Context: ctx},
+ inbox: make(chan string, 10),
+ ready: make(chan struct{}),
+
outstandingLLMCalls: make(map[string]struct{}),
outstandingToolCalls: make(map[string]string),
stateMachine: NewStateMachine(),
@@ -603,11 +603,11 @@
// Create an agent with the state machine
agent := &Agent{
- convo: mockConvo,
- config: AgentConfig{Context: ctx},
- inbox: make(chan string, 10),
- ready: make(chan struct{}),
- seenCommits: make(map[string]bool),
+ convo: mockConvo,
+ config: AgentConfig{Context: ctx},
+ inbox: make(chan string, 10),
+ ready: make(chan struct{}),
+
outstandingLLMCalls: make(map[string]struct{}),
outstandingToolCalls: make(map[string]string),
stateMachine: NewStateMachine(),