--- title: DiffSense emoji: 🔎 colorFrom: gray colorTo: yellow sdk: gradio sdk_version: 6.5.1 app_file: app.py pinned: false hf_oauth: true hf_oauth_scopes: - inference-api license: mit short_description: Private PR review for local AI teams. tags: - build-small - gradio - code-review - local-ai - backyard-ai - best-use-of-codex - best-agent - off-brand - best-demo - best-minicpm-build - nemotron-hardware-prize - best-use-of-modal - tiny-titan models: - JetBrains/Mellum2-12B-A2.5B-Instruct - nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16 - nvidia/NVIDIA-Nemotron-3-Nano-4B-BF16 - openbmb/MiniCPM-V-4.6 --- # DiffSense Private, offline-first pull request review for teams that cannot send proprietary code to cloud review bots. Paste a unified diff or a public GitHub PR URL and DiffSense returns severity-tagged findings, inline comments, and structured JSON that can be copied into a PR review. The prototype works without a GPU by using deterministic review rules, then optionally adds Mellum, Nemotron, MiniCPM-V, and Modal provider passes when credentials or endpoints are available. ## Why We Built It Code review is one of the highest-leverage daily engineering workflows, but most AI reviewers require sending private code to a hosted SaaS. That is a deal-breaker for teams working with customer data, internal APIs, security-sensitive systems, or unreleased products. DiffSense is the small-model version of that workflow: useful immediately, inspectable, and designed so the core review loop can run locally. ## What Works Now - Unified diff parser with file and hunk awareness. - Inline custom diff viewer built in Gradio. - Deterministic review findings for security, logic, maintainability, and test risks. - Public GitHub PR URL fetching through the PR `.diff` endpoint. - Optional Nemotron 3 Nano routing/triage pass. - Optional Tiny Titan 4B checker pass. - Optional MiniCPM-V 4.6 vision pass for PR screenshots, architecture diagrams, and UI diffs. - Optional Modal bridge through `DIFFSENSE_MODAL_ENDPOINT`. - Structured JSON output with file, hunk, line, severity, category, comment, and suggestion. - Optional model-assisted summary using `JetBrains/Mellum2-12B-A2.5B-Instruct` through the Hugging Face Inference API when OAuth is available, or a local checkpoint when mounted under `/data`. - ZeroGPU/bucket-aware model runtime status for local checkpoints mounted from the `build-small-hackathon/DiffSense` bucket. ## Hackathon Track DiffSense is entered in the Backyard AI track: a practical tool for developers that solves a real daily problem. Prize/badge targets: - Best Use of Codex: Codex is being used as an active build partner and will be credited in commits. - Best Agent: the product is structured as a review pipeline: parse, classify, review, summarize, render. - Off Brand: the app uses a custom Gradio interface instead of the default chat UI. - Best Demo: the workflow is easy to show in under two minutes with a real risky diff. - Best MiniCPM Build: MiniCPM-V 4.6 is integrated for optional image/diagram context. - Nemotron Hardware Prize: Nemotron 3 Nano is integrated for optional agentic routing. - Best Use of Modal: the app includes a provider bridge for a Modal-hosted review endpoint via `DIFFSENSE_MODAL_ENDPOINT`. - Tiny Titan: a <=4B Nemotron 3 Nano checker is integrated as a separate optional pass. ## Planned Model Stack All planned models are under the Build Small 32B parameter cap. | Role | Model | Status | | --- | --- | --- | | Code review summary | JetBrains Mellum 2 12B Instruct | Optional HF inference hook + `/data` local checkpoint path implemented | | Provider | Hugging Face Inference API | Optional OAuth-backed summary provider | | Agentic routing | NVIDIA Nemotron 3 Nano | Optional HF inference hook + `/data` local checkpoint path implemented | | Tiny checker | NVIDIA Nemotron 3 Nano 4B | Optional HF inference hook + `/data` local checkpoint path implemented | | Visual PR context | OpenBMB MiniCPM-V 4.6 | Optional image upload + provider/local checkpoint readiness implemented | | Runtime | Modal | Optional provider bridge via `DIFFSENSE_MODAL_ENDPOINT` implemented | The current app intentionally keeps a deterministic fallback so the demo remains reliable even if a hosted model endpoint is cold, rate-limited, or unavailable. ## Local Checkpoint Layout The Space is configured with a read/write bucket mounted at `/data`, so model files can be staged without committing checkpoints to the app repo. DiffSense checks these paths at runtime: ```text /data/models/mellum2-instruct /data/models/nemotron-3-nano-30b-a3b /data/models/nemotron-3-nano-4b /data/models/minicpm-v-4.6 ``` Each directory is considered ready when it contains a `config.json`. If a Hugging Face provider does not serve a sponsor model, the app reports the provider limitation cleanly and keeps the deterministic review running. ## Usage 1. Open the Space. 2. Paste a unified diff, paste a public GitHub PR URL, or click **Load sample diff**. 3. Click **Review diff**. 4. Read the inline comments and copy the structured JSON into your PR workflow. For public GitHub PRs, paste the PR URL directly. DiffSense fetches the `.diff` version with a short timeout. ## Output Shape ```json { "file": "src/auth.py", "hunk": "@@ -1,9 +1,13 @@", "line": 11, "severity": "critical", "category": "security", "comment": "The change disables a verification check, which can turn a trusted boundary into a bypass.", "suggestion": "Keep verification enabled and add a narrowly scoped test fixture for local development.", "source": "deterministic" } ``` ## Privacy The deterministic review path runs inside the app process and does not send the pasted diff to any external model. If a public PR URL is pasted, the app fetches its public `.diff` over the network. If an optional hosted model pass is enabled, the diff excerpt and deterministic findings are sent to the selected Hugging Face Inference model using the signed-in user's OAuth token. If a local checkpoint is mounted under `/data/models`, that local path is preferred for text-model passes. ## Local Run ```bash pip install -r requirements.txt python app.py ``` Then open `http://localhost:7860`. ## Demo Script 1. Start with the privacy pain: cloud review bots are useful, but private code cannot always leave the machine. 2. Load the sample diff. 3. Show critical findings: hardcoded secret, disabled JWT verification, insecure pickle load, disabled TLS verification. 4. Show the JSON output as a practical artifact for PR automation. 5. Toggle the optional model summary to show the small-model enhancement path. ## Submission Artifacts - [Demo video](https://drive.google.com/file/d/1PBLGO10Wg94jX4OmYVDh63fxFcK6j_kp/view?usp=sharing) - [HF technical paper](HF_TECH_PAPER.md) - [LinkedIn post draft](LINKEDIN_POST.md) - [Demo video pitch](DEMO_VIDEO_PITCH.md) ## Social Post Draft DiffSense is our Build Small hackathon project: a private PR reviewer for teams that cannot send proprietary code to cloud bots. Paste a diff or public PR URL, get inline severity-tagged review comments and structured JSON. The app works offline first for pasted diffs, with optional small-model summarization through Mellum 2. Built with Gradio, Codex, and open-weight model targets under 32B. #BuildSmall #HuggingFace #Gradio #LocalAI #CodeReview