feat: Add overseer identity for human operator mail support
Adds first-class support for the human overseer in Gas Town mail: - New OverseerConfig in internal/config/overseer.go with identity detection (git config, gh cli, environment) - Overseer detected/saved on town install (mayor/overseer.json) - Simplified detectSender(): GT_ROLE set = agent, else = overseer - New overseer address alongside mayor/ and deacon/ - Added --cc flag to mail send for CC recipients - Inbox now includes CC'd messages via label query - gt status shows overseer identity and unread mail count - New gt whoami command shows current mail identity Generated with Claude Code Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -180,6 +180,19 @@ func runInstall(cmd *cobra.Command, args []string) error {
|
||||
// these global agent beads in its beads database.
|
||||
}
|
||||
|
||||
// Detect and save overseer identity
|
||||
overseer, err := config.DetectOverseer(absPath)
|
||||
if err != nil {
|
||||
fmt.Printf(" %s Could not detect overseer identity: %v\n", style.Dim.Render("⚠"), err)
|
||||
} else {
|
||||
overseerPath := config.OverseerConfigPath(absPath)
|
||||
if err := config.SaveOverseerConfig(overseerPath, overseer); err != nil {
|
||||
fmt.Printf(" %s Could not save overseer config: %v\n", style.Dim.Render("⚠"), err)
|
||||
} else {
|
||||
fmt.Printf(" ✓ Detected overseer: %s (via %s)\n", overseer.FormatOverseerIdentity(), overseer.Source)
|
||||
}
|
||||
}
|
||||
|
||||
// Initialize git if requested (--git or --github implies --git)
|
||||
if installGit || installGitHub != "" {
|
||||
fmt.Println()
|
||||
|
||||
Reference in New Issue
Block a user