Commit Graph
459 Commits
Author SHA1 Message Date
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
Rūdolfs Ošiņš b99d656c81 Remove dead issue/patch list from detail views
The second column that displayed the sibling list was removed long ago,
so the issue/patch lists loaded into the detail views are never
rendered.
2026-07-03 11:25:16 +02:00
Rūdolfs Ošiņš f922e9415c Show "Up to date" only after a successful check
The settings footer showed "Up to date" whenever no new version was
known — including when the update checker was disabled or the version
fetch had silently failed. Derive an explicit upToDate state that is
only true when a check succeeded and found no newer version, so a
failed or disabled check no longer claims the app is current.
2026-06-10 16:03:38 +02:00
Rūdolfs Ošiņš b363fdb297 Bypass HTTP cache when checking for new versions
The version check fetched latest.json without any cache directive.
The server sends no Cache-Control header, so WebKit applied heuristic
caching (RFC 9111 4.2.2): the response is considered fresh for 10% of
the time since Last-Modified, which can be hours to days between
releases. Apps checking for updates right after a release were served
a stale latest.json from disk cache and concluded they were up to
date. Dev builds use a separate cache, which is why the bug only
appeared in release builds.

Fetch with cache: "no-store" so every check hits the server.
2026-06-10 16:02:38 +02:00
Rūdolfs Ošiņš a6d7d0c1e0 Cache job listings per commit 2026-06-04 18:04:33 +02:00
Rūdolfs Ošiņš a3b66593a5 Log invoke timing in dev builds 2026-06-04 18:04:33 +02:00
Rūdolfs Ošiņš 27f860fd77 Cache repo summaries for the sidebar 2026-06-04 18:04:33 +02:00
Rūdolfs Ošiņš efea7f1ab2 Add peer selector to repo source browsing
Introduce a peer/branch/tag selector in the repository source and commits
views, letting you browse the canonical refs or any peer's namespace.
2026-06-04 17:19:31 +02:00
Rūdolfs Ošiņš 50bd93e550 Dedupe job runs by runId to fix duplicate keys
The same run can appear under multiple job COBs at a commit, causing an
each_key_duplicate crash. Keep one view per runId, letting a terminal
status override a stale "started" one.
2026-05-29 17:15:04 +02:00
Rūdolfs Ošiņš 5c1efdeaa6 Show a placeholder when there is no commit message 2026-05-28 12:39:39 +02:00
Rūdolfs Ošiņš 6dc071a6ca Harden rendered markdown links 2026-05-22 11:32:34 +02:00
Rūdolfs Ošiņš 154d89851e Restrict job log links to http(s) URLs 2026-05-22 11:32:34 +02:00