Skip to content

feat!: (regen) breaking flux timestamps req-double + close-stream/hints; diarize_model, profanity#66

Merged
dg-coreylweathers merged 11 commits into
mainfrom
gh/sdk-gen-2026-06-15
Jun 26, 2026
Merged

feat!: (regen) breaking flux timestamps req-double + close-stream/hints; diarize_model, profanity#66
dg-coreylweathers merged 11 commits into
mainfrom
gh/sdk-gen-2026-06-15

Conversation

@GregHolmes

@GregHolmes GregHolmes commented Jun 15, 2026

Copy link
Copy Markdown
Collaborator

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.

⚠️ Breaking changes

  1. ListenV2CloseStreamtype removed; ListenV2CloseStreamType deleted. getType() is now a fixed "CloseStream" constant and the builder no longer accepts .type(...). Migration: ListenV2CloseStream.builder().build(). (docs #946)
  2. DeepgramListenProviderV2language_hintlanguage_hints. getLanguageHint()getLanguageHints(); type Optional<DeepgramListenProviderV2LanguageHint>Optional<List<String>> (now multi-value); DeepgramListenProviderV2LanguageHint deleted. (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 / DeepgramListenProviderV2LanguageHint as frozen shims), the Java SDK takes the clean break: it is pre-1.0, so source-breaking changes ship in the 0.6.0 minor bump. Users update call sites once; no hand-maintained shim files or extra .fernignore freezes are carried.

Additive

  • Flux word timestampsListenV2TurnInfoWordsItem gains start/end as Optional<Double> (getStart()/getEnd() return Optional<Double>; builder accepts Double or Optional<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 (doubleOptional<Double>) is source-breaking for existing call sites.
  • DiarizeModel (v1/latest), diarize_model on streaming requests; diarize deprecated. (docs #943)
  • ListenV2ProfanityFilter + profanity_filter query param. (docs #912)
  • V1ConnectOptions / V2ConnectOptions extended — these types already existed on main; this regen adds fields, it does not introduce the types.

Generator plumbing (Fern CLI 5.44.6, docs #940)

  • DateTimeDeserializer now falls back to space-separated timestamps (e.g. "2025-02-15 10:30:00+00:00").
  • WebSocket clients use the headers((RequestOptions) null) overload.
  • A batch of *ListRequest / *GetRequest query-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 hardcoded 0.5.1, stripping the release-please markers. Restored com.deepgram:deepgram-java-sdk headers + // x-release-please-version markers at 0.5.0 (the repo's real version per build.gradle/pom.xml/tag v0.5.0; release-please owns the bump).
  • core/ReconnectingWebSocketListener.java — restored in full: maxRetries(0) "connect once, don't retry" (retryCount > maxRetries), configurable connectionTimeoutMs (was hardcoded 4000ms), and the applyOptionsOverride(...) hook used by TransportWebSocketFactory.
  • resources/listen/v2/types/ListenV2CloseStream.java — added a hashCode() consistent with the generated constant equals() (Fern emits equals() but no hashCode(), an Object-contract violation). Newly frozen in .fernignore pending an upstream Fern fix.
  • .fernignoreClientOptions and ReconnectingWebSocketListener paths restored to originals; ListenV2CloseStream added; no entries dropped.
  • examples/listen/LiveStreamingV2.java — updated to the new close-stream API (dropped ListenV2CloseStreamType import + .type(...) call). Caught by compileExamples.
  • .bak files deleted.

Tests added

  • RegenTypesTest covering this regen's type-shape changes: ListenV2TurnInfoWordsItem start/end optional round-trip (present and absent), ListenV2CloseStream fixed "CloseStream" type + equals/hashCode contract, and DeepgramListenProviderV2 language_hints list round-trip.

Verification

./gradlew test compileExamplesBUILD SUCCESSFUL (unit/wire tests incl. the new RegenTypesTest, README snippets, and hand-maintained examples all compile).

Release

Pre-1.0, so source-breaking changes ship in a 0.6.0 minor bump via the feat! title; release-please cuts the version and owns the CHANGELOG in its own PR. Source breaks to enumerate in that changelog:

  • ListenV2CloseStream.type removed / ListenV2CloseStreamType deleted — use ListenV2CloseStream.builder().build().
  • DeepgramListenProviderV2: language_hintlanguage_hints (getLanguageHint()getLanguageHints(), now Optional<List<String>>); DeepgramListenProviderV2LanguageHint deleted.
  • ListenV2TurnInfoWordsItem.getStart() / getEnd() return type doubleOptional<Double> (source-breaking for existing call sites, though additive on the wire).

GregHolmes and others added 4 commits June 15, 2026 12:40
- 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
@GregHolmes GregHolmes changed the title chore: SDK regeneration 2026-06-15 feat!: (regen) flux word timestamps, diarize_model, profanity_filter; breaking v2 close-stream + language_hints Jun 15, 2026
@GregHolmes GregHolmes changed the title feat!: (regen) flux word timestamps, diarize_model, profanity_filter; breaking v2 close-stream + language_hints feat!: (regen) flux word timestamps, diarize_model, profanity_filter; breaking close-stream/hints Jun 15, 2026
@GregHolmes GregHolmes self-assigned this Jun 15, 2026
GregHolmes and others added 3 commits June 16, 2026 09:27
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
@GregHolmes GregHolmes changed the title feat!: (regen) flux word timestamps, diarize_model, profanity_filter; breaking close-stream/hints feat!: (regen) breaking flux timestamps req-double + close-stream/hints; diarize_model, profanity Jun 16, 2026
fern-api Bot and others added 3 commits June 22, 2026 20:39
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 dg-coreylweathers left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 dg-coreylweathers merged commit a1b9e9a into main Jun 26, 2026
9 checks passed
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants