44 Commits
Author SHA1 Message Date
Rūdolfs Ošiņš 1a160e55c1 Parse branch patch targets
Heartwood's `MergeTarget` gained a `Branch` variant, so `target` can be
an object now. One such patch failed the parse for the whole patch list.
2026-09-02 08:38:07 +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ņš 8d8339165c Show git-clone alias in clone button 2026-07-29 13:10:05 +02:00
Rūdolfs Ošiņš aaffb991ac Use the diff-stats endpoint for patch badges
So the badges stop fetching the full diff just for insertions and
deletions; the patch view did it on every load. Falls back to the
full diff when the backend doesn't serve the new endpoint.
2026-07-29 09:36:31 +02:00
Rūdolfs Ošiņš faa21f4504 Use the dedicated commit-count endpoint
So the header and history stop fetching full tree stats just for the
commit count. Falls back to the previous behaviour when the backend
doesn't serve the new endpoint.
2026-07-29 09:36:31 +02:00
Rūdolfs Ošiņš 3c2935704f Upgrade npm dependencies
This also upgrades dompurify to the latest version, outside our cooldown
window, for a security fix (verified safe with extra security checks).

Newer dompurify versions expose a bug where happy-dom renders one of our
custom elements incorrectly in tests, unlike real browsers. Switch the unit
test environment from happy-dom to jsdom to fix the failing tests.
2026-07-16 11:34:41 +02:00
Georgios Jason Efstathiou b32ae47abc http-client: Support search, info, and repo sort params 2026-07-13 10:53:17 +02:00
Rūdolfs Ošiņš 915d309e14 Tolerate null agent in /node response
Public seeds return `"agent": null` because their deployed httpd
binaries can't parse i2p/onion rows that newer nodes write to the
address table — `AddressStore::get` fails and the handler falls back
to `None`. Allow null in the zod schema and hide the user-agent row
in the UI when it's missing.

Workaround until heartwood ships `StoreExt::agent_of` (reads only
the `agent` column, no address hydration) and httpd adopts it.
2026-05-21 12:33:15 +02:00
Rūdolfs Ošiņš fc648a6392 httpd: Rename endpoint /xyz.radworks.job/ -> /jobs/ 2026-04-23 15:57:54 +02:00
Rūdolfs Ošiņš b2f74ebd15 Upgrade all Javascript dependencies
Changes which were needed after the upgrade:

- Replace vite-plugin-virtual (vite 8 incompatible) with vite's
  built-in `define` for the buildTimeConfig injection

- tsconfig: drop deprecated `baseUrl` (TS 5+ resolves `paths`
  relative to tsconfig)

- Vitest 4: import `defineConfig` from `vitest/config` so `test`
  is valid in vite configs

- Zod 4: rename `.errors` to `.issues`, make `ZodSchema` a
  type-only import, drop the removed `SafeParseReturnType`

- Tighten/loosen generic casts in localStore to match stricter
  zod 4 inference

- ESLint 9 `no-useless-assignment`: remove redundant initializers
  and dead reassignments; disable the rule where Svelte's reactive
  blocks confuse the analyser

- Svelte/eslint `prefer-svelte-reactivity`: disable for legacy
  Svelte usages of URL / Set

- Misc naming-convention and prefer-const fixes
2026-04-22 17:48:45 +02:00
Rūdolfs Ošiņš ecbea99f56 Show canonical branches and tags in peer selector 2026-04-22 09:45:00 +02:00
Rūdolfs Ošiņš 64f91fa41d Show job cobs on repo source and patches 2026-04-21 17:29:39 +02:00
Rūdolfs Ošiņš 21dc8a6262 Simplify zod schema 2026-03-26 17:48:48 -06:00
Rūdolfs Ošiņš cacef2292b Fix breaking schema change in radicle-node 1.7.0 2026-03-18 10:57:01 -06:00
Rūdolfs Ošiņš c72494f620 Enable localhost connections in radicle-explorer
Allow radicle-explorer to connect to a locally running radicle-httpd via
https://app.radicle.xyz/nodes/localhost. This was previously disabled to
encourage use of Radicle Desktop, but is now useful for testing the new
always-on node in local development environments.

Remove support for /nodes/radicle.local, an undocumented and unused convention.

Fix remote node loading when Cloudflare URL-encodes port separator (: → %3A).
2026-01-12 14:38:50 -06:00
Sebastian Martinez 2c362adffb Update dependencies 2025-05-21 13:40:52 +02:00
Rūdolfs Ošiņš 775cbd1c37 Allow overriding configuration at run-time 2025-04-25 08:55:09 +02:00
Sebastian Martinez f2c7bb71c7 Handle json! panick trying to serialize non utf8 lines
Instead of panicking when trying to handle non utf8 lines we should
return `null` as line output.

This way we can on the frontend detect if a file has any lines the api
wasn't able to parse and fallback to show a file as a `Binary File`
2025-03-19 11:12:04 -06:00
Sebastian Martinez 856caf0ec1 Fix new and old fields in code locations
Instead of being `nullable()` the `new` and `old` fields in a code
location are optional.
2025-03-14 12:18:42 +01:00
Sebastian Martinez fb85131404 Fix assignees field in patchSchema
We are returning `assignees` in patches as `Author` since March 2024, so
we should also parse patches with the correct zod schema.

This shouldn't break any up to date `radicle-httpd`
2025-02-12 15:47:45 -06:00
Sebastian Martinez 20b3ac3855 Add self hosting explainer to ResponseParseError 2024-12-05 14:21:08 +01:00
Sebastian Martinez 249f274162 Remove apiVersion in favor of deploymentId
Instead of relying on a `apiVersion` config variable that has to be
changed and semver respected we use a deployment id that is new on each
deployment to do cache busting
2024-12-05 14:21:08 +01:00
Sebastian Martinez 544cdca396 Improve the ResponseParseError description
In case of a `ResponseParseError` instead of comparing the versions of
httpd and the web client strictly, we should make sure to check if httpd
fulfills the web clients version requirement (to be the same major
version) and else fallback to a more verbose error about the different
versions.
2024-12-04 22:11:36 +01:00
Matthew O'Gorman 2075c320f3 Add markdown support to node descriptions
Instead of escaping all html by svelte, we should pass the node
description through the markdown parser and sanitize the parsed content.
2024-11-28 16:43:11 +01:00
Sebastian Martinez 7711476dae Update types to latest heartwood release 2024-08-29 11:02:04 +02:00
Sebastian Martinez 6c2d1d755e Update schemas and usage of project payload 2024-08-22 09:45:50 +02:00
Sebastian Martinez 868f7b1e2d Rename files from project(s) to repo(s) 2024-08-22 09:43:06 +02:00
Sebastian Martinez cca65a0b89 Make visibility in the repoSchema required 2024-08-22 09:43:06 +02:00
Sebastian Martinez b84cace48f Refactor usage of authorSchema 2024-08-22 09:43:06 +02:00
Sebastian Martinez cf08c83913 Update naming of project(s) to repo(s) 2024-08-22 09:43:06 +02:00
Rūdolfs Ošiņš 06cc5595c8 Upgrade eslint 2024-08-19 15:25:31 +02:00
Sebastian Martinez a1dc7fc2ef Add user page 2024-07-31 12:33:05 -03:00
Rūdolfs Ošiņš c60b6451d3 http: Remove all authentication related code
We also remove the `/api/v1/profile` endpoint because that was only
supposed to be used with a local node and not publicly accessible. All
fields that are still used in the UI were moved to `/api/v1/node`.

We bump the API and crate versions since this is a breaking change.

squash or drop!: Small suggestion for improvement
2024-07-19 08:11:47 -03:00
Sebastian Martinez 1775dd284d Rename missed state -> status occurrences 2024-07-15 14:43:15 +02:00
Sebastian Martinez 1a5830b54a Remove more unused patch and issue schemas 2024-07-15 14:42:56 +02:00
Sebastian Martinez b9704a0739 Remove session client and other non used methods from httpd-client 2024-07-10 12:17:39 +02:00
Sebastian Martinez dd61f5cf5c Remove local httpd features and experimental features
Updates API version to 2.0.0
2024-07-04 11:48:41 +02:00
Sebastian Martinez b8171e3a3f Simplify sidebar context boxes
Also starts removing features that relied on the web client handling
local httpd instances
2024-07-02 12:49:35 +02:00
Sebastian Martinez f21a80167c Display user agent instead of version 2024-06-28 21:43:32 +02:00
Sebastian Martinez e326f48cbf Update seeding policy schema 2024-06-28 13:59:35 +02:00
Sebastian Martinez fda384bc14 Remove tests relying on rad-web 2024-06-28 08:55:13 +02:00
Sebastian Martinez 894ab2e0aa Update node config 2024-06-21 13:24:11 +02:00
Sebastian Martinez b09a705f58 Overhaul peer and branch selector 2024-06-20 16:43:30 +02:00
Sebastian Martinez 2ee8bae82e Rename httpd-client to http-client 2024-06-07 12:22:28 +02:00