Commit Graph

4 Commits

Author SHA1 Message Date
Steve Yegge
2e59c002e8 feat(beads): add attachment fields for pinned beads (gt-rana.1)
Implement AttachmentFields to track molecule attachments on pinned/handoff beads:
- AttachedMolecule: root issue ID of attached molecule
- AttachedAt: timestamp when attached

API:
- AttachMolecule(pinnedBeadID, moleculeID) - attach
- DetachMolecule(pinnedBeadID) - detach
- GetAttachment(pinnedBeadID) - query
- ParseAttachmentFields(issue) - parse from description
- FormatAttachmentFields(fields) - format for description

Includes comprehensive tests for parsing and API.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 15:53:15 -08:00
Steve Yegge
4048cdc373 fix(lint): resolve all errcheck warnings
Fix ~50 errcheck warnings across the codebase:

- Add explicit `_ =` for intentionally ignored error returns (cleanup,
  best-effort operations, etc.)
- Use `defer func() { _ = ... }()` pattern for defer statements
- Handle tmux SetEnvironment, KillSession, SendKeysRaw returns
- Handle mail router.Send returns
- Handle os.RemoveAll, os.Rename in cleanup paths
- Handle rand.Read returns for ID generation
- Handle fmt.Fprint* returns when writing to io.Writer
- Fix for-select with single case to use for-range
- Handle cobra MarkFlagRequired returns

All tests pass. Code compiles without errors.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 12:44:42 -08:00
Steve Yegge
f011e9bc80 feat(beads): add MR field parsing for merge-request issues
Implement ParseMRFields and SetMRFields helper functions to extract
and update structured fields in merge-request issue descriptions.

Fields supported: branch, target, source_issue, worker, rig,
merge_commit, close_reason.

Features:
- Case-insensitive key matching
- Alternate key formats (snake_case, kebab-case)
- Preserves non-MR prose content
- Handles mixed MR fields and prose
- Round-trip safe (parse then format preserves data)

Closes: gt-h5n.1

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-17 14:50:34 -08:00
Steve Yegge
c598e3b549 feat: add beads CLI wrapper package (gt-u1j.13)
Implements the internal/beads package for shelling out to the bd CLI.

Interface:
- New(workDir) - constructor
- List(opts) - query issues with filters
- Ready() - get issues not blocked
- Blocked() - get blocked issues
- Show(id) - get issue details
- Create(opts) - create new issue
- Update(id, opts) - update issue
- Close(ids...) - close issues
- AddDependency/RemoveDependency - manage deps
- Sync/SyncFromMain/SyncStatus - sync operations

Error handling:
- ErrNotInstalled - bd binary not found
- ErrNotARepo - not a beads repository
- ErrSyncConflict - sync conflict detected
- ErrNotFound - issue not found

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-17 14:30:58 -08:00