Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
46d063f
Add ADRs 001-003: projects/runs model, notebook integration, UI shell
andeplane Jul 11, 2026
de20f62
Revise ADRs after agent review round 1
andeplane Jul 11, 2026
daeeb31
Apply verification-pass fixes to ADRs (final documentation round)
andeplane Jul 11, 2026
0c3a48e
Add project storage layer and worker run-outputs protocol (ADR-001)
andeplane Jul 11, 2026
2df4ed0
Vendor lammps-js and lammps-logfile wheels into pypi/ for piplite
andeplane Jul 11, 2026
a990cdb
Add make jupyter: local JupyterLite build with COI service-worker patch
andeplane Jul 11, 2026
353d11e
CI: build the Jupyter site via make jupyter, after npm install
andeplane Jul 11, 2026
e9a7665
Add projects store model and project-run orchestration (ADR-001/002)
andeplane Jul 11, 2026
4710498
Mark ADRs 001-003 as Accepted
andeplane Jul 11, 2026
b04312a
Add integration tests for the projects store model
andeplane Jul 11, 2026
4d4b150
Add theme setting, antd shell bridge, and projects read/size thunks
andeplane Jul 11, 2026
56449b1
Add the projects shell: sidebar, home, library, workspace, run detail…
andeplane Jul 11, 2026
4849701
Add shell tests: run plans, deep links, formatting, Shell integration
andeplane Jul 11, 2026
8751aa4
Fix run records found in browser verification: frame capture, log, me…
andeplane Jul 11, 2026
1cc304f
Use hook-based antd notifications in the shell (React 19)
andeplane Jul 11, 2026
cdcb0fc
Fix three defects surfaced by the integration tests
andeplane Jul 11, 2026
8aa2f71
Add @playwright/test with e2e npm scripts
andeplane Jul 11, 2026
33820c8
Add Playwright e2e suite for the projects shell
andeplane Jul 11, 2026
7ee7a0a
Fix ten confirmed findings from the branch code review
andeplane Jul 11, 2026
ac3cf9d
Expand the New Project example picker into a browsable library
andeplane Jul 11, 2026
3cdd516
Restore live analysis in the run detail; collapsible console strip
andeplane Jul 11, 2026
aaf765a
Format the picker and run-detail changes with prettier
andeplane Jul 11, 2026
4cfc7d2
Merge origin/main into feat/simulations-library
andeplane Jul 11, 2026
0984334
Remove legacy non-embed share links; Share now produces embed links only
andeplane Jul 11, 2026
5c83de0
Make the Multithreading toggle real: inject the KOKKOS opt-in, fix 4 …
andeplane Jul 11, 2026
75f5069
Re-vendor the lammps-js wheel at 1.5.1, matching the npm package version
andeplane Jul 11, 2026
d9ba37f
Add Mixpanel taxonomy and project zip export/import
andeplane Jul 11, 2026
8b088ec
Format with prettier
andeplane Jul 11, 2026
d002f12
Remove embedded mode and the legacy shell entirely
andeplane Jul 11, 2026
5100b9f
prettierignore: exclude build/tool output that hung CI prettier
andeplane Jul 11, 2026
ca76667
Restore the "edit the script" link in the New Run parameters note
andeplane Jul 12, 2026
605a32a
storage: content-sniff binaries; grace window for freshly claimed runs
andeplane Jul 12, 2026
e3bb305
simulation: strip user content from metrics; keep the full console
andeplane Jul 12, 2026
b56d57f
projects: run provenance, import/duplicate/export robustness, cache a…
andeplane Jul 12, 2026
219bbfe
Show the varying variable's range in the sweep group header
andeplane Jul 12, 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
23 changes: 11 additions & 12 deletions .github/workflows/deploy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,24 +12,23 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install JupyterLite dependencies
run: |
python -m pip install -r jupyterlite/requirements.txt
- name: Build JupyterLite site
run: |
jupyter lite build --contents jupyterlite/content --output-dir public/jupyter
- name: Use Node.js 20.x
uses: actions/setup-node@v4
with:
node-version: "20.x"
- name: Patch JupyterLite service worker (COOP/COEP for the Notebook iframe)
run: node scripts/patch-jupyterlite-sw.mjs
# npm install must come before the JupyterLite build: `make jupyter`
# copies node_modules/lammps.js/dist into public/jupyter/lammps.
# (make jupyter also applies the COOP/COEP service-worker patch via
# scripts/jupyter_coi_patch.py, superseding main's standalone
# patch-jupyterlite-sw.mjs step.)
- name: Install Packages
run: npm install
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Build JupyterLite site
run: make jupyter
- name: Run Typecheck
run: npm run typecheck
- name: Run Tests
Expand Down
8 changes: 6 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,15 @@ node_modules
cpp/lammps
cpp/obj
/dist
# JupyterLite build output (built in CI, or locally via `jupyter lite build`)
# JupyterLite build output (built in CI, or locally via `make jupyter`)
/public/jupyter
.jupyterlite.doit.db
/.venv-jupyterlite
.DS_Store
cpp/lammps.mjs
cpp/lammps.wasm
cpp/lammps.worker.js
build/
build/
/.cache/
/playwright-report/
/test-results/
13 changes: 12 additions & 1 deletion .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,15 @@ cpp
jupyterlite
public
src/wasm
.github/dependabot.yml
.github/dependabot.yml
# Build/tool output (CI runs `make jupyter` before prettier: the venv and
# the built site must never be formatted — formatting the 500 MB venv hung
# the CI prettier step for 35+ minutes)
.venv-jupyterlite
dist
pypi
test-results
playwright-report
.claude
# Separate service with its own tooling (ruff); never formatted from here
backend
19 changes: 19 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,25 @@ frontend-lint: ## Run frontend linter (prettier)
frontend-lint-fix: ## Fix frontend linting issues
cd . && npx prettier --write .

## JUPYTER

JUPYTER_VENV := .venv-jupyterlite

jupyter: ## Build the JupyterLite site into public/jupyter (piplite wheels, lammps.js client, COI patch)
test -d node_modules/lammps.js/dist || { echo "error: node_modules/lammps.js/dist is missing — run 'make frontend-install' (npm install) first" >&2; exit 1; }
test -x $(JUPYTER_VENV)/bin/pip || python3 -m venv $(JUPYTER_VENV)
$(JUPYTER_VENV)/bin/pip install --quiet -r jupyterlite/requirements.txt build
rm -rf public/jupyter .jupyterlite.doit.db
# Wheels in <repo>/pypi/ (lammps-js, lammps-logfile) are auto-indexed
# into the piplite index because the lite dir is the repo root.
$(JUPYTER_VENV)/bin/jupyter lite build --contents jupyterlite/content --output-dir public/jupyter
# Notebooks import the engine from {site}/lammps/client.js; ship the whole
# built package so its relative imports (worker, wasm modules) resolve.
mkdir -p public/jupyter/lammps
cp -R node_modules/lammps.js/dist/. public/jupyter/lammps/
# Cross-origin isolation on static hosting (ADR-002 §5).
$(JUPYTER_VENV)/bin/python scripts/jupyter_coi_patch.py public/jupyter

## BACKEND

backend-install: ## Install backend dependencies
Expand Down
Loading
Loading