Skip to content

Commit 98be6a9

Browse files
committed
fix(ci): restore crawlkit merge checks
1 parent ebb41da commit 98be6a9

3 files changed

Lines changed: 68 additions & 65 deletions

File tree

internal/cli/cli_test.go

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,17 @@ func TestStatusSearchSQLAndListings(t *testing.T) {
153153
require.NotEmpty(t, out.String())
154154
}
155155

156+
for _, args := range [][]string{
157+
{"--config", cfgPath, "metadata", "--json"},
158+
{"--config", cfgPath, "status", "--json"},
159+
} {
160+
var out bytes.Buffer
161+
require.NoError(t, Run(ctx, args, &out, &bytes.Buffer{}))
162+
var payload map[string]any
163+
require.NoError(t, json.Unmarshal(out.Bytes(), &payload))
164+
require.NotEmpty(t, payload)
165+
}
166+
156167
before, err := os.ReadFile(dbPath)
157168
require.NoError(t, err)
158169
var out bytes.Buffer
@@ -183,6 +194,60 @@ func TestTUIHelpReturnsUsage(t *testing.T) {
183194
require.Empty(t, stderr.String())
184195
}
185196

197+
func TestControlStatusIncludesShareAndFileSizes(t *testing.T) {
198+
dir := t.TempDir()
199+
dbPath := filepath.Join(dir, "discrawl.db")
200+
require.NoError(t, os.WriteFile(dbPath, []byte("db"), 0o600))
201+
require.NoError(t, os.WriteFile(dbPath+"-wal", []byte("wal"), 0o600))
202+
cfg := config.Default()
203+
cfg.DBPath = dbPath
204+
cfg.Share.Remote = "https://github.com/openclaw/discrawl-share.git"
205+
cfg.Share.RepoPath = filepath.Join(dir, "share")
206+
status := store.Status{
207+
DBPath: dbPath,
208+
MessageCount: 5,
209+
ChannelCount: 2,
210+
}
211+
212+
out := controlStatus(filepath.Join(dir, "config.toml"), cfg, status, true)
213+
require.Equal(t, int64(2), out.DatabaseBytes)
214+
require.Equal(t, int64(3), out.WALBytes)
215+
require.Zero(t, fileSize(filepath.Join(dir, "missing.db")))
216+
require.NotNil(t, out.Share)
217+
require.True(t, out.Share.Enabled)
218+
require.True(t, out.Share.NeedsUpdate)
219+
require.Contains(t, out.Summary, "5 messages")
220+
}
221+
222+
func TestFormattingAndTUISourceBranches(t *testing.T) {
223+
require.Equal(t, "-", formatDaysSilent(-1))
224+
require.Equal(t, "4", formatDaysSilent(4))
225+
require.Equal(t, "0", formatWindowDuration(0))
226+
require.Equal(t, "2d", formatWindowDuration(48*time.Hour))
227+
require.Equal(t, "3h", formatWindowDuration(3*time.Hour))
228+
require.Equal(t, "1h30m0s", formatWindowDuration(90*time.Minute))
229+
require.Equal(t, 6*time.Hour, mustDuration("bogus"))
230+
require.Equal(t, 15*time.Minute, mustDuration("15m"))
231+
232+
cfg := config.Default()
233+
cfg.DBPath = "/tmp/discrawl.db"
234+
r := &runtime{cfg: cfg}
235+
require.Equal(t, "local", r.archiveSourceKind())
236+
require.Equal(t, cfg.DBPath, r.archiveSourceLocation())
237+
guilds, err := r.resolveTUIGuilds(false, "", "")
238+
require.NoError(t, err)
239+
require.Empty(t, guilds)
240+
241+
r.cfg.DefaultGuildID = "guild-one"
242+
guilds, err = r.resolveTUIGuilds(false, "", "")
243+
require.NoError(t, err)
244+
require.Equal(t, []string{"guild-one"}, guilds)
245+
246+
r.cfg.Share.Remote = "https://github.com/openclaw/discrawl-share.git"
247+
require.Equal(t, "remote", r.archiveSourceKind())
248+
require.Equal(t, r.cfg.Share.Remote, r.archiveSourceLocation())
249+
}
250+
186251
func TestWiretapImportsDesktopDirectMessages(t *testing.T) {
187252
ctx := context.Background()
188253
dir := t.TempDir()

internal/share/share.go

Lines changed: 0 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -380,71 +380,6 @@ func NeedsImport(ctx context.Context, s *store.Store, staleAfter time.Duration)
380380
return time.Since(t) >= staleAfter
381381
}
382382

383-
func exportTable(ctx context.Context, db *sql.DB, repoPath, table string) (TableManifest, error) {
384-
query, args := snapshotExportQuery(table)
385-
rows, err := db.QueryContext(ctx, query, args...)
386-
if err != nil {
387-
return TableManifest{}, fmt.Errorf("query %s: %w", table, err)
388-
}
389-
defer func() { _ = rows.Close() }()
390-
columns, err := rows.Columns()
391-
if err != nil {
392-
return TableManifest{}, fmt.Errorf("columns %s: %w", table, err)
393-
}
394-
tableDir := filepath.Join(repoPath, "tables", table)
395-
if err := os.MkdirAll(tableDir, 0o755); err != nil {
396-
return TableManifest{}, fmt.Errorf("mkdir %s: %w", table, err)
397-
}
398-
writer := tableShardWriter{rootDir: repoPath, relDir: filepath.ToSlash(filepath.Join("tables", table)), label: table}
399-
if err := writer.open(); err != nil {
400-
return TableManifest{}, err
401-
}
402-
defer func() { _ = writer.close() }()
403-
404-
count := 0
405-
values := make([]any, len(columns))
406-
ptrs := make([]any, len(columns))
407-
for i := range values {
408-
ptrs[i] = &values[i]
409-
}
410-
for rows.Next() {
411-
if err := ctx.Err(); err != nil {
412-
return TableManifest{}, err
413-
}
414-
if err := rows.Scan(ptrs...); err != nil {
415-
return TableManifest{}, fmt.Errorf("scan %s: %w", table, err)
416-
}
417-
row := make(map[string]any, len(columns))
418-
for i, column := range columns {
419-
row[column] = exportValue(values[i])
420-
}
421-
body, err := json.Marshal(row)
422-
if err != nil {
423-
return TableManifest{}, fmt.Errorf("marshal %s row: %w", table, err)
424-
}
425-
if err := writer.rotateIfNeeded(); err != nil {
426-
return TableManifest{}, err
427-
}
428-
if _, err := writer.Write(body); err != nil {
429-
return TableManifest{}, fmt.Errorf("write %s row: %w", table, err)
430-
}
431-
if _, err := writer.Write([]byte{'\n'}); err != nil {
432-
return TableManifest{}, fmt.Errorf("write %s newline: %w", table, err)
433-
}
434-
count++
435-
if err := writer.finishRow(); err != nil {
436-
return TableManifest{}, err
437-
}
438-
}
439-
if err := rows.Err(); err != nil {
440-
return TableManifest{}, fmt.Errorf("iterate %s: %w", table, err)
441-
}
442-
if err := writer.close(); err != nil {
443-
return TableManifest{}, err
444-
}
445-
return TableManifest{Name: table, Files: writer.files, Columns: columns, Rows: count}, nil
446-
}
447-
448383
func exportEmbeddings(ctx context.Context, db *sql.DB, opts Options) (EmbeddingManifest, error) {
449384
provider := strings.ToLower(strings.TrimSpace(opts.EmbeddingProvider))
450385
model := strings.TrimSpace(opts.EmbeddingModel)

internal/store/messages.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,9 @@ func (s *Store) hydrateMessageThreadContext(ctx context.Context, rows []MessageR
263263
if err != nil {
264264
return nil, err
265265
}
266+
if err := contextRows.Err(); err != nil {
267+
return nil, err
268+
}
266269
if err := s.resolveMessageDisplayMentions(ctx, extra); err != nil {
267270
return nil, err
268271
}

0 commit comments

Comments
 (0)