rdev/internal/port/build_event_store.go
jordan c59d348040 chore: prepare for composable monorepo template implementation
This commit captures the current state before implementing the composable
monorepo template system. Key changes included:

Infrastructure:
- Add CockroachDB provisioner adapter for database provisioning
- Add Redis provisioner adapter for cache provisioning
- Add build events system with PostgreSQL storage
- Add WebSocket endpoint for real-time build progress

Code agent improvements:
- Fix Claude Code adapter to use default allowed tools instead of dangerously-skip-permissions
- Add context-aware stream closing for cancellation support
- Improve parser tests for edge cases

Build system:
- Add build event constants and metrics
- Remove deprecated git_operations.go (replaced by pod_git_operations.go)
- Add rollback logic for multi-step provisioning operations

Documentation:
- Add composable-monorepo feature documentation
- Add DNS/Cloudflare service documentation
- Update deployment and troubleshooting guides

Cookbooks:
- Add fullstack-app cookbook
- Refactor landing-test with shared library

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 11:39:28 -07:00

25 lines
855 B
Go

package port
import (
"context"
"time"
"github.com/orchard9/rdev/internal/domain"
)
// BuildEventStore defines persistence operations for build events.
// Used for SSE reconnection replay when in-memory buffer is exhausted.
type BuildEventStore interface {
// Record stores a build event for later replay.
Record(ctx context.Context, event *domain.BuildEvent) error
// ListByTask retrieves events for a task, optionally after a sequence number.
// If afterSequence > 0, only events with sequence > afterSequence are returned.
// Results are ordered by sequence ascending.
ListByTask(ctx context.Context, taskID string, afterSequence int64) ([]*domain.BuildEvent, error)
// Cleanup removes events older than the specified age.
// Returns the number of events deleted.
Cleanup(ctx context.Context, olderThan time.Duration) (int64, error)
}