voice-vibecoder 2.10.1__tar.gz → 2.10.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/CHANGELOG.md +8 -0
  2. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/PKG-INFO +1 -1
  3. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/pyproject.toml +1 -1
  4. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/src/voice_vibecoder/__init__.py +1 -1
  5. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/src/voice_vibecoder/code_providers/openclaw.py +7 -4
  6. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/.github/workflows/ci.yml +0 -0
  7. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/.github/workflows/release.yml +0 -0
  8. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/.gitignore +0 -0
  9. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/LICENSE +0 -0
  10. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/README.md +0 -0
  11. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/app.py +0 -0
  12. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/index.html +0 -0
  13. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/src/voice_vibecoder/app_config.py +0 -0
  14. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/src/voice_vibecoder/audio.py +0 -0
  15. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/src/voice_vibecoder/cli_serve.py +0 -0
  16. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/src/voice_vibecoder/code_providers/__init__.py +0 -0
  17. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/src/voice_vibecoder/code_providers/claude.py +0 -0
  18. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/src/voice_vibecoder/code_providers/cursor.py +0 -0
  19. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/src/voice_vibecoder/code_providers/registry.py +0 -0
  20. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/src/voice_vibecoder/config.py +0 -0
  21. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/src/voice_vibecoder/instances.py +0 -0
  22. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/src/voice_vibecoder/server.py +0 -0
  23. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/src/voice_vibecoder/session.py +0 -0
  24. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/src/voice_vibecoder/tools/__init__.py +0 -0
  25. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/src/voice_vibecoder/tools/agent_task.py +0 -0
  26. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/src/voice_vibecoder/tools/definitions.py +0 -0
  27. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/src/voice_vibecoder/tools/dispatch.py +0 -0
  28. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/src/voice_vibecoder/tools/file_tree.py +0 -0
  29. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/src/voice_vibecoder/tools/handlers.py +0 -0
  30. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/src/voice_vibecoder/ui/__init__.py +0 -0
  31. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/src/voice_vibecoder/ui/callbacks.py +0 -0
  32. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/src/voice_vibecoder/ui/diff_view.py +0 -0
  33. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/src/voice_vibecoder/ui/help_modal.py +0 -0
  34. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/src/voice_vibecoder/ui/panels.py +0 -0
  35. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/src/voice_vibecoder/ui/screen.py +0 -0
  36. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/src/voice_vibecoder/ui/setup.py +0 -0
  37. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/src/voice_vibecoder/ui/state.py +0 -0
  38. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/src/voice_vibecoder/ui/styles.py +0 -0
  39. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/src/voice_vibecoder/ui/update_modal.py +0 -0
  40. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/src/voice_vibecoder/ui/wizard.py +0 -0
  41. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/src/voice_vibecoder/voice_providers/__init__.py +0 -0
  42. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/src/voice_vibecoder/voice_providers/openai.py +0 -0
  43. {voice_vibecoder-2.10.1 → voice_vibecoder-2.10.2}/src/voice_vibecoder/worktrees.py +0 -0
@@ -2,6 +2,14 @@
2
2
 
3
3
  <!-- version list -->
4
4
 
5
+ ## v2.10.2 (2026-02-21)
6
+
7
+ ### Bug Fixes
8
+
9
+ - Improve text buffering - flush on newlines not punctuation
10
+ ([`b1f13bf`](https://github.com/snokam/voice-vibecoder/commit/b1f13bf68ccfa60b591f4e9e21d74c777c4f6957))
11
+
12
+
5
13
  ## v2.10.1 (2026-02-21)
6
14
 
7
15
  ### Bug Fixes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: voice-vibecoder
3
- Version: 2.10.1
3
+ Version: 2.10.2
4
4
  Summary: Olaf The Vibecoder — a voice-controlled coding assistant using OpenAI Realtime API + Claude Code
5
5
  Project-URL: Homepage, https://github.com/snokam/voice-vibecoder
6
6
  Project-URL: Repository, https://github.com/snokam/voice-vibecoder
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "voice-vibecoder"
7
- version = "2.10.1"
7
+ version = "2.10.2"
8
8
  description = "Olaf The Vibecoder — a voice-controlled coding assistant using OpenAI Realtime API + Claude Code"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -3,7 +3,7 @@
3
3
  A voice-controlled coding assistant using OpenAI Realtime API + Claude Code.
4
4
  """
5
5
 
6
- __version__ = "2.10.1"
6
+ __version__ = "2.10.2"
7
7
 
8
8
  from voice_vibecoder.app_config import VoiceConfig
9
9
  from voice_vibecoder.ui.screen import VoiceCodingScreen
@@ -272,12 +272,15 @@ class OpenClawRunner:
272
272
  last_text = text
273
273
  result_text = text
274
274
 
275
- # Flush on sentence boundaries or every ~500ms worth of text
275
+ # Flush on newlines or when buffer is large enough
276
276
  now = time.time()
277
+ # Only flush on actual line breaks or large buffers
278
+ # Avoid flushing on . ! ? as they appear mid-text
277
279
  should_flush = (
278
- delta.endswith((".", "!", "?", "\n", ":", "|"))
279
- or len(text_buffer) > 80
280
- or (now - last_flush_time) > 0.5
280
+ "\n" in delta
281
+ or delta.endswith("|") # Table row end
282
+ or len(text_buffer) > 120
283
+ or (now - last_flush_time) > 1.0
281
284
  )
282
285
  if should_flush:
283
286
  await flush_buffer()