Auto-generate changelog from fragments

This commit is contained in:
Mark Backman
2025-12-04 15:10:20 -05:00
parent 11aa9c9e68
commit 21b2229b2b
25 changed files with 461 additions and 97 deletions

View File

@@ -0,0 +1 @@
- Updated Deepgram logging to include Deepgram request IDs for improved debugging.

1
changelog/3120.added.md Normal file
View File

@@ -0,0 +1 @@
- Added `wait_for_all` argument to the base `LLMService`. When enabled, this ensures all function calls complete before returning results to the LLM (i.e., before running a new inference with those results).

View File

@@ -0,0 +1,7 @@
- NVIDIA Services name changes (all functionality is unchanged):
- `NimLLMService` is now deprecated, use `NvidiaLLMService` instead.
- `RivaSTTService` is now deprecated, use `NvidiaSTTService` instead.
- `RivaTTSService` is now deprecated, use `NvidiaTTSService` instead.
- Use `uv pip install pipecat-ai[nvidia]` instead of
`uv pip install pipecat-ai[riva]`

View File

@@ -0,0 +1,9 @@
- Text Aggregation Improvements:
- **Breaking Change**: `BaseTextAggregator.aggregate()` now returns
`AsyncIterator[Aggregation]` instead of `Optional[Aggregation]`. This
enables the aggregator to return multiple results based on the provided
text.
- Refactored text aggregators to use inheritance: `SkipTagsAggregator` and
`PatternPairAggregator` now inherit from `SimpleTextAggregator`, reusing
the base class's sentence detection logic.

View File

@@ -0,0 +1 @@
- Improved interruption handling to prevent bots from repeating themselves. LLM services that return multiple sentences in a single response (e.g., `GoogleLLMService`) are now split into individual sentences before being sent to TTS. This ensures interruptions occur at sentence boundaries, preventing the bot from repeating content after being interrupted during long responses.

View File

@@ -0,0 +1 @@
- Fixed bug in `PatternPairAggregator` where pattern handlers could be called multiple times for `KEEP` or `AGGREGATE` patterns.

1
changelog/3132.fixed.md Normal file
View File

@@ -0,0 +1 @@
- Fixed sentence aggregation to correctly handle ambiguous punctuation in streaming text, such as currency ("$29.95") and abbreviations ("Mr. Smith").

1
changelog/3153.fixed.md Normal file
View File

@@ -0,0 +1 @@
- Fixed an issue in `AWSTranscribeSTTService` where the `region` arg was always set to `us-east-1` when providing an AWS_REGION env var.

1
changelog/3155.fixed.md Normal file
View File

@@ -0,0 +1 @@
- Fixed an issue in `SarvamTTSService` where the last sentence was not being spoken. Now, audio is flushed when the TTS services receives the `LLMFullResponseEndFrame` or `EndFrame`.

1
changelog/3156.fixed.md Normal file
View File

@@ -0,0 +1 @@
- Fixed an issue in `DeepgramTTSService` where a `TTSStoppedFrame` was incorrectly pushed after a functional call. This caused an issue with the voice-ui-kit's conversational panel rending of the LLM output after a function call.

View File

@@ -0,0 +1 @@
- Updated `AICFilter` to use Quail STT as the default model (`AICModelType.QUAIL_STT`). Quail STT is optimized for human-to-machine interaction (e.g., voice agents, speech-to-text) and operates at a native sample rate of 16 kHz with fixed enhancement parameters.

View File

@@ -0,0 +1 @@
- The `noise_gate_enable` parameter in `AICFilter` is deprecated and no longer has any effect. Noise gating is now handled automatically by the AIC VAD system. Use `AICFilter.create_vad_analyzer()` for VAD functionality instead.

1
changelog/3168.fixed.md Normal file
View File

@@ -0,0 +1 @@
- Fixed an issue where `LLMTextFrame.skip_tts` was being overwritten by LLM services.

View File

@@ -0,0 +1 @@
- If an unexpected exception is caught, or if `FrameProcessor.push_error()` is called with an exception, the file name and line number where the exception occured are now logged.

View File

@@ -0,0 +1 @@
- Updated Smart Turn model weights to v3.1.

View File

@@ -0,0 +1 @@
- Package `pipecat.sync` is deprecated, use `pipecat.utils.sync` instead.

View File

@@ -0,0 +1 @@
- Smart Turn analyzer now uses the full context of the turn rather than just the audio since VAD last triggered.

1
changelog/3186.fixed.md Normal file
View File

@@ -0,0 +1 @@
- Fixed an issue in `ElevenLabsTTSService` where character usage metrics were only reported on the first TTS generation per turn.

126
changelog/README.md Normal file
View File

@@ -0,0 +1,126 @@
# Changelog Fragments
This directory contains changelog fragments that will be compiled into the main `CHANGELOG.md` at release time using [towncrier](https://towncrier.readthedocs.io/).
## For Contributors: Adding a Changelog Entry
When you make a change that should be documented in the changelog, create a new file in this directory.
### Creating a Fragment
Create a file in this directory with this naming pattern:
```
changelog/<PR_number>.<type>.md
```
Choose the appropriate type:
- `added.md` - New features
- `changed.md` - Changes in existing functionality
- `deprecated.md` - Soon-to-be removed features
- `removed.md` - Removed features
- `fixed.md` - Bug fixes
- `security.md` - Security fixes
Write your changelog entry as a Markdown bullet point. Include the `-` at the start:
**Example files:**
`changelog/1234.added.md`:
```markdown
- Added support for Anthropic Claude 3.5 Sonnet with improved streaming performance.
```
`changelog/5678.fixed.md`:
```markdown
- Fixed an issue where audio frames were dropped during high-load scenarios.
```
**For entries with nested bullets:**
`changelog/1234.changed.md`:
```markdown
- Updated service configuration:
- Changed default timeout to 30 seconds
- Added retry logic for failed connections
- Improved error messages
```
### Multiple Changes in One PR
**Different types of changes:** Create separate fragment files for each type:
```
changelog/1234.added.md
changelog/1234.fixed.md
```
**Multiple changes of the same type:** Create numbered fragment files:
```
changelog/1234.changed.md
changelog/1234.changed.2.md
changelog/1234.changed.3.md
```
**Related changes:** Use nested bullets in a single fragment:
```markdown
- Updated service configuration:
- Changed default timeout to 30 seconds
- Added retry logic for failed connections
```
**Rule of thumb:** One logical change per fragment file. If changes are unrelated, use separate files.
### Preview Your Changes
To see what your changelog entry will look like:
```bash
towncrier build --draft --version Unreleased
```
This won't modify any files, just show you a preview.
### When to Skip Changelog Entries
You can skip adding a changelog entry for:
- Documentation-only changes
- Internal refactoring with no user-facing impact
- Test-only changes
- CI/build configuration changes
If you're unsure whether your change needs a changelog entry, ask in your PR!
---
## For Maintainers: Releasing
### Automated Release
The changelog is automatically generated via GitHub Actions. When you're ready to release:
1. **Trigger the workflow** from GitHub Actions:
- Go to Actions → "Generate Changelog for Release"
- Click "Run workflow"
- Enter the version (e.g., `0.0.97`)
- Enter the release date (e.g., `2025-12-04`)
2. **Review the PR** that gets created automatically
3. **Merge the PR** to update the changelog
## References
- [Towncrier Documentation](https://towncrier.readthedocs.io/)
- [Keep a Changelog](https://keepachangelog.com/)
- [Contributing Guide](../CONTRIBUTING.md)

17
changelog/_template.md.j2 Normal file
View File

@@ -0,0 +1,17 @@
{% for section, _ in sections.items() %}
{% if sections[section] %}
{% for category, val in definitions.items() if category in sections[section]%}
### {{ definitions[category]['name'] }}
{% for text, values in sections[section][category].items() %}
{{ text }}
{% endfor %}
{% endfor %}
{% else %}
No significant changes.
{% endif %}
{% endfor %}