`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
This commit allows us to e.g. convert the Set of DIDs we obtain from
assignee actions on cobs into a Set of Authors with their Aliases.
Also it introduces the `FromRadicleAction` trait which can be
implemented for any type of enum we get from the `radicle` create to
convert into a type which is better suited for us.
Removes also any calling the `alias` command in the `PatchTimeline` or
`IssueTimeline` since we already get the alias from the backend the
first time now.
So far we only supported issue operations on the `activity_by_id`
command.
With this commit we separate the commands into a `activity_by_issue` and
`activity_by_patch` command that calls a generic `activity_by_id` trait
implementation.
`Operation` now takes as a generic either `cob/issue/Action.ts` or
`cob/patch/Action.ts`.
Also `Operation` now stores the array of all `Action` that happened on
said operation. I'm not entirely sure if this will help us in the
future, but it represents more closely the state of the relation between
an `Operation` and the cob `Actions`.
Instead of only returning seeded repos, this repo adds 3 new filter
options to the `list_repos` command, under the `show` field
- *all* - All repos that a user has initialized or forked (own
namespace)
- *seeded* - Repos that are beeing seeded by the user
- *delegate* - Repos that the current user is a delegate of.