Commit Graph
470 Commits
Author SHA1 Message Date
Brandon OxendineandRūdolfs Ošiņš fe37d6a85c Add Stop seeding to the sidebar context menu
`rad unseed` only drops the seeding policy and leaves the repository in
storage, so while `list_repos_summary` listed everything on disk an
unseeded repository never left the sidebar and unseeding looked like it
had done nothing. That call now filters by seeding policy.

The confirmation dialog also offers to delete the files, running the
equivalent of `rad clean` after the unseed.

Co-authored-by: Rūdolfs Ošiņš <rudolfs@osins.org>
2026-09-03 19:21:16 +02:00
Brandon Oxendine f4ab2544ae Keep the patch description open while editing
The description collapses past 300px behind a show more toggle, which
also applied to the editor that replaces it. Half of what was being
written could be cut off, with a control offering to hide more of it.

Editing state moves from the revision component to a bindable prop, so
the patch view that owns the collapse can see it.
2026-09-03 18:40:26 +02:00
Brandon Oxendine 25b7ba86c4 Fix inline node ID in the guide 2026-09-03 18:30:50 +02:00
Brandon Oxendine 9bf912da3d Confirm before hiding the Guide button 2026-09-03 18:26:11 +02:00
Brandon Oxendine 073720a7a6 Reveal Guide dismiss only when it has focus 2026-09-03 18:26:11 +02:00
Rūdolfs Ošiņš 6cb6443cbd Fix patch diff for merge-commit revisions
`list_commits` walked back from the revision head and stopped at the
first commit equal to `base`. A merge commit reaches `base` through one
of its parents, so the walk truncated there and dropped everything the
other parent contributed: a revision whose head merges the target branch
in looked like a single-commit revision.
2026-09-03 18:22:43 +02:00
Rūdolfs OšiņšandBrandon Oxendine e35baf750f Show the branch a patch is opened against
Add it to the patch list byline and the patch page metadata, shown only
when it differs from the default branch. The merge activity item now
names the real target instead of always naming the default branch.

Co-Authored-By: Brandon Oxendine <brandon.oxendine@gmail.com>
2026-09-03 17:19:42 +02:00
Brandon Oxendine 3ac4249651 Match the reaction and edit button sizes
The reaction trigger sits in a block wrapper, so its icon formed a line
box and took the leading with it, leaving the button taller than the
edit one beside it. It also carried its own padding, colour and hover
fill, on top of the ones the action around it already provides.

The action is now a fixed square with its content centred, so its size
no longer depends on the shape of whatever it wraps.
2026-08-27 17:48:32 +02:00
Brandon Oxendine 66d849faaa Let the Guide sidebar button be hidden 2026-08-27 14:38:03 +02:00
Brandon Oxendine 880db5e538 Add Cmd+, shortcut to open Settings
Handle Cmd+, (Ctrl+, on Linux/Windows) in the global keydown handler
to toggle the Settings modal, matching the existing font-size and
Escape shortcuts.
2026-08-25 17:46:21 +02:00
Rūdolfs Ošiņš 6af586303f Move the diff settings into the settings modal
Grouped with the code font in a section of their own, replacing the
per-view popover in the commit, changes and review views.
2026-08-14 17:30:47 +02:00
Rūdolfs Ošiņš 9fed2b0099 Restructure the review view's controls
- Add a sticky row over both columns, its left half the comment
  column's own header
- Move collapse-all and the diff settings into it, out of the topbar
- Switch the column between the review's comments and a file tree
- Toggle between every file in the revision and only the commented ones
- Put the column away entirely, giving the diff the full width
- Keep a pixel under the bar so the first file keeps its top edge
2026-08-14 17:30:47 +02:00
Rūdolfs Ošiņš aa18be10e1 Let the diff's side columns scroll
`max-height: 100%` resolved against an auto-height box, so it was
dropped and the commit list and comment column grew past the port
instead of scrolling inside it.
2026-08-14 17:30:47 +02:00
Rūdolfs Ošiņš 9196e4f726 Share the file-tree status mapping 2026-08-14 17:30:47 +02:00
Rūdolfs Ošiņš 3d4fb16281 Tighten the patch tab bar 2026-08-14 17:30:47 +02:00
Rūdolfs Ošiņš 2c9c382073 Say who resolved a comment
The comment records only that it is resolved, so the name comes from the
resolve operation in the patch's log. Adds the action to timeline
threads too, and shapes the badge like a review's verdict.
2026-08-14 17:30:46 +02:00
Rūdolfs Ošiņš d7d8fcce93 Add a comment stepper to the Changes tab
Walks the comments on the diff in the order they are rendered, merged
into the control that filters which of them are shown.
2026-08-14 17:30:46 +02:00
Rūdolfs Ošiņš ef3a6341e7 Add a comment column to the review view
Lists every line comment in the review beside the files; clicking one
scrolls the diff to it and rings it briefly.
2026-08-14 17:30:46 +02:00
Rūdolfs Ošiņš 01e057b5d6 Show only commented files in the review view
Even out the page's vertical rhythm while there: one gap owns the
spacing between blocks, so it holds whichever blocks a review has.
2026-08-14 17:30:46 +02:00
Rūdolfs Ošiņš 75ebece30d Keep merge and review rows out of author runs 2026-08-14 17:30:46 +02:00
Rūdolfs Ošiņš a7c35340ec Allow deleting discussion comments 2026-08-14 17:30:46 +02:00
Rūdolfs Ošiņš 42a141bd8b Render patch changes with Pierre 2026-08-14 17:30:46 +02:00
Rūdolfs Ošiņš bdd5b49b8d Match the Latest badge to the other badges 2026-08-14 17:30:46 +02:00
Rūdolfs Ošiņš 7a5fa363be Remove unused patch read commands and diff helper
`revision_by_patch_and_id` and `review_by_patch_and_revision_and_id`
were registered as Tauri commands but never invoked: the patch view
resolves a revision or review from the revisions it already holds. Drop
the commands, their registrations and the `revision_by_id` / `review_by_id`
port methods, which had no other callers.

`fileDiffName` in `diffText` has had no callers since it was added.
2026-08-10 12:54:39 +02:00
Brandon Oxendine d19d1f21f1 Add patch deletion 2026-08-10 12:54:39 +02:00
Brandon Oxendine 62e150c29a Rebuild the patch page, review UI, and activity timeline 2026-08-10 12:54:39 +02:00
Brandon Oxendine 030b5fe1f1 Show absolute timestamps on hover 2026-08-10 08:35:49 +02:00
Brandon OxendineandRūdolfs Ošiņš 20f5aa1f1e Add dismissible hints
Co-authored-by: Rūdolfs Ošiņš <rudolfs@osins.org>
2026-08-10 08:35:44 +02:00
Brandon Oxendine a03c413343 Add an author hover card 2026-08-10 08:35:41 +02:00
Rūdolfs Ošiņš 883046269c Add share widget to repo/issue/patch pages
This replaces the open external icon button next to the ID in the
breadcrumbs as well as any copy link button.
2026-07-24 15:48:26 +02:00
Rūdolfs Ošiņš 62e7ae1fcd Upgrade npm dependencies honoring a 7 day cooldown 2026-07-24 09:27:47 +02:00
Brandon Oxendine 3ee2ca9d58 Format All Repos count as a counter badge 2026-07-21 13:43:57 +02:00
hlatimer266andRūdolfs Ošiņš 74aaa6ef14 Use configured explorer and seed for links
explorerUrl() hardcoded both the seed ("iris.radicle.network") and
the explorer base ("https://radicle.network"), so every "Copy Link"
and "Open in …" action ignored the user's config and could point at
a host that does not replicate the repo.

Expose publicExplorer and preferredSeeds on the Config type (both
already carried by radicle::profile::Config) and thread config
through to every explorerUrl() call site. URLs are now built from
the publicExplorer template, filling $host from the first preferred
seed (falling back to rosa only when none are configured), and link
labels show the configured explorer's host.

Co-authored-by: Rūdolfs Ošiņš <rudolfs@osins.org>
2026-07-21 13:26:31 +02:00
Rūdolfs Ošiņš e2da5055ba Integrate pierre's diffs into commit view 2026-07-20 17:40:25 +02:00
Rūdolfs Ošiņš cd7949000e Center no commits placeholder 2026-07-03 11:33:16 +02:00
Rūdolfs Ošiņš b01ba37f7e Apply restored scroll position only once 2026-07-03 11:33:14 +02:00
Rūdolfs Ošiņš f7f4b2b4ba Revalidate restored lists on history navigation 2026-07-03 11:33:09 +02:00
Rūdolfs Ošiņš b4855054e4 Extract shared paginated list state helper 2026-07-03 11:33:08 +02:00
Rūdolfs Ošiņš fe6d2607e1 Keep loading flag set for superseded page loads 2026-07-03 11:32:53 +02:00
Rūdolfs Ošiņš 1ba7369392 Generate copyable patch text via libgit2 2026-07-03 11:32:33 +02:00
Rūdolfs Ošiņš bc1e636fbf Virtualize the file tree's root entries
The file tree was the one list left un-virtualized, so wide directories
mounted every entry and re-rendered all rows on selection. Render
entries through VirtualList like the other lists.
2026-07-03 11:29:40 +02:00
Rūdolfs Ošiņš 5b121b131a Add a diff actions menu with copy and save to disk
Replace the file-header and whole-diff copy buttons with a popover menu
offering "Copy to clipboard" and "Save to disk".
2026-07-03 11:28:57 +02:00
Rūdolfs Ošiņš 737703422e Virtualize the patch-review diff renderer
Route the comment-capable diff through the same single virtualizer as
the commit diff instead of rendering every file and line at once.
2026-07-03 11:28:36 +02:00
Rūdolfs Ošiņš 41535bf32c Add unified-diff copy buttons to the commit diff 2026-07-03 11:28:33 +02:00
Rūdolfs Ošiņš fb35fe369e Virtualize the commit diff view
Render only visible diff rows (via virtua) so commit diffs stay smooth
at any size.
2026-07-03 11:28:12 +02:00
Rūdolfs Ošiņš 32b1d0e272 Restore list scroll position on back/forward
Navigating away from a list and back via history (the sidebar
back/forward buttons) returns to the same scroll position with the
previously loaded pages intact, instead of refetching only the first
page at the top.
2026-07-03 11:27:58 +02:00
Rūdolfs Ošiņš 2bc474b9ce Add VirtualList component backed by virtua
A reusable windowing wrapper that mounts virtua's Virtualizer against
the existing OverlayScrollbars viewport, so the app-wide custom
scrollbar is preserved.
2026-07-03 11:27:33 +02:00
Rūdolfs Ošiņš ac92fc9197 Omit issue body from list responses
The issues list shipped each issue's full root comment (body) over IPC,
but the teaser never renders it, only the detail view does. Make
Issue.body optional and add an Issue::summary constructor that skips it;
list_issues now builds summaries while issue_by_id keeps the full body.
2026-07-03 11:26:16 +02:00
Rūdolfs Ošiņš e1b940b21d Paginate the issues list view
The issues list loaded every issue at once and rendered them all.
Paginate it the same way as commits and patches.
2026-07-03 11:26:03 +02:00
Rūdolfs Ošiņš a07787c2c6 Fix patches list pagination
The patches list paged through everything without scrolling: ScrollArea
fired its load-more check on every `updated` DOM event, and the list's
min-height made the bottom threshold always true, so each appended page
triggered the next. Move it to InfiniteScrollSentinel like the commits
list.
2026-07-03 11:25:35 +02:00