@@ -30,7 +30,8 @@ import (
30 _ "github.com/joho/godotenv/autoload"
30 _ "github.com/joho/godotenv/autoload"
33+// fakeEnv is an environment for testing.
33−type env struct {
34+type fakeEnv struct {
34 workingDir string
35 workingDir string
35 sessions session.Service
36 sessions session.Service
36 messages message.Service
37 messages message.Service
@@ -100,7 +101,7 @@ func zAIBuilder(model string) builderFunc {
103−func testEnv(t *testing.T) env {
104+func testEnv(t *testing.T) fakeEnv {
104 workingDir := filepath.Join("/tmp/crush-test/", t.Name())
105 workingDir := filepath.Join("/tmp/crush-test/", t.Name())
105 os.RemoveAll(workingDir)
106 os.RemoveAll(workingDir)
@@ -123,7 +124,7 @@ func testEnv(t *testing.T) env {
123 os.RemoveAll(workingDir)
124 os.RemoveAll(workingDir)
126− return env{
127+ return fakeEnv{
127 workingDir,
128 workingDir,
128 sessions,
129 sessions,
129 messages,
130 messages,
@@ -133,7 +134,7 @@ func testEnv(t *testing.T) env {
136−func testSessionAgent(env env, large, small fantasy.LanguageModel, systemPrompt string, tools ...fantasy.AgentTool) SessionAgent {
137+func testSessionAgent(env fakeEnv, large, small fantasy.LanguageModel, systemPrompt string, tools ...fantasy.AgentTool) SessionAgent {
137 largeModel := Model{
138 largeModel := Model{
138 Model: large,
139 Model: large,
139 CatwalkCfg: catwalk.Model{
140 CatwalkCfg: catwalk.Model{
@@ -152,7 +153,7 @@ func testSessionAgent(env env, large, small fantasy.LanguageModel, systemPrompt
152 return agent
153 return agent
155−func coderAgent(r *recorder.Recorder, env env, large, small fantasy.LanguageModel) (SessionAgent, error) {
156+func coderAgent(r *recorder.Recorder, env fakeEnv, large, small fantasy.LanguageModel) (SessionAgent, error) {
156 fixedTime := func() time.Time {
157 fixedTime := func() time.Time {
157 t, _ := time.Parse("1/2/2006", "1/1/2025")
158 t, _ := time.Parse("1/2/2006", "1/1/2025")