Skip to content

feat(client): structured modules + tachyonfx animations - #15

Merged
prasangeet merged 1 commit into
Limbo-corps:mainfrom
Mayu-infinite:feature/client-animations
Jul 26, 2026
Merged

feat(client): structured modules + tachyonfx animations#15
prasangeet merged 1 commit into
Limbo-corps:mainfrom
Mayu-infinite:feature/client-animations

Conversation

@Mayu-infinite

Copy link
Copy Markdown
Collaborator

Summary

Restructures the Rust client into clean, single-responsibility modules and adds
a set of tasteful terminal animations using tachyonfx (pinned to 0.16 for
ratatui 0.29 compatibility). Effects are adapted from junkdog's exabind
tech-demo techniques.

Structure

  • app.rs — pure state + input/IPC logic (the old monolithic draw() is gone).
  • ui.rs (new) — all layout + widget rendering in one place.
  • effects.rs (new) — an Effects type owning every animation, with on_*
    triggers and render_* passes.
  • main.rs — tracks per-frame elapsed time and drives effects at ~30 FPS.

Animations

Effect Where Trigger
Sweep + coalesce intro whole screen on launch
Header "breathing" glow header continuous
Thinking border glow (cyan) transcript border while assistant is busy
Message materialize (coalesce) transcript on new message
Status pulse status bar connect (green) / error (red)
Keystroke flash prompt on each keypress

Adapted from exabind's open_category (layered reveal), key_press (click
flash), and its LED-border idea (scoped to border cells via
CellFilter::Outer).

Verification

  • cargo build — 0 errors
  • cargo fmt --check + cargo clippy — clean
  • cargo test — headless smoke test drives every effect over a real buffer for
    20 frames without panicking (1 passed)

Notes

  • No functional/protocol changes to the IPC layer.
  • Pre-existing IPC scaffolding dead_code warnings are unrelated to this PR.

@prasangeet
prasangeet merged commit 49b2003 into Limbo-corps:main Jul 26, 2026
3 checks passed
@Mayu-infinite
Mayu-infinite deleted the feature/client-animations branch July 26, 2026 14:12
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.

2 participants