- 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>
- 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>
Relative images in markdown and AsciiDoc files were broken, nothing
resolved them against the repository. They're read through a new
`repo_blob_bytes` command, which skips the text encoding and last
commit lookup of `repo_blob`. Images now also keep their alt text.
Co-authored-by: Rūdolfs Ošiņš <rudolfs@osins.org>
Embeds went over IPC as JSON number arrays, so a 9MB image turned into
~36MB of JSON. On upload Tauri parses that on the main thread, which
beachballed the app while dropping a large screenshot.
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>
References are picked or pasted in the composer, stored as `rad:` URIs
with a readable label, and shown as chips or links that open in-app when
the entity is here.
Co-Authored-By: Rūdolfs Ošiņš <rudolfs@osins.org>
Mentioning someone starts from their alias, but aliases are
self-declared and unrelated nodes often share one. Results say who is
followed or is you, so the composer can tell them apart.
Co-Authored-By: Rūdolfs Ošiņš <rudolfs@osins.org>
Several commands had no route or returned stubs, so e2e tests silently got
null or empty data. A missing route now fails loudly, the profile loads on
first use so onboarding works, and node status is polled over HTTP. A
parity test keeps the routes from drifting from the Tauri handlers again;
it also caught revisions_by_patch being registered twice.
Parallel e2e tests hit the repo's sigrefs lock when creating COBs
concurrently, which the Tauri avoids by running these commands on
the main thread serially.
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.
Adds a read-only page for a repository's identity document. It shows the
current document together with its full revision history. The data and
wording follow heartwood and the rad id / rad inspect CLI.
Co-Authored-By: Rūdolfs Ošiņš <rudolfs@osins.org>
A repository can sit in storage without being seeded, which `rad ls`
hides and `rad ls --all` shows as "local". A new Settings preference
picks the `Show` passed to `list_repos_summary`, defaulting to seeded.
Unseeding only deletes the policy row, so a node defaulting to `allow`
keeps seeding: `unseed` now reports `DefaultPolicySeeds` instead of
claiming success, and both callers refresh in a `finally` so a failed
`clean` no longer leaves a stale row behind.
`rad unseed` only drops the seeding policy and leaves the repository in
storage, so while `list_repos_summary` listed everything on disk an
unseeded repository never left the sidebar and unseeding looked like it
had done nothing. That call now filters by seeding policy.
The confirmation dialog also offers to delete the files, running the
equivalent of `rad clean` after the unseed.
Co-authored-by: Rūdolfs Ošiņš <rudolfs@osins.org>
Serve `targetBranch` so the UI can tell where a patch is headed. Editing
a title no longer sends its own target, which reset branch-targeted
patches to the default branch.
list_issues previously read through heartwood's id-ordered issue cache,
forcing it to load and sort every issue in memory on each page. Mirror
the patch path instead: a domain/issue Service backed by an IssueStorage
adapter that queries the issues table directly.
- 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
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