Commit Graph

5 Commits

Author SHA1 Message Date
gastown/polecats/capable
4a84f68d48 Add expandQueue() to resolve queue workers from messaging.json (gt-xkbze)
Add queue expansion to internal/mail/router.go following the expandList() pattern:
- Add ErrUnknownQueue error for unknown queue names
- Add expandQueue() method to look up QueueConfig from messaging.json
- Add TestExpandQueue and TestExpandQueueNoTownRoot tests

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 22:32:38 -08:00
gastown/polecats/dementus
fb5870350c Add isQueueAddress() and parseQueueName() helpers to router.go (gt-0q3cg)
Add queue address detection following the same pattern as list address
detection. Includes tests in router_test.go.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 22:11:27 -08:00
Steve Yegge
9968aceddb Add @group dynamic resolution in mail router (gt-tgy1v)
Implements @group address resolution for mail routing:
- @rig/<rigname>: All agents in a rig
- @town: All town-level agents (mayor, deacon)
- @witnesses, @dogs, @refineries: Role-based groups
- @crew/<rig>, @polecats/<rig>: Role+rig scoped groups
- @overseer: Human operator (uses overseer.json)

Resolution uses `bd list --type=agent` queries with
description filtering. Fan-out at send time creates
individual messages for each resolved recipient.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 10:47:05 -08:00
Steve Yegge
3889d31713 Add static mailing list support (list:name syntax) (gt-2rfvq)
Implement static mailing list expansion for the mail system:

- Add list:name address syntax (e.g., list:oncall)
- Load lists from ~/gt/config/messaging.json
- Fan-out delivery: each list member gets their own message copy
- Clear error handling for unknown list names
- Add tests for list detection, parsing, and expansion
- Update gt mail send help text with list:name documentation
- Show recipients in output when sending to a list

Example:
  gt mail send list:oncall -s "Alert" -m "System down"
  # Expands to: mayor/, gastown/witness
  # Creates 2 message copies

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 06:57:37 -08:00
Steve Yegge
9c718b0d7d test: Add unit tests for mail router and mailbox (gt-1pelm)
Add comprehensive tests for:
- router_test.go: 7 tests covering detectTownRoot, isTownLevelAddress,
  addressToSessionID, isSelfMail, shouldBeWisp, resolveBeadsDir
- mailbox_test.go: 17 tests for legacy mailbox operations
- types_test.go: Enhanced with additional priority and message tests

Coverage: 57.8% for mail package (legacy mailbox fully tested,
beads integration requires runtime infrastructure)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 16:16:24 -08:00