Georgios Jason Efstathiou
b461f0bce2
ryph: round source mtimes down instead of to the commit time
...
On an incremental image build, setting a changed file to the commit
time can make it older than its stale build output, so cargo would skip
the rebuild. Rounding down to the whole second still survives the image
layer and never moves a file back past its outputs.
2026-10-05 15:31:17 +02:00
Georgios Jason Efstathiou
7d70079105
ryph: keep the baked Rust build warm, and smaller
...
Pin source mtimes to the commit time at image build, so cargo's
fingerprints survive the image layer and the warm build stays fresh.
Build with line-tables-only debug info and drop the incremental cache
to shrink the baked target/.
2026-10-05 14:51:32 +02:00
Ada
c70467c75b
Set up the ryph environment
...
Ryph-Run: r-8757488de1
2026-10-05 09:09:38 +00:00
Rūdolfs Ošiņš
6c9e83c763
Ignore fetches cancelled by goto in e2e tests
2026-10-01 21:58:39 +02:00
Rūdolfs Ošiņš
8903f853ea
Only ignore personal files under .claude
...
Ignoring the whole directory would keep shared settings, rules and
skills out of the repo. Only local settings and worktrees are personal.
2026-10-01 19:57:36 +02:00
Rūdolfs Ošiņš
bd57ef824f
Trim CLAUDE.md and bring it in line with the code
2026-10-01 19:57:26 +02:00
Rūdolfs Ošiņš
92ad43990d
Add ADR 0002 for the backend architecture
...
Record why the backend is split into a shared core and two thin
drivers, and that we intend to move away from radicle-surf.
2026-10-01 19:57: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ņš
b454f29a6e
Test rebuilding a broken COB cache end to end
...
Corrupt a cached issue and patch so the list and counts disagree, and
check that rebuilding brings them back and clears the warning.
2026-10-01 18:20:25 +02:00
Rūdolfs Ošiņš
1f95ad0bb2
Test CI job results end to end
...
Build rad-job from the radicle-job version the app uses, so tests can
record runs. Check the status summary and that runs link to their logs.
2026-10-01 18:20:25 +02:00
Rūdolfs Ošiņš
49cf789cbc
Test the remaining write paths and permissions
...
Reactions, review edits, patch comments, title, description and
assignees, stopping seeding, creating an identity, and that a
contributor can't resolve someone else's review comment.
2026-10-01 18:20:25 +02:00
Rūdolfs Ošiņš
47d55c4418
Check the published verdict in the draft review test
...
Publishing an accept as a reject went unnoticed, since the test only
checked that the review appeared.
2026-10-01 18:20:25 +02:00
Rūdolfs Ošiņš
699e0604f5
Test the keyboard shortcuts end to end
...
Cover the shortcut list, sidebar toggle, editor bold taking priority
over it, new issue, settings, jumping to a repo and stepping through a
patch's commits.
2026-10-01 18:20:25 +02:00
Rūdolfs Ošiņš
e74fc654f1
Ignore ResizeObserver loop notices in e2e tests
...
WebKit reports them as page errors, but they only mean some resize
notifications waited for the next frame.
2026-10-01 18:20:25 +02:00
Rūdolfs Ošiņš
088b13af48
Test the read views and persisted UI state end to end
...
Cover the repo home, file tree, commits, a contributor's branch, patch
filters and the identity page, and check that the sidebar, pins,
hints, diff style and revision sort survive a reload.
2026-10-01 18:20:25 +02:00
Rūdolfs Ošiņš
c7bb072eb5
Test editing, permissions, seeding and the inbox end to end
...
Every write path gets a happy path and the contributor gets the
permission cases the ADR asks for: labels, assignees, state, titles,
comments, deleting, seeding by bare RID and clearing notifications.
2026-10-01 18:20:25 +02:00
Rūdolfs Ošiņš
3edd0306b2
Add e2e helpers for writes and a second peer
...
The UI updates before a write lands, so a reload right after could
cancel it; tests now wait for the command. WebKit also reports such
a cancelled fetch as "Load failed". A delegate and a connected
contributor let tests cover what non-delegates may do.
2026-10-01 18:20:25 +02:00
Rūdolfs Ošiņš
6608856eb2
Test the patch review flows end to end
...
The diff, comment and review logic was only unit-tested in pieces.
These cover the wiring: a code comment keeps its line across a
reload, a review publishes with its verdict and comments, and a
review comment stays resolved.
2026-10-01 18:20:25 +02:00
Rūdolfs Ošiņš
731c552661
Add unit tests for the lib modules
2026-10-01 18:20:25 +02:00
Rūdolfs Ošiņš
92e866f7b8
Move sidebar resize math into lib
...
The first press no longer pairs with an imaginary one at time zero.
2026-10-01 18:20:25 +02:00
Rūdolfs Ošiņš
f0d4d678aa
Focus the last menu item on ArrowUp
...
With nothing focused yet, ArrowUp landed on the second to last item.
2026-10-01 18:20:25 +02:00
Rūdolfs Ošiņš
08057ba962
Move context menu key navigation into lib
2026-10-01 18:20:25 +02:00
Rūdolfs Ošiņš
9a023b625c
Move identity state labels into lib
2026-10-01 18:20:25 +02:00
Rūdolfs Ošiņš
a1c3622f05
Move input validation into lib
2026-10-01 18:20:25 +02:00
Rūdolfs Ošiņš
71c31e234c
Move commit co-author credits into lib
2026-10-01 18:20:25 +02:00
Rūdolfs Ošiņš
6cf4d6010f
Move notification teaser helpers into lib
2026-10-01 18:20:25 +02:00
Rūdolfs Ošiņš
41f93a0921
Share checked-file progress with the patch view
...
It had its own copy of the path a file diff goes by.
2026-10-01 18:20:25 +02:00
Rūdolfs Ošiņš
05b6e01dc8
Set the dock badge in one place
...
The sidebar already follows the count, so the inbox and the poll don't need to set it too.
2026-10-01 18:20:25 +02:00
Rūdolfs Ošiņš
7a42679bdf
Share the list search
...
Issues, patches, commits and the peer selector each had their own
debounce, and issues and patches the same search index. Vitest now
resolves Svelte's browser build, as effects never run in the server one.
2026-10-01 18:20:25 +02:00
Rūdolfs Ošiņš
2c81138871
Share verdict labels with the draft review bar
2026-10-01 18:20:25 +02:00
Rūdolfs Ošiņš
af5ed76ac4
Reuse the file status label in the diff header
2026-10-01 18:20:24 +02:00
Rūdolfs Ošiņš
cbb21e7513
Move diff annotation helpers into lib
...
The snippet and the code thread had their own copies.
2026-10-01 18:20:24 +02:00
Rūdolfs Ošiņš
7d2081a8aa
Move ref sorting out of the peer selector
2026-10-01 18:20:24 +02:00
Rūdolfs Ošiņš
520ffe3d19
Name embeds dropped from Windows paths correctly
2026-10-01 18:20:24 +02:00
Rūdolfs Ošiņš
7a6c88f847
Share one embed upload path in the textarea
...
Drag-drop, attach and paste each had their own copy. Every upload now
shows its own placeholder instead of overwriting the previous one.
2026-10-01 18:20:24 +02:00
Rūdolfs Ošiņš
bda26136c9
Share repo ordering between the sidebar and the inbox
...
Both toggled pins and ordered pinned repos with their own copies.
2026-10-01 18:20:24 +02:00
Rūdolfs Ošiņš
ceeab4e2c6
Share which commits each revision adds
...
Patch and Revision each computed it with their own copy of the loop.
2026-10-01 18:20:24 +02:00
Rūdolfs Ošiņš
9ff5529c9f
Move revision description helpers into lib
...
The commit-list check was written twice, and revision titles and the
commit group collapse rule were untested inside components.
2026-10-01 18:20:24 +02:00
Rūdolfs Ošiņš
c7387ac540
Keep asterisks between spaces in comment previews
...
"2 * 3 * 4" read as emphasis and lost its asterisks. Markdown doesn't
treat a marker with a space just inside it as emphasis.
2026-10-01 18:20:24 +02:00
Rūdolfs Ošiņš
f6a23e0b0f
Move comment preview text into lib
...
The regex-heavy markdown stripping was untested in the component.
2026-10-01 18:20:24 +02:00
Rūdolfs Ošiņš
a15a20393c
Move commit day grouping into lib
...
Today/Yesterday labels and grouping by day had date edge cases that
nothing tested.
2026-10-01 18:20:24 +02:00
Rūdolfs Ošiņš
f267d3d16f
Move comment and commit stepping into lib
...
The order the stepper walks comments in and its wraparound index math
were untested, and ReviewPage ordered its file groups with its own copy.
2026-10-01 18:20:24 +02:00
Rūdolfs Ošiņš
6e1176ffcf
Move discussion timeline grouping into lib
...
The rules for grouping a person's consecutive activity and when to repeat
their name lived in an untested loop in the component.
2026-10-01 18:20:24 +02:00
Rūdolfs Ošiņš
ca3b059a62
Move CI job grouping into lib
...
The status chip's grouping, dedupe and summary rules were untested inside
the component, and a wrong CI status is very visible.
2026-10-01 18:20:24 +02:00
Rūdolfs Ošiņš
974235b1fe
Share comment thread building between patch views
...
Revision and ReviewPage built threads and checked who may resolve a
comment with their own near-identical copies.
2026-10-01 18:20:24 +02:00
Rūdolfs Ošiņš
a43031ad70
Show assignee changes correctly in timelines
...
Assignees were compared by object identity, and each action carries its
own copies, so every change listed everyone as both removed and added.
2026-10-01 18:20:24 +02:00
Rūdolfs Ošiņš
5887220ec7
Move issue and patch timeline building into lib
...
Both views built their activity feed inline, with the shared part written
twice. It now lives in tested modules.
2026-10-01 18:20:24 +02:00
Rūdolfs Ošiņš
89131f3b3a
Keep every review comment in inbox summaries
...
Notification actions were deduplicated by operation and type, so the
several code comments of one published review collapsed into one.
2026-10-01 18:20:24 +02:00
Rūdolfs Ošiņš
5b3bc10a06
Check bare RIDs against already seeded repos
...
The seed form accepts a RID without the rad: prefix but compared it as
typed against lists that have the prefix, so duplicates got through.
2026-10-01 18:20:24 +02:00
Rūdolfs Ošiņš
56e495ba8d
Add unit tests for patch review logic and draft storage
...
Code review is the app's core workflow and had almost no coverage. A
mutation run checked that each test fails when the logic it covers breaks.
2026-10-01 18:20:24 +02:00