Commit Graph
10 Commits
Author SHA1 Message Date
Rūdolfs Ošiņš 112604b6d3 Fix truncated commit list for merge-commit diffs
The diff endpoint walked back from the head commit and stopped at the
first commit equal to `base`. `surf::History` is an unhidden revwalk in
commit-date order, so a head that merges the target branch in reaches
`base` through one of its parents and truncates the walk there, dropping
every commit the other parent contributes. A patch whose head is such a
merge showed a single commit no matter how many it really carried.
2026-09-11 11:06:23 +02:00
Daniel NormanandRūdolfs Ošiņš b1acb3eb4d Integrate radicle-artifact into explorer
- Add release read API to httpd as cargo feature enabled by default
- Add Releases and Release views to the UI
- Filter out redacted artifacts and mark delegate authors
- Degrade releases UI gracefully with older radicle-httpd versions
- Hide fully redacted releases
- Skip releases in the list endpoint when every artifact was redacted by
  its author or a delegate, so no empty release entries are shown
- Keep them reachable with showRedacted=true and by release id
- Add e2e tests for the release routes

Co-Authored-By: Rūdolfs Ošiņš <rudolfs@osins.org>
2026-08-28 16:33:14 +02:00
Rūdolfs Ošiņš 256b060770 Resolve repo aliases in JSON and raw API 2026-07-29 14:05:06 +02:00
Rūdolfs Ošiņš 2499fe4d72 httpd: Add a diff-stats endpoint
The patch badge only needs insertions/deletions, but the full diff
endpoint builds every hunk and loads every changed blob.

This favours speed over exactness: `git diff --numstat` does not do
the rename/copy detection radicle-surf does, so on patches with copied
or renamed files the badge can diverge slightly from the full diff
view. In return it is roughly 6x faster on small diffs and 15x on
large ones.
2026-07-29 09:36:31 +02:00
Rūdolfs Ošiņš 436085c154 httpd: Add a dedicated commit-count endpoint
The header and history only need a commit count, but /stats/tree walks
the full history and builds a contributor set to produce it.

Add /stats/commits, counting with `git rev-list --count`
(bitmap/commit-graph), falling back to a libgit2 revwalk.
2026-07-29 09:36:31 +02:00
Rūdolfs Ošiņš b913ef6329 httpd: Run heavy repository reads on the blocking pool
libgit2 and COB reads are synchronous and can take seconds; on an
async worker one slow read stalls every request queued behind it.
2026-07-29 09:36:31 +02:00
Rūdolfs Ošiņš 18641de76a httpd: Speed up opening files in large repositories
surf's blob() walks the whole history to find the commit that last
touched a file, taking seconds to minutes on large repositories.

Read the blob directly and resolve its last commit with
`git rev-list -1`, which uses the commit-graph, falling back to surf.
2026-07-29 09:36:31 +02:00
Rūdolfs Ošiņš cf7763d972 Bump all radicle crates to latest versions 2026-07-28 09:52:54 +02:00
Daniel Norman 524ff5dfa2 Exclude job COBs without runs from job list
- Filter out jobs that have no runs in `jobs_by_commit` so empty
  job COBs are not served to the frontend
- Add a unit test covering the filter via a stubbed `FindJobs`
2026-07-21 16:38:25 +02:00
Georgios Jason Efstathiou b201ddd501 radicle-search: Add search backend and httpd endpoints 2026-07-13 10:53:17 +02:00