Tags: JiwonKKang/loupe
Tags
refactor: remove word-diff emphasis & unit summary bars (v0.4.1) - The word-level highlight inside modified lines made changed code HARDER to read — removed. Shiki syntax colors and the line-level add/del backgrounds stay. - The per-card AI change-unit summary bars read as clutter — removed from the review screen, and the background units stream is no longer launched (saves the AI calls). The engine's stream_change_units stays dormant for a possible revival; the card-header one-line summary (cluster label stage) is unchanged. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
feat: streaming unit summaries, thread UX fixes & scroll anchoring (v… …0.4.0) - Change-unit summaries now STREAM: they compute in parallel with the cluster pipeline and land per card over a `units://card` event, so the review screen opens as soon as clusters are ready (~10s) instead of waiting for the slowest unit call (~30s). Slowest (Sonnet) cards start first; a new analysis aborts the previous stream. - Thread UX: expanded threads stay expanded across card navigation until manually collapsed; taller-than-viewport threads reveal once (no more scroll snapping while they grow); collapsing a long thread reclaims its space immediately (shared ResizeObserver re-measures in-place row shrinks). - Scroll anchoring: when a row above the viewport changes height (an AI answer landing in an open thread up top), scrollTop compensates in the same frame — the code you're reading never visibly moves. - Stale-thread pruning: threads are stamped with a content hash of their card's diff; when the branch head moves and re-analysis changes a card, its saved threads are dropped while untouched cards' threads survive. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
feat: file-level cards, AI change-unit summaries, full-file diff & fa… …ster pipeline (v0.3.0) - Analysis pipeline (cluster/order/label) now runs on Haiku via the direct HTTP Messages API — ~10x faster than routing through the claude CLI. - Cards are file-level (one per changed file), still ordered by cross-file data flow. - Each card's diff is split into AI change-unit summaries (title / why / tag). Grouping runs on Sonnet via the CLI for multi-symbol cards (reliable "these N edits are one refactor" merging) and on fast Haiku for single-symbol cards, so loading stays quick. - Cards now carry the WHOLE file with unchanged regions folded — expand any to read around a change. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
feat: Kotlin symbol-level review + Shiki highlighting & word-diff (v0… ….2.0) #1 Kotlin (.kt) symbol-level support - tree-sitter-kotlin-ng + a hand-written tags query (the crate ships none): class/interface/object/data/sealed → type cards; top-level/method/extension funs → function cards (properties excluded). Relations mirror Java's set — calls, type usages (incl. constructor DI), and implements/extends covering bare interfaces, class-extends `: Base()`, and `by`-delegation. - Verified on 439 real atcha .kt files: 0% parse error, symbol-level throughout. #2 diff reading surface - Replaced the Go-only toy highlighter with Shiki (real TextMate highlighting for every PR file type), themed from the existing --syn-* design tokens. - Word-level diff: a modified line now emphasizes exactly the tokens that changed, with a noise guard for full-line rewrites. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
v0.1.20 — GitHub CLI setup in onboarding & settings; fix token Copy - Onboarding and Settings now show GitHub CLI (gh) status — installed / needs login / connected — with one-click `brew install gh` and `gh auth login` commands. gh is what Loupe delegates PR approve, PR comment and `loupe <pr-url>` to; it's optional (the core review needs only the Claude token) so it never blocks onboarding. - Fix: the onboarding "Copy" button for `claude setup-token` flashed "Copied" but never actually wrote to the clipboard — it does now. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
v0.1.19 — review a GitHub PR by URL from the CLI `loupe https://github.com/owner/repo/pull/123` now clones the repo into a reusable tmp dir, checks out the PR head, and reviews base...head — so you can review any PR without cloning it yourself. Re-running the same PR reuses + updates the clone (fast re-review, threads preserved). Requires the GitHub CLI (`gh`, authenticated); the local-repo form (`loupe [path] [base] [target]`) is unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
v0.1.18 — PR line comments, always-on Approve, cancel an analysis PR (all delegated to your gh CLI; nothing posts without an explicit click) - Approve is now always offered on the summary screen whenever the reviewed branch has an OPEN PR — not just on an all-pass review (a note flags any remaining un-passed cards / open threads, but you can still approve). - A thread gains a "PR 댓글" button when the reviewed branch has an OPEN PR: it posts the composer text as a line-anchored review comment on that file:line of the PR (gh api). The button is hidden entirely when there's no open PR. Loading - "분석 취소" button on the analysis screen — abandon a mis-started review and go back to project picking (finished cards stay cached, so re-opening is fast). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
v0.1.17 — smoother sidebar + thread animations (4K) The sidebar expand and thread open/close felt laggy on a 4K 60Hz display because they animate layout (the spine's width pushes the stage, re-centering the heavily-shadowed card) and repaint a large area each frame. - Sidebar width animation snappier (380→240ms) — fewer reflow frames. - `contain: layout` on the card area and `contain: layout paint` on the spine so a width change doesn't re-evaluate the diff virtualization across the whole document or leak the spine's reflow out (push behavior + the shadow are preserved). - Thread open snappier (380→220ms) and the open thread + collapsed badge get `will-change: transform/opacity`, so their enter/exit composite on the GPU instead of repainting the card shadow on the main thread. (The remaining floor — animating width and reflowing rows below a thread — is main-thread layout by nature; these changes bound and composite what they can.) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
v0.1.16 — smooth code scroll, drag any screen, dropdown + fixes Performance - Code scrolling no longer stutters: the per-row Half renderer was defined inside the component, so React remounted every visible row on each scroll frame. It's now invoked as a plain function (inlined), so rows reconcile instead of remount. Window / menus - Every screen (analyze, summary, settings, onboarding, …) has a top drag strip, so you can move the window from any of them — not just the review screen. - The model dropdown in a thread opens downward (below the trigger). - Hovering the bottom-left screen switcher no longer blanks the app (a stray drag strip had landed in its scope, throwing a ReferenceError). Review - The "+" comment affordance shows on other lines even while a thread is open, so you can start a second thread. - ⌘-click open-in-editor jumps to the line you actually clicked (the cell's own new-file number) instead of the row's after-side line — and a 0 gutter (a top-of-file deletion) no longer silently no-ops. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
v0.1.15 — hover feedback inside the project menu The expanded project menu's items gave no hover response, so you couldn't tell what you were pointing at. Recent-project rows and Browse… now highlight on hover (surface tint + brighter text), and the Base/Target dropdown fields gain a stronger border + subtle fill on hover. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
PreviousNext