New
v0.3.0 - development snapshot
What's Changed
- Add typed PgConfig to config loader by @iyadi in https://github.com/llm4s/llm4s/pull/369
- Add DeepWiki badge to README by @gruggiero in https://github.com/llm4s/llm4s/pull/379
- Fix #318: Use max_completion_tokens for newer Azure OpenAI models by @krrish175-byte in https://github.com/llm4s/llm4s/pull/360
- extend structured logging across all sample modules by @aaryan-iiitu in https://github.com/llm4s/llm4s/pull/388
- Fix Scaladex indexing for llm4s by @arnavsharma990 in https://github.com/llm4s/llm4s/pull/385
- Enhance OpenAIClient with improved error handling and streaming capabilities. Added validation to prevent operations on a closed client, implemented separate methods for fake and native streaming, and introduced logging for error scenarios. Refactored streaming response processing for better clarity and maintainability. by @jayant1701 in https://github.com/llm4s/llm4s/pull/361
- Add test to document precedence when multiple HTTP status codes are present in exception messages by @deepak2k03 in https://github.com/llm4s/llm4s/pull/384
- Fix Ollama message content type mismatch(Closes #366) by @gudiwadasruthi in https://github.com/llm4s/llm4s/pull/372
- Add contributor-focused TESTING_GUIDE.md (fixes #370) by @arnavsharma990 in https://github.com/llm4s/llm4s/pull/374
- ci: enforce minimum test coverage in CI by @arnavsharma990 in https://github.com/llm4s/llm4s/pull/376
- Add an Ollama quickstart guide by @shubhdevv in https://github.com/llm4s/llm4s/pull/382
- Add Z.ai provider with fixes by @rorygraves in https://github.com/llm4s/llm4s/pull/397
- Added Google Gemini as a first-class LLM provider by @Vi-shub in https://github.com/llm4s/llm4s/pull/387
- OpenAIClient tests deterministic (no network), Redact secrets from config toString by @vim89 in https://github.com/llm4s/llm4s/pull/405
- docs: Add code review guidelines based on PR feedback by @rorygraves in https://github.com/llm4s/llm4s/pull/409
- fix: prevent resource leak in OllamaClient streaming by @Sukuna0007Abhi in https://github.com/llm4s/llm4s/pull/418
- fix(test): Increase timeout for flaky PoliciesSpec test by @Sukuna0007Abhi in https://github.com/llm4s/llm4s/pull/413
- ci: make test report artifacts easier to identify on CI failures by @deepak2k03 in https://github.com/llm4s/llm4s/pull/416
- Add Prometheus metrics for LLM operations (Phase 1) by @Sukuna0007Abhi in https://github.com/llm4s/llm4s/pull/407
- Refactor: Eliminate mutable state in FileInfoTool.scala for idiomatic by @VishalPainjane in https://github.com/llm4s/llm4s/pull/433
- feat: add Brave search tools with example by @im-vedant in https://github.com/llm4s/llm4s/pull/391
- feat: Add Semantic LLM Response Caching by @krrish175-byte in https://github.com/llm4s/llm4s/pull/377
- docs: Enhance getting-started guides with troubleshooting and testing by @Sukuna0007Abhi in https://github.com/llm4s/llm4s/pull/392
- Add Creative Scala projects by @noelwelsh in https://github.com/llm4s/llm4s/pull/438
- GSoC 2026 new ideas - #31–#48 by @vim89 in https://github.com/llm4s/llm4s/pull/442
- refactor PostgresMemoryStore for FP safety and error handling by @aaryan-iiitu in https://github.com/llm4s/llm4s/pull/426
- feat: Add OpenTelemetry tracing backend by @krrish175-byte in https://github.com/llm4s/llm4s/pull/395
- Update CI to focus coverage tests on core by @abhi-battula in https://github.com/llm4s/llm4s/pull/420
- chore: add Codecov configuration for patch coverage by @abhi-battula in https://github.com/llm4s/llm4s/pull/423
- Add closed state tracking to all LLM providers by @rorygraves in https://github.com/llm4s/llm4s/pull/449
- Refactor: Remove logback.xml from core to comply with library best practices by @im-vedant in https://github.com/llm4s/llm4s/pull/421
- docs: align test coverage documentation with build config by @abhi-battula in https://github.com/llm4s/llm4s/pull/419
- add PostgresMemoryStore reference documentation by @aaryan-iiitu in https://github.com/llm4s/llm4s/pull/470
- Make sample maxTokens configurable via environment variable by @deepak2k03 in https://github.com/llm4s/llm4s/pull/447
- Implement LLM-powered memory consolidation (Phase 1.4.3) by @shubhdevv in https://github.com/llm4s/llm4s/pull/435
- Fix missing EnhancedTracingExample and BuiltinTools.development docs by @Piyush-t24 in https://github.com/llm4s/llm4s/pull/462
- added multi-provider fallback example for basic usage by @iskushpatel in https://github.com/llm4s/llm4s/pull/439
- fix(vision/security): truncate HTTP error bodies to prevent PII/secret leaks & log flooding by @Sukuna0007Abhi in https://github.com/llm4s/llm4s/pull/480
- test: add unit tests for ConfigReader validation and parsing by @arnavsharma990 in https://github.com/llm4s/llm4s/pull/417
- feat: Add DeepSeek LLM Provider Support by @dhairya-pandya in https://github.com/llm4s/llm4s/pull/445
- fix(security): truncate HTTP error bodies across all clients to prevent PII leaks by @Sukuna0007Abhi in https://github.com/llm4s/llm4s/pull/489
- Add MetricsRecordingSpec with real behavior tests by @Sukuna0007Abhi in https://github.com/llm4s/llm4s/pull/490
- feat(mcp): Implement MCPServer by @mandeepsingh2007 in https://github.com/llm4s/llm4s/pull/436
- Add cross-version tests for OllamaConfig parsing by @Piyush-t24 in https://github.com/llm4s/llm4s/pull/485
- docs: Mark memory consolidation feature as complete. by @shubhdevv in https://github.com/llm4s/llm4s/pull/486
- Update GSoC 2026 stepwise instructions and add calendar links by @arnavsharma990 in https://github.com/llm4s/llm4s/pull/487
- Add optional retry helpers for raw LLMClient usage by @Piyush-t24 in https://github.com/llm4s/llm4s/pull/474
- Add closed state tracking to DeepSeekClient by @rorygraves in https://github.com/llm4s/llm4s/pull/496
- Add complete GSoC 2026 summary with all 63 projects by @Sukuna0007Abhi in https://github.com/llm4s/llm4s/pull/488
- docs: Edited GSoC 2026 project list sequence by @Vi-shub in https://github.com/llm4s/llm4s/pull/507
- docs: Add 10 Hardware Design project ideas to GSoC 2026 by @Vi-shub in https://github.com/llm4s/llm4s/pull/508
- Fixing the summary workflow by @Vi-shub in https://github.com/llm4s/llm4s/pull/510
- Fixing the workflow of gsoc_summary.yml by @Vi-shub in https://github.com/llm4s/llm4s/pull/517
- Swapped named in 2026.md and testing gsoc_summary.yml by @Vi-shub in https://github.com/llm4s/llm4s/pull/518
- Expand cross-version test coverage for providers, tools, and schemas by @Piyush-t24 in https://github.com/llm4s/llm4s/pull/509
- Remove obsolete LLMWeatherExample sample by @rorygraves in https://github.com/llm4s/llm4s/pull/520
- Create GSoC documentation for LLM4S Foundation by @AnshumanAI in https://github.com/llm4s/llm4s/pull/511
- docs: Update GSoC 2026 Summary page with latest project lists by @Vi-shub in https://github.com/llm4s/llm4s/pull/521
- Add latest Banner for GSoC 2026 by @AnshumanAI in https://github.com/llm4s/llm4s/pull/522
- Add Opencollective link. by @AnshumanAI in https://github.com/llm4s/llm4s/pull/524
- Add embedding-based search to InMemoryStore by @Indrapal-70 in https://github.com/llm4s/llm4s/pull/440
- Add security hardening: SSRF protection, log redaction, and safe defaults by @AnshumanAI in https://github.com/llm4s/llm4s/pull/464
- Consolidate redaction utilities, add safe redirect handling by @rorygraves in https://github.com/llm4s/llm4s/pull/529
- docs: Add new mentors and GSoC aspirant sheets to 2026.md by @Vi-shub in https://github.com/llm4s/llm4s/pull/540
- Fix Scala 3 compilation errors in GenerateGSoCSummary script by @Sukuna0007Abhi in https://github.com/llm4s/llm4s/pull/519
- docs: Add 10 new mentors to GSoC 2026 Summary by @Vi-shub in https://github.com/llm4s/llm4s/pull/547
- docs: add curated external LLM learning resources by @sanket-rajput in https://github.com/llm4s/llm4s/pull/541
- docs: Add contributing guide and PR template by @rorygraves in https://github.com/llm4s/llm4s/pull/548
- test: add unit tests for requiresMaxCompletionTokens by @arnavsharma990 in https://github.com/llm4s/llm4s/pull/537
- Add structured JSON tool-failure payloads in ToolMessage.content by @Indrapal-70 in https://github.com/llm4s/llm4s/pull/546
- docs: Add new mentors to GSoC 2026 & ci: remove faulty summary workflow by @Vi-shub in https://github.com/llm4s/llm4s/pull/564
- Quick Fix - image source URL in GSoC index by @AnshumanAI in https://github.com/llm4s/llm4s/pull/570
- Add Copilot Lens GSoC 2026 project ideas (#76, #77) by @pavanvamsi3 in https://github.com/llm4s/llm4s/pull/584
- test: cover provider-prefixed O-series model names by @arnavsharma990 in https://github.com/llm4s/llm4s/pull/559
- build: remove duplicate sbt-scalafmt plugin declaration by @deepak2k03 in https://github.com/llm4s/llm4s/pull/569
- Fix: Close BufferedReaders in startContainer to prevent file descriptor leak by @nikunjkumar05 in https://github.com/llm4s/llm4s/pull/562
- Add parentPath to InvalidNesting tool parameter error JSON and Update AgentToolFailureTest to verify parentPath" by @Shubha9807 in https://github.com/llm4s/llm4s/pull/567
- Tech Debt: Remove reflection from ContextTestFixtures by @sanket-rajput in https://github.com/llm4s/llm4s/pull/544
- docs: Fix bugs and update GSoC 2026 documentation by @Vi-shub in https://github.com/llm4s/llm4s/pull/589
- feat: add compound filter support to PostgresMemoryStore by @arnavsharma990 in https://github.com/llm4s/llm4s/pull/538
- Fixed the repo links by @pavanvamsi3 in https://github.com/llm4s/llm4s/pull/594
- perf: optimize SQLiteMemoryStore.deleteMatching with bulk SQL deletion by @arnavsharma990 in https://github.com/llm4s/llm4s/pull/578
- chore: Update Discord community link in GSoC 2026 documentation by @ayn-aval in https://github.com/llm4s/llm4s/pull/597
- Refactor: Remove unsafe asInstanceOf cast in LLMCompressor by @sanket-rajput in https://github.com/llm4s/llm4s/pull/601
- Fix file descriptor leaks in stopContainer by @nikunjkumar05 in https://github.com/llm4s/llm4s/pull/604
- Docs: Fix Config Boundary Violation in Phase 1.3 Handoff Examples by @Ashish-Patnaik in https://github.com/llm4s/llm4s/pull/603
- Wire Agent execution into Tracing API with optional, side‑effect‑only observability by @Piyush-t24 in https://github.com/llm4s/llm4s/pull/579
- chore: Remove stale compile error log by @shubhdevv in https://github.com/llm4s/llm4s/pull/605
- [FEATURE] Add GitHub issue templates and pull request template by @Nsanjayboruds in https://github.com/llm4s/llm4s/pull/454
- Feat: Add Exa Search Tool with example by @im-vedant in https://github.com/llm4s/llm4s/pull/469
- Add deterministic consolidation stability test by @nikunjkumar05 in https://github.com/llm4s/llm4s/pull/624
- test: add unit tests for MemoryStats.empty default contract by @Atharv-navatre in https://github.com/llm4s/llm4s/pull/623
- Refactor: Introduce AgentContext to bundle cross-cutting Agent parameters by @Piyush-t24 in https://github.com/llm4s/llm4s/pull/631
- Code review guidelines for CLAUDE in CI assisted bot contract by @vim89 in https://github.com/llm4s/llm4s/pull/415
- docs: clarify Java prerequisites and add Windows/macOS setup notes by @Atharv-navatre in https://github.com/llm4s/llm4s/pull/585
- docs: Update roadmaps with completed and ongoing features by @Sukuna0007Abhi in https://github.com/llm4s/llm4s/pull/639
- feat(core): Refactor ImageGeneration traits and introduce HttpClient by @mandeepsingh2007 in https://github.com/llm4s/llm4s/pull/549
- docs: fix config boundary violation in first example guide- Refactor … by @Ashish-Patnaik in https://github.com/llm4s/llm4s/pull/626
- Expose estimated LLM request cost (issue-512) by @Abhishekmishra2808 in https://github.com/llm4s/llm4s/pull/542
- test(core): add unit test coverage for ModelRegistry.updateFromUrl network and concurrency behavior by @sanket-rajput in https://github.com/llm4s/llm4s/pull/636
- Remove STTP dependency from core module by @rorygraves in https://github.com/llm4s/llm4s/pull/640
- Add beginner friendly issues page aligned with production roadmap by @arnavsharma990 in https://github.com/llm4s/llm4s/pull/443
- fix Head-of-Line blocking in executeWithLimit using sliding window by @basant-gautam in https://github.com/llm4s/llm4s/pull/622
- Add Knowledge Graph module for LLM-powered entity extraction and graph traversal by @dhairya-pandya in https://github.com/llm4s/llm4s/pull/566
- Add Cohere LLM provider (non-streaming) + configuration + docs by @gudiwadasruthi in https://github.com/llm4s/llm4s/pull/495
- docs:Added Workspace Agent Protocol of API reference in index.md. by @Shubha9807 in https://github.com/llm4s/llm4s/pull/476
- fix: talk links and GSoC heading typos by @basant-gautam in https://github.com/llm4s/llm4s/pull/619
- Implement fail-fast dimension validation in SQLiteVectorStore by @basant-gautam in https://github.com/llm4s/llm4s/pull/630
- docs: Update GSoC 2026 spreadsheet link by @Vi-shub in https://github.com/llm4s/llm4s/pull/658
- fix(provider): update CohereClient to new withMetrics signature and cost propagation (closes:#656) by @gudiwadasruthi in https://github.com/llm4s/llm4s/pull/657
- Add reviewdoc support to Claude CI workflow by @vim89 in https://github.com/llm4s/llm4s/pull/635
- BUG : Fix tool message serialization for OpenRouter and Z.ai clients by @nikunjkumar05 in https://github.com/llm4s/llm4s/pull/646
- feat: Replace requests-scala with JDK HttpClient in search tools and Langfuse tracing by @im-vedant in https://github.com/llm4s/llm4s/pull/644
- Workspace: Phase 1 — Explicit sandbox config, validation, and locked-down profile by @Piyush-t24 in https://github.com/llm4s/llm4s/pull/493
- [BUG] : Fix swapped parameters in ToolMessage pattern match in TraceHelper.scala by @nikunjkumar05 in https://github.com/llm4s/llm4s/pull/669
- Fixes [#598]: Use Console.err in StreamingOptions.console by @amiralam198 in https://github.com/llm4s/llm4s/pull/647
- fix: resolve resource leaks in Gemini and OpenRouter providers (#427) by @himanshu2394i in https://github.com/llm4s/llm4s/pull/663
- Docs: Add Suggested IDE Plugins (Closes #403) by @lovleen-suden in https://github.com/llm4s/llm4s/pull/472
- Chore/claude pr review mode by @vim89 in https://github.com/llm4s/llm4s/pull/670
- Allow Bash tools in Claude workflow by @vim89 in https://github.com/llm4s/llm4s/pull/671
- P2a: Replace ujson.Null with ujson.Obj() at parsing boundaries by @shubhdevv in https://github.com/llm4s/llm4s/pull/634
- fix(providers): extract StreamingToolArgumentParser and normalize ujson.Null boundaries (#504) by @VarshiniGunti in https://github.com/llm4s/llm4s/pull/536
- Complete requests-scala migration: MCP Transport, Qdrant, Image Generation, Workspace by @im-vedant in https://github.com/llm4s/llm4s/pull/677
- Fix broken documentation links by @doroteaMonaco in https://github.com/llm4s/llm4s/pull/703
- test: Add comprehensive BM25 scoring tests for SQLiteKeywordIndex by @LuigiGonnella in https://github.com/llm4s/llm4s/pull/704
- fix: sanitize tool schemas for Gemini and Anthropic in provider clients by @basant-gautam in https://github.com/llm4s/llm4s/pull/580
- Centralize Provider Context-Window Resolution by @Piyush-t24 in https://github.com/llm4s/llm4s/pull/682
- Refactor memory managers: extract shared ops into internal trait (#609) by @VarshiniGunti in https://github.com/llm4s/llm4s/pull/621
- Add image editing and inpainting support by @VarshiniGunti in https://github.com/llm4s/llm4s/pull/608
- test: add missing ContextWindowResolver and provider fallback coverage by @rorygraves in https://github.com/llm4s/llm4s/pull/707
- Add test coverage for RAG evaluation metrics by @dorodb-web22 in https://github.com/llm4s/llm4s/pull/697
- docs: Improve Scaladoc for public Memory API by @QuidUtsav in https://github.com/llm4s/llm4s/pull/659
- chore: address PR 644 review nits by @shubhdevv in https://github.com/llm4s/llm4s/pull/676
- Replace ToolBuilder.build() exceptions with Result type by @im-vedant in https://github.com/llm4s/llm4s/pull/543
- docs: fix broken GEN AI London 2025 slide link in README by @Atharv-navatre in https://github.com/llm4s/llm4s/pull/642
- docs: Update Google Gemini provider status to Complete by @LuigiGonnella in https://github.com/llm4s/llm4s/pull/692
- docs: Add Java 16+ .jvmopts fix for sbt-dotenv InaccessibleObjectException by @LuigiGonnella in https://github.com/llm4s/llm4s/pull/708
- docs: fix configuration boundary violations in examples by @Ashish-Patnaik in https://github.com/llm4s/llm4s/pull/684
- Extending Support in KG Module for Schema Based Extraction & Multi-Document Graph Building by @dhairya-pandya in https://github.com/llm4s/llm4s/pull/699
- chore: minor code quality improvements from #646 and #644 reviews by @gudiwadasruthi in https://github.com/llm4s/llm4s/pull/673
- Image Generation: migrate OpenAI client to GPT Image models and align API options (#497) by @VarshiniGunti in https://github.com/llm4s/llm4s/pull/610
- test: add unit tests for ModelCapabilities and ModelPricing JSON parsing by @LuigiGonnella in https://github.com/llm4s/llm4s/pull/722
- fix: handle corrupt embeddings gracefully in PostgreSQL vector stores by @Sukuna0007Abhi in https://github.com/llm4s/llm4s/pull/422
- fix(ollama): improve error handling and JSON parsing safety by @Ashish-Patnaik in https://github.com/llm4s/llm4s/pull/592
- feat: Add Reliable Calling framework with retry, circuit breaker, and deadline enforcement(P0) by @Sukuna0007Abhi in https://github.com/llm4s/llm4s/pull/460
- feat: LLMClient Middleware Pipeline by @krrish175-byte in https://github.com/llm4s/llm4s/pull/713
- fix: pass optional user and password to pgvector config by @QuidUtsav in https://github.com/llm4s/llm4s/pull/727
- feat(graphstore): Implement GraphStore trait and embedded storage backends. by @shubhdevv in https://github.com/llm4s/llm4s/pull/710
- feat: implement Stability AI provider by @himanshu2394i in https://github.com/llm4s/llm4s/pull/691
- docs:Added LLM4S + ollama/llama3.2 App,LLM4S + ollama/phi3 App and LLM4S + ollama/codellama App in Ollama -quickstart.md by @Shubha9807 in https://github.com/llm4s/llm4s/pull/705
- feat: make LLMClient extend AutoCloseable for resource safety by @krrish175-byte in https://github.com/llm4s/llm4s/pull/686
- Add monitoring guide for tracing and observability by @arnavsharma990 in https://github.com/llm4s/llm4s/pull/466
- Add agent-level usage and cost accumulation to AgentState by @gudiwadasruthi in https://github.com/llm4s/llm4s/pull/561
- test: add unit tests for ChunkerFactory, DocumentChunk, and SimpleChu… by @doroteaMonaco in https://github.com/llm4s/llm4s/pull/724
- Add missing core documentation pages by @doroteaMonaco in https://github.com/llm4s/llm4s/pull/706
- feat: implement SecretLeakGuardrail and refactor secret patterns for reuse by @basant-gautam in https://github.com/llm4s/llm4s/pull/694
- Fix workspace logging leak by @QuidUtsav in https://github.com/llm4s/llm4s/pull/732
- fix: add safe embedding validation to embedBatch with provider context by @doroteaMonaco in https://github.com/llm4s/llm4s/pull/741
- Docs: fix configuration boundary violations in ollama-quickstart guide by @Ashish-Patnaik in https://github.com/llm4s/llm4s/pull/726
- refactor: remove deprecated throwing APIs and migrate callers to Safe variants by @rorygraves in https://github.com/llm4s/llm4s/pull/745
- samples: remove sys.env and sys.exit from BasicLLMCallingExample (use config-safe patterns) by @VarshiniGunti in https://github.com/llm4s/llm4s/pull/531
- feat: improve provider test coverage via Llm4sHttpClient injection by @rorygraves in https://github.com/llm4s/llm4s/pull/746
- feat: add clock parameter to CircuitBreaker for improved testability by @LuigiGonnella in https://github.com/llm4s/llm4s/pull/748
- docs: enhance documentation for toolapi package by @LuigiGonnella in https://github.com/llm4s/llm4s/pull/736
- feat: implement thread-safe CircuitBreaker tests by @LuigiGonnella in https://github.com/llm4s/llm4s/pull/747
- fix: correct WAV header bugs, fix resource leaks, and improve speech module quality by @rorygraves in https://github.com/llm4s/llm4s/pull/749
- docs: add production deployment guide by @arnavsharma990 in https://github.com/llm4s/llm4s/pull/465
- Improved tracing by @gruggiero in https://github.com/llm4s/llm4s/pull/737
- docs: add usage examples and troubleshooting for PostgresMemoryStore by @VarshiniGunti in https://github.com/llm4s/llm4s/pull/530
New Contributors
- @krrish175-byte made their first contribution in https://github.com/llm4s/llm4s/pull/360
- @arnavsharma990 made their first contribution in https://github.com/llm4s/llm4s/pull/385
- @jayant1701 made their first contribution in https://github.com/llm4s/llm4s/pull/361
- @gudiwadasruthi made their first contribution in https://github.com/llm4s/llm4s/pull/372
- @shubhdevv made their first contribution in https://github.com/llm4s/llm4s/pull/382
- @Sukuna0007Abhi made their first contribution in https://github.com/llm4s/llm4s/pull/418
- @VishalPainjane made their first contribution in https://github.com/llm4s/llm4s/pull/433
- @noelwelsh made their first contribution in https://github.com/llm4s/llm4s/pull/438
- @abhi-battula made their first contribution in https://github.com/llm4s/llm4s/pull/420
- @Piyush-t24 made their first contribution in https://github.com/llm4s/llm4s/pull/462
- @iskushpatel made their first contribution in https://github.com/llm4s/llm4s/pull/439
- @dhairya-pandya made their first contribution in https://github.com/llm4s/llm4s/pull/445
- @mandeepsingh2007 made their first contribution in https://github.com/llm4s/llm4s/pull/436
- @Indrapal-70 made their first contribution in https://github.com/llm4s/llm4s/pull/440
- @sanket-rajput made their first contribution in https://github.com/llm4s/llm4s/pull/541
- @pavanvamsi3 made their first contribution in https://github.com/llm4s/llm4s/pull/584
- @nikunjkumar05 made their first contribution in https://github.com/llm4s/llm4s/pull/562
- @Shubha9807 made their first contribution in https://github.com/llm4s/llm4s/pull/567
- @ayn-aval made their first contribution in https://github.com/llm4s/llm4s/pull/597
- @Ashish-Patnaik made their first contribution in https://github.com/llm4s/llm4s/pull/603
- @Nsanjayboruds made their first contribution in https://github.com/llm4s/llm4s/pull/454
- @Atharv-navatre made their first contribution in https://github.com/llm4s/llm4s/pull/623
- @Abhishekmishra2808 made their first contribution in https://github.com/llm4s/llm4s/pull/542
- @basant-gautam made their first contribution in https://github.com/llm4s/llm4s/pull/622
- @amiralam198 made their first contribution in https://github.com/llm4s/llm4s/pull/647
- @himanshu2394i made their first contribution in https://github.com/llm4s/llm4s/pull/663
- @lovleen-suden made their first contribution in https://github.com/llm4s/llm4s/pull/472
- @VarshiniGunti made their first contribution in https://github.com/llm4s/llm4s/pull/536
- @doroteaMonaco made their first contribution in https://github.com/llm4s/llm4s/pull/703
Full Changelog: https://github.com/llm4s/llm4s/compare/v0.2.9...v0.3.0