Commit Graph
400 Commits
Author SHA1 Message Date
Rūdolfs Ošiņš ca50bfee93 Correctly substitute emojis with twemoji in notification teasers 2026-05-15 10:33:03 +02:00
Rūdolfs Ošiņš 7cc041e803 Add fuzzy filter to inbox
This allows to selectively clear items by combining filtering with the
delete all notifications buttons.
2026-05-14 17:38:04 +02:00
Rūdolfs Ošiņš f60f7aac95 Add custom context menu for sidebar items 2026-05-14 15:33:11 +02:00
Rūdolfs Ošiņš dfe668c2cc Add reload button to sidebar 2026-05-14 14:58:06 +02:00
Rūdolfs Ošiņš 67108bd443 Disable native context menu
Prevents the browser/webview default context menu app-wide, while
preserving it for text selections and editable fields where the
native menu is still useful.
2026-05-14 14:58:06 +02:00
Rūdolfs Ošiņš 22170c7256 Expand All Repos section when navigating to a repo
When we land on a repo via notification inbox the repository wouldn't be
visible if the section was collapsed. Now we expand it and scroll into
view so we see which repository we're browsing.
2026-05-14 09:28:28 +02:00
Rūdolfs Ošiņš 15955af7fd Replace @radicle/gray-matter with js-yaml frontmatter parser 2026-05-13 13:58:07 +02:00
Rūdolfs Ošiņš 8c2c6703d3 Bump zod 3 -> 4 2026-05-13 13:58:07 +02:00
Rūdolfs Ošiņš 3611241bb7 Bump eslint 9 -> 10 2026-05-13 13:58:07 +02:00
Rūdolfs Ošiņš 734cbc84b2 Bump eslint-plugin-simple-import-sort 12 -> 13 2026-05-13 13:58:07 +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
Rūdolfs Ošiņš 7e0f3a478f Bump prettier 3.5 -> 3.8 2026-05-13 12:31:36 +02:00
Rūdolfs Ošiņš 8a60f58ffc Allow patch authors to change the state of their patch 2026-05-12 12:00:04 +02:00
Rūdolfs Ošiņš 071504fda7 Add repo pinning 2026-05-12 09:40:53 +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 0e9f99c04f Indent replies into individual boxes 2026-04-30 12:10:52 +02:00
Brandon Oxendine 783ac6bf74 Polish comment form footer 2026-04-30 12:10:51 +02:00
Brandon Oxendine 8ef7b34612 Reveal comment actions only on hover 2026-04-30 12:10:51 +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
Quaylyn Rimer 255bc46c96 fix: markdown table text displaying vertically
Fixes issue where markdown table cell text was rendering character-by-character
vertically instead of horizontally. The root cause was the parent .markdown
container's word-break: break-word property affecting table cells.

Solution: Override word-break and overflow-wrap to 'normal' for table cells
(td and th) to prevent character-level breaking while maintaining proper
text wrapping behavior.

Fixes: 90c33657e8
2026-04-28 13:19:59 +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ņš bb0ae84156 Add InfiniteScrollSentinel and ScrollArea viewport context 2026-04-27 18:00:01 +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ņš 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
Brandon Oxendine 89b8e9a17b Always show discussion comment form 2026-04-15 15:49:21 +02:00
Brandon Oxendine c74b8e014e Truncate repo header text 2026-04-15 15:04:39 +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
Brandon Oxendine 7fa9c42c2b Fix README ordered list clipping 2026-04-14 09:24:45 +02:00
Brandon Oxendine ee001e96fa Use brand styling for save actions 2026-04-14 09:08:30 +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ņš 08ff53c84e Fix app loading indicator 2026-03-23 22:53:07 -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ņš bfa38d9fe9 Show job cobs on latest revision and default branch commits 2025-07-29 16:16:56 +02:00
Rūdolfs Ošiņš 8632ea90fa Fix bug in commit listing order
Since this mutated the array it would reverse the order when switching
between patches, since we don't destroy the array.
2025-07-29 16:16:56 +02:00
Thomas Scholtes ef7736a8b0 Re-enable replying to review comments again 2025-07-29 14:55:02 +02: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
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 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