Commit Graph
87 Commits
Author SHA1 Message Date
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
Yaroslav Halchenko af7d2e5181 chore: run codespell to fix typos automagically 2026-04-28 12:04:26 +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ņš de06613eeb Dedupe in-flight requests in cached() 2026-04-27 17:58:26 +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ņš b6facd02a7 Fix update checker not detecting new versions
enable() was called before invoke("version") resolved, so the first
checkNewVersion() could run while sanitizedCurrentVersion was still
undefined. Even though newVersion is a derived value, Svelte 5 may
not reliably recompute it when state changes asynchronously on a
module-level class instance.

Moving enable() inside the invoke callback ensures sanitizedCurrentVersion
is always set before any version comparison runs.
2026-04-14 09:45:51 +02:00
Rūdolfs Ošiņš e1509f0a99 Change seed.radicle.garden -> iris.radicle.xyz
We were using a deprecated seed dns name.
2026-03-23 22:59:30 -06: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ņš cf40e86a8e Use a dynamic port for the test-http-api to avoid conflicts
Pick a free port at config load time using a TCP probe on port 0, inject
it into the Vite dev server via VITE_TEST_HTTP_API_PORT, and have
globalSetup start the test-http-api on the same port. The frontend
reads the env var at build time instead of the previously hardcoded 8081.
2026-03-23 10:59:39 -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ņš ce35d498d4 Point update checker to the correct URL where we store files 2025-07-22 12:32:24 +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 ea395ee884 Add button to delete draft reviews 2025-07-17 11:35:13 +02:00
Thomas Scholtes 595382b240 Introduce update functions for less error-prone local storage updates
For local storage updates to be persisted it had to be assigned for
example with `storage.value = storage.value`. It was easy to forget this
and it’s not immediately obvious why this is needed. (In fact, eslint
complains.)

We introduce an `update` method for the local storage and an
`updateStoredDraftReview` to encapsulate the necessary logic.
2025-07-17 11:08:41 +02:00
Thomas Scholtes ceca51c1bb Support deleting draft review comments 2025-07-17 10:48:35 +02:00
Sebastian Martinez e0ae5b5501 Add source browsing 2025-07-16 09:41:46 +02:00
Sebastian Martinez 0336da384f Provide error.code to InvokeError
We decide during onboarding to display different things based on the
error code received from the backend.

Due to the new `InvokeError` type we lost this `error.code` string.
2025-07-09 16:20:38 +02:00
Sebastian Martinez b65b6daaee Provide currentVersion in UpdateChecker without parsing it 2025-07-04 14:28:43 +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
Sebastian Martinez 641b809d56 Add Check for Update into Settings popover 2025-07-02 13:15:42 +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
Thomas Scholtes 3adbfeecc2 Wrap invoke rejection reasons in Error instance
This way we get stack traces and more informative console logs (instead
of "[Object object]").
2025-06-27 16:29:03 +02:00
Sebastian Martinez c8b0861662 Remove unused event listeners 2025-06-18 16:24:07 +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
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
Sebastian Martinez f7cfae720e Update dependencies 2025-05-14 11:16:26 +02:00
Sebastian Martinez ff13c1e4f3 Move onboarding instructions to popover 2025-05-08 13:38:43 +02:00
Rūdolfs Ošiņš bb38192b7e Implement repo home page
- by default open repos on the home view
- show a rendered README on the repo home page
- show repo metadata: visibility, canonical branch, threshold, delegates
  and allow list with aliases
- make layout responsive on repo home
- add copy button to code blocks in markdown
2025-05-06 10:11:01 +02:00
Sebastian Martinez 03d7f8ae6e Fix prettier warning 2025-04-17 14:10:41 +02:00
Sebastian Martinez 5232b85e12 Adjust font size 2025-04-17 13:53:38 +02:00
Sebastian Martinez 74bb631381 Fix inbox pagination cursor and sorting 2025-04-08 17:53:04 +02:00
Rūdolfs Ošiņš 1a4dba2065 Deduplicate the diff/cob Stats type 2025-04-01 17:16:03 +02:00
Rūdolfs Ošiņš 7c0da906a8 Cache content-addressed API calls on the frontend 2025-04-01 17:16:03 +02:00
Sebastian Martinez 31e273395f Fix notification summary for revision comments
Instead of showing `left a review comment` we should just say `left a
comment` for a revision comment.
2025-03-27 10:33:06 +01:00
Sebastian Martinez efe3c51d05 Add identity and repo creation flow 2025-03-18 23:01:07 +01:00
Sebastian Martinez 738e7f4fb4 Remove AuthenticationError component 2025-03-18 21:21:02 +01:00
Sebastian Martinez 618ae682bc Fix review.edit compressed notification summary
Instead of saying `edited 6 reviews` we should say `edited review 6
times`
2025-02-20 11:24:24 +01:00
Rūdolfs Ošiņš 7089e992e9 Use proper color for verdict badge icon 2025-02-18 15:29:46 -06:00
Rūdolfs Ošiņš 4add00d682 Add review page 2025-02-18 12:06:03 -06:00
Rūdolfs Ošiņš c35b4a3dc5 Fix flaky tests
It's normal that some of the "alias" queries return a 404 if a DID can't
be looked up, in this case the endpoint returns a 404 and we just log
it.
2025-02-13 09:54:32 -06:00
Sebastian Martinez 365674bc58 Provide a sync_status store
The `sync_status` would update every 10 seconds with the latest state of
all repos, to be displayed in the repo where needed.
2025-02-10 11:55:14 -06:00
Rūdolfs Ošiņš 0817e694ac Render ~~strikethrough~~ in markdown
So that I can strike through unfinished thoughts after I edit my
comments.
2025-02-07 13:19:11 -06:00
Rūdolfs Ošiņš 8babf383d3 Fix emoji reactivity bug 2025-02-07 09:30:47 +01:00
Rūdolfs Ošiņš 67836558ca Remove old Upstream license header 2025-02-05 13:07:24 +01:00
Rūdolfs Ošiņš 014a3e9eee Add revision commit list 2025-02-04 15:49:00 -06:00
Sebastian Martinez 19fdd17f99 Fix repo listing not displaying all repos
`Show::All` which is the default value should return all values obtained
from `storage.repositories()`.
This commit adds a `Show::Contributor` enum variant to only get repos
that the user has forked, initialized or contributed in some way.
2025-01-27 13:19:42 +01:00