Date: "2025-01-03T10:20:00Z",
},
})
+
rebuildTestLog(t, childDir, []DatedMessage{
{
Kind: "work",
Text: "Keep the root history.",
Date: "2025-02-01T00:00:00Z",
}})
+
rebuildTestLog(t, childDir, []DatedMessage{{
Kind: "user",
Text: "Keep the child history.",
}
client := newModelClient(server.URL, ModelAPIKey(modelTestKey), child.CacheKey(), filepath.Join(t.TempDir(), "usage.jsonl"))
- backup, err := rebuild(t.Context(), child, plan.added, client, newCompactor(client, child.Prompt, defaultConfig().Compactor, child.Tools()), &strings.Builder{})
+ backup, err := rebuild(t.Context(), child, plan.added, client, newCompactor(client, child.Prompt, defaultConfig().Compactor, child.Tools(), child.Images()), &strings.Builder{})
require.NoError(t, err)
require.Equal(t, before, rebuildTestSnapshot(t, backup))
require.Equal(t, root.dir, filepath.Dir(backup))
Kind: "work",
Text: strings.Repeat("The plan is ready. ", 80),
Date: "2025-01-01T08:00:00Z",
- }}, client, newCompactor(client, child.Prompt, defaultConfig().Compactor, child.Tools()), &strings.Builder{})
+ }}, client, newCompactor(client, child.Prompt, defaultConfig().Compactor, child.Tools(), child.Images()), &strings.Builder{})
require.ErrorContains(t, err, "rebuild")
require.Equal(t, before, rebuildTestSnapshot(t, root.dir))
}
}
+func TestWhatsAppImportBlocksPendingNotificationsButNotCompletedReceipts(t *testing.T) {
+ server := newModelFake(t)
+ test := newDaemonMessageTest(t, t.TempDir(), server)
+ _, err := test.messages.Notify(&NotifyInput{
+ Source: "check",
+ ID: "1",
+ Text: "A result.",
+ })
+ require.NoError(t, err)
+
+ root := test.agents[0].agent
+ directory := root.dir
+ require.ErrorContains(t, whatsappImportIdle(directory, root), "pending deliveries")
+ require.NoError(t, whatsappImportIdle(directory, test.agents[1].agent))
+ require.NoError(t, test.messages.Notifications(test.loops[0]))
+ require.NoError(t, test.loops[0].turn(t.Context()))
+ require.Len(t, test.Queue(t).Notifications, 1)
+ require.Empty(t, test.Queue(t).Pending)
+ require.NoError(t, whatsappImportIdle(directory, root))
+}
+
func TestWhatsAppImportPendingDeliveriesBlockOnlyTheirTarget(t *testing.T) {
dir := t.TempDir()
t.Setenv("ONECHAT_DIR", dir)