Fix unvalidated dependency parsing in create.go

Validate dependsOnID is non-empty before setting discoveredFromParentID
to prevent attempting to fetch an issue with empty ID.

Also added validation to ensure parent issue exists before generating
child IDs in direct mode.

Fixes: bd-ia8r
This commit is contained in:
Steve Yegge
2025-11-23 20:51:09 -08:00
parent 144f4dea32
commit e8a752e707
2 changed files with 693 additions and 682 deletions

File diff suppressed because one or more lines are too long

View File

@@ -176,6 +176,16 @@ var createCmd = &cobra.Command{
// In direct mode, we generate the child ID here
if parentID != "" && daemonClient == nil {
ctx := rootCtx
// Validate parent exists before generating child ID
parentIssue, err := store.GetIssue(ctx, parentID)
if err != nil {
fmt.Fprintf(os.Stderr, "Error: failed to check parent issue: %v\n", err)
os.Exit(1)
}
if parentIssue == nil {
fmt.Fprintf(os.Stderr, "Error: parent issue %s not found\n", parentID)
os.Exit(1)
}
childID, err := store.GetNextChildID(ctx, parentID)
if err != nil {
fmt.Fprintf(os.Stderr, "Error: %v\n", err)
@@ -290,7 +300,7 @@ var createCmd = &cobra.Command{
depType = types.DependencyType(strings.TrimSpace(parts[0]))
dependsOnID = strings.TrimSpace(parts[1])
if depType == types.DepDiscoveredFrom {
if depType == types.DepDiscoveredFrom && dependsOnID != "" {
discoveredFromParentID = dependsOnID
break
}