Commit Graph

3902 Commits

Author SHA1 Message Date
Steve Yegge
3c786f2333 feat: add Windows code signing infrastructure (bd-14v0)
Implements Authenticode signing for Windows binaries to reduce AV false positives.

Changes:
- Add scripts/sign-windows.sh for osslsigncode-based signing
- Update .goreleaser.yml with post-build signing hook
- Update release.yml to install osslsigncode and pass secrets
- Update docs/ANTIVIRUS.md with signing verification instructions
- Update scripts/README.md with signing script documentation

The signing is gracefully degraded - releases continue without signing
if the certificate secrets are not configured.

Required secrets for signing:
- WINDOWS_SIGNING_CERT_PFX_BASE64: base64-encoded PFX certificate
- WINDOWS_SIGNING_CERT_PASSWORD: certificate password

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 00:07:16 -08:00
Steve Yegge
edc6eae82c bd sync: 2025-12-23 23:47
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 00:07:16 -08:00
Steve Yegge
51575fc595 docs: add TROUBLESHOOTING.md link to README (bd-t4u1)
Makes antivirus false positive documentation more discoverable.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 00:07:15 -08:00
Steve Yegge
a94f956bb3 bd sync: 2025-12-23 00:25:43 2025-12-24 00:07:06 -08:00
Steve Yegge
1a818cbced test(rpc): add comprehensive daemon delete RPC handler tests (bd-dxtc)
Add tests for the daemon Delete RPC handler to verify:

- Dry-run mode returns preview without actual deletion
- Error handling for empty issue IDs
- Error handling for non-existent issues
- Partial success when some issues exist and others do not
- Templates cannot be deleted (read-only protection)
- Invalid JSON args are properly rejected
- Reason field is passed through correctly
- Cascade and Force flags are accepted (documents current behavior)

All test scenarios from bd-dxtc issue are covered.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 00:06:51 -08:00
Steve Yegge
bed89fdfde feat(export): add --priority exact match filter (bd-au0.6)
Add the --priority (-p) flag to bd export for filtering by exact priority,
matching the behavior of bd list. This completes the comprehensive filtering
support for bd export.

The flag uses cmd.Flags().Changed() to properly handle P0 (priority 0), which
would otherwise be interpreted as "not set" due to Go zero-value semantics.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 00:06:51 -08:00
Steve Yegge
b68c1c20c9 bd sync: close bd-g9eu 2025-12-24 00:06:41 -08:00
Steve Yegge
143f5c80bf Fix TestMain to find module root before building bd binary
The TestMain in beads_hash_multiclone_test.go was running `go build ./cmd/bd`
from the package directory (internal/beads) instead of the module root, causing
the build to fail with "directory not found".

Now uses `go list -m -f '{{.Dir}}'` to locate the module root and sets cmd.Dir
appropriately before building.

This fixes the integration test setup that was preventing TestRoutingIntegration
from running. (bd-g9eu)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 00:06:41 -08:00
Steve Yegge
2555881e7c bd sync: 2025-12-23 23:42:24 2025-12-24 00:06:41 -08:00
Steve Yegge
e4d8d10043 bd sync: 2025-12-23 23:42:01 2025-12-24 00:06:41 -08:00
Steve Yegge
fc026d3635 bd sync: 2025-12-23 23:41:32 2025-12-24 00:06:41 -08:00
Steve Yegge
6a65468fae bd sync: 2025-12-23 23:41:10 2025-12-24 00:06:41 -08:00
Steve Yegge
c151c28b7d bd sync: 2025-12-23 23:40:48 2025-12-24 00:06:41 -08:00
Steve Yegge
4cc84670c0 bd sync: 2025-12-23 23:40:27 2025-12-24 00:06:41 -08:00
Steve Yegge
512aed890f bd sync: 2025-12-23 23:39:58 2025-12-24 00:06:41 -08:00
Steve Yegge
8cb03d0ff6 bd sync: 2025-12-23 23:39:37 2025-12-24 00:06:41 -08:00
Steve Yegge
72a83193a9 bd sync: 2025-12-23 23:39:17 2025-12-24 00:06:41 -08:00
Steve Yegge
e67f27c092 bd sync: 2025-12-23 23:38:57 2025-12-24 00:06:41 -08:00
Steve Yegge
05e10b6759 Add comprehensive RPC test coverage (44.7% → 61.7%)
Removed Gate RPC tests that referenced undefined API methods.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 23:08:04 -08:00
Steve Yegge
2069f0a3d7 Add tests for cmd/bd CLI to improve coverage (bd-llfl)
Added tests for:
- daemon_config.go: ensureBeadsDir, getPIDFilePath, getLogFilePath,
  getSocketPathForPID
- daemon_autostart.go: determineSocketPath, isDaemonRunningQuiet
- activity.go: printEvent
- cleanup.go: showCleanupDeprecationHint
- upgrade.go: pluralize
- wisp.go: formatTimeAgo
- list.go: pinIndicator, sortIssues
- hooks.go: FormatHookWarnings, isRebaseInProgress, hasBeadsJSONL
- template.go: extractIDSuffix
- thanks.go: getContributorsSorted

Coverage improved from 22.5% to 23.1% for cmd/bd package.
Most remaining untested code requires daemon/RPC operations.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 22:47:25 -08:00
Steve Yegge
bbb08d6d8d Fix template commands failing with daemon mode (bd-indn)
Added daemon-compatible functions for template operations:
- loadTemplateSubgraphViaDaemon: loads template subgraph via RPC calls
- cloneSubgraphViaDaemon: creates new issues from template via RPC
- Updated templateShowCmd and templateInstantiateCmd to use daemon path

The template commands were using storage.Storage directly even when
daemon was connected, causing "no database connection" errors.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 22:43:04 -08:00
Steve Yegge
9354dbd9f2 Refactor duplicate JSONL-from-git parsing code (bd-y2v)
Extract readFromGitRef helper function to eliminate duplicate code for
running git show <ref>:<path> commands. The helper is now used by:
- checkGitForIssues() in autoimport.go
- importFromGit() in autoimport.go
- readFirstIssueFromGit() in init.go

The scanning/parsing logic is intentionally kept separate since each
function has different requirements (error handling, SetDefaults, etc).

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 22:41:05 -08:00
Steve Yegge
091b4b8f35 Add tests for setup package (28.4% → 53.8% coverage)
Adds comprehensive tests for:
- factory.go: updateBeadsSection, removeBeadsSection, createNewAgentsFile,
  InstallFactory, RemoveFactory
- cursor.go: InstallCursor, RemoveCursor, CheckCursor
- aider.go: InstallAider, RemoveAider, CheckAider, templates

Coverage improved from 21.6% (measured) to 53.8%, exceeding 50% target.

(bd-sh4c)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 22:40:16 -08:00
Steve Yegge
f437ce2628 Improve internal/daemon test coverage from 27.3% to 72.0% (bd-n386)
Add discovery_unit_test.go with comprehensive unit tests that run without
the integration build tag. Tests cover:
- walkWithDepth: depth limiting, hidden dir skipping, callback errors
- checkDaemonErrorFile: file presence/absence, content reading
- CleanupStaleSockets: stale removal, alive daemon preservation
- findBeadsDirForWorkspace: regular repos, nonexistent paths
- discoverDaemon: socket missing, not listening, with error file
- discoverDaemonsLegacy: multiple roots, deduplication, filtering
- StopDaemon: not alive error, connection failures
- KillAllDaemons: empty list, not alive daemons, mixed states, force mode

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 22:39:22 -08:00
Steve Yegge
20ea9b53c5 bd sync: 2025-12-23 22:33:37 2025-12-23 22:33:37 -08:00
Steve Yegge
2de1695615 bd sync: 2025-12-23 22:33:32 2025-12-23 22:33:33 -08:00
Steve Yegge
a10f580bbe bd sync: 2025-12-23 22:29:35 2025-12-23 22:29:35 -08:00
Steve Yegge
a8b0163bca bd sync: 2025-12-23 21:51:36 2025-12-23 21:51:36 -08:00
Steve Yegge
93bbad4197 bd sync: 2025-12-23 21:44:33 2025-12-23 21:46:54 -08:00
Steve Yegge
2d592a8983 Merge polecat/testcat - tests for delete wrappers (bd-d28c) 2025-12-23 21:43:08 -08:00
Steve Yegge
9ac2b64038 bd sync: 2025-12-23 21:36:59 2025-12-23 21:36:59 -08:00
Steve Yegge
2e25dbed27 bd sync: 2025-12-23 21:34:40 2025-12-23 21:34:40 -08:00
Steve Yegge
cd87e54176 bd sync: Close bd-d28c (tests added with 100% coverage)
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 21:32:46 -08:00
Steve Yegge
7d3447b971 Add tests for createTombstone and deleteIssue wrappers (bd-d28c)
Test scenarios cover:
- Successful tombstone creation with actor/reason tracking
- Original type preservation in tombstone
- Audit trail recording
- Issue deletion with dependency cleanup
- Error handling for non-existent issues
- Unsupported storage backend fallback

Both functions achieve 100% test coverage.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 21:32:08 -08:00
Steve Yegge
8f366788b7 bd sync: 2025-12-23 21:22:55 2025-12-23 21:22:55 -08:00
Steve Yegge
f11663cea9 bd sync: 2025-12-23 21:19:01 2025-12-23 21:19:01 -08:00
Steve Yegge
cf9e5a597b bd sync: 2025-12-23 20:50:50 2025-12-23 20:50:50 -08:00
Steve Yegge
9c8761abc9 bd sync: 2025-12-23 20:45:19 2025-12-23 20:45:19 -08:00
Steve Yegge
25fa0e5c25 bd sync: 2025-12-23 20:34:32 2025-12-23 20:34:32 -08:00
Steve Yegge
39ce73e3cf bd sync: 2025-12-23 20:34:11 2025-12-23 20:34:11 -08:00
Steve Yegge
cf41d8a040 bd sync: 2025-12-23 20:33:50 2025-12-23 20:33:50 -08:00
Steve Yegge
302b4e4d52 bd sync: 2025-12-23 20:33:29 2025-12-23 20:33:29 -08:00
Steve Yegge
119df253c4 bd sync: 2025-12-23 20:33:08 2025-12-23 20:33:08 -08:00
Steve Yegge
33064e02bd bd sync: 2025-12-23 20:32:47 2025-12-23 20:32:47 -08:00
Steve Yegge
75da35a31a bd sync: 2025-12-23 20:32:16 2025-12-23 20:32:16 -08:00
Steve Yegge
c500e00c9e bd sync: 2025-12-23 20:31:54 2025-12-23 20:31:54 -08:00
Steve Yegge
2bb7128fdb bd sync: 2025-12-23 20:31:33 2025-12-23 20:31:33 -08:00
Steve Yegge
8969574b32 bd sync: 2025-12-23 20:31:12 2025-12-23 20:31:12 -08:00
Steve Yegge
742ba75d18 bd sync: 2025-12-23 20:30:51 2025-12-23 20:30:51 -08:00
Steve Yegge
1db506fc51 bd sync: 2025-12-23 20:30:29 2025-12-23 20:30:29 -08:00