voice-vibecoder 2.11.0__tar.gz → 2.12.0__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.11.0 → voice_vibecoder-2.12.0}/CHANGELOG.md +8 -0
  2. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/PKG-INFO +1 -1
  3. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/pyproject.toml +1 -1
  4. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/src/voice_vibecoder/__init__.py +1 -1
  5. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/src/voice_vibecoder/code_providers/openclaw.py +7 -1
  6. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/.github/workflows/ci.yml +0 -0
  7. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/.github/workflows/release.yml +0 -0
  8. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/.gitignore +0 -0
  9. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/LICENSE +0 -0
  10. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/README.md +0 -0
  11. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/app.py +0 -0
  12. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/index.html +0 -0
  13. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/src/voice_vibecoder/app_config.py +0 -0
  14. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/src/voice_vibecoder/audio.py +0 -0
  15. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/src/voice_vibecoder/cli_serve.py +0 -0
  16. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/src/voice_vibecoder/code_providers/__init__.py +0 -0
  17. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/src/voice_vibecoder/code_providers/claude.py +0 -0
  18. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/src/voice_vibecoder/code_providers/cursor.py +0 -0
  19. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/src/voice_vibecoder/code_providers/registry.py +0 -0
  20. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/src/voice_vibecoder/config.py +0 -0
  21. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/src/voice_vibecoder/instances.py +0 -0
  22. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/src/voice_vibecoder/server.py +0 -0
  23. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/src/voice_vibecoder/session.py +0 -0
  24. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/src/voice_vibecoder/tools/__init__.py +0 -0
  25. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/src/voice_vibecoder/tools/agent_task.py +0 -0
  26. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/src/voice_vibecoder/tools/definitions.py +0 -0
  27. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/src/voice_vibecoder/tools/dispatch.py +0 -0
  28. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/src/voice_vibecoder/tools/file_tree.py +0 -0
  29. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/src/voice_vibecoder/tools/handlers.py +0 -0
  30. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/src/voice_vibecoder/ui/__init__.py +0 -0
  31. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/src/voice_vibecoder/ui/callbacks.py +0 -0
  32. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/src/voice_vibecoder/ui/diff_view.py +0 -0
  33. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/src/voice_vibecoder/ui/help_modal.py +0 -0
  34. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/src/voice_vibecoder/ui/panels.py +0 -0
  35. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/src/voice_vibecoder/ui/screen.py +0 -0
  36. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/src/voice_vibecoder/ui/setup.py +0 -0
  37. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/src/voice_vibecoder/ui/state.py +0 -0
  38. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/src/voice_vibecoder/ui/styles.py +0 -0
  39. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/src/voice_vibecoder/ui/update_modal.py +0 -0
  40. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/src/voice_vibecoder/ui/wizard.py +0 -0
  41. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/src/voice_vibecoder/voice_providers/__init__.py +0 -0
  42. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/src/voice_vibecoder/voice_providers/openai.py +0 -0
  43. {voice_vibecoder-2.11.0 → voice_vibecoder-2.12.0}/src/voice_vibecoder/worktrees.py +0 -0
@@ -2,6 +2,14 @@
2
2
 
3
3
  <!-- version list -->
4
4
 
5
+ ## v2.12.0 (2026-02-21)
6
+
7
+ ### Features
8
+
9
+ - Show thinking indicator on lifecycle start
10
+ ([`b9d9985`](https://github.com/snokam/voice-vibecoder/commit/b9d99850b47006606d5a3210898100a8a861a916))
11
+
12
+
5
13
  ## v2.11.0 (2026-02-21)
6
14
 
7
15
  ### Features
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: voice-vibecoder
3
- Version: 2.11.0
3
+ Version: 2.12.0
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.11.0"
7
+ version = "2.12.0"
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.11.0"
6
+ __version__ = "2.12.0"
7
7
 
8
8
  from voice_vibecoder.app_config import VoiceConfig
9
9
  from voice_vibecoder.ui.screen import VoiceCodingScreen
@@ -254,7 +254,13 @@ class OpenClawRunner:
254
254
  stream = payload.get("stream")
255
255
  agent_data = payload.get("data", {})
256
256
 
257
- if stream == "assistant" and "text" in agent_data:
257
+ if stream == "lifecycle":
258
+ phase = agent_data.get("phase")
259
+ if phase == "start" and on_output:
260
+ on_output(AgentOutput(category="text", content="🤔 Thinking...
261
+ "))
262
+
263
+ elif stream == "assistant" and "text" in agent_data:
258
264
  text = agent_data["text"]
259
265
  if text:
260
266
  result_text = text