Commit Graph
214 Commits
Author SHA1 Message Date
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ņš 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ņš 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ņš 5c1efdeaa6 Show a placeholder when there is no commit message 2026-05-28 12:39:39 +02:00
Rūdolfs Ošiņš fece6edc44 Revert to 100 items per repository in inbox 2026-05-21 17:32:46 +02:00
Rūdolfs Ošiņš 0c40670e2b Show JobCob on the single-commit view 2026-05-21 15:56:53 +02:00
Rūdolfs Ošiņš 7ea1f580c8 Fix inbox show all and align group filters 2026-05-19 17:16:09 +02:00
Rūdolfs Ošiņš b76250ebca Fix regression where first revision wasn't editable 2026-05-18 15:11:00 +02:00
Rūdolfs Ošiņš ab0bbfb94a Bump svelte 5.28 -> 5.55 2026-05-13 13:58:07 +02:00
Rūdolfs Ošiņš be72541272 Bump eslint-plugin-svelte 3.5 -> 3.17 2026-05-13 13:58:07 +02:00
Brandon Oxendine c9a641da13 Use status-specific label for issue and patch breadcrumbs 2026-05-06 12:50:14 +02:00
Brandon Oxendine 62752f6357 Link patch breadcrumb to its current status filter 2026-05-06 12:49:51 +02:00
Brandon OxendineandRūdolfs Ošiņš ec49ecbd36 Start review from code-comment on revision diff
Co-authored-by: Rūdolfs Ošiņš <rudolfs@osins.org>
2026-04-30 16:49:41 +02:00
Brandon Oxendine fbae6e22ed Restyle reactions and highlight own reactions 2026-04-30 11:11:56 +02:00
Brandon Oxendine 56db0a0dcb Show first revision description on patch 2026-04-28 14:19:46 +02:00
Rūdolfs OšiņšandJulien Donck 65c453e37d Add commit history list and single commit views
Co-authored-by: Julien Donck <donckjulien@gmail.com>
2026-04-27 18:00:14 +02:00
Rūdolfs OšiņšandJulien Donck c0b1e41aef Extract Topbar component
Co-authored-by: Julien Donck <donckjulien@gmail.com>
2026-04-27 17:59:12 +02:00
Rūdolfs Ošiņš 99996f168e Rename radicle.xyz -> radicle.dev and app.radicle.xyz -> radicle.network 2026-04-27 11:26:17 +02:00
Rūdolfs Ošiņš 7b396ff72d Persist sidebar across navigations to preserve scroll position
Move AppSidebar out of per-route view components into App.svelte so it
is never unmounted on navigation. This fixes the sidebar scroll position
resetting to the top whenever the user opens a repository or navigates
between Issues, Patches and the repo home view.

Also removes the redundant invoke<Config>("config") call from each repo
route loader — the value is now taken from sidebarData.config, which
loadSidebarData() already fetches.
2026-03-23 22:51:59 -06:00
Rūdolfs Ošiņš 010cac0377 Redesign app with new UI kit
Redesign the entire app with a new UI kit. Typography, colors, icons,
avatars, and border radii have all been updated for a more polished,
consistent appearance that matches our other products like
radicle-explorer.

- Replace blockies-based avatars with a new DID-based avatar system
- Move Settings and Create Issue into fullscreen modals
- Change the default theme to follow the system theme
- Remove window decorations on macOS for a cleaner, more native feel
- Update the app icon
- Fix popovers and tooltips

Navigation:

- Rewrite app navigation and layouts
- Add a sidebar that gives you access to all your repos
- Change the startup screen to open directly to the notification inbox
- Add a getting started guide shown to new users on first launch

Settings:

- Add a setting to disable the notification badge
- Add a code font setting

Bug fixes:

- Fix reactions and edits incorrectly targeting the root comment
  instead of the intended reply
- Restrict issue/patch state, labels and assignees to delegates only
2026-03-20 17:48:38 -06:00
Rūdolfs Ošiņš 4fd016de9e Fix copyable Id reactivity
The component would always copy the first value it was initialized with
regardless of what the actual ID was that it was showing.
2025-07-22 10:09:53 +02:00
Thomas Scholtes 0936d7f9ff Use anchors on home view for better accesibility
Convert clickable elements for filtering repos to anchors so that they
can be focused and activated with the keyboard.
2025-07-21 17:02:03 +02:00
Thomas Scholtes 1583a3103c Make repos in home focusable and interactive
Instead of making the whole card interactive, I decided to make the
heading interactive. This avoids nesting the copyable ID as an
interactive element. Nested interactive elements are generally hard to
deal with for implementers and users [1].

I also cleaned up the flex layout in the card heading.

[1]: https://accessibilityinsights.io/info-examples/web/nested-interactive/
2025-07-17 12:50:19 +02:00
Thomas Scholtes a33799d62a Simplify reactOnComment action 2025-07-16 12:58:03 +02:00
Rūdolfs Ošiņš c0814d88b3 Don't change issue list filter when changing issue state
This makes the issue list behave the same way as patch list. We don't change
the filter, just reload the issue list so that the new issue state is properly
reflected in the list.
2025-07-16 12:50:56 +02:00
Sebastian Martinez e0ae5b5501 Add source browsing 2025-07-16 09:41:46 +02:00
Sebastian Martinez 2f801b9940 Add eslint-plugin-simple-import-sort to sort and group imports 2025-07-03 15:46:18 +02:00
Rūdolfs Ošiņš a55a138a7f Improve code review usability
This patch moves the revision list from the tab bar drop-down to a sidebar
on wide screens and above the current revision on narrow screens. This
way all revisions are visible at all times.

We also move and nest the revision reviews into that list so that one
can see whether there's anything actionable at a glance.

Other tweaks:

  - added comment counts to revisions and reviews
  - displayed unresolved comment thread counts per review
  - swapped icons for accepted/rejected and neutral reviews to avoid clashing
    with resolved/unresolved comment icons
  - made label and assignee sections more compact with hover-triggered "+" buttons
  - added author and status sections to the sidebar
  - enabled patch state changes from the title bar
  - made "Review revision" the primary action and "Checkout patch" secondary
  - added "Draft" label to draft patches
  - capitalized all badges for consistent UI text
2025-07-03 11:46:39 +02:00
Thomas Scholtes 17586953bb Draft reviews before publishing
Reviews are locally persisted but only published to the network by an
explicit user action.

- [ ] Delete line comments on draft reviews

[squash] Sort imports, separate type imports into own section
2025-07-01 14:31:55 +02:00
Sebastian Martinez 3e8d63fb80 Add auto-hide scrollbars into revision selector 2025-06-25 13:56:38 +02:00
Sebastian Martinez c8b0861662 Remove unused event listeners 2025-06-18 16:24:07 +02:00
Rūdolfs Ošiņš a1de446c79 Fix issue/patch second column overflow problem 2025-06-16 15:33:44 +02:00
Sebastian Martinez e246a48b90 Add overlay scrollbars with custom styling 2025-06-11 19:54:59 +02:00
Sebastian Martinez 499a0983ea Add rebuild cache functionality to issue and patch listing
In case of an outdated cobs cache we display a banner on top of the
patch or issue listing, to allow users to rebuild the cobs cache of a
repo similar to running `rad patch cache`
After rebuilding we fetch the issues or patches from the start.

Small caveat with patches:
The banner can only be shown after a user fetched all patches from the
backend, so we are sure we tried to fetch all of them.
2025-06-11 18:24:27 +02:00
Sebastian Martinez a6ea607c3a Fix scroll in single patch view second column 2025-06-11 16:58:24 +02:00
Rūdolfs Ošiņš 299adcaccb Implement repo seeding 2025-06-11 14:32:58 +02:00
Rūdolfs Ošiņš 8ff59fd0db Allow fuzzy finding by repo id, and issue/patch ids
This supports the workflow of copying an id from radicle-explorer and
searching for it on the app.
2025-06-05 10:51:04 +02:00
Rūdolfs Ošiņš 43989e53ba Show patch id as well as revision id in breadcrumbs 2025-05-22 14:19:35 +02:00
Rūdolfs Ošiņš f539a2a350 Implement breadcrumbs 2025-05-22 11:10:02 +02:00
Rūdolfs Ošiņš 71069ef19e Move inbox to a global popover 2025-05-20 15:46:00 +02:00
Rūdolfs Ošiņš 7d977f22da Extract buttons into own components 2025-05-15 17:08:43 +02:00
Sebastian Martinez ff13c1e4f3 Move onboarding instructions to popover 2025-05-08 13:38:43 +02:00
Rūdolfs Ošiņš 5cb9aaa7fb Make buttons more descriptive 2025-05-07 18:58:55 +02:00