Repository navigation
release: autter 2.3.0 — redesigned onboarding, sign-in, status screens and interactive views - #78
Merged
Merged
Conversation
Add a src/ui module that every interactive command goes through: terminal detection (color depth, Unicode support, width), a theme in the brand teal, the "a." logo header, a step rail, cliclack-based select/multiselect/masked input, a hand-drawn browser sign-in screen, the timed confirm, and the spinner. Color goes through caps().paint(..), so NO_COLOR and --no-color now apply to onboarding and login, which wrote escape codes unconditionally. autter onboard opens with the header and walks one rail of numbered questions. Sign-in shows the code with a live countdown: Enter reopens the browser, c copies the code over OSC 52, Esc continues in local mode, and polling stops when the user steps away. A failed attempt offers retry, paste an access token, or continue locally, replacing the block of fallback instructions. Integrations are a checklist of the detected tools plus git capture, all checked; only checked tools get hooks (install_hooks::run_for_tools), and --yes still installs everything. autter login uses the same screen and recovery. Non-interactive runs print the same information as before. Spinner outcome lines go to stderr on a terminal; piped stdout keeps the exact lines it had. The selector loses its 1-9, Tab and Space shortcuts, and Esc now cancels like Ctrl-C. cargo run --example ui_preview walks the screens with sample data without touching config or the server. Design and decisions are in specs/roadmap/tui-onboarding-design.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bare `autter` at a terminal shows a status card (mode and account, the latest commit's AI share and tool, pending uploads, commands to try) built from local state only; `autter help` still lists every command. `whoami` shows a card, `doctor` runs each check under a spinner that resolves in place, and `install-hooks` lists tools on a rail. Piped and --json output of all of these is unchanged. `autter stats -i` browses the last 200 commits by AI share with a per-commit breakdown by tool and model, computed on a background thread so the list opens at once. `autter blame -i <file>` shows the file with an AI/human/untracked gutter, line details, n/N between AI changes, and the prompt transcript on Enter. Both use ratatui (already a dependency), need a terminal, and fall back to the plain command. Bump to 2.3.0 with the CHANGELOG entry covering this and the onboarding and sign-in redesign; merging to main tags and publishes. Co-Authored-By: Claude Opus 5.5 <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.
Summary
Redesigns autter's terminal UI end to end and releases it as 2.3.0. Design, decisions and as-built notes:
specs/roadmap/tui-onboarding-design.md.Signup
autter onboardopens with the "a." logo and walks one step rail of numbered questions. Each answered question collapses to one line, and the closing summary lists each problem with the command that fixes it.onboardandlogin: code, live countdown, Enter to reopen the browser,cto copy (OSC 52), Esc to continue locally or cancel. Polling stops when the user steps away.--yesstill installs everything.Everyday commands
autterat a terminal shows a status card built from local state only.autter helpstill lists every command.whoamishows a card;doctorshows a spinner per check that resolves in place;install-hookslists tools on a rail.autter stats -i(recent commits by AI share, with breakdown by tool and model) andautter blame -i <file>(AI/human/untracked gutter, line details, prompt transcript on Enter), built on ratatui, which was already a dependency.Foundation
src/ui/module: terminal detection, theme in the brand teal, header, rail, cliclack prompts, sign-in screen, timed confirm, and spinner.NO_COLORand--no-colornow apply to onboarding and login.Compatibility
--jsonand non-interactive output keep the same information.cliclackandconsole(consolewas already in the tree).textwrapraised the existingicu_*crates to 2.4. All of them need Rust 1.88 or older.Release
Cargo.toml,Cargo.lockandnpm/package.jsonto 2.3.0 and adds theCHANGELOG.mdsection. Merging tagsv2.3.0and publishes.Test plan
cargo test --lib: 1999 pass. The 3 failures are environment-only, in untouched code (Windows symlink privilege, PowerShell timing indebug/diagnostics).test_repo.rs:1925) and pass on rerun.upload_holdconnect tests that fail on Windows onmaintoo are fixed separately in Pin the credentials file in integration tests on Windows #77.cargo fmt --checkclean. Clippy finds nothing in changed code; local 1.99 flags pre-existing lints elsewhere that pinned 1.93 does not.cargo run --example ui_previewchecked in the Claude desktop terminal: true color and Unicode detected, header, selector, sign-in screen and multiselect render.stats -i/blame -ion a real repo by a person.🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.