# Build all packages
go build ./...
# Run all tests
go test ./...
# Run tests for specific package
go test github.com/teilomillet/gollm/llm -v
# Run specific test
go test -run TestMemoryGetMessages github.com/teilomillet/gollm/llm -v- Rebase before merging: Always rebase feature branches onto main before merging to keep a clean, linear history. Use
git rebase mainor squash commits withgit rebase -ito consolidate related changes. - Squash feedback fixes: When addressing PR feedback, consider squashing fix commits into the original feature commits before merging.
- Delete merged branches: Clean up feature branches after merging.
- Follow Go conventions and existing patterns in the codebase
- Use interfaces for extensibility (e.g.,
MemoryCapableover concrete types) - Write comprehensive tests, skip gracefully when providers unavailable
- Deep copy data structures to prevent shared state issues
- Tests using
lmstudioprovider will skip if LM Studio is not running - Tests requiring API keys (Anthropic, OpenAI) will skip if keys are not set
- Use
createTestLLMhelper pattern to skip tests gracefully