Add archive relay query augmentation and access-based GC (v0.45.0)
- Add async archive relay querying (local results immediate, archives in background) - Add query caching with filter normalization to avoid repeated requests - Add session-deduplicated access tracking for events - Add continuous garbage collection based on access patterns - Auto-detect storage limit (80% of filesystem) when ORLY_MAX_STORAGE_BYTES=0 - Support NIP-50 search queries to archive relays New environment variables: - ORLY_ARCHIVE_ENABLED: Enable archive relay query augmentation - ORLY_ARCHIVE_RELAYS: Comma-separated archive relay URLs - ORLY_ARCHIVE_TIMEOUT_SEC: Archive query timeout - ORLY_ARCHIVE_CACHE_TTL_HRS: Query deduplication window - ORLY_GC_ENABLED: Enable access-based garbage collection - ORLY_MAX_STORAGE_BYTES: Max storage (0=auto 80%) - ORLY_GC_INTERVAL_SEC: GC check interval - ORLY_GC_BATCH_SIZE: Events per GC cycle 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
38
pkg/storage/limits_windows.go
Normal file
38
pkg/storage/limits_windows.go
Normal file
@@ -0,0 +1,38 @@
|
||||
//go:build windows
|
||||
|
||||
package storage
|
||||
|
||||
import (
|
||||
"errors"
|
||||
)
|
||||
|
||||
// FilesystemStats holds information about filesystem space usage.
|
||||
type FilesystemStats struct {
|
||||
Total uint64 // Total bytes on filesystem
|
||||
Available uint64 // Available bytes (for unprivileged users)
|
||||
Used uint64 // Used bytes
|
||||
}
|
||||
|
||||
// GetFilesystemStats returns filesystem space information for the given path.
|
||||
// Windows implementation is not yet supported.
|
||||
func GetFilesystemStats(path string) (stats FilesystemStats, err error) {
|
||||
// TODO: Implement using syscall.GetDiskFreeSpaceEx
|
||||
err = errors.New("filesystem stats not implemented on Windows")
|
||||
return
|
||||
}
|
||||
|
||||
// CalculateMaxStorage calculates the maximum storage limit for the relay.
|
||||
// If configuredMax > 0, it returns that value directly.
|
||||
// Windows auto-detection is not yet supported.
|
||||
func CalculateMaxStorage(dataDir string, configuredMax int64) (int64, error) {
|
||||
if configuredMax > 0 {
|
||||
return configuredMax, nil
|
||||
}
|
||||
return 0, errors.New("auto-detect storage limit not implemented on Windows; set ORLY_MAX_STORAGE_BYTES manually")
|
||||
}
|
||||
|
||||
// GetCurrentStorageUsage calculates the current storage usage of the data directory.
|
||||
// Windows implementation is not yet supported.
|
||||
func GetCurrentStorageUsage(dataDir string) (int64, error) {
|
||||
return 0, errors.New("storage usage detection not implemented on Windows")
|
||||
}
|
||||
Reference in New Issue
Block a user