ashwini2134/ReviewMind

TypeScript

0

2 commits

updated Sep 29, 2026

See the code

See what people are saying

SourceMessageScoreDate

ReviewMind -A Code Review Agent (r/SideProject)

We built an AI code review agent that remembers our team's coding conventions. Most AI code reviewers can identify common issues like using "print()" instead of proper logging, missing type hints, or weak error handling. But we wanted to explore a different question: Can an AI code reviewerโ€ฆ

1

Sep 29, 2026

README

ReviewMind ๐Ÿง 

Your team's code reviews should remember.

ReviewMind is a memory-driven AI code review agent that learns from developer feedback and applies your team's coding conventions to future reviews.

Unlike traditional AI code reviewers that treat every review as a fresh conversation, ReviewMind uses Hindsight to remember what your team has learned over time.


๐Ÿš€ The Problem

Most AI code reviewers can identify common programming issues, but they don't truly remember how your team prefers to write code.

For example, a team may have a convention:

"Avoid print() statements in production code."

A traditional AI reviewer may flag it once, but a future review does not necessarily carry that team-specific learning forward.

ReviewMind changes this.

It creates a continuous learning loop:

Developer submits code
        โ†“
Hindsight RECALL
        โ†“
Retrieve relevant team knowledge
        โ†“
AI Code Review
        โ†“
Developer Feedback
        โ†“
Hindsight RETAIN
        โ†“
Team knowledge improves
        โ†“
Future reviews become more context-aware

๐Ÿง  How ReviewMind Works

ReviewMind combines three main components:

1. Hindsight Memory

Before reviewing code, ReviewMind recalls relevant team knowledge from Hindsight.

"What coding conventions are relevant to this code?"
                โ†“
        Hindsight RECALL
                โ†“
Relevant team memories

2. AI Code Review

The recalled memories are provided to the AI reviewer along with the submitted code.

The reviewer can therefore consider both:

  • The code itself
  • What the team has learned previously

3. Continuous Learning

After a review, the developer can provide feedback:

  • โœ… Accepted
  • โŒ Rejected
  • โšช Not Relevant

Meaningful feedback is retained in Hindsight.

The next review can then recall that knowledge.


๐Ÿ”„ The Learning Loop

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Submit Code  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
        โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Hindsight RECALL  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   AI Code Review  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Developer Feedback โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
          โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Hindsight RETAIN  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Better Future      โ”‚
โ”‚ Code Reviews       โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

โœจ Example

First Review

A developer submits:

def archive_user(user):
    print("Archiving user:", user)
    return user

ReviewMind recalls the team's existing knowledge and identifies the print() usage based on the team's coding convention.

The developer accepts the feedback.

ReviewMind then stores this learning in Hindsight.


Future Review

Later, a developer submits completely different code:

def delete_user(user):
    print("Deleting user:", user)
    return user

This time, ReviewMind can recall the previously learned team convention.

Hindsight Memory

"Team convention: Avoid print statements
in production code. Use structured logging."

The AI reviewer can use this memory while reviewing the new code.

The important difference

The second review isn't just another isolated AI response.

It is informed by what the team previously learned.


๐Ÿ—๏ธ Architecture

                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                    โ”‚     Developer       โ”‚
                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                               โ”‚
                               โ†“
                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                    โ”‚   ReviewMind UI     โ”‚
                    โ”‚     Next.js         โ”‚
                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                               โ”‚
                               โ†“
                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                    โ”‚   FastAPI Backend   โ”‚
                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                               โ”‚
                  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                  โ†“                         โ†“
        โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”       โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
        โ”‚ Hindsight Cloud  โ”‚       โ”‚      Groq       โ”‚
        โ”‚                  โ”‚       โ”‚                 โ”‚
        โ”‚ RECALL           โ”‚       โ”‚ AI Code Review  โ”‚
        โ”‚ RETAIN           โ”‚       โ”‚                 โ”‚
        โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                 โ”‚                          โ”‚
                 โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                            โ†“
                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                    โ”‚ Review + Memory โ”‚
                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                            โ”‚
                            โ†“
                    Developer Feedback
                            โ”‚
                            โ†“
                    Hindsight RETAIN

๐Ÿ› ๏ธ Tech Stack

LayerTechnology
FrontendNext.js
LanguageTypeScript
StylingTailwind CSS
BackendPython
APIFastAPI
AI ModelGroq
MemoryHindsight
TestingPytest
Version ControlGit + GitHub

๐Ÿ“ Project Structure

ReviewMind/
โ”‚
โ”œโ”€โ”€ backend/
โ”‚   โ”œโ”€โ”€ services/
โ”‚   โ”‚   โ”œโ”€โ”€ hindsight_service.py
โ”‚   โ”‚   โ””โ”€โ”€ llm_service.py
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ tests/
โ”‚   โ”‚   โ”œโ”€โ”€ test_feedback_endpoint.py
โ”‚   โ”‚   โ”œโ”€โ”€ test_hindsight_service.py
โ”‚   โ”‚   โ”œโ”€โ”€ test_llm_service.py
โ”‚   โ”‚   โ”œโ”€โ”€ test_review_pipeline.py
โ”‚   โ”‚   โ””โ”€โ”€ test_review_store.py
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ config.py
โ”‚   โ”œโ”€โ”€ main.py
โ”‚   โ”œโ”€โ”€ models.py
โ”‚   โ”œโ”€โ”€ review_store.py
โ”‚   โ”œโ”€โ”€ requirements.txt
โ”‚   โ””โ”€โ”€ .env.example
โ”‚
โ”œโ”€โ”€ frontend/
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ app/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ dashboard/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ learning/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ memory/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ review/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ settings/
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ page.tsx
โ”‚   โ”‚   โ”‚
โ”‚   โ”‚   โ”œโ”€โ”€ components/
โ”‚   โ”‚   โ””โ”€โ”€ lib/
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ package.json
โ”‚   โ””โ”€โ”€ tsconfig.json
โ”‚
โ”œโ”€โ”€ .gitignore
โ”œโ”€โ”€ .env.example
โ””โ”€โ”€ README.md

โš™๏ธ Getting Started

1. Clone the repository

git clone https://github.com/ashwini2134/ReviewMind.git
cd ReviewMind

2. Backend Setup

Go to the backend:

cd backend

Create a virtual environment:

Windows

python -m venv venv
venv\Scripts\activate

macOS / Linux

python3 -m venv venv
source venv/bin/activate

Install dependencies:

pip install -r requirements.txt

3. Configure Environment Variables

Create a .env file inside backend/.

HINDSIGHT_API_KEY=your_hindsight_api_key
HINDSIGHT_BASE_URL=https://api.hindsight.vectorize.io

GROQ_API_KEY=your_groq_api_key
GROQ_MODEL=openai/gpt-oss-120b

TEAM_ID=reviewmind-demo

โš ๏ธ Never commit your real API keys to GitHub.


4. Start the Backend

From the backend directory:

uvicorn main:app --reload

The API will run at:

http://localhost:8000

Health check:

http://localhost:8000/health

5. Frontend Setup

Open another terminal:

cd frontend

Install dependencies:

npm install

Start the development server:

npm run dev

The frontend will be available at:

http://localhost:3000

๐Ÿ”‘ Hindsight Integration

Hindsight is the core of ReviewMind.

ReviewMind uses two important memory operations:

RECALL

Before a review:

memories = await hindsight.arecall(
    bank_id=team_id,
    query=query,
    budget="mid",
    max_tokens=4096
)

The retrieved memories provide team-specific context to the AI reviewer.

RETAIN

After developer feedback:

hindsight.retain(
    bank_id=team_id,
    content=content,
    context=context,
    metadata={},
    retain_async=False
)

This allows meaningful feedback to become part of the team's future context.


๐ŸŽฏ Why Memory Matters

ReviewMind is designed around the idea that memory should be part of the workflow, not just a feature on the side.

Without memory:

Review โ†’ Forget โ†’ Review โ†’ Forget

With ReviewMind:

Review
  โ†“
Learn
  โ†“
Remember
  โ†“
Recall
  โ†“
Improve

The goal is to make the AI reviewer progressively more aligned with the team's coding practices.


๐Ÿงช Testing

The backend includes automated tests covering:

  • Review pipeline
  • Hindsight service
  • LLM service
  • Feedback endpoint
  • Review store

Run:

pytest

๐Ÿ”ฎ Future Improvements

Potential future development includes:

  • GitHub pull request integration
  • Repository-level memory
  • Multiple team memory banks
  • Authentication
  • Persistent review history
  • Automatic PR reviews
  • More detailed memory analytics
  • IDE integration
  • Support for additional LLM providers

๐Ÿ“Œ Project Status

ReviewMind is currently an MVP demonstrating a memory-driven AI code review workflow using Hindsight.

The core workflow is:

RECALL โ†’ REVIEW โ†’ FEEDBACK โ†’ RETAIN โ†’ IMPROVE

๐Ÿ‘ค Author

Ashwini Ravarala

GitHub:
https://github.com/ashwini2134


โญ If you find this project interesting

Feel free to explore the repository, try the workflow, and build on the idea of AI agents that learn from experience.


Built with

Next.js ยท FastAPI ยท Groq ยท Hindsight ยท TypeScript ยท Python

ashwini2134/ReviewMind

TypeScript

0

2 commits

updated Sep 29, 2026

See the code

See what people are saying

SourceMessageScoreDate

ReviewMind -A Code Review Agent (r/SideProject)

We built an AI code review agent that remembers our team's coding conventions. Most AI code reviewers can identify common issues like using "print()" instead of proper logging, missing type hints, or weak error handling. But we wanted to explore a different question: Can an AI code reviewerโ€ฆ

1

Sep 29, 2026

README

ReviewMind ๐Ÿง 

Your team's code reviews should remember.

ReviewMind is a memory-driven AI code review agent that learns from developer feedback and applies your team's coding conventions to future reviews.

Unlike traditional AI code reviewers that treat every review as a fresh conversation, ReviewMind uses Hindsight to remember what your team has learned over time.


๐Ÿš€ The Problem

Most AI code reviewers can identify common programming issues, but they don't truly remember how your team prefers to write code.

For example, a team may have a convention:

"Avoid print() statements in production code."

A traditional AI reviewer may flag it once, but a future review does not necessarily carry that team-specific learning forward.

ReviewMind changes this.

It creates a continuous learning loop:

Developer submits code
        โ†“
Hindsight RECALL
        โ†“
Retrieve relevant team knowledge
        โ†“
AI Code Review
        โ†“
Developer Feedback
        โ†“
Hindsight RETAIN
        โ†“
Team knowledge improves
        โ†“
Future reviews become more context-aware

๐Ÿง  How ReviewMind Works

ReviewMind combines three main components:

1. Hindsight Memory

Before reviewing code, ReviewMind recalls relevant team knowledge from Hindsight.

"What coding conventions are relevant to this code?"
                โ†“
        Hindsight RECALL
                โ†“
Relevant team memories

2. AI Code Review

The recalled memories are provided to the AI reviewer along with the submitted code.

The reviewer can therefore consider both:

  • The code itself
  • What the team has learned previously

3. Continuous Learning

After a review, the developer can provide feedback:

  • โœ… Accepted
  • โŒ Rejected
  • โšช Not Relevant

Meaningful feedback is retained in Hindsight.

The next review can then recall that knowledge.


๐Ÿ”„ The Learning Loop

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Submit Code  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
        โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Hindsight RECALL  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   AI Code Review  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Developer Feedback โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
          โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Hindsight RETAIN  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Better Future      โ”‚
โ”‚ Code Reviews       โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

โœจ Example

First Review

A developer submits:

def archive_user(user):
    print("Archiving user:", user)
    return user

ReviewMind recalls the team's existing knowledge and identifies the print() usage based on the team's coding convention.

The developer accepts the feedback.

ReviewMind then stores this learning in Hindsight.


Future Review

Later, a developer submits completely different code:

def delete_user(user):
    print("Deleting user:", user)
    return user

This time, ReviewMind can recall the previously learned team convention.

Hindsight Memory

"Team convention: Avoid print statements
in production code. Use structured logging."

The AI reviewer can use this memory while reviewing the new code.

The important difference

The second review isn't just another isolated AI response.

It is informed by what the team previously learned.


๐Ÿ—๏ธ Architecture

                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                    โ”‚     Developer       โ”‚
                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                               โ”‚
                               โ†“
                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                    โ”‚   ReviewMind UI     โ”‚
                    โ”‚     Next.js         โ”‚
                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                               โ”‚
                               โ†“
                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                    โ”‚   FastAPI Backend   โ”‚
                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                               โ”‚
                  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                  โ†“                         โ†“
        โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”       โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
        โ”‚ Hindsight Cloud  โ”‚       โ”‚      Groq       โ”‚
        โ”‚                  โ”‚       โ”‚                 โ”‚
        โ”‚ RECALL           โ”‚       โ”‚ AI Code Review  โ”‚
        โ”‚ RETAIN           โ”‚       โ”‚                 โ”‚
        โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                 โ”‚                          โ”‚
                 โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                            โ†“
                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                    โ”‚ Review + Memory โ”‚
                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                            โ”‚
                            โ†“
                    Developer Feedback
                            โ”‚
                            โ†“
                    Hindsight RETAIN

๐Ÿ› ๏ธ Tech Stack

LayerTechnology
FrontendNext.js
LanguageTypeScript
StylingTailwind CSS
BackendPython
APIFastAPI
AI ModelGroq
MemoryHindsight
TestingPytest
Version ControlGit + GitHub

๐Ÿ“ Project Structure

ReviewMind/
โ”‚
โ”œโ”€โ”€ backend/
โ”‚   โ”œโ”€โ”€ services/
โ”‚   โ”‚   โ”œโ”€โ”€ hindsight_service.py
โ”‚   โ”‚   โ””โ”€โ”€ llm_service.py
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ tests/
โ”‚   โ”‚   โ”œโ”€โ”€ test_feedback_endpoint.py
โ”‚   โ”‚   โ”œโ”€โ”€ test_hindsight_service.py
โ”‚   โ”‚   โ”œโ”€โ”€ test_llm_service.py
โ”‚   โ”‚   โ”œโ”€โ”€ test_review_pipeline.py
โ”‚   โ”‚   โ””โ”€โ”€ test_review_store.py
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ config.py
โ”‚   โ”œโ”€โ”€ main.py
โ”‚   โ”œโ”€โ”€ models.py
โ”‚   โ”œโ”€โ”€ review_store.py
โ”‚   โ”œโ”€โ”€ requirements.txt
โ”‚   โ””โ”€โ”€ .env.example
โ”‚
โ”œโ”€โ”€ frontend/
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ app/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ dashboard/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ learning/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ memory/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ review/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ settings/
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ page.tsx
โ”‚   โ”‚   โ”‚
โ”‚   โ”‚   โ”œโ”€โ”€ components/
โ”‚   โ”‚   โ””โ”€โ”€ lib/
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ package.json
โ”‚   โ””โ”€โ”€ tsconfig.json
โ”‚
โ”œโ”€โ”€ .gitignore
โ”œโ”€โ”€ .env.example
โ””โ”€โ”€ README.md

โš™๏ธ Getting Started

1. Clone the repository

git clone https://github.com/ashwini2134/ReviewMind.git
cd ReviewMind

2. Backend Setup

Go to the backend:

cd backend

Create a virtual environment:

Windows

python -m venv venv
venv\Scripts\activate

macOS / Linux

python3 -m venv venv
source venv/bin/activate

Install dependencies:

pip install -r requirements.txt

3. Configure Environment Variables

Create a .env file inside backend/.

HINDSIGHT_API_KEY=your_hindsight_api_key
HINDSIGHT_BASE_URL=https://api.hindsight.vectorize.io

GROQ_API_KEY=your_groq_api_key
GROQ_MODEL=openai/gpt-oss-120b

TEAM_ID=reviewmind-demo

โš ๏ธ Never commit your real API keys to GitHub.


4. Start the Backend

From the backend directory:

uvicorn main:app --reload

The API will run at:

http://localhost:8000

Health check:

http://localhost:8000/health

5. Frontend Setup

Open another terminal:

cd frontend

Install dependencies:

npm install

Start the development server:

npm run dev

The frontend will be available at:

http://localhost:3000

๐Ÿ”‘ Hindsight Integration

Hindsight is the core of ReviewMind.

ReviewMind uses two important memory operations:

RECALL

Before a review:

memories = await hindsight.arecall(
    bank_id=team_id,
    query=query,
    budget="mid",
    max_tokens=4096
)

The retrieved memories provide team-specific context to the AI reviewer.

RETAIN

After developer feedback:

hindsight.retain(
    bank_id=team_id,
    content=content,
    context=context,
    metadata={},
    retain_async=False
)

This allows meaningful feedback to become part of the team's future context.


๐ŸŽฏ Why Memory Matters

ReviewMind is designed around the idea that memory should be part of the workflow, not just a feature on the side.

Without memory:

Review โ†’ Forget โ†’ Review โ†’ Forget

With ReviewMind:

Review
  โ†“
Learn
  โ†“
Remember
  โ†“
Recall
  โ†“
Improve

The goal is to make the AI reviewer progressively more aligned with the team's coding practices.


๐Ÿงช Testing

The backend includes automated tests covering:

  • Review pipeline
  • Hindsight service
  • LLM service
  • Feedback endpoint
  • Review store

Run:

pytest

๐Ÿ”ฎ Future Improvements

Potential future development includes:

  • GitHub pull request integration
  • Repository-level memory
  • Multiple team memory banks
  • Authentication
  • Persistent review history
  • Automatic PR reviews
  • More detailed memory analytics
  • IDE integration
  • Support for additional LLM providers

๐Ÿ“Œ Project Status

ReviewMind is currently an MVP demonstrating a memory-driven AI code review workflow using Hindsight.

The core workflow is:

RECALL โ†’ REVIEW โ†’ FEEDBACK โ†’ RETAIN โ†’ IMPROVE

๐Ÿ‘ค Author

Ashwini Ravarala

GitHub:
https://github.com/ashwini2134


โญ If you find this project interesting

Feel free to explore the repository, try the workflow, and build on the idea of AI agents that learn from experience.


Built with

Next.js ยท FastAPI ยท Groq ยท Hindsight ยท TypeScript ยท Python

Languages

TypeScript

55.2%

Python

43.5%

CSS

1.0%