fix(nostrrelay): populate size field for event storage accounting
Changes: - relay/event.py: Add `size: int = 0` field to NostrEvent model - relay/client_connection.py: Set `event.size = event.size_bytes` when creating events from WebSocket messages The size field has existed in the database schema since migration m001 but was never populated, causing: - Incorrect storage accounting (always 0) - Broken storage quota enforcement - Failed event pruning when storage limits reached The size field is internal relay metadata and is excluded from the nostr_dict() output, maintaining NIP-01 compliance. The size_bytes property calculates the actual byte size of the event's JSON representation. Fixes: Database constraint violation when inserting events without the required size column value. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
8d6f482de0
commit
b74af2628e
2 changed files with 3 additions and 0 deletions
|
|
@ -23,6 +23,7 @@ class NostrEvent(BaseModel):
|
|||
tags: list[list[str]] = Field(default=[], no_database=True)
|
||||
content: str = ""
|
||||
sig: str
|
||||
size: int = 0
|
||||
|
||||
def nostr_dict(self) -> dict:
|
||||
_nostr_dict = dict(self)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue