Commit Graph
3488 Commits
Author SHA1 Message Date
Brandon Oxendine 095b4f2fc0 Add copy link and highlight to comments
Opening a comment link expands the revision the comment is in, even if
the link is opened while already on the page, and scrolls to it.

This also fixes scrolling to URL fragments that aren't valid CSS
selectors, such as comment ids starting with a digit.
2026-10-19 18:02:19 +02:00
Georgios Jason Efstathiou 722a83af54 ryph: add clippy and rustfmt to the pinned toolchain
The root's plain rust-toolchain pin installs with the minimal profile,
so the explorer clippy warm step failed without clippy.
2026-10-19 17:57:49 +02:00
Jörg Thalheim fe29d7275b httpd: Batch search reindexing, ignore seed events
A peer with a bad connection kept reconnecting and re-announcing all
its seeded repos, ~27k SeedDiscovered/SeedDropped events per hour on
my node. Every event triggered a meili upsert until meilisearch sat
at 100% cpu and its task queue timed out.

Seed events only affect the seedingCount ranking field and the
periodic rescan updates that anyway, so drop them. Collect the
remaining events and reindex each touched repo once every 30s
(RADICLE_SEARCH_BATCH_SECS).
2026-10-19 17:20:44 +02:00
Rūdolfs Ošiņš 86b5a3d1ce Open redaction accordion in redacted artifacts test
The redaction reason sits in a collapsed accordion, so the test failed
consistently against a local httpd. Only local runs execute the release
tests, which is why it went unnoticed.
2026-10-19 16:50:08 +02:00
Jörg Thalheim 7d9be54317 httpd: Add tar.zst archive downloads
Support /raw/<rid>/archive/<ref>.tar.zst next to the existing tar,
tar.gz and zip formats. Git has no builtin zstd tar format, so
register one via tar.tar.zst.command. Needs the zstd binary in PATH.
2026-10-19 16:37:59 +02:00
Guillaume 783fa6be64 Fix emoji in markdown code blocks
Emoji in code blocks were missing from both the rendered code and the
copied text. twemoji replaces them with images, but highlighting and the
copy button work from the block's text content, which leaves images out.
We now turn the images back into text first.
2026-10-19 15:42:13 +02:00
Brandon Oxendine 44c4c37fc7 Match toggle button colors to Raw button 2026-10-19 15:13:09 +02:00
Brandon Oxendine 967f7a99b8 Use title case in repo page titles 2026-10-19 15:00:35 +02:00
Brandon Oxendine 53b616e028 Title the commits page "Commits"
The commits page set its browser tab title to "history", while the
breadcrumb and page content call it "Commits". Use "Commits" in the
title too.
2026-10-19 14:58:39 +02:00
Brandon Oxendine f22d3b5502 Use arrow icon for seed node view links 2026-10-19 14:54:26 +02:00
Daniel Norman f095a3ae11 Point AppImage GTK plugin at amd64 libs
Set LD_GTK_LIBRARY_PATH: the updated plugin finds the arm64 lib dir via
dpkg-architecture.
2026-10-19 14:05:06 +02:00
Daniel Norman 3bbf11d55b Install xdg-utils in release image
Fix AppImage bundling: the Tauri bundler needs /usr/bin/xdg-mime.
2026-10-19 14:04:55 +02:00
Brandon Oxendine ce3ef34de8 Add pin to sidebar repo context menu 2026-10-19 10:31:36 +02:00
ioannis 002f109b0a Fix breadcrumb label wrapping on long titles
Fixes 2345768492
2026-10-16 15:36:22 +02:00
Georgios Jason Efstathiou 7962e614fd Pull the universal image from quay.io
ghcr.io/drips-network/ryph-universal is no longer pullable, which fails
every environment build; quay.io/ryph/ryph-universal:1 is the same
image's public home.
2026-10-14 00:01:54 +02:00
Rūdolfs Ošiņš cf5e92f919 Save Rust CI caches only on master
Every patch saved its own Rust caches, up to 3 GB per patch, which
pushed the repo past GitHub's 10 GB cache limit and evicted the ones
master builds rely on. Patches now restore master's caches, and
line-table-only debug info keeps the builds and caches smaller.
2026-10-13 17:23:20 +02:00
Rūdolfs Ošiņš 92cedb0d3f Fix desktop unit tests in CI
Vitest's Rolldown picked up the root tsconfig.json, which extends a
package only the explorer installs, so the tests failed to start when
only desktop's dependencies were installed.
2026-10-13 17:23:20 +02:00
Rūdolfs Ošiņš 520e20c835 Run CI only for the components a push changes
Desktop-only patches no longer run the explorer and Rust checks, and
explorer patches no longer run the desktop e2e suite.
2026-10-13 17:23:20 +02:00
Rūdolfs Ošiņš af75a7010e Ask for component labels on patches
With explorer, desktop and httpd in one repo, the labels show at a
glance which projects a patch touches.
2026-10-13 17:23:20 +02:00
Rūdolfs Ošiņš c516cfa9fa Prefix explorer CI with explorer-
Desktop's GitHub workflows are already prefixed `desktop-`. With both
projects in one repo, the prefix shows which project a workflow or
Buildkite step belongs to.
2026-10-13 17:23:20 +02:00
Rūdolfs Ošiņš d83ed92a84 Remove Rust docs from CI
They aren't useful to us, and building them is the slowest step. We
did the same for desktop.
2026-10-13 17:23:20 +02:00
Rūdolfs Ošiņš 0442f85d56 Add check:ci script
Runs the checks from the GitHub workflows in one go, like desktop's
`scripts/check-ci`, and logs them to `tests/tmp/check-ci.log`.
2026-10-13 17:23:20 +02:00
Rūdolfs Ošiņš 357f4311f6 Document where the desktop app lives
So both the docs and agents know `desktop/` is its own project, with
commands run from there.
2026-10-13 17:23:20 +02:00
Rūdolfs Ošiņš e5e79605d6 Keep root lint checks out of desktop/
ESLint picks up desktop's own config for its files, which only works
with desktop's dependencies installed. Desktop is linted by its own
`scripts/check-js`.
2026-10-13 16:53:36 +02:00
Rūdolfs Ošiņš 33182fd942 Run desktop CI from the repo root
GitHub only reads workflows from the root `.github/` and ryph only reads
the root `.ryph/`. The desktop workflows now run in `desktop/`, and the
ryph setup installs and warms both projects.
2026-10-13 16:53:36 +02:00
Rūdolfs Ošiņš 7af280d5b4 Fix desktop scripts after the move into desktop/
- release: work on `master`, find radicle-apt-repo next to the monorepo,
  tag `releases/desktop/<version>` and only commit the release files
- install-binaries: use desktop's own `tests/`, not the root one
- build-artifacts: pass `GIT_HEAD` to the Linux builds, which only see
  `desktop/` and have no `.git`
- .envrc: watch `rust-toolchain.toml`
2026-10-13 16:53:36 +02:00
Rūdolfs Ošiņš 5e70f8f2bf httpd: Use releases/httpd/ for release tags
Since desktop was merged in, its `releases/<version>` tags are in our
history too, and `git describe --match='releases/*'` picked up
`releases/0.16.0` as the httpd version. The changelog also leaves out
`desktop/`, otherwise the next one would list its whole history.
2026-10-13 16:53:36 +02:00
Brandon Oxendine d2d24a6ecc Update Mastodon link in footer
The footer linked to an old account. Point it at the current one,
@radicle@toot.radicle.dev.
2026-10-12 22:36:41 +02:00
Rūdolfs Ošiņš 3447a45ac2 Merge radicle-desktop into desktop/
Desktop history is kept as-is, so old commit IDs and signatures stay valid.
2026-10-12 09:27:47 +02:00
Rūdolfs Ošiņš 983fff9006 Move everything into desktop/
In preparation for merging radicle-desktop into radicle-gui. It's a pure rename, so git can follow every file across the move.
2026-10-12 08:41:12 +02:00
Daniel Norman db5442f01d Release v0.17.0 2026-10-09 11:27:01 +02:00
Rūdolfs Ošiņš bbaf0d792b Keep file tree folders open when selecting a file
Opening another file collapsed every folder that didn't contain it,
which made browsing several folders tedious. Folders now stay open
until they're collapsed by hand.
2026-10-09 10:29:32 +02:00
Rūdolfs Ošiņš b3477e0365 Fix file tree folders flickering on file select
Since the browsed file lives in the route, every click reloads the route
and open folders re-rendered their contents, briefly collapsing them.
Folders now load their entries once and the tree is rebuilt only when
the commit changes.
2026-10-09 10:29:32 +02:00
Rūdolfs Ošiņš 1b07495946 Show label validation in a popover
So it looks the same as the assignee input. Both popovers now open
above the input when there's room for the full list and below it
otherwise, instead of switching sides depending on how many results
there are.
2026-10-09 10:29:32 +02:00
Rūdolfs Ošiņš a1515fe4a6 Fix npm audit reported issues 2026-10-09 09:36:03 +02:00
Daniel Norman 040906ba6d Add list_canonical_tags command
- Load the release modal's tags with it
- Sort them with the shared sortedTags helper
- Test that peers' tags are left out
2026-10-08 18:21:48 +02:00
Daniel Norman 6f57b811ef Show rad-artifact CLI version in status
- Probe `rad-artifact --version` in artifact_binaries
- Run artifact_binaries off the main thread
- Show the CLI version in the artifact node popover
2026-10-08 18:21:48 +02:00
Daniel Norman a24dde90de Show artifact node version in status
- Pass the running node's version through ArtifactNodeStatus
- Show it in the artifact node popover
2026-10-08 18:21:48 +02:00
Daniel Norman a3c094fd6c Bump radicle-artifact to 0.23
- Pick up the node version in the status reply
2026-10-08 18:21:48 +02:00
Daniel NormanandRūdolfs Ošiņš f90db0986a Warn about releases and artifacts by others
- Add an UntrustedWarning banner
- Warn on the Others releases list
- Warn on a release by a non-delegate
- Warn on artifacts by non-delegates on a delegate release
- Warn in the download popover for a non-delegate artifact
- Add E2E tests for both release cases

Co-authored-by: Rūdolfs Ošiņš <rudolfs@osins.org>
2026-10-08 18:21:48 +02:00
Daniel Norman e930bfd397 Link and mention releases
- Route release and release list links to their views
- Offer releases for a pasted ID or link
- List delegate releases in # search
- Show release references as chips
- Cache release lookups for mentions
- Record release mentions in ADR 0003
2026-10-08 18:21:48 +02:00
595a81150b Add Releases and Release views
- Add the Releases list and Release page
- Add modals to create, delete and redact releases
- Register artifacts and add or remove their locations
- Download, seed and unseed artifacts from the release page
- Share one artifact node state and show its status
- Pick the release commit from a list
- Rename Stop seeding to Unseed

Co-authored-by: Daniel Norman <daniel@norman.life>
Co-authored-by: Rūdolfs Ošiņš <rudolfs@osins.org>
2026-10-08 18:21:48 +02:00
837766212e Add artifact node port and commands
- Add the ArtifactNode port over radicle-artifact-client
- Seed, unseed, download and fetch artifacts per release
- Unseed artifacts on redaction and release deletion
- Report artifact node status and installed binaries
- Probe the artifact node alongside the radicle node
- Add node commands and mirror them in test API

Co-authored-by: Brandon Oxendine <brandon.oxendine@gmail.com>
Co-authored-by: Rūdolfs Ošiņš <rudolfs@osins.org>
2026-10-08 18:20:59 +02:00
7a0b67da64 Add release COB ports and commands
- Add release types and the Releases and ReleasesMut ports
- Create, delete and redact releases
- Register, attest and locate artifacts
- Filter releases with radicle-artifact
- Add release commands and mirror them in test API

Co-authored-by: Brandon Oxendine <brandon.oxendine@gmail.com>
Co-authored-by: Rūdolfs Ošiņš <rudolfs@osins.org>
2026-10-08 18:20:59 +02:00
Rūdolfs Ošiņš e888a949c2 Link guides to radicle.dev instead of hosting them
The guides live on radicle.dev. The old URLs redirect to the respective
radicle.dev pages.
2026-10-08 17:51:07 +02:00
Georgios Jason Efstathiou 2ffcf1b95a ryph: warm the cargo build in image builds only
At run time the warm steps rebuilt the crates with build scripts on
every start, which took about two minutes. Cargo now builds only what a
command needs, when it runs.
2026-10-08 13:04:16 +02:00
Rūdolfs Ošiņš 840f1b0c08 Only let an AppImage claim the rad: scheme
A dev build or an AppImage registered itself whenever it wasn't already
the handler, replacing the installed app as the target of rad: links.
Now installers own the scheme, and an AppImage only claims it when no
other handler is set. Dev builds never register; the README explains
how to test links in them instead.
2026-10-08 10:35:46 +02:00
Rūdolfs Ošiņš 344e10d967 Give dev builds their own identifier
Since we started opening rad: links in the app, a dev build and an
installed release can't run side by side: they share the identifier, so
whichever starts second hands over to the first and quits. A separate
identifier also keeps dev from sharing window state and logs with the
release.
2026-10-08 10:35:46 +02:00
Rūdolfs Ošiņš 021c9f8a59 Link AsciiDoc cross references to their source
`xref:other.adoc[]` linked to `other.html`, which doesn't exist in the
repository, so following it showed a missing file instead.
2026-10-08 10:29:43 +02:00
Rūdolfs Ošiņš 38279298d1 Keep document links inside the app
Clicking a relative link in a README reloaded the whole app, and links
starting with `/` dropped you in the inbox. Links to files in the repo
now open in the source view, at the linked section if there is one, and
links the app can't follow explain why instead of navigating the window
away.

This also fixes a missing linked file showing the previous file's
content instead of an error, and section links disabling the back
button.
2026-10-08 10:29:43 +02:00