Repository navigation
feat(agent): breathe the working dot in 16 eased steps instead of 4 colours - #673
Merged
Merged
Conversation
…olours The working dot walked a 6-phase ping-pong over the four spice-heat stops at 4 Hz, so each frame jumped up to 51 in a channel and the dot read as cycling rather than breathing. It now breathes along the same pepper red → ember → orange → spark ramp on a cosine, 16 frames to a breath at 10 Hz (1.6 s, about the old cycle's length). No frame moves a channel more than 30, and the steps shrink toward either end so the turns ease instead of bouncing. The maths is integer and tabulated (`BREATH_COSINE`), so it stays `const` and the draw stays pure. A 256-colour terminal used to alternate two ANSI hues, a blink; it now gets the same RGB breath, which the frame's downgrade quantizes into a stepped warm ramp. Mono is unchanged. The animation still runs only while an agent works, so an idle pane set draws nothing. Co-Authored-By: Claude <noreply@anthropic.com>
DerekMarshall
added a commit
that referenced
this pull request
Oct 15, 2026
Sets the version to `2.2.0-rc.3`, made with `make release-prep VERSION=2.2.0-rc.3`. Only `Cargo.toml` and `Cargo.lock` change. As with the earlier rcs, an rc gets no CHANGELOG section, because the 2.2.0 section covers the whole cycle. ## Why another rc Five changes merged after the rc.2 release run (`v2.2.0-rc.2` was published 2026-10-14 07:40 UTC). Cutting 2.2.0 from `main` now would ship them without a soak: | PR | Change | Why it should soak | |---|---|---| | #670 / #671 | fix(agent-status): a `waiting` reported mid-turn is held until the turn ends | Changes how the activity dot ranks its sources against each other | | #672 | fix(codex): a visible async question earns the red attention dot | Matches what codex draws on screen, verified against codex 0.162.1's default UI | | #673 | feat(agent): the working dot breathes in 16 eased steps at 10 Hz | Visual. A working agent's dot now redraws at 10 Hz instead of 4 Hz. Idle is unchanged. | | #674 | feat(agent-hud): native strip for Antigravity (agy) tabs | A new reader over agy's transcript format | Every open bug issue predates July and none is a regression, so rc.3 is `main` as it stands. `main` stays at `2.2.0-rc.3` through the soak, which runs into next week. **After merge, on `main`:** 1. `make release-tag VERSION=2.2.0-rc.3` 2. Push the tag. `release.yml` verifies the archives reproduce, publishes a GitHub pre-release, and dispatches the Homebrew tap and apt. The crates job publishes `spyc 2.2.0-rc.3` and skips `spyc-vt-sys 0.1.0`, which is unchanged. **Checks:** `make check` passes (the pre-commit gate), and the binary reports `spyc 2.2.0-rc.3 (<sha>)`. Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The working dot's colour breath, smoothed. Before, it walked a 6-phase ping-pong over the four spice-heat stops at 4 Hz, so each frame jumped up to 51 in a channel, and the dot read as cycling rather than breathing.
Change
#E03222 → #E23720 → #E9471B → #F35E13 → #FA7C12 → #FF9815 → #FFAF26 → #FFBF32 → #FFC436constand pure. The maths is integer, with the cosine tabulated inBREATH_COSINE, sospicy_pulse_colorstaysconstand the draw stays pure.Red/LightYellow, a blink. They now get the same RGB breath, which the frame'sdowngrade_bufferquantizes into a stepped warm ramp.AgentAnimis still armed only while an agent works.Cost: 10 redraws a second instead of 4 while any agent works. Only the dot's cell changes, so the terminal sees a few bytes per frame.
Tests
Five new, in
render::chrome:Five mutations, each failing its test:
make check-ci:=== GATE: PASS ===, 3,197 library tests.Generated with Claude Code