• Fix directory spider tag loss: size limits and validation
    Some checks failed
    Go / build-and-release (push) Has been cancelled

    mleku released this 2025-11-27 13:49:33 +00:00 | 45 commits to main since this release

    • Increase WebSocket message size limit from 500KB to 10MB to prevent
      truncation of large kind 3 follow list events (8000+ follows)
    • Add validation in SaveEvent to reject kind 3 events without p tags
      before storage, preventing malformed events from buggy relays
    • Implement CleanupKind3WithoutPTags() to remove existing malformed
      kind 3 events at startup
    • Add enhanced logging showing tag count and event ID when rejecting
      invalid kind 3 events for better observability
    • Create round-trip test proving binary tag encoding preserves p tags
      correctly through JSON→binary→JSON cycle
    • Root cause: 500KB limit was truncating large follow lists during
      WebSocket receive, causing tags to be lost or incomplete
    • Three-layer defense: prevent at gate (size), validate (save time),
      and cleanup (startup)

    Files modified:

    • app/handle-websocket.go: Increase DefaultMaxMessageSize to 10MB
    • pkg/database/save-event.go: Add kind 3 validation with logging
    • pkg/database/cleanup-kind3.go: New cleanup function
    • pkg/database/cleanup-kind3_test.go: Round-trip test
    • app/main.go: Invoke cleanup at startup
    Downloads