fix(beads): add CreatedAt to group/channel creation, check channel status
- Add CreatedAt timestamp to CreateGroupBead() in beads_group.go - Add CreatedAt timestamp to CreateChannelBead() in beads_channel.go - Check channel status before sending in router.go sendToChannel() - Reject sends to closed channels with appropriate error message Closes: gt-yibjdm, gt-bv2f97 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
committed by
Steve Yegge
parent
4f02abb535
commit
20effb0a51
@@ -9,6 +9,7 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ChannelFields holds structured fields for channel beads.
|
// ChannelFields holds structured fields for channel beads.
|
||||||
@@ -146,6 +147,7 @@ func (b *Beads) CreateChannelBead(name string, subscribers []string, createdBy s
|
|||||||
Subscribers: subscribers,
|
Subscribers: subscribers,
|
||||||
Status: ChannelStatusActive,
|
Status: ChannelStatusActive,
|
||||||
CreatedBy: createdBy,
|
CreatedBy: createdBy,
|
||||||
|
CreatedAt: time.Now().Format(time.RFC3339),
|
||||||
}
|
}
|
||||||
|
|
||||||
description := FormatChannelDescription(title, fields)
|
description := FormatChannelDescription(title, fields)
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
// GroupFields holds structured fields for group beads.
|
// GroupFields holds structured fields for group beads.
|
||||||
@@ -114,6 +115,7 @@ func (b *Beads) CreateGroupBead(name string, members []string, createdBy string)
|
|||||||
Name: name,
|
Name: name,
|
||||||
Members: members,
|
Members: members,
|
||||||
CreatedBy: createdBy,
|
CreatedBy: createdBy,
|
||||||
|
CreatedAt: time.Now().Format(time.RFC3339),
|
||||||
}
|
}
|
||||||
|
|
||||||
description := FormatGroupDescription(title, fields)
|
description := FormatGroupDescription(title, fields)
|
||||||
|
|||||||
@@ -829,6 +829,9 @@ func (r *Router) sendToChannel(msg *Message) error {
|
|||||||
if fields == nil {
|
if fields == nil {
|
||||||
return fmt.Errorf("channel not found: %s", channelName)
|
return fmt.Errorf("channel not found: %s", channelName)
|
||||||
}
|
}
|
||||||
|
if fields.Status == beads.ChannelStatusClosed {
|
||||||
|
return fmt.Errorf("channel %s is closed", channelName)
|
||||||
|
}
|
||||||
|
|
||||||
// Build labels for from/thread/reply-to/cc plus channel metadata
|
// Build labels for from/thread/reply-to/cc plus channel metadata
|
||||||
var labels []string
|
var labels []string
|
||||||
|
|||||||
Reference in New Issue
Block a user