feat: add owner field for human attribution in HOP CV chains

Add 'owner' field to Issue struct for tracking the human responsible
for the issue, distinct from 'created_by' which tracks the executor.
Owner is populated from git author email (GIT_AUTHOR_EMAIL or git
config user.email), per Decision 008 for CV accumulation.

Changes:
- Add Owner field to types.Issue with omitempty JSON tag
- Include Owner in content hash computation
- Add owner column migration (036_owner_column.go)
- Update all SQL queries to include owner field
- Add getOwner() helper using git author email fallback chain
- Populate owner in bd create command
- Add owner to RPC CreateArgs protocol

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

Executed-By: beads/crew/dave
Rig: beads
Role: crew
This commit is contained in:
beads/crew/dave
2026-01-10 19:28:08 -08:00
committed by Steve Yegge
parent 1039a69186
commit ceb5769c75
13 changed files with 109 additions and 23 deletions

View File

@@ -199,6 +199,7 @@ var createCmd = &cobra.Command{
ExternalRef: externalRefPtr,
Ephemeral: wisp,
CreatedBy: getActorWithGit(),
Owner: getOwner(),
MolType: molType,
RoleType: roleType,
Rig: agentRig,
@@ -423,6 +424,7 @@ var createCmd = &cobra.Command{
WaitsForGate: waitsForGate,
Ephemeral: wisp,
CreatedBy: getActorWithGit(),
Owner: getOwner(),
MolType: string(molType),
RoleType: roleType,
Rig: agentRig,
@@ -482,6 +484,7 @@ var createCmd = &cobra.Command{
EstimatedMinutes: estimatedMinutes,
Ephemeral: wisp,
CreatedBy: getActorWithGit(),
Owner: getOwner(),
MolType: molType,
RoleType: roleType,
Rig: agentRig,
@@ -808,6 +811,7 @@ func createInRig(cmd *cobra.Command, rigName, title, description, issueType stri
ExternalRef: externalRefPtr,
Ephemeral: wisp,
CreatedBy: getActorWithGit(),
Owner: getOwner(),
// Event fields (bd-xwvo fix)
EventKind: eventCategory,
Actor: eventActor,