feat!: (regen) breaking flux timestamps req-double + close-stream/hints; diarize_model, profanity#66
Merged
Merged
Conversation
- ClientOptions.java: restore deepgram-java-sdk header constants + x-release-please-version markers (gen reverted to wrong SDK name and hardcoded 0.5.1) - ReconnectingWebSocketListener.java: re-apply maxRetries(0) semantics, configurable connectionTimeoutMs, and applyOptionsOverride() hook - .fernignore: restore both original paths (still frozen for next cycle) - examples/listen/LiveStreamingV2.java: drop deleted ListenV2CloseStreamType; ListenV2CloseStream no longer takes a type - remove transient .bak files
Re-prepare for a second regeneration on this branch (no new branch/PR).
Second regeneration on this branch. Notable generator change: ListenV2TurnInfoWordsItem start/end are now required double (was Optional<Float>). - ClientOptions.java: restore deepgram-java-sdk header constants + x-release-please-version markers (gen reverted to wrong SDK name / 0.5.1) - ReconnectingWebSocketListener.java: re-apply maxRetries(0) semantics, configurable connectionTimeoutMs, applyOptionsOverride() hook - .fernignore: restore both original paths - remove transient .bak files
Address PR review findings: - ListenV2CloseStream defined equals() but no hashCode(), violating the Object contract. Add a type-based constant hashCode() consistent with the generated equals(); freeze the file in .fernignore pending an upstream Fern fix. - Add RegenTypesTest covering the 2026-06-15 type-shape changes: optional start/end on ListenV2TurnInfoWordsItem (present + absent), the fixed CloseStream type constant + equals/hashCode contract, and the language_hints list round-trip.
dg-coreylweathers
approved these changes
Jun 26, 2026
dg-coreylweathers
left a comment
Contributor
There was a problem hiding this comment.
Reviewed: CI green across Java 11/17/21, all audit follow-ups resolved (start/end now Optional, ListenV2CloseStream hashCode added + frozen, RegenTypesTest added, description corrected). Clean-break (no compat shims) ratified — pre-1.0, breaks enumerated in the feat! title. Approving for squash-merge.
dg-coreylweathers
pushed a commit
that referenced
this pull request
Jun 26, 2026
🤖 I have created a release *beep* *boop* --- ## [0.6.0](v0.5.0...v0.6.0) (2026-06-26) ### ⚠ BREAKING CHANGES * (regen) breaking flux timestamps req-double + close-stream/hints; diarize_model, profanity ([#66](#66)) ### Features * (regen) breaking flux timestamps req-double + close-stream/hints; diarize_model, profanity ([#66](#66)) ([a1b9e9a](a1b9e9a)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
dg-coreylweathers
added a commit
that referenced
this pull request
Jun 26, 2026
Adds `docs/Migrating-v0.5-to-v0.6.md` documenting the three source-breaking changes shipped by the 2026-06-15 regen (#66), so the 0.6.0 release has a migration guide matching the v0.3→v0.4 precedent (#51). Covers: 1. `ListenV2CloseStream` — `type` removed / `ListenV2CloseStreamType` deleted → `ListenV2CloseStream.builder().build()` 2. `DeepgramListenProviderV2` — `language_hint` → `language_hints` (`Optional<List<String>>`); `DeepgramListenProviderV2LanguageHint` deleted 3. `ListenV2TurnInfoWordsItem` — `getStart()` / `getEnd()` return `double` → `Optional<Double>` Docs-only; `docs/` is frozen in `.fernignore` so it won't be clobbered by regen. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Corey Weathers <coreyweathers@coreys-mbp.mynetworksettings.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
SDK Regeneration — 2026-06-15
Generated from deepgram-docs branch
devin/1781285195-flux-word-timestamps. The Java SDK was last regenerated 2026-05-15 (0.5.0), so this also catches up on doc changes merged since then.ListenV2CloseStream—typeremoved;ListenV2CloseStreamTypedeleted.getType()is now a fixed"CloseStream"constant and the builder no longer accepts.type(...). Migration:ListenV2CloseStream.builder().build(). (docs #946)DeepgramListenProviderV2—language_hint→language_hints.getLanguageHint()→getLanguageHints(); typeOptional<DeepgramListenProviderV2LanguageHint>→Optional<List<String>>(now multi-value);DeepgramListenProviderV2LanguageHintdeleted. (docs #856)On-the-wire payloads are unchanged — these are source/compile-time breaks for SDK users, not protocol breaks.
No compatibility shims. Unlike the Python SDK (which keeps
ListenV2CloseStreamType/DeepgramListenProviderV2LanguageHintas frozen shims), the Java SDK takes the clean break: it is pre-1.0, so source-breaking changes ship in the0.6.0minor bump. Users update call sites once; no hand-maintained shim files or extra.fernignorefreezes are carried.Additive
ListenV2TurnInfoWordsItemgainsstart/endasOptional<Double>(getStart()/getEnd()returnOptional<Double>; builder acceptsDoubleorOptional<Double>, defaulting to empty). This is the primary change the source branch was for. (generation branch; latest regen made these optional rather than required) Note: although the field is additive on the wire, the getter return-type change (double→Optional<Double>) is source-breaking for existing call sites.DiarizeModel(v1/latest),diarize_modelon streaming requests;diarizedeprecated. (docs #943)ListenV2ProfanityFilter+profanity_filterquery param. (docs #912)V1ConnectOptions/V2ConnectOptionsextended — these types already existed onmain; this regen adds fields, it does not introduce the types.Generator plumbing (Fern CLI 5.44.6, docs #940)
DateTimeDeserializernow falls back to space-separated timestamps (e.g."2025-02-15 10:30:00+00:00").headers((RequestOptions) null)overload.*ListRequest/*GetRequestquery-param request types changed@JsonIgnore→@JsonProperty("…")on their fields — a real serialization-annotation change, not whitespace. These objects build query strings rather than JSON bodies, so request behavior is unchanged, but the annotations now match the wire field names.Manual patches reconciled
core/ClientOptions.java— generator reverted to wrong SDK coordinates (com.deepgram.fern:api-sdk/com.deepgram:deepgram-sdk) and hardcoded0.5.1, stripping the release-please markers. Restoredcom.deepgram:deepgram-java-sdkheaders +// x-release-please-versionmarkers at0.5.0(the repo's real version perbuild.gradle/pom.xml/tagv0.5.0; release-please owns the bump).core/ReconnectingWebSocketListener.java— restored in full:maxRetries(0)"connect once, don't retry" (retryCount > maxRetries), configurableconnectionTimeoutMs(was hardcoded 4000ms), and theapplyOptionsOverride(...)hook used byTransportWebSocketFactory.resources/listen/v2/types/ListenV2CloseStream.java— added ahashCode()consistent with the generated constantequals()(Fern emitsequals()but nohashCode(), anObject-contract violation). Newly frozen in.fernignorepending an upstream Fern fix..fernignore—ClientOptionsandReconnectingWebSocketListenerpaths restored to originals;ListenV2CloseStreamadded; no entries dropped.examples/listen/LiveStreamingV2.java— updated to the new close-stream API (droppedListenV2CloseStreamTypeimport +.type(...)call). Caught bycompileExamples..bakfiles deleted.Tests added
RegenTypesTestcovering this regen's type-shape changes:ListenV2TurnInfoWordsItemstart/endoptional round-trip (present and absent),ListenV2CloseStreamfixed"CloseStream"type +equals/hashCodecontract, andDeepgramListenProviderV2language_hintslist round-trip.Verification
./gradlew test compileExamples— BUILD SUCCESSFUL (unit/wire tests incl. the newRegenTypesTest, README snippets, and hand-maintained examples all compile).Release
Pre-1.0, so source-breaking changes ship in a
0.6.0minor bump via thefeat!title; release-please cuts the version and owns the CHANGELOG in its own PR. Source breaks to enumerate in that changelog:ListenV2CloseStream.typeremoved /ListenV2CloseStreamTypedeleted — useListenV2CloseStream.builder().build().DeepgramListenProviderV2:language_hint→language_hints(getLanguageHint()→getLanguageHints(), nowOptional<List<String>>);DeepgramListenProviderV2LanguageHintdeleted.ListenV2TurnInfoWordsItem.getStart()/getEnd()return typedouble→Optional<Double>(source-breaking for existing call sites, though additive on the wire).