54 Commits
Author SHA1 Message Date
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
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
Brandon OxendineandRūdolfs Ošiņš 8175823ab8 Fix pasted images not rendering
Pasting a single image went through save_embed_by_clipboard, which
stored the clipboard's raw RGBA pixels instead of an encoded image.
The result could not be decoded, so the embed showed as a broken image.
Always store the pasted file's own bytes instead. Nothing else uses
save_embed_by_clipboard, so it's removed.

Co-Authored-By: Rūdolfs Ošiņš <rudolfs@osins.org>
2026-10-06 15:04:57 +02:00
Rūdolfs Ošiņš 2f283f1047 Open rad: links in the app 2026-10-05 17:37:03 +02:00
Rūdolfs Ošiņš eaf2740907 Drop unused radicle-surf leftovers 2026-10-01 19:56:53 +02:00
Rūdolfs Ošiņš f8faec2c9b Resolve git outside the session PATH
A desktop launch inherits a `PATH` that holds none of the user's own
install locations, so `Command::new("git")` finds nothing usable, or on
macOS finds Apple's shim and only prompts to install the developer
tools.

Resolve git to an absolute path instead, searching `PATH` first and the
usual install locations after, and cache the result for the process.
`rad` is looked for the same way, which also fixes the CLI check for a
Homebrew or Nix install.
2026-09-08 09:30:14 +02:00
Rūdolfs Ošiņš 1ca4f76575 Trim the diff payload to a manifest
The tree-sitter highlighter goes with it: the hunk types name its
`Paint` spans and it implements `ToPretty` for them, so neither side
can be removed on its own.
2026-08-14 17:30:46 +02:00
Rūdolfs Ošiņš 935b02308a Upgrade rust dependencies
Upgrade all radicle-* dependencies to the latest versions regardless of
cooldown and the remaining rust dependencies honoring cooldown period.
2026-07-27 15:19:45 +02:00
Rūdolfs Ošiņš bbb323106e Fix tar security warning 2026-07-03 12:14:05 +02:00
Rūdolfs Ošiņš f0c17d237e Upgrade rust deps with a 7 day cooldown 2026-05-22 10:34:29 +02:00
Rūdolfs Ošiņš 071338d4d0 Work around alias lookups not working
Aliases advertised via i2p/tor would not resolve when the features
aren't compiled in. This is only a workaround, it would be better to fix
upstream.
2026-05-20 11:01:28 +02:00
Rūdolfs Ošiņš 3e01bafb71 Bump tauri 2.5/2.10 -> 2.11
Bump the @tauri-apps/* npm packages and the matching Rust crates
together. The Tauri CLI rejects builds when the @tauri-apps/api npm
package and the tauri Rust crate are on different major/minor versions,
so they must move in lockstep.
2026-05-13 12:31:36 +02:00
Daniel Norman 073a5fb574 Bump deps to radicle 0.24 / radicle-job 0.6
- bump radicle 0.22 -> 0.24, radicle-job 0.5.2 -> 0.6, and
  radicle-surf 0.27.0 -> 0.27.1 to match heartwood
- raise radicle-tauri rust-version to 1.86 for radicle-job 0.6's MSRV
- migrate to the 0.24 COB store API: signer moves onto the cache via
  WriteAs, so issues_mut/patches_mut take &signer and the per-call
  signer arg disappears from every issue/patch action method
- pass ReadOnly to JobsStore::open for radicle-job 0.6's new Access
  type param
- replace the removed Profile::socket() with home().socket_from_env()
  and the removed WriteRepository::set_head() with the
  set_canonical_symbolic_refs + set_default_branch_to_canonical_head
  pair used by rad::init
- split the old ssh::agent::Error into AgentError + ConnectError so
  Agent::connect failures still bubble through ?
- swap SignedRefsInfo::is_ok() (gone in 0.23) for an explicit
  matches!(_, Some(_)) on the new None/Some/NeedsMigration enum
2026-05-12 11:26:53 +02:00
justarandomgeek d6d0fbfb7a chore: Update dependencies related to Tauri 2026-04-27 11:35:56 +02:00
Lorenz Leutgeb aee677886d radicle-types: Fix breakage in stream iteration
Various straightforward fixes after upstream updates.
2026-03-21 18:55:19 +01:00
Lorenz Leutgeb 34706164e5 radicle-tauri: Depend on git2
The `radicle` crate does not re-export `Config`
anymore, thus depend on `git2` directly.
2026-03-21 18:55:19 +01:00
Lorenz Leutgeb 6a9906aa0e radicle-types: Migrate to radicle_localtime 2026-03-21 18:55:19 +01:00
Lorenz Leutgeb a7fc588653 cargo: Bump dependencies 2026-03-21 18:54:42 +01:00
Rūdolfs Ošiņš bfa38d9fe9 Show job cobs on latest revision and default branch commits 2025-07-29 16:16:56 +02:00
Sebastian Martinez 7765b7d765 Update radicle crate 2025-07-18 16:09:05 +02:00
Sebastian Martinez e0ae5b5501 Add source browsing 2025-07-16 09:41:46 +02:00
Sebastian Martinez 499a0983ea Add rebuild cache functionality to issue and patch listing
In case of an outdated cobs cache we display a banner on top of the
patch or issue listing, to allow users to rebuild the cobs cache of a
repo similar to running `rad patch cache`
After rebuilding we fetch the issues or patches from the start.

Small caveat with patches:
The banner can only be shown after a user fetched all patches from the
backend, so we are sure we tried to fetch all of them.
2025-06-11 18:24:27 +02:00
Sebastian Martinez e6db48b69d Update heartwood crates 2025-06-05 11:17:48 +02:00
Sebastian Martinez 9c12f3ae7f Add diff syntax highlighting 2025-05-21 08:31:27 +02:00
Sebastian Martinez f7cfae720e Update dependencies 2025-05-14 11:16:26 +02:00
Rūdolfs OšiņšandFintan Halpenny 0702896ea3 Optimise patch list command
So we don't materialize the whole list multiple times especially when
paginating. Mostly written by Finto, I was just driving.

Co-authored-by: Fintan Halpenny <fintan.halpenny@gmail.com>
2025-04-07 18:35:15 +02:00
Sebastian Martinez 08a2b01f7d Update crate dependencies 2025-03-19 09:36:38 -06:00
Sebastian Martinez efe3c51d05 Add identity and repo creation flow 2025-03-18 23:01:07 +01:00
Sebastian Martinez 89a26663e4 Update rust dependencies 2025-02-20 09:06:35 +01:00
Rūdolfs Ošiņš 4add00d682 Add review page 2025-02-18 12:06:03 -06:00
Sebastian Martinez dc87d3fa84 Adding Service and Storage traits for the inbox logic
To start making the backend codebase more future proof, I started
introducing the hexagonal architecture concept, of having `Service`
traits that is the public API and inner traits like `Storage`,
`Metrics`, etc. that can be implemented by different adapters like
`Sqlite`.

This is a first development in this direction.
2025-01-23 22:23:44 +01:00
Sebastian Martinez 2ac0c54a85 Add heartwood stream module
Introducing the `stream` module from the `heartwood` repo from patch
`40a8d72`, for our global inbox
2025-01-09 11:10:07 +01:00
Sebastian Martinez 153331f2e3 Infer file type for embeds for previews 2024-12-19 20:55:30 +01:00
Sebastian Martinez 4647cea062 Fix syntax highlighting for languages with multiple injections 2024-12-19 13:54:25 +01:00
Sebastian Martinez a71f6b7feb Update dependencies 2024-12-17 10:42:51 +01:00
Sebastian Martinez ca4d9d13fd Add embeds to the Textarea 2024-12-13 12:26:51 +01:00
Sebastian Martinez 4f046343f3 Add syntax highlighting for diffs 2024-12-09 14:53:17 +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 e093a5bc29 Let ts_rs run formatting types instead of prettier 2024-12-02 16:34:12 +01:00
Sebastian Martinez 70ee53e859 Add unit tests for radicle-types crate 2024-12-02 16:34:12 +01:00
Sebastian Martinez a2776c27a4 Remove migrate argument since not used anymore 2024-12-02 16:30:54 +01:00
Sebastian Martinez 936d8197b1 Update heartwood crates to commit 2d13591
- Add `migrate::ignore` callback to `cob::cache` calls
- Remove the `Verified` trait from the `Doc` struct
- Update `Doc` fields with read-only methods
2024-11-22 10:54:49 +01:00
Sebastian Martinez 7cdf6544ad Fix error serialize in the test-http-api crate 2024-11-20 14:20:57 +01:00
Sebastian Martinez 743b7af54c Revert logging from crabnebula dev tools to the tauri-plugin-log 2024-11-20 11:35:50 +01:00
Sebastian Martinez d90dc0735c Add test-http-api crate to make app work in browser
A new `invoke` function calls either the tauri backend or the
`test-http-api` function if ran in a browser.
2024-10-28 13:56:23 +01:00
Sebastian Martinez e0323e34bc Use tokio::time::sleep instead of blocking threads
Great explanation by @LarsWirzenius on the why

> Async code in Rust runs in one or more threads. Usually there's a
small number of threads that are multiplexed between different async
functions. The async executor chooses what threads to use and which
thread runs which async code. If the async code takes a long time, such
as by calling std::thread::sleep, the whole thread stops doing anything
else, and then no other async code runs in that thread, either.
2024-10-25 12:48:33 +02:00
Sebastian Martinez 874605633e Refactor types
- Improves the hierarchy of types into separate folders
- Improve the types generation making more structs and less serde_json
- Adding more optional values to the tauri commands
2024-10-23 11:58:37 +02:00
Sebastian Martinez 0bdf0e7192 Extract rust types into its own crate 2024-10-22 13:10:12 +02:00
Sebastian Martinez 996f0817f6 Return comments and replies instead of Oids 2024-10-22 10:49:06 +02:00