Extracts the avatar components and the style tokens into shared/ui, which
both apps consume as a workspace package, to try out ADR 2. Nix and the
Docker setups are not updated yet.
ADR 2 now only covers how the apps consume shared code, so its notes
on the extraction strategy move here. All three root ADRs are accepted
with this patch.
Tag names were compared as plain strings, so 0.10.0 sorted between
0.1.0 and 0.2.0. Canonical tags were ordered by tagger time, which
interleaved the httpd and desktop releases in monorepos. Tags now stay
together per namespace, newest namespace first, sorted by version.
Co-authored-by: Rūdolfs Ošiņš <rudolfs@osins.org>
Render the old blob when previewing a deleted file, including binary
images, which showed only a "Binary file" placeholder. Hide the "View
file at this commit" link for deleted files, since the file does not
exist at that revision.
Collapse the node description to three lines with a Show more toggle
when it overflows, and let the sidebar scroll on wide screens so the
node details below it stay reachable.
When a revision's head is already part of its base, the Changes view
showed an empty commits column and "0 files modified". In practice this
is a patch branch pushed after its work already landed, which also marks
the patch merged at that commit even when the work landed after it. Show
an empty state that says so and links to the last revision with changes.
This also fixes switching revisions leaving the previous revision's
single commit selected.
Co-authored-by: Rūdolfs Ošiņš <rudolfs@osins.org>
- Format all files Prettier supports
- Run `prettier .` in format and check, so both cover the same files
- Check Markdown, which only format covered before
- Replace stale ignore entries with `crates`
The sanitizer allowlist strips KaTeX's markup, and index.html never
loaded katex.min.css, so math has only ever shown up as flat text. We
now typeset math after sanitizing and load the stylesheet.
The sanitizer allowlist added in 4c31a8134 strips all of KaTeX's markup,
leaving only the flat text of each formula. We now typeset math after
sanitizing instead of loosening the allowlist for spans and styles.
rustls-webpki 0.103.16 and webpki-roots 1.0.10 are the first releases
with the fixes for RUSTSEC-2026-0382 and RUSTSEC-2026-0381, but are
still in the cooldown. We reviewed their diffs against upstream and
allow them until they're old enough.
mermaid 11 pins katex ^0.16, which is affected by GHSA-238p-pmpm-9mq7.
Like desktop, we now depend on katex directly and override mermaid's
copy, instead of jumping to mermaid 12.
Also takes vitest 4.1.12 a few hours before it clears the cooldown.
Makes explorer and desktop sibling projects, as proposed in ADR 1.
This commit only moves files; paths in CI, scripts and docs are fixed
in the following commits.
Most copy-pasting between the two front-ends happens in UI code. These
propose making explorer and desktop siblings and sharing code from
source, without an npm workspace for now.
/raw/<rid>/archive/<ref> passed the git2 error from
resolve_reference_from_short_name straight through, so a typo in the
branch name or a commit SHA in place of a ref yielded a 500. Map
ErrorCode::NotFound to 404 like we already do for the object lookup.
Signed-off-by: Jörg Thalheim <joerg@thalheim.io>
The patch and issue list topbars decided whether to show filter labels
from the viewport width, which ignores the sidebar. With the search
input open, the filters left it almost no room, and in narrower
windows the actions were pushed past the window edge.
Make the topbar a size container and show filter labels based on its
own width. While searching, collapse inactive filters to icons and give
the input a fixed width. When there is still not enough room, the
filters scroll and fade out at the clipped edge.
Fixes: 0d6def4600
When users block web fonts, code was rendered in the browser's default
sans-serif font because the JetBrains Mono code font tokens had no
generic fallback. Add `monospace` as a fallback so code stays
monospaced.
Fixes: 8942cea33a
Opening a comment link expands the revision the comment is in, even if
the link is opened while already on the page, and scrolls to it.
This also fixes scrolling to URL fragments that aren't valid CSS
selectors, such as comment ids starting with a digit.