Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
217 commits
Select commit Hold shift + click to select a range
a7b52d6
Integrate Yuval's quality scoring with Andre's latency benchmarks
yuvalluria Dec 18, 2025
5311702
Change LLM from Llama 3.1 to Qwen 2.5 7B
yuvalluria Dec 18, 2025
06bea6d
feat(ui): Replace UI with Test_AA version
yuvalluria Dec 18, 2025
5db6552
feat(data): Add use case config files for UI
yuvalluria Dec 18, 2025
65b02e3
feat(ui): Replace with full POC UI (poc_app.py)
yuvalluria Dec 18, 2025
d0b96b6
fix(ui): Remove A100-80 from hardware recommendations
yuvalluria Dec 18, 2025
3031629
fix(ui): Fix HTML rendering bugs in Task Datasets and Technical Spec
yuvalluria Dec 18, 2025
71a7f83
feat(recommendation): BLIS-based Model+Hardware scoring with ACTUAL data
yuvalluria Dec 18, 2025
35f5064
chore: Add plotly dependency to requirements.txt
yuvalluria Dec 18, 2025
bceb9dc
fix(recommendation): Show Model+Hardware combinations with BLIS metrics
yuvalluria Dec 18, 2025
e92ffff
fix(blis): Correct path to benchmarks_BLIS.json
yuvalluria Dec 18, 2025
7740655
fix(blis): Ensure BLIS data loads from correct path
yuvalluria Dec 18, 2025
e74ddd5
chore: Remove backup file
yuvalluria Dec 18, 2025
3fd7c55
Merge pull request #34 from yuvalluria/merge-yuvalluria
anfredette Dec 18, 2025
5472fb2
docs: Update CLAUDE.md to reflect current codebase state
anfredette Dec 18, 2025
5479070
Merge pull request #36 from anfredette/merge-yuvalluria-anfredette
anfredette Dec 18, 2025
e9453b4
Merge remote-tracking branch 'upstream/main' into merge-yuvalluria
anfredette Dec 18, 2025
7129075
Merge pull request #37 from anfredette/merge-yuvalluria
anfredette Dec 18, 2025
ae93ab8
doc: Add document describing the current recommendation flow
anfredette Dec 18, 2025
63aca27
Merge pull request #38 from anfredette/recommendation-flow
anfredette Dec 18, 2025
0c0b70a
refactor: Move Technical Spec card inline with SLO cards
anfredette Dec 19, 2025
521bc53
refactor: Clean up UI - reorganize workload profile and remove dead code
anfredette Dec 19, 2025
6c537ad
refactor: Remove QPS validation warnings from workload insights
anfredette Dec 19, 2025
508ba57
Merge pull request #40 from anfredette/post-merge-tweaks
anfredette Dec 19, 2025
5d48b19
feat: Add ranked recommendations with backend API integration
anfredette Dec 19, 2025
9752327
Merge pull request #41 from anfredette/recommendation-display
anfredette Dec 20, 2025
4c5e664
docs: Reorganize CONTRIBUTING.md with consolidated Git workflow
anfredette Dec 22, 2025
03becd5
Merge pull request #42 from anfredette/update-contributing
anfredette Dec 22, 2025
4d281ce
feat: use 'uv' for Python dependency management
amito Dec 25, 2025
34777a1
feat: "Containerize" Compass workloads using Docker
amito Dec 29, 2025
678ada4
refactor: move benchmark and weighted score loading from ui to backend
amito Dec 30, 2025
37d219a
Merge pull request #44 from amito/amit-api-work
anfredette Jan 5, 2026
fdf5c24
Merge pull request #45 from amito/amit-docker-work
anfredette Jan 6, 2026
dd401a6
fix: Use raw AA benchmark accuracy instead of composite
yuvalluria Dec 23, 2025
7eced51
Red Hat branding: 4 tabs, remove emojis, red/black/white theme
yuvalluria Dec 25, 2025
86fe3ea
feat: Enhanced cost calculation with non-linear scoring and multi-pro…
yuvalluria Dec 25, 2025
30b7f87
feat: UI cleanup - Remove extraction icons, black backgrounds, red bo…
yuvalluria Dec 25, 2025
04f6c63
feat: Update Task Datasets to December 2024 methodology
yuvalluria Dec 25, 2025
8b1b0bb
fix: Best Accuracy shows unique models only
yuvalluria Dec 25, 2025
14e0d94
Move recommendations table to 'Explore More Options' dialog
yuvalluria Dec 26, 2025
33adab8
UI improvements: white text in dialog, fix SLO change not updating re…
yuvalluria Dec 28, 2025
30faab0
Add percentile selector (Mean/P90/P95/P99) for SLO comparison
yuvalluria Dec 28, 2025
a6f2170
Expose TPS percentiles (tps_mean, tps_p90, tps_p95, tps_p99) from ben…
yuvalluria Dec 28, 2025
1922f62
Fix percentile selector styling: white text, visible border, P95 defa…
yuvalluria Dec 28, 2025
f9e76b7
Fix selectbox label color to white
yuvalluria Dec 28, 2025
3d24e45
Display latency values based on selected percentile (Mean/P90/P95/P99)
yuvalluria Dec 28, 2025
2d3f4b7
Add per-percentile SLO ranges from benchmark data
yuvalluria Dec 29, 2025
c57e796
Change progress bar and spinner to Red Hat red color
yuvalluria Dec 29, 2025
156c57f
Fix: Add Optional import to schema.py
yuvalluria Dec 29, 2025
b434b90
Fix: Sort Best Latency by actual TTFT (lowest=best), not capped laten…
yuvalluria Dec 29, 2025
448152c
Implement accuracy-first recommendation strategy
yuvalluria Dec 29, 2025
9110c58
Use GLOBAL benchmark ranges for SLO sliders
yuvalluria Dec 29, 2025
9c450bb
Improve SLO input styling: labels above inputs, white borders
yuvalluria Dec 29, 2025
6250bae
Fix SLO inputs: red arrows, step=1 for any value
yuvalluria Dec 29, 2025
e3a1d45
Simplify predefined prompts and remove scores from Task Datasets
yuvalluria Dec 29, 2025
4944200
Add benchmark ranges table with 4 percentiles (Mean, P90, P95, P99) p…
yuvalluria Dec 29, 2025
0e07cfe
Remove all emojis and apply Red Hat theme throughout
yuvalluria Dec 29, 2025
07cb7a8
Make benchmark info text white and bold for better visibility
yuvalluria Dec 29, 2025
b9ad51a
UI improvements: Clean slider design with white circle on red track
yuvalluria Dec 29, 2025
955bc54
feat: Enhanced latency scoring with use-case specific benchmarks
yuvalluria Dec 29, 2025
ad90959
feat: MaxMin balanced scoring, carousel cards with arrows, improved S…
yuvalluria Dec 30, 2025
efd9b5c
fix: Bigger carousel cards, metric dropdown state fix
yuvalluria Dec 30, 2025
f937e76
fix: Cards bigger, percentile tooltip dynamic, improved dropdown state
yuvalluria Dec 30, 2025
b4e9ea1
fix: Balanced scoring now 70% accuracy + 30% operational
yuvalluria Dec 30, 2025
20d63d7
fix: Number input state persistence - remove value param when using key
yuvalluria Dec 30, 2025
0453275
fix: Carousel arrows integrated with cards, remove st.rerun() bug
yuvalluria Dec 30, 2025
8807cac
fix: Update Balanced formula docs, remove Complexity, fix arrow navig…
yuvalluria Dec 30, 2025
78fee2c
fix: Model size matching in accuracy scorer - GPT-OSS 20B vs 120B now…
yuvalluria Dec 30, 2025
5d1f87b
fix: Reset dialog states when clicking carousel arrows to prevent tab…
yuvalluria Dec 30, 2025
f327e4f
feat: Add TTFT and Throughput metrics to carousel cards
yuvalluria Dec 30, 2025
de69953
fix: Use correct field name tps_mean for throughput in cards
yuvalluria Dec 30, 2025
3a655e1
fix: Hardware comparison in interpolated data - same GPU count for fa…
yuvalluria Dec 30, 2025
9467144
feat: Add 10 new high-value reasoning models with interpolated perfor…
yuvalluria Dec 31, 2025
04d4773
feat: Enhanced interpolation with accuracy factor
yuvalluria Dec 31, 2025
97b1ee0
fix: Rename Qwen3 to match CSV, UI uses backend only
yuvalluria Dec 31, 2025
64d6729
fix: Best Accuracy now picks fastest config when accuracy tied
yuvalluria Dec 31, 2025
de79fc9
feat: Add Validated/Estimated badge to recommendation cards
yuvalluria Dec 31, 2025
8d40a68
fix: Best Accuracy tie-breaker now uses TTFT directly (not latency_sc…
yuvalluria Dec 31, 2025
c0957d4
fix: Handle None slo_data in benchmark_recommendation
yuvalluria Dec 31, 2025
165f65c
fix: Use correct API endpoint format in get_enhanced_recommendation
yuvalluria Dec 31, 2025
87acf79
fix: Load TPS from both tps_mean and tokens_per_second_mean fields
yuvalluria Dec 31, 2025
1c4b2f0
feat: ML interpolation for missing benchmark scores
yuvalluria Jan 1, 2026
63f8c33
feat: Robust ML interpolation for benchmark scores
yuvalluria Jan 1, 2026
95d960c
fix: Support both old and new CSV column names in usecase_quality_scorer
yuvalluria Jan 1, 2026
17c1d59
fix: SLO filtering now works correctly - use fetched data instead of …
yuvalluria Jan 5, 2026
4bc1abb
feat: Show percentile label (Mean/P90/P95/P99) next to ITL/TTFT/E2E a…
yuvalluria Jan 5, 2026
b068d17
fix: Display per-replica GPU count instead of total GPUs on cards
yuvalluria Jan 5, 2026
5c0037e
feat: Standardize model names, filter stats, outlier caps, uppercase …
yuvalluria Jan 5, 2026
0bb284d
feat: Task-optimized Balanced scoring with per-use-case bonuses
yuvalluria Jan 5, 2026
48a36d5
fix: Update function calls from load_204_models to load_206_models
anfredette Jan 6, 2026
9e4d994
Merge pull request #48 from amito/feature/recommendations-1
anfredette Jan 6, 2026
c416b74
refactor: Show all SLO metrics with individual percentile selectors
anfredette Jan 6, 2026
80a7c0c
feat: Add backend APIs for SLO defaults and expected RPS calculation
anfredette Jan 6, 2026
3cee8e5
fix: Pass correct Tech Specs values to recommendation API
anfredette Jan 6, 2026
e42e779
feat: Add /api/v1/extract endpoint for LLM-based intent extraction
anfredette Jan 6, 2026
eedcb64
Merge pull request #53 from anfredette/pr48-updates
anfredette Jan 6, 2026
6e31c36
fix: Fix navigation issues and expand option list inline
anfredette Jan 7, 2026
14b6b69
Merge pull request #56 from anfredette/nav-fixes
anfredette Jan 7, 2026
77e06c0
fix: Improve LLM prompt for better use case classification
yuvalluria Jan 7, 2026
fb7155c
Merge pull request #55 from yuvalluria/fix/improve-use-case-classific…
anfredette Jan 8, 2026
85d9f68
feat: Add interactive PRIORITIES section with weight controls
anfredette Jan 7, 2026
8ccc4a6
feat: Apply task-specific bonus to accuracy score during capacity pla…
anfredette Jan 8, 2026
f0969eb
feat: Add multi-level tie-breaking and increase top_n to 10
anfredette Jan 8, 2026
92483fb
chore: Update base GPU pricing in model catalog
anfredette Jan 8, 2026
1ff7061
refactor: Rename postgres-* Makefile targets to db-*
anfredette Jan 8, 2026
5481eb1
feat: db support for loading multiple db files
anfredette Jan 8, 2026
0eb44c9
Merge pull request #58 from anfredette/db-loading
anfredette Jan 9, 2026
3a06dca
Merge pull request #57 from anfredette/tech-spec-prio
anfredette Jan 9, 2026
e2c7731
Add support for Podman
namasl Dec 5, 2025
f9a1628
Update docs
namasl Dec 5, 2025
e456110
Allow kind cluster to work with podman
namasl Dec 5, 2025
06f02c8
Update definition of container tool
namasl Dec 5, 2025
be64513
Revert podman with kind
namasl Dec 8, 2025
de3a02f
Add kind support warning
namasl Dec 8, 2025
a461ddc
fix: Improve container runtime detection and documentation
anfredette Jan 9, 2026
e8d100c
Merge pull request #39 from namasl/podman
anfredette Jan 9, 2026
6f05a0d
refactor: Remove unused functions from UI layer
anfredette Jan 9, 2026
8743298
Merge pull request #59 from anfredette/remove-unused-code
anfredette Jan 10, 2026
fd10812
refactor: Rename to NeuralNav and remove Red Hat branding
anfredette Jan 10, 2026
de4c173
refactor: Complete Compass to NeuralNav renaming
anfredette Jan 10, 2026
e4101c8
Merge pull request #60 from anfredette/rename-to-neuralnav
anfredette Jan 10, 2026
309f461
Minor fixes to MIGRATION_COMPASS_TO_NEURALNAV
anfredette Jan 10, 2026
9288431
Merge pull request #61 from anfredette/rename-to-neuralnav
anfredette Jan 10, 2026
41f0d14
fix: Update PRIORITIES UI from LLM-extracted priorities
yuvalluria Jan 11, 2026
bc8226b
refactor: Implement capped latency scoring using SLO ranges
anfredette Jan 11, 2026
6265b43
fix(ui): remove attribution in UI
amito Jan 1, 2026
732dab0
Merge pull request #63 from yuvalluria/fix/priority-extraction-from-n…
anfredette Jan 12, 2026
7dc7da3
feat(ui): make extended recommendation list sortable
amito Jan 12, 2026
44982a0
chore: Update .gitignore and remove unused files from tracking
yuvalluria Jan 13, 2026
152c81d
chore: Remove redundant and merged data files from tracking
yuvalluria Jan 13, 2026
c91def2
Merge pull request #66 from amito/feature/ui-sortable-table-1
anfredette Jan 13, 2026
cd537c3
docs: Add refactoring plan for recommendation API cleanup
anfredette Jan 10, 2026
258a429
refactor: Remove obsolete recommendation API fields
anfredette Jan 10, 2026
c0893d2
refactor: Replace get_enhanced_recommendation with fetch_ranked_recom…
anfredette Jan 10, 2026
91a0af6
refactor: Require explicit SLOs and remove unused model_evaluator
anfredette Jan 10, 2026
a2189ab
refactor: Remove dead code from UI after API refactoring
anfredette Jan 10, 2026
bd4f2a6
refactor: Remove 4 obsolete API endpoints
anfredette Jan 10, 2026
32abd0b
refactor: Remove unused model_evaluator module and validate_recommend…
anfredette Jan 12, 2026
61c7a73
refactor: Add workload-profile API and consolidate data files
anfredette Jan 12, 2026
c1d12cf
fix: Calculate e2e_ms from ttft_ms + itl_ms * output_tokens
anfredette Jan 12, 2026
a98b87e
Increase number of users to 300 in examples
anfredette Jan 13, 2026
b6075da
Merge pull request #62 from anfredette/refactor-recommendation-api
anfredette Jan 13, 2026
42d70aa
Merge pull request #68 from yuvalluria/chore/cleanup-gitignore-remove…
anfredette Jan 14, 2026
17c4d06
docs: Clarify git commit rules for Claude in CLAUDE.md
anfredette Jan 14, 2026
1192ce6
Merge pull request #72 from anfredette/claude-commit-rules
anfredette Jan 16, 2026
95f6bdf
fix(ui): automatically navigate between tabs following user approval
amito Jan 14, 2026
2912d06
feat: Add Deployment tab with auto-generated YAML files
anfredette Jan 14, 2026
8a2cb90
Merge pull request #73 from amito/bugfix/ui-navigation
anfredette Jan 17, 2026
1def906
refactor(ui): Remove unnecessary HTML div wrapper from text area
anfredette Jan 18, 2026
24ed213
docs: Add ARCHITECTUREv2.md high-level architecture document
anfredette Jan 18, 2026
db93407
Merge pull request #69 from anfredette/deployment
anfredette Jan 19, 2026
48cb809
Merge pull request #77 from anfredette/ui-space
anfredette Jan 19, 2026
4afbde5
docs: Add component diagrams and extensibility section to ARCHITECTUR…
anfredette Jan 19, 2026
27b835d
docs: Add work-in-progress note to ARCHITECTUREv2.md
anfredette Jan 19, 2026
9d3a221
Merge pull request #76 from anfredette/architecture-v2
anfredette Jan 19, 2026
73651a5
feat: Add GPU preference extraction and filtering from natural language
yuvalluria Jan 12, 2026
c9023dd
Merge pull request #65 from yuvalluria/feat/gpu-preference-extraction
anfredette Jan 20, 2026
4069651
Add benchmark files back
anfredette Jan 20, 2026
d327199
feat: Filter recommendations by extracted hardware preferences
anfredette Jan 21, 2026
0531a53
fix: Prevent incorrect priority inference from use case and hardware
anfredette Jan 21, 2026
91f096e
docs: Add lightspeed-core integration analysis for production archite…
anfredette Jan 21, 2026
28262d1
Merge pull request #79 from anfredette/lightspeed-eval
amito Jan 22, 2026
4e5db8e
fix(ui): Fix session state error for task preset buttons
anfredette Jan 22, 2026
4fc5065
Merge pull request #80 from anfredette/fix-buttons
amito Jan 22, 2026
74e7aa5
Merge pull request #64 from anfredette/latency-scoring
amito Jan 22, 2026
67c11ff
Merge pull request #78 from anfredette/gpu-preference
amito Jan 22, 2026
23ed61e
docs: Add agentic design document
anfredette Feb 2, 2026
2a1f8db
refactor: Extract shared schemas module (Phase 1)
anfredette Feb 4, 2026
a75a7a7
refactor(api): Split monolithic routes.py into modular route files
anfredette Feb 5, 2026
559cddf
refactor: Create Intent Extraction Service module
anfredette Feb 5, 2026
bea61f8
refactor: Create Specification Service module
anfredette Feb 5, 2026
abbce8c
refactor: Create Configuration Service and Cluster modules
anfredette Feb 5, 2026
c3979b5
refactor: Reorganize Recommendation Service module
anfredette Feb 5, 2026
9434be1
docs: Update CLAUDE.md to reflect new backend structure
anfredette Feb 5, 2026
b029503
fix: Update Makefile to use new API entry point
anfredette Feb 5, 2026
8913433
fix: Correct data file paths after recommendation module refactoring
anfredette Feb 5, 2026
afe7a64
refactor: Rename recommendation module files to match ARCHITECTUREv2
anfredette Feb 5, 2026
07c4cdf
fix: Update import paths and docs after refactoring
anfredette Feb 5, 2026
dcf2609
refactor: Standardize all API endpoints under /api/v1/ prefix
anfredette Feb 6, 2026
a783c03
Merge pull request #82 from anfredette/refactor
anfredette Feb 6, 2026
72fe6d6
refactor: Remove unused *Service facade classes
anfredette Feb 6, 2026
ffa22a1
Merge pull request #83 from anfredette/refactor
anfredette Feb 6, 2026
7c40116
Move old docs to archive directory
anfredette Feb 6, 2026
d48d257
Merge pull request #84 from anfredette/refactor
anfredette Feb 6, 2026
a9e746b
refactor: Reorganize data/ directory into benchmarks, configuration, …
anfredette Feb 6, 2026
3b2b7b0
Merge pull request #85 from anfredette/refactor
anfredette Feb 6, 2026
73d2e6c
refactor: Standardize on uv and clean up top-level directory
anfredette Feb 6, 2026
18c995b
Merge pull request #86 from anfredette/refactor
anfredette Feb 6, 2026
ffdad65
refactor: Convert relative Python imports to absolute imports
anfredette Feb 8, 2026
830ca00
Remove unused imports
anfredette Feb 8, 2026
469b9d6
refactor: Restructure to PyPA src layout (backend/src → src/neuralnav)
anfredette Feb 9, 2026
597d6f8
refactor: Remove vllm-config.yaml generation
anfredette Feb 10, 2026
aea98b7
docs: Add commit approval workflow to CLAUDE.md
anfredette Feb 10, 2026
afaa351
refactor: Remove dead code, About tab, and redundant SLO logic from UI
anfredette Feb 10, 2026
76e3867
refactor: Remove fallback logic and mock_extraction() from UI
anfredette Feb 10, 2026
b7694d7
refactor: Remove duplicated backend logic from UI
anfredette Feb 10, 2026
ed700a3
refactor: Strip custom CSS and hardcoded colors, switch to native Str…
anfredette Feb 10, 2026
ac11f41
refactor: Simplify dialogs, deduplicate patterns, consolidate state init
anfredette Feb 10, 2026
79a34ad
refactor: Break apart large functions, restore category navigation
anfredette Feb 10, 2026
5ef4ba3
refactor: Split monolithic ui/app.py into multi-file module
anfredette Feb 10, 2026
9981a92
refactor: UI Refinements after major overhaul
anfredette Feb 11, 2026
91d1891
chore: fix all ruff lint errors in ui/
anfredette Feb 11, 2026
a948064
style: apply ruff format to ui/
anfredette Feb 11, 2026
cc6a8f9
Merge pull request #90 from anfredette/refactor
anfredette Feb 12, 2026
e5b121b
docs: Rename ARCHITECTUREv2 to ARCHITECTURE and archive v1
anfredette Feb 19, 2026
b6bc73f
Merge pull request #92 from anfredette/architecture-doc
anfredette Feb 19, 2026
a19a78a
feat: add database management via REST API and UI Configuration tab
anfredette Feb 17, 2026
be81985
fix: rename undefined BACKEND_DIR to SRC_DIR in Makefile
anfredette Feb 17, 2026
a4f3f00
Merge pull request #91 from anfredette/db-loader
anfredette Mar 2, 2026
25bbe12
feat: Add Kubernetes/OpenShift deployment manifests and deployment to…
amito Mar 2, 2026
c1d5866
Merge pull request #95 from amito/feat/k8s-deployment
anfredette Mar 3, 2026
95f58b6
Merge pull request #81 from anfredette/agentic-design
anfredette Mar 3, 2026
f2f710d
feat: add build-backend and push-backend Makefile targets
amito Mar 3, 2026
ad7c395
Merge pull request #101 from amito/feature/makefile-backend-targets
anfredette Mar 3, 2026
304198b
docs: add comparative evaluation of config_explorer vs NeuralNav
anfredette Feb 18, 2026
a2f1e11
docs: add proposal for unifying config_explorer and NeuralNav
anfredette Feb 18, 2026
d8f55f3
docs: add draft GitHub issue for SIG Benchmarking collaboration proposal
anfredette Mar 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 60 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# Git
.git
.gitignore
.gitattributes

# Python
__pycache__
*.py[cod]
*$py.class
*.so
.Python
*.egg-info
dist
build
.eggs

# Virtual environments
venv
.venv
env
ENV

# IDE
.vscode
.idea
*.swp
*.swo
*~
.DS_Store

# Testing
.pytest_cache
.coverage
htmlcov
.tox

# Development
.ruff_cache
.mypy_cache

# Generated files
generated_configs
logs
*.log

# Documentation
*.md
docs
!README.md

# Security scan artifacts
.security-scan

# Kubernetes configs (for development)
*.kubeconfig

# Other
TODO.md
ROADMAP.md
Makefile
17 changes: 16 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ __pycache__/
venv/
env/
ENV/
.venv/
build/
develop-eggs/
dist/
Expand All @@ -23,6 +24,10 @@ wheels/
.installed.cfg
*.egg

# uv
uv.lock
.python-version.bak

# IDEs
.vscode/
.idea/
Expand Down Expand Up @@ -62,4 +67,14 @@ logs/

# Data
*.sql
!scripts/schema.sql
!scripts/schema.sql
data/benchmarks/performance/benchmarks_GuideLLM.json

# Presentation images (large files, regeneratable)
data/archive/presentation/

# Old branding (replaced by neuralnav-*)
docs/ai_assistant_*

# macOS system files (all directories)
**/.DS_Store
1 change: 1 addition & 0 deletions .python-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.11
8 changes: 4 additions & 4 deletions .streamlit/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ gatherUsageStats = false
[server]
headless = true
port = 8501
enableStaticServing = true

[client]
toolbarMode = "viewer"

[theme]
primaryColor = "#1f77b4"
backgroundColor = "#FFFFFF"
secondaryBackgroundColor = "#F0F2F6"
textColor = "#262730"
font = "sans serif"
192 changes: 156 additions & 36 deletions CLAUDE.md

Large diffs are not rendered by default.

159 changes: 103 additions & 56 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
# Contributing to Compass
# Contributing to NeuralNav

Thank you for your interest in contributing to Compass! This document provides guidelines for contributing to the project.
Thank you for your interest in contributing to NeuralNav! This document provides guidelines for contributing to the project.

## Table of Contents

- [Code of Conduct](#code-of-conduct)
- [Getting Started](#getting-started)
- [Development Workflow](#development-workflow)
- [Pull Request Guidelines](#pull-request-guidelines)
- [Recommended Git Workflow](#recommended-git-workflow)
- [Guidelines](#guidelines)
- [Commit Message Guidelines](#commit-message-guidelines)
- [Testing Requirements](#testing-requirements)
- [Documentation](#documentation)
Expand All @@ -17,47 +16,112 @@ Thank you for your interest in contributing to Compass! This document provides g

This project follows standard open source community guidelines. Be respectful, inclusive, and constructive in all interactions.

## Getting Started
## Recommended Git Workflow

### Setting Up Your Development Environment
This section describes the complete workflow from setup to submitting a pull request.

1. **Fork the repository** to your own GitHub account
2. **Clone your fork** locally:
```bash
git clone https://github.com/YOUR_USERNAME/compass.git
cd compass
```
3. **Add upstream remote**:
```bash
git remote add upstream https://github.com/redhat-et/compass.git
```
4. **Follow the Quick Start guide** in the [README.md](README.md#quick-start) to set up your environment
### Initial Setup (One-Time)

## Development Workflow
**1. Fork the repository** on GitHub to your own account.

### 1. Discuss Before You Code
**2. Clone your fork locally:**
```bash
git clone https://github.com/YOUR_USERNAME/neuralnav.git
cd neuralnav
```

**3. Set up remotes:**
```bash
# Your fork is already set as 'origin' by the clone
# Add the main repository as 'upstream'
git remote add upstream https://github.com/redhat-et/neuralnav.git
```

Verify your remotes:
```bash
git remote -v
# origin https://github.com/YOUR_USERNAME/neuralnav.git (fetch)
# origin https://github.com/YOUR_USERNAME/neuralnav.git (push)
# upstream https://github.com/redhat-et/neuralnav.git (fetch)
# upstream https://github.com/redhat-et/neuralnav.git (push)
```

**4. Set up your development environment** by following the [Quick Start guide](README.md#quick-start).

### Keep Your Main Branch Synchronized

Before starting new work, sync your local main with upstream:
```bash
git checkout main
git fetch upstream
git rebase upstream/main
git push origin main # Keeps your fork's main updated on GitHub
```

NOTE: Don't make any changes directly on your fork's main branch -- keep it in sync with upstream/main.

### Development Workflow

**1. Create a branch from main:**
```bash
git checkout main
git checkout -b your-feature-name # branch names like feature/your-feature-name are common but not required.
git push -u origin your-feature-name
```

The `-u` flag sets up tracking so future `git push` and `git pull` commands work without specifying the remote.

**2. Do your work and create logical commits:**
```bash
# Make changes...
git add <files>
git commit -s -m "feat: Add your feature description"
```

Use the `-s` flag to add the required DCO sign-off. See [Commit Message Guidelines](#commit-message-guidelines) for formatting details.

**3. Push to your fork:**
```bash
git push
```

### Submitting a Pull Request

**1. Before submitting, rebase on upstream/main:**
```bash
git fetch upstream
git rebase upstream/main
```

Resolve any conflicts if they occur, then force push (needed because rebasing rewrites history):
```bash
git push -f
```

**2. Run tests locally:**
```bash
make test
make lint
```

**3. Create the PR from GitHub:**

When you're ready to submit your changes in a PR, visit either your fork or the main repo on GitHub.
If you've pushed recently, you'll see a prompt: "Compare & pull request" — click it.

Alternatively, go to the upstream repository and click "New pull request", then select your fork and branch.

## Guidelines

### Discuss Before You Code

**For significant changes**, discuss your approach upfront:
- Open an issue describing the problem and proposed solution
- For substantial features or architectural changes, create a design document in `docs/`
- Wait for feedback from maintainers before investing significant effort
- Small bug fixes and typos don't require prior discussion

### 2. Work in Your Fork

- Develop all changes in your own fork
- Create feature branches from `main`:
```bash
git checkout -b feature/your-feature-name
```
- Keep your fork's `main` branch in sync with upstream:
```bash
git fetch upstream
git checkout main
git merge upstream/main
```

### 3. Keep PRs Small and Targeted
### Keep PRs Small and Targeted

- **Aim for PRs under 500 lines** whenever possible (not counting auto-generated code)
- Each PR should address a single concern or feature
Expand All @@ -76,7 +140,7 @@ PR 3: Add UI components
PR 4: Wire up UI to backend and add integration tests
```

### 4. Coordinate Breaking Changes
### Coordinate Breaking Changes

If a breaking change is unavoidable:
- Discuss in an issue first with the "breaking-change" label
Expand All @@ -85,23 +149,6 @@ If a breaking change is unavoidable:
- For very large refactors, consider working from a branch in the main repository
- Provide upgrade instructions in the PR description

## Pull Request Guidelines

### Before Submitting

1. **Rebase on upstream/main** to ensure clean integration:
```bash
git fetch upstream
git rebase upstream/main
```
2. **Run tests locally**:
```bash
make test
make lint
```
3. **Update documentation** if your changes affect user-facing behavior
4. **Add tests** for new functionality or bug fixes

### PR Requirements

- **Title**: Clear, concise description of the change
Expand Down Expand Up @@ -243,7 +290,7 @@ make format

### Writing Tests

- Test files should mirror source structure: `backend/src/foo/bar.py` → `tests/test_foo_bar.py`
- Test files should mirror source structure: `src/neuralnav/foo/bar.py` → `tests/test_foo_bar.py`
- Use descriptive test names: `test_plan_capacity_with_minimum_accuracy_threshold()`
- Include both positive and negative test cases
- Mock external dependencies (databases, APIs, LLM calls)
Expand Down Expand Up @@ -287,7 +334,7 @@ make format

## License

By contributing to Compass, you agree that your contributions will be licensed under the same license as the project (see [LICENSE](LICENSE)).
By contributing to NeuralNav, you agree that your contributions will be licensed under the same license as the project (see [LICENSE](LICENSE)).

## Questions?

Expand All @@ -296,4 +343,4 @@ If you have questions not covered here, please:
2. Open a new issue with the "question" label
3. Reach out to maintainers

Thank you for contributing to Compass!
Thank you for contributing to NeuralNav!
52 changes: 52 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Backend Dockerfile for NeuralNav
FROM --platform=linux/amd64 python:3.11-slim

# Set working directory
WORKDIR /app

# Install system dependencies
RUN apt-get update && apt-get install -y \
curl \
gcc \
postgresql-client \
&& rm -rf /var/lib/apt/lists/*

# Install uv
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/

# Copy dependency files and README (hatchling requires README.md for package metadata)
COPY pyproject.toml uv.lock README.md ./

# Install Python dependencies (frozen = use lockfile exactly, no-dev = skip dev deps)
RUN uv sync --frozen --no-dev

# Copy backend source code
COPY src/neuralnav ./src/neuralnav

# Copy data files (Knowledge Base)
COPY data ./data

# Copy scripts (schema init, benchmark loading — used by db-init Job)
COPY scripts ./scripts

# Create directories for generated files
RUN mkdir -p /app/generated_configs /app/logs/prompts && \
chmod -R 770 /app/generated_configs /app/logs

# Set environment variables
ENV PYTHONPATH=/app/src
ENV PYTHONUNBUFFERED=1
# Use the venv created by uv sync (avoids uv run writing to .venv at runtime)
ENV PATH="/app/.venv/bin:$PATH"

ARG MODEL_CATALOG_URL

# Expose backend API port
EXPOSE 8000

# Health check
HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \
CMD python -c "import requests; requests.get('http://localhost:8000/health').raise_for_status()" || exit 1

# Run the backend API server
CMD ["uvicorn", "neuralnav.api.app:app", "--host", "0.0.0.0", "--port", "8000", "--workers", "2"]
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright 2025 The authors of Compass
Copyright 2025 The authors of NeuralNav

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down
Loading