+func TestLogCutsAnIncompleteLastLine(t *testing.T) {
+ root := t.TempDir()
+ clock := newTestClock()
+ log, err := openLog(t.Context(), root, clock.Now)
+ require.NoError(t, err)
+
+ _, err = log.Append("user", "whole")
+ require.NoError(t, err)
+ require.NoError(t, log.Close())
+
+ path := filepath.Join(root, "main", "2026-01-01.jsonl")
+ file, err := os.OpenFile(path, os.O_WRONLY|os.O_APPEND, 0)
+ require.NoError(t, err)
+
+ _, err = file.WriteString(`{"i":1,"kind":"user","te`)
+ require.NoError(t, err)
+ require.NoError(t, file.Close())
+
+ log, err = openLog(t.Context(), root, clock.Now)
+ require.NoError(t, err)
+ require.Equal(t, 1, log.Len())
+
+ message, err := log.Append("user", "after the cut")
+ require.NoError(t, err)
+ require.Equal(t, 1, message.ID)
+ require.NoError(t, log.Close())
+
+ log, err = openLog(t.Context(), root, clock.Now)
+ require.NoError(t, err)
+
+ defer func() {
+ require.NoError(t, log.Close())
+ }()