Skip to content

gemini/stall protocol#5

Open
lyonsno wants to merge 8 commits intomainfrom
gemini/stall-protocol
Open

gemini/stall protocol#5
lyonsno wants to merge 8 commits intomainfrom
gemini/stall-protocol

Conversation

@lyonsno
Copy link
Copy Markdown
Owner

@lyonsno lyonsno commented Apr 1, 2026

  • Curate local assistant model menu
  • Tune preview overlay growth geometry
  • Retune preview glow balance
  • Fail open on focused-field OCR miss
  • Log paste verify OCR failures more clearly
  • Add screen context v1: scene capture, source refs, tool calling
  • Fix bare-ref parsing: infer kind from scene ref shape
  • Implement latched recording state
  • Add Mistral audio tokenizer to TTS runtime
  • Make eager eval effective on dev
  • Design tray entry ownership color language
  • Fail fast when Voxtral backend is unavailable
  • Trace TTS playback and restore smoke runtime override
  • Retune overlay spacing on dev
  • Pump glow intensity on dev
  • Make read aloud TTS nonblocking
  • Avoid double-speaking after read aloud
  • Serialize shared TTS playback jobs
  • Loosen Shift+Enter assistant recall
  • Widen Shift+Enter timing tolerance
  • Darken bright-end preview text
  • Queue sentence-batched read aloud playback
  • Stop assistant autoplay from aborting Spoke
  • Harden smoke launcher handoff
  • Interrupt TTS when starting a new recording
  • Ignore shifted typing for idle audio toggle
  • Keep tray shift-holds out of fake latched state
  • Stream long-sentence TTS results as generated
  • Harden assistant completion callbacks
  • Add preview and tray desync breadcrumbs
  • Let the assistant place text in the tray
  • Add registry-backed launch target switching
  • Defer launch-target shutdown to instance guard
  • Document launch-target registry policy
  • Address review lows: tray entry ownership and revisit coverage
  • Clarify launch target registry queue policy
  • Add structured command stream events
  • Spacebar tap in LATCHED mode submits text instead of doing nothing
  • Spacebar tap in LATCHED mode inserts text at cursor, not to assistant
  • Default command URL to localhost:8001 so assistant pathway is always enabled
  • Boost bright-scene overlay contrast
  • Darken bright-end preview text to true black
  • Distinguish mic probe runtime failures from permission denial
  • Add smoke PATH uv fallback regression test
  • Harden smoke launcher uv resolution with PATH fallback
  • Fall back to OMLX_SERVER_API_KEY when SPOKE_COMMAND_API_KEY is not set
  • Document local assistant defaults and API key fallback in CLAUDE.md
  • Source .spoke-smoke-env in launch-dev.sh like launch-smoke.sh does
  • Distinguish initial spacebar release from fresh tap in LATCHED mode
  • Replace overlay border with distance-field ridge effect
  • Fix outer ridge falloff: compute SDF for full window, not just content
  • Fix light-mode compositing: dark fill in both modes, lower cutout threshold
  • Desaturate ridge glow to 10%, sharpen ridge to eliminate plateau
  • Drop ridge opacity to sub-10% and tighten radius
  • Port crash/stability hardening from dev
  • Remove bloom layer — ridge and fill carry the effect alone
  • Remove corner radius from content view — ridge defines the boundary
  • SDF fill mask, stronger text contrast, port ridge to command overlay
  • Fix fill mask coordinate space — use content-rect SDF, not window SDF
  • Move fill to separate SDF-masked layer — kill the plateau
  • Bake fill color into SDF image — no more CALayer mask
  • Add debug layer dump to find plateau source
  • Enhanced debug dump — show view tree with layer properties
  • Debug: deeper view dump + set bg to None
  • Kill NSClipView background + set content bg to None
  • Hairline ridge + fix command overlay fill architecture
  • Restore branch badge menu item and OCR dense-background tests
  • Kill ridge layer, flip fill polarity: light on dark, dark on light
  • Add mlx-lm to TTS optional dependencies
  • Support any mlx_audio TTS model, not just Voxtral
  • Add TTS model picker to menubar
  • Fix command-overlay multi-round display regression
  • Debug: dump wrapper sublayers to find all CALayers
  • Add TTS diagnostic breadcrumbs at every decision point
  • Glow fill profile: peak at boundary, gentle interior wash
  • Lorentzian fill profile — always curving, never flat
  • Suppress Enter key while command overlay is visible
  • Stretched exponential fill — sharp cusp, heavy tails
  • Heavier tails + wider feather window
  • Asymmetric fill: 70% interior floor, zero exterior
  • Dismiss command overlay instantly on spacebar press
  • Fix recall after instant overlay dismiss
  • Fix brightness-dependent color update + white text on light backgrounds
  • Fix launch-target env leaking: clear inherited SPOKE_VENV_PYTHON and PYTHONPATH
  • Transpose amplitude response: fill breathes, text anchored
  • Tune fill ranges, ease-in decay, text alpha 0.92
  • Hone SDF tuning: steeper falloff, lower floor, wider feather
  • Add TTS cancel() stack trace and playback chunk breadcrumbs
  • Fix text color flip + lower interior floor to 0.45
  • Knife-edge cusp, fix text color contrast, darker light-bg fill
  • Recall last response on empty spacebar tap
  • Ease-out text snap + darker light-bg fill + raise interior floor
  • Add diagnostic logging for command overlay state transitions
  • Text RMS waiver, smoother decay, 50% more glow + fill intensity
  • Port SDF fill to command overlay, 3x screen glow, fix cropping
  • Light-bg rest opacity 50% more transparent
  • Fix dismiss/recall toggle using authoritative flag
  • Use blocking speak() in read_aloud tool so multi-call turns play sequentially
  • Phase-shift fill ahead of glow, brightness-scaled intensity
  • DEBUG: disable glow/vignette to isolate fill
  • 4x light-bg fill intensity
  • Raise interior floor to 0.88 — image nearly opaque throughout
  • Revert preview fill to pre-divergence, re-enable screen edge glow
  • DEBUG: disable glow again to verify fill breathing on light bg
  • 3x screen edge glow pass alphas, steeper core, re-enable glow
  • Fix dismiss→recall stutter on single spacebar tap
  • Boost subtractive vignette ~2.5x, revert additive glow to original
  • Add dismiss/recall cycle tests and fix test fixture
  • Clear cancelled flag on speak() entry so tool calls aren't pre-cancelled
  • Match fill color to edge glow, 2x fill intensity, slower decay, faster vignette attack
  • Tell the assistant to do what the user says without being smart about it
  • Log model request details: round, message count, tools, payload size
  • 4x sharper vignette edge + more sensitive/slower preview fill
  • Don't cancel TTS on hold-start so multi-tool-call playback survives
  • Route Enter+quick-tap through hold_end for recall
  • Add GPU lock acquisition breadcrumbs to diagnose playback stall
  • 2x vignette intensity + wider radius + match dark-bg fill timing
  • Fix pegged fill: raise saturation threshold, faster decay
  • Ease vignette back ~35% for movement legibility
  • Restore Voxtral model pre-import so mlx_audio.tts.load() can find it
  • Revert vignette intensity, relax exponents, fix corner distortion bug
  • Remove last tts.cancel() from overlay dismiss path
  • 2x preview fill on light backgrounds — more material
  • Add command overlay dismiss/recall test coverage
  • Save command history even when generator is interrupted by stale token
  • Accumulate response from deltas so history saves on early break
  • Raise SDF interior floor 0.55 -> 0.775 — halfway to full
  • Move overlay flag writes from event tap to main thread
  • Brightness-dependent SDF floor + fill saturates near-full
  • Fix dismiss flicker: preserve _just_dismissed across hold boundary
  • Suppress hold side effects during overlay dismiss tap
  • Remove debug view-dump from overlay init
  • Fix resize flicker: rebuild text storage in one shot on commandComplete_
  • Little Wing: Harmonic merge of cc/dismiss-flicker-0331 into ridge-slice. Preserved ridged multifractal and warped tendrils.
  • Implement 4x4 grid brightness sampling and local SDF ridge modulation
  • Add Gemini CLI instructions policy and worktree bootstrap rule
  • docs: codify Integration Policy (Stall Protocol)

lyonsno and others added 8 commits March 31, 2026 10:02
Handle tool_call events in streaming loops and accumulate assistant
content across all rounds. Added a 'tool…' visual progress indicator
to the overlay and ensured final completion handles the concatenated
response. Added TestToolState suite for verification.

Co-Authored-By: Gemini CLI 1.0 (abbdb98d-5a95-4e39-bd74-e22fd063398e) <noreply@google.com>
set_response_text was calling set_utterance() then append_token(), which
triggered _update_layout twice: once with only the utterance text (shrinking
the window back to minimum height) then again with the full response (growing
it back). On every commandComplete_ the window visibly flickered between sizes.

Rebuild the utterance + separator + response attributed string in one shot
so _update_layout is called exactly once. Also adds NSMutableAttributedString,
NSShadow, and the string attribute name constants to the fake AppKit in
conftest.py so the single-layout contract can be tested without GUI runtime.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ce. Preserved ridged multifractal and warped tendrils.
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 329dbc5795

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

self.performSelectorOnMainThread_withObject_waitUntilDone_(
"commandToken:", {"token": token, "text": "", "tool_call": event.tool_call}, False
)
"commandToolStart:", {"token": token}, False
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P0 Badge Fix invalid indentation in tool-call event handling

This block has a stray, over-indented statement ("commandToolStart:") that makes spoke/__main__.py fail to parse with IndentationError (line 1622), so any attempt to start the app (python -m spoke) or import this module crashes before runtime logic executes. Because this is a syntax error in the main entrypoint, it is a release-blocking regression rather than a conditional runtime edge case.

Useful? React with 👍 / 👎.

@lyonsno lyonsno force-pushed the main branch 2 times, most recently from 0b03228 to c5d587d Compare April 4, 2026 23:56
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.

1 participant