feat(ui): add rain session logger and selector log panel#14
Conversation
Preserve rain selector-to-CLI flow while adding structured session logging, an in-TUI status/log surface, and text export so operators and agents get consistent audit trails without forcing TUI-only execution. Made-with: Cursor
|
Warning Rate limit exceeded
Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 59 minutes and 57 seconds. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (8)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
internal/sessionlogJSONL logger with git-fire-compatible structured event fields and subscribe hooks for UI projectionrunRainTUIStreamto initialize session logger, pass it into selector, and preserve existing TUI-then-CLI handoff torunRainOnReposShift+L), and text export (e), plus README docs for new controlsTest plan
go test ./internal/sessionlog -count=1go test ./internal/ui -run 'StatusGlyph|RenderLogExport|ToggleLogPanel|RepoSelector' -count=1go test ./cmd -run 'runRainTUIStream|RunRain|Root' -count=1go test ./...Made with Cursor
Note
Medium Risk
Adds new session log file writing and expands TUI behavior/state (status strip, log panel, export), which could affect interactive runs and filesystem permissions/paths, but does not change core git fetch/sync logic.
Overview
Introduces a new
internal/sessionlogJSONL session logger (git-fire-compatibleLogEntryshape) that writes start/end markers, supports local subscribers, and sanitizes error text.Wires the
--rainstreaming TUI (runRainTUIStream→RunRepoSelectorStream) to create/close a session logger and record scan/progress/completion events, and extends the selector UI with a status strip plus a toggleable in-TUI log panel (Shift+L) and log export to~/.cache/git-rain/exports/(e). README docs and unit tests are added for the new logging/export behavior.Reviewed by Cursor Bugbot for commit d43d0b6. Bugbot is set up for automated code reviews on this repo. Configure here.