Commit Graph
357 Commits
Author SHA1 Message Date
andreolf 8bb45aa11d Render GitHub blob image URLs
Image URLs pointing at a GitHub "blob" page, such as
https://github.com/<owner>/<repo>/blob/<ref>/<path>, serve an HTML
page rather than the raw image bytes, so they render as broken images
in markdown.

Add a canonicalizeGithubImageUrl helper that appends ?raw=true to such
URLs, which makes GitHub redirect to the raw content. URLs already
pointing at the raw content, via ?raw=true or raw.githubusercontent.com,
are left unchanged, as are non-GitHub and non-URL sources.

Wire the helper into the markdown image loop so external image URLs are
canonicalized while relative paths keep resolving against the repo's raw
endpoint.
2026-08-24 16:23:09 +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ņš 56cb081cac Expire cached job listings after 30 seconds
The job cache never expired, so CI status stayed stale for the rest
of the session.
2026-07-29 09:36:31 +02:00
025e7254f9 Add explore homepage and Radicle marketing site
Co-authored-by: Julien Donck <donckjulien@gmail.com>
Co-authored-by: Brandon Oxendine <brandon.oxendine@gmail.com>
2026-07-15 15:41:35 +02:00
Rūdolfs Ošiņš a3386040d5 Dedupe job runs by runId to fix duplicate keys
The same run can appear under multiple job COBs at a commit,
causing an each_key_duplicate crash. Keep one view per runId,
letting a terminal status override a stale "started" one.
2026-05-29 17:03:49 +02:00
Rūdolfs Ošiņš 17cd7adcb8 Harden rendered markdown links 2026-05-28 16:16:41 +02:00
Rūdolfs Ošiņš 747d9b05f9 Restrict job log links to http(s) URLs 2026-05-28 16:16:41 +02:00
Rūdolfs Ošiņš 7fbbbd3224 Fix did wrapping in JobCob dropdown 2026-05-22 08:53:05 +02:00
Rūdolfs Ošiņš 18953e9b08 Redesign JobCob popover 2026-05-21 15:47:18 +02:00
Rūdolfs Ošiņš 900074b282 Center checkmark icon in viewBox 2026-05-21 12:57:51 +02:00
Rūdolfs Ošiņš 9391cd072f Replace @radicle/gray-matter with js-yaml frontmatter parser 2026-05-07 23:04:55 +02:00
Rūdolfs Ošiņš 6fb702f886 Recover gracefully from mermaid render errors
When mermaid.render fails, suppress mermaid's "Syntax error"
overlay and show our own small warning above the original code
block so the source stays visible. Subsequent diagrams in the
same document still render.
2026-05-07 18:31:28 +02:00
Rūdolfs Ošiņš 9ebc5f6b3b Initialize mermaid only once
Hoist the dynamic import and initialize() into a
module-scoped promise. Previous code re-ran initialize()
on every afterUpdate that had a mermaid block.
2026-05-07 18:31:28 +02:00
Rūdolfs Ošiņš 0bcc2b4c2d Lazy-load mermaid
Switch to a dynamic import in afterUpdate and drop
manualChunks so Rolldown auto-splits the lazy chunk.
Eager bundle drops from 1.3 MB to 610 KB gzipped.
2026-05-07 18:31:28 +02:00
Rūdolfs Ošiņš 3b85f70f88 Force mermaid securityLevel to strict
'loose' allowed HTML and click directives in diagram labels,
bypassing the DOMPurify pass on the surrounding markdown.
2026-05-07 18:31:28 +02:00
Rūdolfs Ošiņš 9e268d9ac0 Scope DOMPurify config to call sites
Replace global setConfig with an exported sanitizeConfig passed
inline. The global config leaked into mermaid's internal
strict-mode sanitization, stripping valid SVG diagrams.
2026-05-07 18:31:28 +02:00
Delioos faadd2906b feat(markdown): mermaid diagram support 2026-05-07 18:31:28 +02:00
Rūdolfs Ošiņš 3f798744bb Use linkify-it for commit description URLs
Replace the hand-rolled URL regex with `linkify-it` (already a
transitive dep via `marked-linkify-it`). Add unit tests.
2026-05-06 09:54:04 +02:00
Rūdolfs Ošiņš 4da9321a1d Revert "Link header Radicle logo to radicle.dev landing page"
This reverts commit 9e9a799c28.
2026-04-29 15:55:06 +02:00
Rūdolfs Ošiņš 9e9a799c28 Link header Radicle logo to radicle.dev landing page 2026-04-29 15:14:20 +02:00
Rūdolfs Ošiņš 4ddca81f16 Add "Sort by activity" toggle to repo list 2026-04-29 12:12:03 +02:00
Rūdolfs Ošiņš 4dce10bc66 Show shimmer placeholder while activity loads 2026-04-29 12:11:59 +02:00
Rūdolfs Ošiņš 49274ac88c Load repo activity progressively per card 2026-04-29 12:11:50 +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ņš afb0f903ee Replace last deprecated Avatar with UserAvatar
We missed this one spot in the grand UI redesign.
2026-03-26 17:43:47 -06:00
Julien Donck c6c3cc2807 Replace repo sidebar with horizontal tab bar
Convert the vertical sidebar navigation (Source, Issues, Patches) into
a horizontal tab bar above the content area. The ContextRepo info moves
into a popover behind an info button in the tab bar.

Mobile footer navigation is preserved for small screens, with the tab
bar hidden on mobile.
2026-03-17 12:38:43 -06:00
Brandon Oxendine af74f2b84d Fix colors 2026-03-12 17:13:00 +01:00
Rūdolfs Ošiņš c8f3ea4131 Align icon component with UI kit 2026-03-10 12:31:55 -06:00
Rūdolfs OšiņšandJulien Donck fa85596ba1 Backport new UI kit design system from garden
Co-authored-by: Julien Donck <donckjulien@gmail.com>
2026-03-06 11:38:43 -06:00
Cameron Eldridge e4ec27c06b Fix CSS for task lists in rendered Markdown
The previous CSS was setting the task-list element to be `display: flex`, but this
does not play well with a task list item that contains further nodes. Commonly,
a sub-list, but even a bolded bit of text is rendered with a bit of unpleasant
extra spacing.

Example:

- [ ] Task 1
    - Step 1: Do *thing*
    - Step 2: Do __another__ thing

Or since I'm not sure if that's going to be rendered via this interface,
just find such a file on the hosted version. [This](https://app.radicle.xyz/nodes/seed.radicle.garden/rad%3Az28AWjUMmH9kFFCw7W9GMSCHoA9zZ)
repository of mine is particularly offensive in this category.

To solve the issue, I have removed the flex, and additional turned the icon component
itself into an inline flex element, as it being a block element was likely part of
the reason the list became a flex container to begin with.
2025-09-15 13:28:18 +02:00
Sebastian Martinez 18afaa1251 Add file path and line for comments with code locations
Instead of only displaying a comment, we need to make sure users know
that this has been a line comment.

Linking to changes for the display of the comment is a bit trickier,
will do so in a follow up
2025-06-27 11:28:23 +02:00
Sebastian Martinez 66a7c98210 Fix hidden overflow for rid copy tooltip in RepoCard 2025-06-16 10:45:01 +02:00
Sebastian Martinez c607fd7177 Hide overflow in RepoCard 2025-06-16 10:09:26 +02:00
Sebastian Martinez 2c362adffb Update dependencies 2025-05-21 13:40:52 +02:00
Sebastian Martinez 8d1624e0da Add Download radio button to Clone popover 2025-04-25 13:06:35 +02:00
Rūdolfs Ošiņš 775cbd1c37 Allow overriding configuration at run-time 2025-04-25 08:55:09 +02:00
Rūdolfs Ošiņš 46d1c2177d Make RID on repo cards copyable 2025-02-14 09:05:29 +01:00
Konstantinos Maninakis e9c783f04a Use monospaced font for repo id on repo card 2025-02-12 14:38:52 -06:00
Sebastian Martinez 50318285f8 Update svelte to v5.0
Only do the minimal changes possible to be able to keep updating
dependencies.
2025-02-04 11:42:02 -06:00
Sebastian Martinez 4e7507a9be Fix embeds in Markdown component
Changes the display of embeds from being markdown images to markdown
links.
Mimics the way embeds work on the desktop app and allows other embeds to
work too like pdfs, videos, etc.
2025-02-04 11:32:28 -06: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 723d188e9e Fix copying wrong ids when switching cob listing state
We don't really need the `clipboard` prop.
By switching between stats in patches and issue listings the clipboard
props aren't been recomputed.

Wrote a test that should make sure this doesn't break in the future.
2024-11-27 11:00:17 +01:00
Sebastian Martinez 870f0733fe fix(web): Fix padding between avatar and alias 2024-11-18 09:39:33 +01:00
Samuel Shuert d37ccde1c4 feat(web): Allow clicking on node avatars
Previously the node name was always a link and the node avatar did
nothing. We believe it's slightly nicer to include the avatar in the
link.
2024-11-18 08:51:19 +01:00
Sebastian Martinez b3be042b51 Fix twemojis display
Text in Markdown with emojis has been tried to be fetched from the
/raw route as embeds.
This commit changes the renderer method to compute the hex string for
a unicode emoji to be able to use the /twemoji asset folder.
2024-10-24 10:21:38 +02:00
Sebastian Martinez 337dbf4312 Fix repo cards failing to load when head commit with non-utf8 are loaded 2024-09-11 12:22:22 +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