Repository navigation
Conversation
…or them A long track that barely moves stacks its crops on top of each other and hides the capture underneath. The path now draws outlines only by default, and the existing toggle is remembered per browser through the user preferences store, whose reads and writes now tolerate storage that throws. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C7Xf6VPbwWtTumhjjF15g8
The panels on a capture's boxes rendered inside the zoomable image, so they grew with the zoom and were clipped by the image's edges. They now render in a portal at their normal size, flip or shift to stay within the viewport, and fade out without catching clicks when their box is panned out of view. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C7Xf6VPbwWtTumhjjF15g8
…ndidate sort Reviewers asked to order candidates by species and then by frames, the way a spreadsheet sorts one column at a time. Clicking a column header now keeps the previous one or two columns as tie-breakers, numbers them in the header, and names the whole order in the order control. The server ranking stays the default until a header is clicked. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C7Xf6VPbwWtTumhjjF15g8
…session panel Reviewers wanted to see what each detection was called before it joined a track, for example to spot a frame first labelled as another species. The panel on a track's box in the session view now lists those names with a count of frames each, such as "Species A ×7, Species B ×2", from the frame labels the occurrence details already carry. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C7Xf6VPbwWtTumhjjF15g8
…its box When a box sits mid-image and the track panel is taller than the room above or below it, the panel now takes the available height and scrolls, so its top and its actions stay on screen. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C7Xf6VPbwWtTumhjjF15g8
…ll capture Reviewers checking a long track wanted to see what happened just before it started or after it ended, and to look at the original photo behind a crop. The track panel in the session view gains first and last frame buttons once its path is shown, and each frame in an occurrence's frame list links to the full capture it was cropped from. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C7Xf6VPbwWtTumhjjF15g8
✅ Deploy Preview for antenna-preview canceled.
|
Contributor
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
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 |
Capture panels are portalled out of the zoomed image, so they no longer inherit the page's stacking order. At z-40 a panel that reached the top of the window painted over the app header. They now sit on layer 1, above the page content and below the header (layer 2) and dialogs. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C7Xf6VPbwWtTumhjjF15g8
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C7Xf6VPbwWtTumhjjF15g8
The tracking UI branch replaced the occurrence page's frame list with a paged frame strip and moved the per-label frame counts to the server. The link from each frame to its full capture, added on this branch, is carried over to the paged frames: the frame payload's capture URL becomes the frame's captureUrl and the frame strip passes it to the caption. The frame-name formatting used by the session panel stays, tested against server-shaped frame names. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C7Xf6VPbwWtTumhjjF15g8
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MFVhTNyVvH3Pf3oygZzRZ8
Collaborator
Author
|
Claude says: The merge order and plan for tracking, agreed with the owner today, are on #1412: #1412 (comment) This PR's place: its review improvements feed the smaller review PRs that follow #1469 (#1431, #1433). |
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
A partner's evaluation of the tracking tools produced a list of interface requests from people reviewing tracks frame by frame. This PR works through the ones that need only frontend changes. The session view is less cluttered: path crops are hidden until asked for, and the track panel no longer scales with the zoom or gets cut off at the image's edge. Reviewers can see the names the classifier gave each frame, jump to a track's first or last frame, open the original photo behind a crop, and sort merge candidates by one column and then another.
This PR is stacked on #1432 and should be reviewed and merged after it.
List of Changes
showPathCropsmoves into the user preferences store (default off). That store'slocalStoragereads and writes are now wrapped in try/catch.hideWhenDetached, viewport collision,max-hfrom--radix-popover-content-available-height). A zoom or pan sends ascrollevent so the panel repositions. A faded panel does not catch clicks.addSortColumnbuilds a list of up to 3 keys, andsortMergeCandidatesapplies them in order.formatFrameNamesover the existingframeNamesfrom occurrence details.getPathEndsintrack-navigation.ts. The frame caption links todetection.capture.url, which the occurrence detail already returns.Selecting several merge candidates and merging them in one action was also requested. #1432 already supports this, and it was confirmed in the browser ("Merge 2 occurrences"), so this PR does not change it.
Detailed Description
How this was tested
tsc --noEmit,yarn lintandyarn testall pass (39 suites, 240 tests). There are new unit tests for the preference store (default value, persistence, storage that throws), the multi-column sort, the frame-name formatter, the path ends and the frame's capture link.The screenshots from the browser check (before and after zoom, default path view, panel with names and first/last buttons, frame capture link, multi-column sort) are held locally and not uploaded, because PR images cannot be attached from the CLI.
Not covered here
🤖 Generated with Claude Code
https://claude.ai/code/session_01C7Xf6VPbwWtTumhjjF15g8