Commit Graph
55 Commits
Author SHA1 Message Date
Rūdolfs Ošiņš 6e1176ffcf Move discussion timeline grouping into lib
The rules for grouping a person's consecutive activity and when to repeat
their name lived in an untested loop in the component.
2026-10-01 18:20:24 +02:00
Rūdolfs Ošiņš ca3b059a62 Move CI job grouping into lib
The status chip's grouping, dedupe and summary rules were untested inside
the component, and a wrong CI status is very visible.
2026-10-01 18:20:24 +02:00
Rūdolfs Ošiņš 974235b1fe Share comment thread building between patch views
Revision and ReviewPage built threads and checked who may resolve a
comment with their own near-identical copies.
2026-10-01 18:20:24 +02:00
Rūdolfs Ošiņš a43031ad70 Show assignee changes correctly in timelines
Assignees were compared by object identity, and each action carries its
own copies, so every change listed everyone as both removed and added.
2026-10-01 18:20:24 +02:00
Rūdolfs Ošiņš 5887220ec7 Move issue and patch timeline building into lib
Both views built their activity feed inline, with the shared part written
twice. It now lives in tested modules.
2026-10-01 18:20:24 +02:00
Rūdolfs Ošiņš 89131f3b3a Keep every review comment in inbox summaries
Notification actions were deduplicated by operation and type, so the
several code comments of one published review collapsed into one.
2026-10-01 18:20:24 +02:00
Rūdolfs Ošiņš 5b3bc10a06 Check bare RIDs against already seeded repos
The seed form accepts a RID without the rad: prefix but compared it as
typed against lists that have the prefix, so duplicates got through.
2026-10-01 18:20:24 +02:00
Rūdolfs Ošiņš 56e495ba8d Add unit tests for patch review logic and draft storage
Code review is the app's core workflow and had almost no coverage. A
mutation run checked that each test fails when the logic it covers breaks.
2026-10-01 18:20:24 +02:00
Rūdolfs Ošiņš c4dcb61675 Stop the timer when resetting a dynamic interval
Resetting only forgot the key, so the pending timeout still fired and
rescheduled itself: the sidebar kept reloading repos every 5 seconds
after nothing was left to replicate, and after it unmounted.
2026-10-01 18:20:24 +02:00
Rūdolfs Ošiņš be0c2a424b Don't throw on empty or invalid frontmatter
Since js-yaml 5 an empty or comment-only block throws instead of returning
undefined, as does invalid YAML. Markdown renders the content from the
same parse, so one such block made the whole document fail to render.
2026-10-01 18:20:24 +02:00
Rūdolfs Ošiņš 5d8bc00f13 Show alias errors when creating an identity
The errors weren't reactive state, so the hints never rendered.
2026-10-01 18:20:24 +02:00
Rūdolfs Ošiņš a178aaade2 Only prepare code blocks inside each Markdown block
Every Markdown instance searched the whole page, so code blocks got an
extra wrapper and copy button for each other Markdown block on the page.
2026-10-01 18:20:24 +02:00
Rūdolfs Ošiņš 17e7a29cb9 Treat RIDs with non-base58 characters as invalid
parseRepositoryId threw instead of returning undefined, so the seed form
crashed on a typo instead of saying the RID is invalid.
2026-10-01 18:20:24 +02:00
Rūdolfs Ošiņš dababb90cf Make e2e output easier to read
Browser logs are indented and dimmed like in explorer, and npm's
per-script notices and Vite's bundle size warning no longer bury the
results.
2026-10-01 18:16:29 +02:00
Rūdolfs Ošiņš 7728c9272e Start e2e specs at a route that exists
/repos is no longer a route, so specs fell back to the inbox and logged a
routing error. The inbox opens the first-launch guide, so tests now start
with it dismissed. The router now logs the URL it couldn't resolve
instead of just "URL".
2026-10-01 18:16:29 +02:00
Rūdolfs Ošiņš 086afbb5dc Give each e2e test its own reliable peer
The page always talked to the shared palm backend, so tests couldn't set
up peers of their own. Peers now have no passphrase by default, so tests
don't need an ssh-agent and test keys stay out of the developer's agent.
Fixtures wait for replication instead of relying on gossip timing, and a
request cancelled by a reload no longer counts as a page error.
2026-10-01 18:16:29 +02:00
Rūdolfs Ošiņš f512682ec6 Build test-http-api once per e2e run
Each peer ran it through cargo run, which could take minutes to start.
2026-10-01 18:16:29 +02:00
Rūdolfs Ošiņš 2bfa19f1af Run e2e tests against heartwood 1.10.3
Matches the radicle 0.25 crate the app links against.
2026-10-01 18:16:29 +02:00
Rūdolfs Ošiņš a99631e611 Add unit tests for the router, utils and caches
Covers the pure modules the rest of the app builds on, starting with the cheapest layer of the testing strategy.
2026-10-01 10:20:19 +02:00
Rūdolfs Ošiņš 4e6137db5b Match test browser platform to the host 2026-09-29 17:24:48 +02:00
Rūdolfs Ošiņš 4d45516970 Allow creating issues with only a subject 2026-09-29 16:57:11 +02:00
Brandon Oxendine ca80f13631 Disable Back and Forward when they lead nowhere
Fixes f18b808b76f9528e406f53f70221e1a39b4664c8
2026-09-29 16:34:31 +02:00
Brandon Oxendine 407a8d0c6e Add markdown shortcuts to textareas
Closes: 7bdaa5ad647da241830ff463f03f730dce3bba67
2026-09-29 15:24:55 +02:00
Brandon Oxendine 1d2cdaf033 Align issue page design with patch page
Rebuild the issue page as a single column matching the patch page:
the state dropdown sits next to the title, with author, issue ID,
labels and assignees in a row beneath it.

Let issue authors change the state, not only delegates. Add a
delete_issue command so authors can delete their own issues.

Share the delete confirmation and ID chip with the patch page.
2026-09-25 12:48:35 +02:00
Rūdolfs Ošiņš 982a568538 Polish author and committer popover
Show the email alongside each name. Co-authors are read from the commit
message trailers and listed as their own section. The trigger avatars
now stack and fan apart on hover, and cover everyone credited on the
commit rather than just the author and committer. Timestamps now show
both committed and authored times in the tooltip.
2026-09-09 10:49:50 +02:00
Brandon Oxendine 62e150c29a Rebuild the patch page, review UI, and activity timeline 2026-08-10 12:54:39 +02:00
Rūdolfs Ošiņš 9313521528 Upgrade npm dependencies 2026-07-27 16:56:13 +02:00
Rūdolfs Ošiņš 154d89851e Restrict job log links to http(s) URLs 2026-05-22 11:32:34 +02:00
Rūdolfs Ošiņš f60f7aac95 Add custom context menu for sidebar items 2026-05-14 15:33:11 +02:00
Brandon Oxendine 783ac6bf74 Polish comment form footer 2026-04-30 12:10:51 +02:00
Yaroslav Halchenko af7d2e5181 chore: run codespell to fix typos automagically 2026-04-28 12:04: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
Rūdolfs Ošiņš ce99494c31 Fix e2e test failure introduced in previous commit 2026-04-24 16:47:46 +02: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ņš 293f6adb52 Fix e2e test suite compatibility with heartwood 1.7.1
- Trim trailing newline from heartwood-release file read to prevent
  invalid binary paths
- Replace repeated --label flags with a single --labels flag (new CLI)
- Add --accept verdict to rad patch review calls that lacked one (now
  required by the CLI)
2026-03-23 10:59:25 -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ņš 3ef1eb612e Add local release pipeline and migrate CI to GitHub Actions
Builds macOS DMG, Linux amd64 deb and AppImage from a single macOS
Apple Silicon machine using Podman containers. See RELEASE.md and
scripts/release for details.

Replaces Woodpecker CI with GitHub Actions workflows for lint, unit
tests, e2e tests, and Arch package validation.
2026-03-19 17:15:06 -06:00
Sebastian Martinez 2f801b9940 Add eslint-plugin-simple-import-sort to sort and group imports 2025-07-03 15:46:18 +02:00
Rūdolfs Ošiņš 832344f8a3 Fix theme spec 2025-07-03 11:46:39 +02:00
Rūdolfs Ošiņš bb38192b7e Implement repo home page
- by default open repos on the home view
- show a rendered README on the repo home page
- show repo metadata: visibility, canonical branch, threshold, delegates
  and allow list with aliases
- make layout responsive on repo home
- add copy button to code blocks in markdown
2025-05-06 10:11:01 +02:00
Sebastian Martinez 1f65bcdf6a Fix issue commenting assertion
We are having a fixed timestamp for any cob action so we should probably
not try to assert the correct relative timestamp.
2025-04-16 15:48:33 +02:00
Rūdolfs Ošiņš 5845bf3cd1 Prevent layout shifts when selecting an item in lists 2025-04-04 10:26:56 +02:00
Sebastian Martinez 2d685715b9 Remove authenticate e2e test 2025-03-18 21:21:02 +01:00
Rūdolfs Ošiņš 2e6fed9845 Refactor Issue discussion section
We now use the Discussion component like everywhere else.
2025-02-19 15:25:50 -06:00
Sebastian Martinez d5632ed534 Add global inbox 2025-01-23 22:28:00 +01:00
Sebastian Martinez ca4d9d13fd Add embeds to the Textarea 2024-12-13 12:26:51 +01:00
Rūdolfs Ošiņš 868dfcd2a8 Make top-bar narrow
This also moves the breadcrumbs into the main content area in selected
views.
2024-12-11 17:12:57 +01:00
Sebastian Martinez ebc8b3236b Improve e2e clipboard tests
Instead of trying to copy the RID of the first repo card, try to copy
the one you later expect.
2024-12-05 14:48:43 +01:00
Sebastian Martinez 5c8844db1c Fix radicle crate at 0.14.0
Also update `heartwood-release` to a pre-release to get the tests to
pass
2024-12-02 17:06:42 +01:00
Sebastian Martinez c35ab783a7 Add tests to verify authenticated identities 2024-11-21 10:29:24 +01:00