Replace Jinja UI with React frontend - #251
Conversation
d315b03 to
0f35f6f
Compare
266a6d8 to
78b1ebe
Compare
78b1ebe to
5941d42
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 72 out of 91 changed files in this pull request and generated no new comments.
Suppressed comments (5)
frontend/index.html:1
- The HTML references
/favicon.ico, but this PR addsfrontend/public/favicon.svg. Unless a.icofile is also present/generated elsewhere, browsers will 404 the icon. Either change the link to/favicon.svg(and set an appropriatetype, e.g.image/svg+xml) or add afavicon.icoasset tofrontend/public/.
frontend/src/hooks/useConfigLoad.ts:1 - The non-null assertions (
find(...)!) can crash at runtime if the backing array changes (e.g., async refresh) or an unexpected id is passed. Guard these lookups and handle the 'not found' case by setting an error + returning toidle(or re-opening the conflict state) instead of throwing.
frontend/src/components/FeaturesModal.tsx:1 - This category grouping is recomputed on every render. In this modal, renders can be frequent (search input, toggles), and
featurescan be large. Wrap this reduction inuseMemokeyed onfeaturesto avoid repeated work and reduce UI jank.
frontend/src/components/FeaturesModal.tsx:1 - Using a
divwithrole=\"button\"as a click target that contains another interactive control (TriStateCheckboxrenders abutton) creates nested interactive elements, which is problematic for keyboard and assistive tech. Prefer making the outer container a real<button type=\"button\">for the scroll action (or make it non-interactive and add a dedicated 'jump to category' button), and ensure the checkbox control is not nested inside another button-like element.
frontend/src/featureDeps.ts:1 reducedDependencyEdgescallsreachableWithin(...)inside a nested loop, which can become expensive with many selected features and dependency edges (repeated DFS per candidate edge). Consider memoizingreachableWithin(start)perstartfor the currentidsset, or computing reachability once per node before the inner loop to avoid repeated graph traversals.
5941d42 to
9906aab
Compare
|
The security thing here doesn't look great here... I'd definitely want that one explained first! |
Yes, this one looks real. I will fix this and other points raised by you. This would have exposed custom build server to the world (bypassing apache), which is not catastrophic but not good either. |
9906aab to
3f150a8
Compare
|
@peterbarker Addressed all your points. |
3f150a8 to
5f78cf4
Compare
|
README.mnd is trivial. DId you mean to remove latest and use master? New findings, ranked
Where I disagree with Codex. Its highest-severity finding was that the build-complete screen offers the download on SUCCESS before the archive exists. That is wrong. The progress updater |
5f78cf4 to
de0d5e7
Compare
Previous review (2026-09-13)Automated review note — AI-generated (Claude), validated against the live diff. Please sanity-check before acting. Reviewed at head Full report (every finding with its evidence, plus what was checked and cleared): https://uav.tridgell.net/DevCallReviews/2026_09_13_AIReview/devcall_pr_reviews.html#prCustomBuild-251 Verdict: REQUEST CHANGES — three small verified bugs. The base is solid:
Your earlier answers in this thread (loopback bind, Bugs
Issues
Notes (non-blocking)
|
Co-authored-by: Cursor <cursoragent@cursor.com>
de0d5e7 to
2898b04
Compare
|
1, 2, 3 were minor bugs which I have addressed. Other points look valid but mostly additive and can be fixed iteratively instead of blocking this PR. I have updated this and tested the fresh version on custom beta. Looks okay mostly. |
Previous review (2026-09-14)Automated review note — AI-generated (Claude), validated against the live diff. Please sanity-check before acting. Re-reviewed at head All three bugs from my previous comment are fixed, so the verdict moves from REQUEST CHANGES to COMMENT. The B3 fix brings in one small regression, described below. I agree the remaining issues and notes can be follow-ups. Previous round
New: introduced by the B3 fix
Checks at this head:
|
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2898b04 to
6f7e26a
Compare
|
the new regression pointed out is also resolved. rest all is good for the merge. PTAL. |
|
Automated review note — AI-generated (Claude), validated against the live diff. Please sanity-check before acting. Re-reviewed at head The regression from my previous comment is fixed and nothing new blocks — no blockers to merge. The verdict stays COMMENT only because I1–I5 remain open as agreed follow-ups. Previous round
New note (follow-up)
Checks at this head: CI: 3 of 3 passing. |
|
My claude/Codex and tridge's. The redis issue looks serious. ● Codex and I ended up with mostly different findings. The one issue we both found is the most serious: builds already stored in Redis will crash the builds endpoints after upgrading. I Confirmed issues
Issues Codex missed
Real, but partly older than this branch
I haven't changed anything. I'd start with 1, 5 and 6, which are small backend fixes, then 2 and 3 in the frontend. |
|
peterbarker
left a comment
There was a problem hiding this comment.
LGTM. @shiv-tyagi says he clears the redis DB as part of the upgrade, so not problem
|
Thanks for approving @peterbarker. Merging. |

Should be merged after #249.
Renames the
webpackage tobackend, adds a React (Vite) frontend that talks to the existing API, and updates docker-compose, README, and flake8 so the new layout runs cleanly locally and in CI.Made with Cursor