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.
- drop custom container, we don't want to maintain a hand-crafter
container anymore
- use .nvmrc node version as single source of truth, also in gh actions
- bump playwright version, required to work on node >=24
This handler wasn't being called by any code and diverges from a typical
`rad init` flow, as it creates an empty repo with an initial empty
commit. Removing this as it reduces maintenance burden
- 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
Fixes issue where markdown table cell text was rendering character-by-character
vertically instead of horizontally. The root cause was the parent .markdown
container's word-break: break-word property affecting table cells.
Solution: Override word-break and overflow-wrap to 'normal' for table cells
(td and th) to prevent character-level breaking while maintaining proper
text wrapping behavior.
Fixes: 90c33657e8
The previous entry hardcoded a Vite-generated content-hash filename
(onig-CwjCXqnP.wasm), which breaks whenever the file's hash changes
between builds. Replacing it with 'self' covers all same-origin assets
regardless of filename.
enable() was called before invoke("version") resolved, so the first
checkNewVersion() could run while sanitizedCurrentVersion was still
undefined. Even though newVersion is a derived value, Svelte 5 may
not reliably recompute it when state changes asynchronously on a
module-level class instance.
Moving enable() inside the invoke callback ensures sanitizedCurrentVersion
is always set before any version comparison runs.