modelship-ai/modelship is a self-hosted OpenAI-compatible gateway based on Ray Serve that serves inference models jointly across multiple GPUs. The commit 10e440c of November 6, 2026 (merging PR #297) fixes the problem where the audio duration (duration) in speech transcription responses on the whispercpp path was truncated to whole seconds, changing it so that the fractional part is preserved as-is.
There are three modification points. decode_audio in modelship/utils/audio.py returns the number of samples divided by the sample rate as a float instead of casting it to int, the field type of TranscriptionUsageAudio.seconds in modelship/openai/protocol/audio.py changed from int to float, and modelship/infer/whispercpp/whispercpp_infer.py puts that value into usage.seconds as-is. The commit touches a total of 4 files with 29 lines added and 5 lines deleted. The newly added test creates a 3.6-second silent WAV and verifies that the duration of the response and usage.seconds are 3.6. If the integer casting had remained, the value recorded in usage would have been 3 seconds.
However, the confirmed changes are limited to four files: the whispercpp inference path, the audio utility, the OpenAI protocol type, and the test. The commit message contains no version notation or release guidance, and the verification was performed only with a stub model and synthesized silence input, so it does not cover whether the accuracy of actual recognition results or other processing paths are affected. For those who use the OpenAI-compatible API and aggregate audio length via usage, it is clear that this patch is not a trivial type change but a change that alters the aggregated value itself.