Skip to content

Tags: JiwonKKang/loupe

Tags

v0.4.1

Toggle v0.4.1's commit message

Verified

This commit was signed with the committer’s verified signature.
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>

v0.4.0

Toggle v0.4.0's commit message

Verified

This commit was signed with the committer’s verified signature.
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>

v0.3.0

Toggle v0.3.0's commit message

Verified

This commit was signed with the committer’s verified signature.
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>

v0.2.0

Toggle v0.2.0's commit message

Verified

This commit was signed with the committer’s verified signature.
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

Toggle v0.1.20's commit message

Verified

This commit was signed with the committer’s verified signature.
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

Toggle v0.1.19's commit message

Verified

This commit was signed with the committer’s verified signature.
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

Toggle v0.1.18's commit message

Verified

This commit was signed with the committer’s verified signature.
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

Toggle v0.1.17's commit message

Verified

This commit was signed with the committer’s verified signature.
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

Toggle v0.1.16's commit message

Verified

This commit was signed with the committer’s verified signature.
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

Toggle v0.1.15's commit message

Verified

This commit was signed with the committer’s verified signature.
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>