Add Owner and PublicName fields to TownConfig (gt-6r18e.3)

Adds federation identity fields to town.json:
- Owner: email address for entity identity (defaults to git user.email)
- PublicName: public display name (defaults to town name)

Schema version bumped to 2. Existing town.json files remain compatible
as new fields are optional.

Also adds --owner and --public-name flags to 'gt install'.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Steve Yegge
2025-12-30 16:17:18 -08:00
parent 2112804aba
commit 4d4f23eb18
2 changed files with 39 additions and 15 deletions

View File

@@ -8,10 +8,12 @@ import (
// TownConfig represents the main town identity (mayor/town.json).
type TownConfig struct {
Type string `json:"type"` // "town"
Version int `json:"version"` // schema version
Name string `json:"name"` // town identifier
CreatedAt time.Time `json:"created_at"`
Type string `json:"type"` // "town"
Version int `json:"version"` // schema version
Name string `json:"name"` // town identifier (internal)
Owner string `json:"owner,omitempty"` // owner email (entity identity)
PublicName string `json:"public_name,omitempty"` // public display name
CreatedAt time.Time `json:"created_at"`
}
// MayorConfig represents town-level behavioral configuration (mayor/config.json).
@@ -70,7 +72,8 @@ type AgentState struct {
}
// CurrentTownVersion is the current schema version for TownConfig.
const CurrentTownVersion = 1
// Version 2: Added Owner and PublicName fields for federation identity.
const CurrentTownVersion = 2
// CurrentRigsVersion is the current schema version for RigsConfig.
const CurrentRigsVersion = 1