Inspiration
Code reviews are a critical but often tedious part of the development workflow. We noticed that developers frequently context-switch between the terminal, their IDE, and browser-based Git platforms just to review diffs, check for bugs, and write commit messages.
We were inspired to build NovaDiff to create a unified, local-first dashboard that brings the power of specialized AI agents directly to the staging area. We wanted a tool that doesn't just show you what changed, but actively helps you understand it, find bugs before they are committed, and even quizzes you to ensure you actually comprehend the code you are about to push! Building this entirely in the Jac programming language gave us the perfect opportunity to test its capabilities for high-level agent orchestration.
What it does
NovaDiff is a full-stack Git dashboard that brings AI-powered code review and assistance directly to your local development environment. It allows you to:
- View staged and unstaged changes with rich syntax highlighting.
- Run automated code reviews using specialized AI agents for bugs, security vulnerabilities (OWASP Top 10), and code quality.
- Interact with your codebase in natural language to ask questions about specific diffs.
- Generate high-quality, conventional commit messages automatically.
- Enforce code comprehension through an interactive quiz that locks the commit button until passed.
How we built it
We leveraged the Jac (Jaseci) ecosystem to build a full-stack application with a surprisingly small footprint:
- The Backend (
main.jac): We defined "walkers" as API endpoints to handle direct Git subprocess calls (stage, unstage, commit, push) and to orchestrate the LLM prompts. - The Frontend (
ui.jac): Built using Jac's UI blocks (which compile to a React-based interface), providing a dark-mode, high-contrast diff viewer. - The AI Brain: We used the
byllmlibrary connected to Groq's LLaMA 3.3 model. This allowed us to run multiple specialized agents (Bug Hunter, Security Agent, Quality Agent) with blazing-fast inference speeds. - The Twist: We implemented a "Comprehension Quiz" feature. In strict mode, the system can lock the commit action until the developer passes a short quiz generated by the AI based on the diff!
Challenges we ran into
- Async UI State: One of our biggest hurdles was debugging the asynchronous communication between the compiled Jac frontend and the backend walkers. We ran into specific issues with handling
awaitandevalin the generated JavaScript, requiring us to dive deep into the transpiled code to ensure smooth state updates. - Diff Parsing: Rendering raw Git diff output with accurate line-by-line syntax highlighting (especially distinguishing between staged and unstaged chunks) in a custom UI was a complex parsing challenge.
- Prompt Engineering: Tuning the prompts for the Bug Hunter and Security agents to ensure they gave specific line-level feedback rather than generic programming advice.
Accomplishments that we're proud of
- Pure Jac Implementation: Successfully building a complex, full-stack application with a React-style frontend and a robust backend entirely in the Jac programming language.
- Parallel Agent Orchestration: Creating a seamless experience where multiple AI agents run in parallel to provide a comprehensive code review in seconds.
- The Quiz System: Implementing the "Quiz" feature as a novel approach to prevent "blind committing" and ensure developers truly understand their codebase.
What we learned
- The Power of Jac: We learned how effective Jac is at reducing the boilerplate needed to connect a frontend UI to complex backend AI workflows.
- Local-First AI: We realized that AI assistance is much more valuable when it is tightly integrated into the developer's existing "muscle memory" actions (like
git addandgit commit) rather than sitting in a disconnected side-chat.
What's next for NovaDiff: AI Git Assistant
- CI/CD Integration: Expanding NovaDiff to run as a GitHub Action or pre-commit hook to automate reviews before Pull Requests are created.
- Support for More Models: Adding the ability to choose between different open-source and proprietary LLMs for cost and quality optimization.
- Adaptive Quizzing: Making the comprehension quizzes more dynamic based on the complexity of the diff and the developer's historical performance.
Built With
- byllm
- git
- groq
- jac
- jaclang
- jaseci
- javascript
- python
- vite
Log in or sign up for Devpost to join the conversation.