Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
154 commits
Select commit Hold shift + click to select a range
438988d
chore: add NoCodeML project isolation contract
Rishikeshsanin Aug 22, 2026
fdfcf43
chore: document Supabase Project Hub boundaries
Rishikeshsanin Aug 22, 2026
0f335bf
fix: harden backend configuration and schema isolation
Rishikeshsanin Aug 22, 2026
81b1a4c
fix: scope async database sessions to NoCodeML schema
Rishikeshsanin Aug 22, 2026
86466b6
fix: scope worker database sessions to NoCodeML schema
Rishikeshsanin Aug 22, 2026
11fd448
fix: isolate Alembic migrations to NoCodeML schema
Rishikeshsanin Aug 22, 2026
9981862
fix: add missing users migration
Rishikeshsanin Aug 22, 2026
8c9afc5
fix: chain datasets migration after users table
Rishikeshsanin Aug 22, 2026
f9cfa3e
fix: align training run status contract with frontend
Rishikeshsanin Aug 22, 2026
7c39d5f
feat: move AI assistant behind authenticated backend
Rishikeshsanin Aug 22, 2026
c6c3f4e
feat: register authenticated AI assistant API
Rishikeshsanin Aug 22, 2026
4be07df
chore: constrain backend dependency versions
Rishikeshsanin Aug 22, 2026
736848c
chore: document secure production environment variables
Rishikeshsanin Aug 22, 2026
9ec95ac
chore: remove browser-exposed AI key configuration
Rishikeshsanin Aug 22, 2026
cd02a36
refactor: rebuild responsive secure Data Science Assistant
Rishikeshsanin Aug 22, 2026
bf981dd
feat: rebuild responsive application header
Rishikeshsanin Aug 22, 2026
ed8feb9
feat: give NoCodeML dashboard a modern responsive glow-up
Rishikeshsanin Aug 22, 2026
20b7af0
feat: polish global visual system and motion
Rishikeshsanin Aug 22, 2026
f76f849
test: add backend authentication smoke coverage
Rishikeshsanin Aug 22, 2026
a97aa89
ci: validate frontend and backend on every revival change
Rishikeshsanin Aug 22, 2026
52aa575
ci: fix backend module path for smoke tests
Rishikeshsanin Aug 22, 2026
9208e82
chore: distinguish legacy typing debt from correctness errors
Rishikeshsanin Aug 22, 2026
152ff0d
fix: use ESM Tailwind animation plugin import
Rishikeshsanin Aug 22, 2026
4fa97bb
chore: keep non-runtime legacy style debt visible as warnings
Rishikeshsanin Aug 22, 2026
425c452
ci: add TypeScript compiler validation
Rishikeshsanin Aug 22, 2026
0b7e88c
perf: code-split application routes
Rishikeshsanin Aug 22, 2026
5bf861d
fix: make training polling lifecycle reliable
Rishikeshsanin Aug 22, 2026
a0f9bbe
fix: align AI proxy with Gemini 3.7 request contract
Rishikeshsanin Aug 22, 2026
79ec046
refactor: rebuild typed responsive training results view
Rishikeshsanin Aug 22, 2026
48d0bb2
refactor: make playground responsive and use real training context
Rishikeshsanin Aug 22, 2026
3be89d4
test: expand backend smoke coverage
Rishikeshsanin Aug 22, 2026
b8d4235
ci: modernize actions and add critical dependency audit
Rishikeshsanin Aug 22, 2026
b2bb42f
fix: centralize isolated artifact storage paths
Rishikeshsanin Aug 22, 2026
2dcba78
fix: harden dataset upload and storage isolation
Rishikeshsanin Aug 22, 2026
e07cc6a
chore: standardize frontend dependency management on npm
Rishikeshsanin Aug 22, 2026
7836761
feat: refresh responsive datasets workspace
Rishikeshsanin Aug 22, 2026
8faf6da
feat: modernize responsive experiment cards
Rishikeshsanin Aug 22, 2026
818f974
feat: refresh responsive experiments dashboard
Rishikeshsanin Aug 22, 2026
dde89cc
feat: redesign responsive login experience
Rishikeshsanin Aug 22, 2026
f208f92
feat: redesign responsive registration experience
Rishikeshsanin Aug 22, 2026
7151e98
chore: harden production backend container
Rishikeshsanin Aug 22, 2026
4df84bf
chore: isolate local Docker services for NoCodeML
Rishikeshsanin Aug 22, 2026
f7686c0
docs: document NoCodeML artifact storage settings
Rishikeshsanin Aug 22, 2026
f441b66
chore: add Vercel SPA routing and security headers
Rishikeshsanin Aug 22, 2026
82e90ce
feat: add S3 artifact storage dependency
Rishikeshsanin Aug 22, 2026
d47a0dd
feat: configure local or S3-compatible artifact storage
Rishikeshsanin Aug 22, 2026
5164cd0
feat: add isolated local and S3-compatible artifact storage
Rishikeshsanin Aug 22, 2026
db56ad7
feat: make dataset storage local-or-object-store safe
Rishikeshsanin Aug 22, 2026
9ec48e6
refactor: make EDA object-storage aware and bounded
Rishikeshsanin Aug 22, 2026
caa359d
refactor: persist exact preprocessing pipeline with trained models
Rishikeshsanin Aug 22, 2026
68bf1d8
refactor: reuse fitted preprocessing for safe predictions
Rishikeshsanin Aug 22, 2026
5f21ad9
feat: serve prediction exports from private artifact storage
Rishikeshsanin Aug 22, 2026
eed4a9e
feat: add dataset readiness and target guidance
Rishikeshsanin Aug 22, 2026
aad3c38
feat: surface ML readiness before model configuration
Rishikeshsanin Aug 22, 2026
5e216b3
feat: add smart AutoML configuration and fix config flow
Rishikeshsanin Aug 22, 2026
f969a8b
fix: align frontend experiment types with backend schema
Rishikeshsanin Aug 22, 2026
e33e1f1
test: verify persisted preprocessing and core ML workflows
Rishikeshsanin Aug 22, 2026
4cf5671
fix: type EDA numeric statistics precisely
Rishikeshsanin Aug 22, 2026
5cf9ce4
feat: add reliable V3 run-based training worker
Rishikeshsanin Aug 22, 2026
bacdaf3
refactor: route active training runs through V3 worker
Rishikeshsanin Aug 22, 2026
6b556d3
fix: register V3 run worker with Celery
Rishikeshsanin Aug 22, 2026
7650221
test: lock V3 worker config semantics
Rishikeshsanin Aug 22, 2026
8837b0f
feat: rebuild prediction workspace and accept zero values
Rishikeshsanin Aug 22, 2026
b681110
fix: normalize auth identities and bound bcrypt passwords
Rishikeshsanin Aug 22, 2026
78a97ed
fix: make registration and login identity handling robust
Rishikeshsanin Aug 22, 2026
06944e6
test: cover normalized auth identities and duplicate registration
Rishikeshsanin Aug 22, 2026
926fdcf
fix: make ID-column detection conservative and ML-safe
Rishikeshsanin Aug 22, 2026
5ef22bc
test: protect conservative ID detection
Rishikeshsanin Aug 22, 2026
ac5243c
refactor: extract reusable V3 model result analysis
Rishikeshsanin Aug 22, 2026
924cdef
feat: add sanitized reproducibility reports for training runs
Rishikeshsanin Aug 22, 2026
354d9bb
docs: rewrite README for NoCodeML V3
Rishikeshsanin Aug 22, 2026
8947827
ci: validate ML stack natively on ARM64
Rishikeshsanin Aug 22, 2026
5031b60
deploy: add safe production environment template
Rishikeshsanin Aug 22, 2026
47f1b5c
deploy: add automatic HTTPS reverse proxy
Rishikeshsanin Aug 22, 2026
f8285c2
deploy: add zero-cost single-VM production stack
Rishikeshsanin Aug 22, 2026
8c3ce93
security: ignore all real environment files
Rishikeshsanin Aug 22, 2026
b967dc8
security: exclude production secrets from Docker context
Rishikeshsanin Aug 22, 2026
afe29c9
deploy: add idempotent free VM bootstrap script
Rishikeshsanin Aug 22, 2026
01d81f3
deploy: add guarded production startup script
Rishikeshsanin Aug 22, 2026
3f1406c
release: add V3 application version setting
Rishikeshsanin Aug 22, 2026
8817835
feat: add V3 readiness diagnostics
Rishikeshsanin Aug 22, 2026
6c10718
test: cover V3 health and readiness probes
Rishikeshsanin Aug 22, 2026
8585462
ci: validate production backend container
Rishikeshsanin Aug 22, 2026
42139d7
feat: configure temporary guest session runtime
Rishikeshsanin Aug 22, 2026
bef61e8
feat: add isolated temporary session manager
Rishikeshsanin Aug 22, 2026
2b231e4
feat: expose anonymous temporary session API
Rishikeshsanin Aug 22, 2026
8111de7
feat: register guest session routes
Rishikeshsanin Aug 22, 2026
0c2e5cd
fix: use FastAPI session dependencies
Rishikeshsanin Aug 22, 2026
1d2ab03
feat: run temporary session cleanup lifecycle
Rishikeshsanin Aug 22, 2026
c5a998c
test: cover anonymous session isolation and cleanup
Rishikeshsanin Aug 22, 2026
e0126a7
feat: add temporary browser session client
Rishikeshsanin Aug 22, 2026
a5502fb
feat: manage anonymous temporary workspace lifecycle
Rishikeshsanin Aug 22, 2026
ea9e74e
feat: initialize temporary guest workspace in frontend
Rishikeshsanin Aug 22, 2026
8f9be37
fix: make close beacon CORS-safe
Rishikeshsanin Aug 22, 2026
babf73f
fix: send close signal as form beacon
Rishikeshsanin Aug 22, 2026
041a276
docs: add temporary session runtime settings
Rishikeshsanin Aug 22, 2026
25f779e
ci: cancel obsolete branch runs during refactor
Rishikeshsanin Aug 22, 2026
391d12a
feat: add database-free temporary dataset workspace
Rishikeshsanin Aug 22, 2026
1543b51
feat: add temporary workspace dataset API
Rishikeshsanin Aug 22, 2026
c70f52c
feat: register temporary workspace routes
Rishikeshsanin Aug 22, 2026
94b0110
test: cover temporary dataset workspace flow
Rishikeshsanin Aug 22, 2026
65008f4
feat: support safe temporary dataset updates
Rishikeshsanin Aug 22, 2026
a5ad01a
feat: support temporary dataset rename
Rishikeshsanin Aug 22, 2026
31893e3
feat: add temporary workspace frontend client
Rishikeshsanin Aug 22, 2026
3d367c9
feat: upload datasets into temporary workspace
Rishikeshsanin Aug 22, 2026
0cc9aed
feat: preview temporary workspace datasets
Rishikeshsanin Aug 22, 2026
d49f14a
feat: rename temporary workspace datasets
Rishikeshsanin Aug 22, 2026
2e856f4
feat: move datasets page to temporary guest workspace
Rishikeshsanin Aug 22, 2026
4975bcc
feat: add database-free temporary EDA service
Rishikeshsanin Aug 22, 2026
55dd577
feat: expose temporary EDA and plot endpoints
Rishikeshsanin Aug 22, 2026
2bd080c
test: cover temporary EDA and plotting
Rishikeshsanin Aug 22, 2026
4a8bf6f
feat: protect active training sessions from cleanup
Rishikeshsanin Aug 22, 2026
a75f071
feat: configure bounded guest training runner
Rishikeshsanin Aug 22, 2026
21698b0
feat: add bounded database-free training runner
Rishikeshsanin Aug 22, 2026
1972b54
feat: expose temporary guest training API
Rishikeshsanin Aug 22, 2026
91f5752
fix: hold guest session lease while training is queued
Rishikeshsanin Aug 22, 2026
c4fce6a
test: cover guest classification and regression training
Rishikeshsanin Aug 22, 2026
d1750b3
fix: recover stale training leases after restart
Rishikeshsanin Aug 22, 2026
97f0133
fix: reset interrupted training leases on startup
Rishikeshsanin Aug 22, 2026
cb4f340
feat: standardize user-friendly export filenames
Rishikeshsanin Aug 22, 2026
64d63da
feat: add temporary session prediction engine
Rishikeshsanin Aug 22, 2026
68ae47d
feat: expose temporary prediction and download endpoints
Rishikeshsanin Aug 22, 2026
40518f5
test: cover temporary prediction and named downloads
Rishikeshsanin Aug 22, 2026
11ebdaa
feat: add temporary workspace export engine
Rishikeshsanin Aug 22, 2026
17dd453
feat: expose EDA training and full-session exports
Rishikeshsanin Aug 22, 2026
b036ca4
feat: unify guest workspace EDA training prediction and exports
Rishikeshsanin Aug 22, 2026
bf0cd2c
test: cover active-job cleanup leases and restart recovery
Rishikeshsanin Aug 22, 2026
0bec93c
feat: add guided guest-first ML workspace
Rishikeshsanin Aug 22, 2026
57519be
feat: finalize guided guest ML workspace
Rishikeshsanin Aug 22, 2026
67666e6
feat: make NoCodeML guest-first with no auth wall
Rishikeshsanin Aug 22, 2026
e9fa191
feat: replace account header with temporary-session controls
Rishikeshsanin Aug 22, 2026
bf1b982
feat: align landing page with guest-first temporary workflow
Rishikeshsanin Aug 22, 2026
4b5c8ca
refactor: expose only guest-first non-persistent APIs
Rishikeshsanin Aug 22, 2026
e33f580
refactor: make AI assistant guest-session scoped
Rishikeshsanin Aug 22, 2026
110e93b
refactor: make production runtime database-free
Rishikeshsanin Aug 22, 2026
6010b68
refactor: remove database and queue startup dependencies
Rishikeshsanin Aug 22, 2026
a7aa285
test: replace legacy auth smoke tests with guest runtime checks
Rishikeshsanin Aug 22, 2026
c16be8c
build: align production image with temporary guest runtime
Rishikeshsanin Aug 22, 2026
6922d1a
docs: make backend environment guest-only and database-free
Rishikeshsanin Aug 22, 2026
14fa564
refactor: simplify compose to one ephemeral guest API
Rishikeshsanin Aug 22, 2026
832c4ae
ci: validate database-free guest runtime
Rishikeshsanin Aug 22, 2026
2517a25
refactor: make AI assistant temporary-session aware
Rishikeshsanin Aug 22, 2026
144a042
feat: mount guest AI assistant in workspace
Rishikeshsanin Aug 22, 2026
326aeea
docs: rewrite README for temporary guest-first V3
Rishikeshsanin Aug 22, 2026
016b2b8
fix: retain compile compatibility with archived playground assistant …
Rishikeshsanin Aug 22, 2026
66be65d
deploy: add Oracle Always Free production stack
Rishikeshsanin Aug 22, 2026
3ac82de
deploy: add automatic HTTPS reverse proxy
Rishikeshsanin Aug 22, 2026
e3a7661
deploy: document free production environment
Rishikeshsanin Aug 22, 2026
f69490b
deploy: add one-command Ubuntu ARM bootstrap
Rishikeshsanin Aug 22, 2026
2de817c
chore: keep release deployment configuration tracked
Rishikeshsanin Aug 22, 2026
8151450
deploy: make repository root directly importable by Vercel
Rishikeshsanin Aug 22, 2026
2c968e8
docs: add zero-cost production deployment guide
Rishikeshsanin Aug 22, 2026
c84299a
ci: validate production deployment configuration
Rishikeshsanin Aug 22, 2026
8a3c712
release: promote NoCodeML to 3.0.0
Rishikeshsanin Aug 22, 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
153 changes: 153 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
name: NoCodeML CI

on:
push:
branches:
- main
- release/v3-revival
pull_request:
branches:
- main

concurrency:
group: nocodeml-ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

permissions:
contents: read

jobs:
frontend:
name: Frontend build and lint
runs-on: ubuntu-latest
defaults:
run:
working-directory: Frontend
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Setup Node
uses: actions/setup-node@v7
with:
node-version: '24'
cache: npm
cache-dependency-path: Frontend/package-lock.json
- name: Install dependencies
run: npm ci
- name: Typecheck
run: npx tsc -p tsconfig.app.json --noEmit
- name: Build
run: npm run build
env:
VITE_API_URL: http://localhost:8000
- name: Lint
run: npm run lint
- name: Audit critical dependency vulnerabilities
run: npm audit --audit-level=critical

backend:
name: Guest backend tests
runs-on: ubuntu-latest
defaults:
run:
working-directory: Backend
env:
PYTHONPATH: .
SESSION_ROOT_DIR: /tmp/nocodeml-ci-sessions
CELERY_BROKER_URL: memory://
CELERY_RESULT_BACKEND: cache+memory://
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Setup Python
uses: actions/setup-python@v7
with:
python-version: '3.11'
cache: pip
cache-dependency-path: Backend/requirements.txt
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
python -m pip install pytest
- name: Compile backend
run: python -m compileall -q app
- name: Run guest, ML and isolation tests
run: python -m pytest -q

backend-container:
name: Production guest container
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Validate deployment files
run: |
python -m json.tool vercel.json >/dev/null
docker compose --env-file deploy/oci/.env.example -f deploy/oci/docker-compose.yml config >/dev/null
- name: Build backend image
run: docker build --pull -t nocodeml-backend:ci Backend
- name: Verify non-root runtime user
run: test "$(docker image inspect nocodeml-backend:ci --format '{{.Config.User}}')" = "nocodeml"
- name: Smoke-test database-free container
run: |
docker run -d --rm --name nocodeml-ci -p 8000:8000 \
-e SESSION_ROOT_DIR=/tmp/nocodeml-sessions \
nocodeml-backend:ci
for attempt in $(seq 1 30); do
if curl --fail --silent http://127.0.0.1:8000/health >/dev/null; then
break
fi
sleep 2
done
curl --fail http://127.0.0.1:8000/health
curl --fail http://127.0.0.1:8000/ready
curl --fail -X POST http://127.0.0.1:8000/api/v1/session
docker stop nocodeml-ci

backend-arm64:
name: ARM64 ML compatibility
runs-on: ubuntu-24.04-arm
defaults:
run:
working-directory: Backend
env:
PYTHONPATH: .
SESSION_ROOT_DIR: /tmp/nocodeml-arm64-sessions
CELERY_BROKER_URL: memory://
CELERY_RESULT_BACKEND: cache+memory://
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Setup Python
uses: actions/setup-python@v7
with:
python-version: '3.11'
cache: pip
cache-dependency-path: Backend/requirements.txt
- name: Install ML stack
run: |
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
python -m pip install pytest
- name: Verify native ARM64 libraries
run: |
python - <<'PY'
import platform
import lightgbm
import numpy
import pandas
import sklearn
import xgboost

machine = platform.machine().lower()
assert machine in {'aarch64', 'arm64'}, f'Expected ARM64 runner, got {machine}'
print('architecture:', machine)
print('numpy:', numpy.__version__)
print('pandas:', pandas.__version__)
print('scikit-learn:', sklearn.__version__)
print('xgboost:', xgboost.__version__)
print('lightgbm:', lightgbm.__version__)
PY
- name: Run real ML compatibility tests
run: python -m pytest -q tests/test_ml_pipeline.py tests/test_workspace_training.py tests/test_eda_identity_detection.py
Loading
Loading