Redesign dashboard UI with sidebar navigation, project views, and Jira integration#18
Draft
CryptoRodeo wants to merge 26 commits intomainfrom
Draft
Redesign dashboard UI with sidebar navigation, project views, and Jira integration#18CryptoRodeo wants to merge 26 commits intomainfrom
CryptoRodeo wants to merge 26 commits intomainfrom
Conversation
also simplify run management Signed-off-by: Bryan Ramos <bramos@redhat.com>
Also deduplicate provider config parsing, clarify bash cwd resolution Signed-off-by: Bryan Ramos <bramos@redhat.com>
Both ensureRepo and createPR passed unsanitized external input (repo URLs, PR titles/bodies) through exec() via shell string interpolation. Replaced with a new execCommand() helper that uses execFile with argument arrays, removing the shell entirely. Deleted the hand-rolled shellEscape function. Signed-off-by: Bryan Ramos <bramos@redhat.com>
…ility Silent fallbacks in parseContextFromText and readPrdFromRepo allowed phases 2/3 to proceed on invalid data (empty branch names, corrupt PRD). Now throws immediately with clear error messages. Also added timeout to grepFiles and extracted shared exit-code helper to reduce duplication. Signed-off-by: Bryan Ramos <bramos@redhat.com>
- Threads AbortSignal through waitForApproval so pending runs can be cancelled - Uses assertWithinBase return value instead of discarding it in listFiles/grepFiles - Prevents double-settle in grepFiles when timeout fires alongside process close Signed-off-by: Bryan Ramos <bramos@redhat.com>
…handling Signed-off-by: Bryan Ramos <bramos@redhat.com>
…simplify grep - readPrdFromRepo: distinguish ENOENT from other FS errors; wrap JSON.parse with a descriptive error instead of letting raw SyntaxError propagate - Persist run failure messages to the database so the API can surface them - Replace manual settled-flag pattern in grepFiles with AbortController signal, eliminating the double-settlement race condition Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Bryan Ramos <bramos@redhat.com>
Signed-off-by: Bryan Ramos <bramos@redhat.com>
Signed-off-by: Bryan Ramos <bramos@redhat.com>
Signed-off-by: Bryan Ramos <bramos@redhat.com>
Signed-off-by: Bryan Ramos <bramos@redhat.com>
Should use jira instance set in ENV vars. Signed-off-by: Bryan Ramos <bramos@redhat.com>
Allows creating PRs to deployed Gitlab instances. Signed-off-by: Bryan Ramos <bramos@redhat.com>
Signed-off-by: Bryan Ramos <bramos@redhat.com>
Signed-off-by: Bryan Ramos <bramos@redhat.com>
Signed-off-by: Bryan Ramos <bramos@redhat.com>
- Use nullish coalescing (??) instead of non-null assertions (!) in RunDetailPage - Extract safeParse helper to eliminate scattered JSON.parse try/catch blocks - Use prepared statement for comment retrieval instead of inline query Signed-off-by: Bryan Ramos <bramos@redhat.com>
…r types - Replace per-component useWebSocket() calls with a single WebSocketProvider so all consumers share one connection - Add return types and error handling to fetch helpers (startRunForIssue, addComment, approveRun) - Type broadcast() with WsMessage and tokens with TokenData on the server - Add periodic cache eviction to prevent unbounded Jira cache growth - Validate repos.yaml entries with a type guard instead of a bare cast - Shell-escape localDir/branchName in the git checkout command - Guard relativeTime against NaN dates Signed-off-by: Bryan Ramos <bramos@redhat.com>
Signed-off-by: Bryan Ramos <bramos@redhat.com>
Signed-off-by: Bryan Ramos <bramos@redhat.com>
This adds a pre-flight modal that allows the user to configure the AI provider and model for a set of runs before launching them. This allows the user to use the model they find correct for the issue. Signed-off-by: Bryan Ramos <bramos@redhat.com>
Signed-off-by: Bryan Ramos <bramos@redhat.com>
Signed-off-by: Bryan Ramos <bramos@redhat.com>
…oading state
- Remove duplicate proc.on("error") in grepFiles that could reject a Promise twice
- Add null check in getRetryCount to handle issue keys with no prior runs
- Reset startingRun flag in TicketDetailPage when response has no id
Signed-off-by: Bryan Ramos <bramos@redhat.com>
This makes more sense. Signed-off-by: Bryan Ramos <bramos@redhat.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
UI Overhaul
Jira Integration
Engine Hardening & Bug Fixes
Housekeeping
Demos (TODO - Update these images. They're old now.)
New home page
Project page
Project details page
Run details page
Live run
unshift-approval.mp4
unshift-updated.mp4