Tree:
951e98ca3e
imwald
imwald-v0.58.10
imwald-v0.58.5
main
v0.1.0
v0.10.0
v0.10.1
v0.10.2
v0.10.3
v0.10.4
v0.10.5
v0.11.0
v0.11.1
v0.11.2
v0.11.3
v0.12.0
v0.12.1
v0.12.2
v0.12.3
v0.13.0
v0.13.1
v0.13.2
v0.14.0
v0.14.1
v0.14.2
v0.14.3
v0.14.4
v0.15.0
v0.16.0
v0.16.1
v0.16.2
v0.16.3
v0.17.0
v0.17.1
v0.17.10
v0.17.11
v0.17.12
v0.17.13
v0.17.14
v0.17.15
v0.17.16
v0.17.17
v0.17.18
v0.17.2
v0.17.3
v0.17.4
v0.17.5
v0.17.6
v0.17.7
v0.17.8
v0.17.9
v0.18.0
v0.19.0
v0.19.1
v0.19.10
v0.19.2
v0.19.3
v0.19.4
v0.19.5
v0.19.6
v0.19.7
v0.19.8
v0.19.9
v0.2.0
v0.2.1
v0.20.0
v0.20.1
v0.20.2
v0.20.3
v0.20.4
v0.20.5
v0.20.6
v0.21.0
v0.21.1
v0.21.2
v0.21.3
v0.21.4
v0.22.0
v0.23.0
v0.23.1
v0.23.3
v0.23.4
v0.24.0
v0.24.1
v0.24.2
v0.24.3
v0.24.4
v0.24.5
v0.24.6
v0.24.7
v0.25.0
v0.25.1
v0.25.3
v0.25.4
v0.25.5
v0.25.6
v0.25.7
v0.26.0
v0.26.1
v0.26.2
v0.26.3
v0.26.4
v0.27.0
v0.27.1
v0.27.2
v0.27.3
v0.27.4
v0.27.5
v0.27.6
v0.27.7
v0.27.8
v0.27.9
v0.28.0
v0.28.1
v0.28.3
v0.29.0
v0.29.1
v0.29.10
v0.29.11
v0.29.12
v0.29.13
v0.29.14
v0.29.15
v0.29.16
v0.29.17
v0.29.18
v0.29.19
v0.29.2
v0.29.20
v0.29.3
v0.29.4
v0.29.6
v0.29.7
v0.29.8
v0.29.9
v0.3.0
v0.3.1
v0.3.2
v0.30.0
v0.30.1
v0.30.2
v0.30.3
v0.31.0
v0.31.1
v0.31.1-bump
v0.31.10
v0.31.11
v0.31.2
v0.31.3
v0.31.4
v0.31.5
v0.31.6
v0.31.7
v0.31.8
v0.31.9
v0.32.0
v0.32.1
v0.32.2
v0.32.3
v0.32.4
v0.32.5
v0.32.6
v0.32.7
v0.33.0
v0.33.1
v0.34.0
v0.34.1
v0.34.2
v0.34.3
v0.34.4
v0.34.5
v0.34.6
v0.34.7
v0.35.0
v0.35.1
v0.35.2
v0.35.3
v0.35.4
v0.35.5
v0.36.0
v0.36.1
v0.36.10
v0.36.11
v0.36.12
v0.36.13
v0.36.14
v0.36.15
v0.36.16
v0.36.17
v0.36.18
v0.36.19
v0.36.2
v0.36.20
v0.36.21
v0.36.22
v0.36.23
v0.36.3
v0.36.4
v0.36.5
v0.36.6
v0.36.7
v0.36.8
v0.36.9
v0.37.0
v0.37.1
v0.37.2
v0.37.3
v0.38.0
v0.38.1
v0.39.0
v0.39.1
v0.39.2
v0.39.3
v0.39.4
v0.4.0
v0.4.1
v0.4.2
v0.4.3
v0.4.4
v0.4.5
v0.4.6
v0.4.9
v0.40.0
v0.40.1
v0.41.0
v0.42.0
v0.43.0
v0.43.1
v0.44.0
v0.44.1
v0.44.2
v0.44.3
v0.44.4
v0.44.5
v0.44.6
v0.44.7
v0.46.0
v0.46.1
v0.46.2
v0.47.0
v0.47.1
v0.48.1
v0.48.10
v0.48.11
v0.48.12
v0.48.13
v0.48.14
v0.48.15
v0.48.8
v0.48.9
v0.49.0
v0.49.1
v0.49.2
v0.50.0
v0.50.1
v0.51.0
v0.52.0
v0.52.1
v0.52.10
v0.52.11
v0.52.12
v0.52.17
v0.52.2
v0.52.3
v0.52.4
v0.52.5
v0.52.6
v0.52.7
v0.52.8
v0.52.9
v0.53.0
v0.53.1
v0.54.0
v0.55.0
v0.55.10
v0.55.11
v0.55.4
v0.55.5
v0.55.6
v0.56.0
v0.56.1
v0.56.2
v0.56.3
v0.56.4
v0.56.5
v0.56.6
v0.56.8
v0.56.9
v0.57.0
v0.57.1
v0.57.2
v0.58.0
v0.58.1
v0.58.2
v0.58.3
v0.58.4
v0.58.5
v0.6.0
v0.6.1
v0.6.2
v0.6.3
v0.6.4
v0.7.1
v0.8.0
v0.8.1
v0.8.2
v0.8.3
v0.8.4
v0.8.5
v0.8.6
v0.8.7
v0.8.8
v0.8.9
v0.9.0
v0.9.1
v0.9.2
v0.9.3
v4.1.0
${ noResults }
5 Commits (951e98ca3e6068d90edb122b0cfbd2ec05cbcbef)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
41a3b5c0a5
|
Fix OOM crash from corrupt compact event data
Add sanity bounds to prevent memory exhaustion when decoding corrupt events with garbage varint values. Previously, corrupt data could cause massive allocations (e.g., make([]byte, 2^60)) leading to OOM crashes. - Add MaxTagsPerEvent (10000), MaxTagElements (100), MaxContentLength (10MB), MaxTagElementLength (1MB) limits - Return sentinel errors for corrupt data instead of logging - Silently skip corrupt events (caller handles gracefully) This fixes crash loops on archive.orly.dev where OOM during writes left corrupt events in bbolt database. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> |
4 months ago |
|
|
8dfd25613d
|
Fix corrupted events with zero-filled IDs/pubkeys/sigs (v0.47.1)
- Add validation in GetEventIdBySerial to ensure sei value is 32 bytes - Fix fallback-to-legacy bug: return error instead of attempting legacy unmarshal on compact format data when event ID lookup fails - Add upfront validation in UnmarshalCompactEvent for eventId length - Prevents events with all-zero IDs from being returned to clients Files modified: - pkg/database/serial_cache.go: Validate sei value is exactly 32 bytes - pkg/database/fetch-events-by-serials.go: Return error for compact format when eventId missing instead of falling back to legacy unmarshal - pkg/database/fetch-event-by-serial.go: Same fix for single event fetch - pkg/database/compact_event.go: Validate eventId is 32 bytes upfront - pkg/version/version: Bump to v0.47.1 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> |
4 months ago |
|
|
b837dcb5f0
|
Fix UTF-8 encoding error in compact event tag marshaling (v0.44.1)
- Fix binary pubkey/event ID values not being detected by tag.Marshal - Compact event decoder now returns 33-byte values with null terminator - This allows tag.Marshal to detect and hex-encode binary values correctly - Fixes "Could not decode a text frame as UTF-8" WebSocket errors Files modified: - pkg/database/compact_event.go: Return 33-byte binary with null terminator 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> |
5 months ago |
|
|
eddd05eabf
|
Add memory optimization improvements for reduced GC pressure (v0.36.16)
- Add buffer pool (pkg/database/bufpool) with SmallPool (64B) and MediumPool (1KB) for reusing bytes.Buffer instances on hot paths - Fix escape analysis in index types (uint40, letter, word) by using fixed-size arrays instead of make() calls that escape to heap - Add handler concurrency limiter (ORLY_MAX_HANDLERS_PER_CONN, default 100) to prevent unbounded goroutine growth under WebSocket load - Add pre-allocation hints to Uint40s.Union/Intersection/Difference methods - Update compact_event.go, save-event.go, serial_cache.go, and get-indexes-for-event.go to use pooled buffers Files modified: - app/config/config.go: Add MaxHandlersPerConnection config - app/handle-websocket.go: Initialize handler semaphore - app/listener.go: Add semaphore acquire/release in messageProcessor - pkg/database/bufpool/pool.go: New buffer pool package - pkg/database/compact_event.go: Use buffer pool, fix escape analysis - pkg/database/get-indexes-for-event.go: Reuse single buffer for all indexes - pkg/database/indexes/types/letter.go: Fixed array in UnmarshalRead - pkg/database/indexes/types/uint40.go: Fixed arrays, pre-allocation hints - pkg/database/indexes/types/word.go: Fixed array in UnmarshalRead - pkg/database/save-event.go: Use buffer pool for key encoding - pkg/database/serial_cache.go: Use buffer pool for lookups 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> |
5 months ago |
|
|
54ead81791
|
merge authors/nostruser in neo4j, add compact pubkey/e/p serial refs
|
6 months ago |