Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1525 commits
Select commit Hold shift + click to select a range
d6ae725
Update model_building_app_ca.py
mparrott-at-wiris Jan 8, 2026
77f9e7a
fix: css for scroll down in judge.py
mparrott-at-wiris Jan 8, 2026
b1ee2ef
Update ai_consequences.py
mparrott-at-wiris Jan 8, 2026
9d4f6e5
Update judge.py
mparrott-at-wiris Jan 8, 2026
b9bb7ec
Update ai_consequences.py
mparrott-at-wiris Jan 8, 2026
9d3417a
fix: add css for scroll to model_building_app_en.py
mparrott-at-wiris Jan 8, 2026
5792d3b
Update model_building_app_ca.py
mparrott-at-wiris Jan 8, 2026
c35282d
fix: css for scroll in model_building_app_es.py
mparrott-at-wiris Jan 8, 2026
fa066f8
fix: css in ethical_revelation.py
mparrott-at-wiris Jan 8, 2026
8d4cefc
fix: fix scrolling in moral_compass_challenge.py
mparrott-at-wiris Jan 8, 2026
a959325
fix: scroll message in bias_detective_en.py
mparrott-at-wiris Jan 8, 2026
db386bb
fix: scroll msg in bias_detective_es.py
mparrott-at-wiris Jan 8, 2026
9589866
fix: scroll msg in bias_detective_ca.py
mparrott-at-wiris Jan 8, 2026
88efce9
Update justice_equity_upgrade_en.py
mparrott-at-wiris Jan 8, 2026
be59b1c
Update justice_equity_upgrade_ca.py
mparrott-at-wiris Jan 8, 2026
e4334ca
Fix: justice_equity_upgrade_es.py
mparrott-at-wiris Jan 8, 2026
245f376
Update bias_detective_es.py
mparrott-at-wiris Jan 8, 2026
b8f0c36
Update bias_detective_ca.py
mparrott-at-wiris Jan 8, 2026
4c0f1ef
Update model_building_app_ca.py
mparrott-at-wiris Jan 8, 2026
1cbedb5
fix: model_building_app_es.py
mparrott-at-wiris Jan 8, 2026
e163350
Update ethical_revelation.py
mparrott-at-wiris Jan 8, 2026
1fc5ab2
Update moral_compass_challenge.py
mparrott-at-wiris Jan 8, 2026
87fcfc1
Update judge.py
mparrott-at-wiris Jan 8, 2026
b788405
Update ai_consequences.py
mparrott-at-wiris Jan 8, 2026
69e9e95
Update what_is_ai.py
mparrott-at-wiris Jan 8, 2026
edd5722
Update justice_equity_upgrade_ca.py
mparrott-at-wiris Jan 8, 2026
fe623ae
fix: scroll msg size in what_is_ai.py
mparrott-at-wiris Jan 8, 2026
d3b51f4
Update bias_detective_es.py
mparrott-at-wiris Jan 8, 2026
9d9567e
Update fairness_fixer_es.py
mparrott-at-wiris Jan 8, 2026
23fc647
Add compact CTA and explicit submit button to quiz slides (#172)
Copilot Jan 8, 2026
3ac6078
Revert "Add compact CTA and explicit submit button to quiz slides (#1…
mparrott-at-wiris Jan 8, 2026
0959e8e
Add compact CTA styles for quiz slides without submit button (#174)
Copilot Jan 8, 2026
dc94464
Apply compact quiz CTA styling to fairness fixer apps (en, ca, es) (#…
Copilot Jan 9, 2026
a42a793
Replicate PR #174 compact CTA styles to Catalan and Spanish variants …
Copilot Jan 9, 2026
6f3b9f4
fix: repeated intro text in ai_consequences.py
mparrott-at-wiris Jan 9, 2026
f549701
fix: replace repeated text in what_is_ai.py
mparrott-at-wiris Jan 9, 2026
3d04f91
Update model_building_app_en.py
mparrott-at-wiris Jan 9, 2026
980002a
Update model_building_app_es.py
mparrott-at-wiris Jan 9, 2026
8561bfe
Update model_building_app_ca.py
mparrott-at-wiris Jan 9, 2026
941c20f
add: reload trigger js to model_building_app_en.py
mparrott-at-wiris Jan 9, 2026
bc4905c
Update model_building_app_en.py
mparrott-at-wiris Jan 9, 2026
3a08be0
Add deferred parent notification to model building game navigation (#…
Copilot Jan 9, 2026
26ef1bd
Update ai_consequences.py
mparrott-at-wiris Jan 9, 2026
5c2f144
Update justice_equity_upgrade_en.py
mparrott-at-wiris Jan 10, 2026
ea7c06d
Update justice_equity_upgrade_ca.py
mparrott-at-wiris Jan 10, 2026
20a798f
Update justice_equity_upgrade_es.py
mparrott-at-wiris Jan 10, 2026
5613f82
fix: reduce text in the ethical_revelation.py
mparrott-at-wiris Jan 10, 2026
17131c7
fix: adding slide content back to ethical_revelation.py
mparrott-at-wiris Jan 10, 2026
e08de18
fix: last slide and dark mode issues in ethical_revelation.py
mparrott-at-wiris Jan 10, 2026
8895c64
Optimize Cloud Run deployments for production scalability with simpli…
Copilot Jan 10, 2026
4103046
Update load_test_gradio_apps.yml
mparrott-at-wiris Jan 10, 2026
2f361c6
Update locustfile_gradio_apps.py
mparrott-at-wiris Jan 10, 2026
c9be4c4
Add dedicated What is AI prediction task with dynamic fn_index discov…
Copilot Jan 10, 2026
a3c080d
fix: add api to what_is_ai.py
mparrott-at-wiris Jan 10, 2026
2817cb5
revert :to current prod version deploy_gradio_apps.yml
mparrott-at-wiris Jan 10, 2026
84a01d6
Update what_is_ai.py
mparrott-at-wiris Jan 10, 2026
1260d4e
fix: run prediction for what is ai app in locustfile_gradio_apps.py
mparrott-at-wiris Jan 10, 2026
545e88c
Update locustfile_gradio_apps.py
mparrott-at-wiris Jan 10, 2026
8973906
fix: prediction tests in locustfile_gradio_apps.py
mparrott-at-wiris Jan 10, 2026
25c9b2b
Update locustfile_gradio_apps.py
mparrott-at-wiris Jan 10, 2026
400b5c3
fix: final locustfile_gradio_apps.py
mparrott-at-wiris Jan 10, 2026
fd7c390
Update locustfile_gradio_apps.py
mparrott-at-wiris Jan 10, 2026
1955af9
fix: locustfile_gradio_apps.py
mparrott-at-wiris Jan 10, 2026
00b495d
fix: posts calls in locustfile_gradio_apps.py
mparrott-at-wiris Jan 10, 2026
ad3828d
Update locustfile_gradio_apps.py
mparrott-at-wiris Jan 10, 2026
066c078
Update deploy_gradio_apps.yml
mparrott-at-wiris Jan 10, 2026
d3e338c
Update deploy_gradio_apps.yml
mparrott-at-wiris Jan 10, 2026
45db9ae
Update deploy_gradio_apps.yml
mparrott-at-wiris Jan 10, 2026
13687a2
fix: locustfile_gradio_apps.py
mparrott-at-wiris Jan 10, 2026
188503b
Update model_building_app_en.py
mparrott-at-wiris Jan 10, 2026
4d65bc2
fix: mbg tests in locustfile_gradio_apps.py
mparrott-at-wiris Jan 10, 2026
477335d
Update deploy_gradio_apps.yml
mparrott-at-wiris Jan 10, 2026
c252bad
Update locustfile_gradio_apps.py
mparrott-at-wiris Jan 10, 2026
1474eeb
fix: locustfile_gradio_apps.py
mparrott-at-wiris Jan 10, 2026
f82cfe2
Add files via upload
mparrott-at-wiris Jan 10, 2026
1ebcb0e
Update and rename github_workflows_build_ensemble_cache_Version3.yml …
mparrott-at-wiris Jan 10, 2026
36cc566
Add files via upload
mparrott-at-wiris Jan 10, 2026
dcf5747
Rename precompute_ensemble_cache_Version4.py to precompute_ensemble_c…
mparrott-at-wiris Jan 10, 2026
3a74d8d
Add files via upload
mparrott-at-wiris Jan 10, 2026
391554a
Add files via upload
mparrott-at-wiris Jan 10, 2026
0df0740
Rename github_workflows_build_full_models_cache_Version3.yml to build…
mparrott-at-wiris Jan 10, 2026
90f94d1
Add files via upload
mparrott-at-wiris Jan 10, 2026
68303d5
Rename precompute_full_models_cache_Version4.py to precompute_full_mo…
mparrott-at-wiris Jan 10, 2026
02cef58
Fix/translations v6 (#177)
mparrott-at-wiris Jan 11, 2026
73660d3
Replace importlib with AST parsing in full-models cache to avoid depe…
Copilot Jan 11, 2026
f03873f
Support dual prediction cache files with separate databases for base …
Copilot Jan 11, 2026
5130c11
Fix/translations v7 (#184)
mparrott-at-wiris Jan 11, 2026
1a916fd
Switch final English app to full-models cache with Majority Vote ense…
Copilot Jan 11, 2026
d5558ec
Fix/translations v7 (#186)
mparrott-at-wiris Jan 11, 2026
6887443
Add app-side majority-vote fallback for missing cache keys (#187)
Copilot Jan 11, 2026
043acbb
Scope typography upgrade to briefing slides and conclusion only (#188)
Copilot Jan 11, 2026
bad011b
Re-enable all data sizes with dual-DB cache routing and majority-vote…
Copilot Jan 11, 2026
96e900f
Port dual-DB cache routing and majority-vote fallback to CA/ES final …
Copilot Jan 11, 2026
fa7a129
Add majority vote model option to CA/ES final apps (#192)
Copilot Jan 11, 2026
7de066e
Integrate moral compass leaderboards into model building game final E…
Copilot Jan 11, 2026
b7725f2
Show moral compass leaderboards from app start and update KPI cards t…
Copilot Jan 11, 2026
367a9a0
Update model_building_app_en_final.py
mparrott-at-wiris Jan 11, 2026
51afabe
revert: to accuracy and maj vote approach to model_building_app_en_fi…
mparrott-at-wiris Jan 11, 2026
ebf133c
Feat/update final mbg apps (#194)
mparrott-at-wiris Jan 11, 2026
9d34903
Update model_building_app_ca_final.py
mparrott-at-wiris Jan 11, 2026
0c8dfd8
Update model_building_app_es_final.py
mparrott-at-wiris Jan 11, 2026
eb76a13
fix: remove restricted values model_building_app_en_final.py
mparrott-at-wiris Jan 11, 2026
092de1d
Update model_building_app_ca_final.py
mparrott-at-wiris Jan 11, 2026
be35594
Update model_building_app_es_final.py
mparrott-at-wiris Jan 11, 2026
6d81b73
fix: feature name errors in model_building_app_es_final.py
mparrott-at-wiris Jan 11, 2026
dc581cd
fix: feature name errors in model_building_app_ca_final.py
mparrott-at-wiris Jan 11, 2026
a741254
fix: feature name changes in model_building_app_en_final.py
mparrott-at-wiris Jan 11, 2026
5bd32d8
Add missing CSS font-size declarations to ca_final and es_final varia…
Copilot Jan 11, 2026
9ec0444
Add back button to model building game arena for all language variant…
Copilot Jan 11, 2026
56d8870
Update deploy_gradio_apps.yml
mparrott-at-wiris Jan 11, 2026
6bb782c
Align CA/ES navigation button placement with EN version (#197)
Copilot Jan 12, 2026
759b0ac
Update judge.py
mparrott-at-wiris Jan 12, 2026
722de42
Update judge.py
mparrott-at-wiris Jan 12, 2026
bdaecc8
Fix: language choices in ai_consequences.py
mparrott-at-wiris Jan 13, 2026
26dad73
Fix/translations v8 (#198)
mparrott-at-wiris Jan 13, 2026
261706a
Update bias_detective_ca.py
mparrott-at-wiris Jan 13, 2026
4bdce0c
Update bias_detective_ca.py
mparrott-at-wiris Jan 13, 2026
8b868cb
Update bias_detective_ca.py
mparrott-at-wiris Jan 13, 2026
8e2c630
Update bias_detective_ca.py
mparrott-at-wiris Jan 13, 2026
d083b18
fix: questions in fairness_fixer_ca.py
mparrott-at-wiris Jan 13, 2026
6455280
fix: quiz question in bias_detective_es.py
mparrott-at-wiris Jan 14, 2026
05e99f6
Update deploy_gradio_apps.yml
mparrott-at-wiris Jan 15, 2026
04898c1
Update deploy_gradio_apps.yml
mparrott-at-wiris Jan 15, 2026
3b08cd6
feat:Create justice_and_equity_advance_notebook_en.ipynb
mparrott-at-wiris Jan 18, 2026
8d752af
fix: justice_and_equity_advance_notebook_en.ipynb
mparrott-at-wiris Jan 18, 2026
f73a34a
fix: minor updates to justice_and_equity_advance_notebook_en.ipynb
mparrott-at-wiris Jan 18, 2026
d4e4973
Update justice_and_equity_advance_notebook_en.ipynb
mparrott-at-wiris Jan 18, 2026
6204ebd
fix: update ytest structure justice_and_equity_advance_notebook_en.ipynb
mparrott-at-wiris Jan 18, 2026
8caf1f9
fix: preprocessing error in justice_and_equity_advance_notebook_en.ipynb
mparrott-at-wiris Jan 18, 2026
b0f8d56
fix: dataset setup in justice_and_equity_advance_notebook_en.ipynb
mparrott-at-wiris Jan 18, 2026
2ad8063
Update justice_and_equity_advance_notebook_en.ipynb
mparrott-at-wiris Jan 18, 2026
e700dd2
final: en version of justice_and_equity_advance_notebook_en.ipynb
mparrott-at-wiris Jan 18, 2026
94fdd34
Create justice_and_equity_advance_notebook_ca.ipynb
mparrott-at-wiris Jan 18, 2026
4d1c5f7
Create justice_and_equity_advance_notebook_es.ipynb
mparrott-at-wiris Jan 18, 2026
250283b
Remove module-level cache configuration print statements (#199)
Copilot Jan 18, 2026
0b0722a
Update justice_and_equity_advance_notebook_ca.ipynb
mparrott-at-wiris Jan 19, 2026
b609add
Update justice_and_equity_advance_notebook_es.ipynb
mparrott-at-wiris Jan 19, 2026
adeb4ad
Feat/sustainability (#203)
mparrott-at-wiris Jan 24, 2026
f07833c
Update build_wids_cache.yml
mparrott-at-wiris Jan 24, 2026
5a8543a
Reduce timeout for build-wids-cache-chunk job
AIModelShare Jan 25, 2026
3fb3d19
Update precompute_wids_cache.py
mparrott-at-wiris Jan 25, 2026
7e776e2
Update build_wids_cache.yml
mparrott-at-wiris Jan 25, 2026
3f5cffd
Update precompute_wids_cache.py
mparrott-at-wiris Jan 25, 2026
7a8dbaf
fix: build_wids_cache.yml
mparrott-at-wiris Jan 25, 2026
82259db
Update precompute_wids_cache.py
mparrott-at-wiris Jan 26, 2026
3570a12
Feature/wids update (#206)
mparrott-at-wiris Jan 28, 2026
0edfc57
Add Dockerfile.sustainability for WiDS cache integration (#205)
Copilot Jan 28, 2026
f772c55
Update deploy_gradio_apps_sustainability.yml
mparrott-at-wiris Jan 28, 2026
97a3b8f
Rename Dockerfile.sustainability to Dockerfile_sustainability
mparrott-at-wiris Jan 28, 2026
66ba8fa
Update deploy_gradio_apps_sustainability.yml
mparrott-at-wiris Jan 28, 2026
36662d3
Update model_building_app_ca_final_sustainability.py
mparrott-at-wiris Jan 28, 2026
3a3b486
Update model_building_app_en_final_sustainability.py
mparrott-at-wiris Jan 28, 2026
3d66731
Update model_building_app_es_final_sustainability.py
mparrott-at-wiris Jan 28, 2026
88b1218
Update model_building_app_ca_sustainability.py
mparrott-at-wiris Jan 28, 2026
d1f2704
Update model_building_app_en_sustainability.py
mparrott-at-wiris Jan 28, 2026
80f5a10
Update model_building_app_en_sustainability.py
mparrott-at-wiris Jan 28, 2026
40606ab
Update model_building_app_es_sustainability.py
mparrott-at-wiris Jan 28, 2026
9629dfb
Add check for existing Artifact Registry repository
AIModelShare Jan 28, 2026
55255b8
Update model_building_app_es_sustainability.py
mparrott-at-wiris Jan 28, 2026
5fd66e8
Update model_building_app_es_sustainability.py
mparrott-at-wiris Jan 28, 2026
3f56605
Update model_building_app_es_sustainability.py
mparrott-at-wiris Jan 28, 2026
63ffd20
Update model_building_app_es_sustainability.py
mparrott-at-wiris Jan 29, 2026
4a1255c
Initial plan
Copilot Jan 29, 2026
707ebbb
Add WiDS cache key compatibility test suite with fixtures
Copilot Jan 29, 2026
1110a47
Add test fixtures and documentation for WiDS cache compatibility tests
Copilot Jan 29, 2026
b16b243
Add GitHub Actions workflow for WiDS cache compatibility tests
Copilot Jan 29, 2026
4810bea
Merge pull request #208 from mparrott-at-wiris/copilot/add-cache-key-…
AIModelShare Jan 29, 2026
69fe82d
Update model_building_app_en_sustainability.py
mparrott-at-wiris Jan 29, 2026
d7695a2
Update model_building_app_en_sustainability.py
mparrott-at-wiris Jan 29, 2026
1fd79cc
Update model_building_app_en_sustainability.py
mparrott-at-wiris Jan 29, 2026
2b42cc6
Update model_building_app_en_sustainability.py
mparrott-at-wiris Jan 29, 2026
795a85a
Update deploy_gradio_apps_sustainability.yml
mparrott-at-wiris Jan 29, 2026
3c17bc4
Update build_wids_cache.yml
mparrott-at-wiris Jan 29, 2026
19e7bac
Update model_building_app_en_sustainability.py
mparrott-at-wiris Jan 29, 2026
5d62b91
Update convert_db_wids.py
mparrott-at-wiris Jan 29, 2026
3a4a4bf
Update convert_db_wids.py
mparrott-at-wiris Jan 29, 2026
4462703
Update model_building_app_en_sustainability.py
mparrott-at-wiris Jan 29, 2026
03a8958
Update model_building_app_en_sustainability.py
mparrott-at-wiris Jan 29, 2026
71204ab
Update deploy_gradio_apps_sustainability.yml
mparrott-at-wiris Jan 29, 2026
4bfde8b
Update model_building_app_en_final_sustainability.py
mparrott-at-wiris Jan 29, 2026
d8799a3
Update model_building_app_ca_final_sustainability.py
mparrott-at-wiris Jan 29, 2026
5b544a8
Update model_building_app_es_final_sustainability.py
mparrott-at-wiris Jan 29, 2026
874a99c
Feature/wids update (#209)
mparrott-at-wiris Feb 2, 2026
0a131be
Remove create_table calls from sustainability apps (#210)
Copilot Feb 2, 2026
85a9f26
Update playground endpoint in sustainability apps (#211)
Copilot Feb 2, 2026
10decc8
fix: add jsx to model_building_app_en_sustainability.py
mparrott-at-wiris Feb 10, 2026
28e785a
Update green_detective_en_sustainability.py
mparrott-at-wiris Feb 10, 2026
3aaa256
Rename bias_detective_en_sustainability.py to green_detective_en_sust…
mparrott-at-wiris Feb 10, 2026
d2af9a2
Update green_detective_en_sustainability.py
mparrott-at-wiris Feb 10, 2026
00905ae
Update fairness_fixer_en_sustainability.py
mparrott-at-wiris Feb 10, 2026
7858185
Add files via upload
mparrott-at-wiris Feb 10, 2026
fd4dc18
Delete aimodelshare/moral_compass/apps/sustainability/sustainability_…
mparrott-at-wiris Feb 10, 2026
f6e3642
Rename Activity_8_sustainability_upgrade_en.py to sustainability_upgr…
mparrott-at-wiris Feb 10, 2026
8ded759
Update sustainability_upgrade_en.py
mparrott-at-wiris Feb 10, 2026
89cb092
Fix sustainability app factory function naming mismatches (#213)
Copilot Feb 10, 2026
6bb6508
Update model_building_app_en_final.py
mparrott-at-wiris Feb 10, 2026
c754fc2
Update model_building_app_en_sustainability.py
mparrott-at-wiris Feb 10, 2026
50354c9
Fix WiDS CSV path resolution in sustainability model-building apps (#…
Copilot Feb 10, 2026
f6cc2e2
Fix CSS/JS not rendering in deployed EN sustainability apps (#215)
mparrott-at-wiris Feb 10, 2026
c38435b
Fix missing global declarations causing ValueError on first submissio…
mparrott-at-wiris Feb 10, 2026
16f654d
Fix per-session attempt limit and replace jargon with kid-friendly la…
mparrott-at-wiris Feb 10, 2026
4adbe0e
Add Activity 1-3 HTML files and apply UX language updates to Activity…
mparrott-at-wiris Feb 10, 2026
aa20ff0
Reduce Activity 1 from ~20 min to ~8-10 min for slower students (#219)
mparrott-at-wiris Feb 10, 2026
73bd740
Improve sustainability Activity 1-3 UX and engagement (#220)
mparrott-at-wiris Feb 11, 2026
7e37b14
Improve city search with Spain priority, disambiguation, and Andorra …
mparrott-at-wiris Feb 11, 2026
d79643c
Route Andorra search queries to hardcoded data
mparrott-at-wiris Feb 12, 2026
c3e907b
Activity 2: Simplify language, improve UX, and reduce jargon (#221)
mparrott-at-wiris Feb 12, 2026
9cb74f2
Activity 3 edits (#223)
mparrott-at-wiris Feb 12, 2026
9da078d
Feat/sustainability moral compass (#224)
mparrott-at-wiris Feb 13, 2026
c774730
Feat/sustainability moral compass (#225)
mparrott-at-wiris Feb 13, 2026
2ee0321
Feat/sustainability moral compass (#227)
mparrott-at-wiris Feb 13, 2026
88a775b
Fix dark mode rendering in sustainability Gradio apps (#228)
mparrott-at-wiris Feb 13, 2026
6393a01
Fix Gradio dark mode by adding .dark class selectors alongside @media…
mparrott-at-wiris Feb 13, 2026
380d56e
Add Back buttons to Steps 3 and 4 in sustainability challenge apps
mparrott-at-wiris Feb 13, 2026
85411fc
Implement high-priority UX fixes for sustainability model building ap…
mparrott-at-wiris Feb 14, 2026
f745727
Remove drag-sort module and port UX fixes to CA/ES variants (#230)
mparrott-at-wiris Feb 14, 2026
ac7861e
Sustainability ux high priority fixes (#231)
mparrott-at-wiris Feb 17, 2026
1f64995
Fix onboarding JS not re-initializing after back navigation
mparrott-at-wiris Feb 17, 2026
747199b
Fix bias detective JS not re-initializing after back navigation
mparrott-at-wiris Feb 17, 2026
0088d9b
Fix progress bar and CTA visibility in moral compass challenge app
mparrott-at-wiris Feb 17, 2026
f7a1701
Fix score/rank display bugs in sustainability challenge apps
mparrott-at-wiris Feb 17, 2026
1ccbbbb
Improve button visibility in sustainability challenge steps 2-4
mparrott-at-wiris Feb 17, 2026
e119602
Redesign rank page: bigger card visuals, remove accuracy quiz
mparrott-at-wiris Feb 17, 2026
8d335b5
Hide Gradio progress bar on navigation and control events
mparrott-at-wiris Feb 17, 2026
73e8c1b
Restyle moral compass challenge CSS to match detective app pattern
mparrott-at-wiris Feb 17, 2026
3295567
Replace formula accordion with always-visible visual formula box
mparrott-at-wiris Feb 17, 2026
646811c
Update ethics links to challenges (#232)
mparrott-at-wiris Feb 17, 2026
da88b6b
Formula click-to-reveal and CO₂ emissions card in detective/fixer (#233)
mparrott-at-wiris Feb 17, 2026
699258a
Fixer 12yo simplification (#234)
mparrott-at-wiris Feb 18, 2026
97cc1bf
Add OEIAC (UdG) expert reference to sustainability detective Module 1…
mparrott-at-wiris Feb 18, 2026
acf859a
Sustainability detective UdG reference + fixer ES/CA sync & annual fr…
mparrott-at-wiris Feb 18, 2026
a0b4ef9
Move formula below modules and restyle as subdued in detective/fixer
mparrott-at-wiris Feb 18, 2026
4f05823
Module 1 expert-first layout with typewriter reveal in detective EN/E…
mparrott-at-wiris Feb 18, 2026
16c35a0
Fixer Module 3: clarify "brain" → "model" terminology in EN/ES/CA
mparrott-at-wiris Feb 18, 2026
a6efb54
Redesign Moral Compass Challenge (Activity 5) as Gradio Blocks app EN…
mparrott-at-wiris Feb 19, 2026
50e4677
Remove EdTech Congress reference from Activity 9 ES/CA (#238)
mparrott-at-wiris Feb 19, 2026
9522472
Update sustainability Moral Compass Challenge content and fix accurac…
mparrott-at-wiris Feb 19, 2026
8759eed
Add Cloud Run cost analysis for moral compass apps with burst scenarios
mparrott-at-wiris Feb 19, 2026
620803e
Fix accuracy injection bypassed by DOMPurify and remove redundant Nex…
mparrott-at-wiris Feb 20, 2026
2e1c42e
Fix accuracy injection and UX improvements for Moral Compass Challeng…
mparrott-at-wiris Feb 20, 2026
d5edce2
Add "Proceed to Next Activity" navigation to all Gradio apps (Activit…
mparrott-at-wiris Feb 20, 2026
b480bbf
Add proceed navigation and content updates for sustainability apps (#…
mparrott-at-wiris Feb 20, 2026
4c04658
Fix MCC nav buttons not showing on modules 1-3 in EN/ES/CA
mparrott-at-wiris Feb 20, 2026
19594be
Merge origin/master into fix/sustainability-content-updates
mparrott-at-wiris Feb 20, 2026
dbd54a0
Fix/sustainability content updates (#242)
mparrott-at-wiris Feb 20, 2026
d2d634b
Fix MCC Module 0 button using CSS hiding instead of visible=False
mparrott-at-wiris Feb 20, 2026
4922aac
Merge origin/master, resolve conflicts keeping CSS-based button hiding
mparrott-at-wiris Feb 20, 2026
9ee2093
Use visible="hidden" instead of visible=False for Gradio 5.36+ DOM co…
mparrott-at-wiris Feb 20, 2026
6d732c9
Fix MCC module navigation and simplify text for younger audience
mparrott-at-wiris Feb 21, 2026
e4245c9
Skip transition overlay and navigate directly to Activity 6
mparrott-at-wiris Feb 21, 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
98 changes: 98 additions & 0 deletions .github/workflows/ai_lead_engineer_app_test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
name: AI Lead Engineer App Test

on:
workflow_dispatch:

permissions:
contents: read

concurrency:
group: ai-lead-engineer-app-${{ github.ref_name }}
cancel-in-progress: true

jobs:
ai-lead-engineer-app-test:
runs-on: ubuntu-latest
timeout-minutes: 15
env:
TF_CPP_MIN_LOG_LEVEL: "2"
AIMODELSHARE_SUPPRESS_OPTIONAL_WARNINGS: "1"
CUDA_VISIBLE_DEVICES: "-1" # Force CPU-only for TensorFlow
# Safely expose secrets as env (empty if unavailable, e.g., fork PRs)
AIMODELSHARE_USERNAME: ${{ secrets.AIMODELSHARE_USERNAME }}
AIMODELSHARE_PASSWORD: ${{ secrets.AIMODELSHARE_PASSWORD }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_REGION: ${{ secrets.AWS_REGION }}

strategy:
matrix:
python-version: ["3.11"]

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: "pip"

- name: Upgrade pip
run: |
python -m pip install --upgrade pip

- name: Install dependencies
run: |
# Core dependencies
pip install boto3 onnx onnxmltools onnxruntime Pympler scikeras shortuuid skl2onnx tf2onnx wget
# Package in editable mode
pip install -e .
# Test and ML dependencies
pip install pytest scikit-learn pandas numpy opencv-python-headless pydot regex psutil IPython matplotlib seaborn importlib_resources onnxscript
# TensorFlow (CPU-only)
pip install tensorflow-cpu
# PyTorch (CPU-only)
pip install --index-url https://download.pytorch.org/whl/cpu torch torchvision
# Gradio UI
pip install gradio

- name: Verify CPU-only TensorFlow
run: |
python -c "import tensorflow as tf, os; os.environ['CUDA_VISIBLE_DEVICES']='-1'; print('TensorFlow GPUs:', len(tf.config.list_physical_devices('GPU'))); print('CPU-only mode verified');"

- name: Set up test environment (if credentials available)
if: ${{ env.AIMODELSHARE_USERNAME != '' && env.AIMODELSHARE_PASSWORD != '' }}
run: |
echo "username=${AIMODELSHARE_USERNAME}" >> "$GITHUB_ENV"
echo "password=${AIMODELSHARE_PASSWORD}" >> "$GITHUB_ENV"
echo "AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}" >> "$GITHUB_ENV"
echo "AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}" >> "$GITHUB_ENV"
echo "AWS_REGION=${AWS_REGION}" >> "$GITHUB_ENV"

- name: Run AI Lead Engineer app tests
run: |
pytest tests/test_playground_ai_lead_engineer_app.py -v -s --tb=short

- name: Test app import from moral_compass module
run: |
python - <<'PY'
from aimodelshare.moral_compass import create_ai_lead_engineer_app, launch_ai_lead_engineer_app
print('✓ Import from moral_compass module successful')

from aimodelshare.moral_compass.apps import create_ai_lead_engineer_app as create2, launch_ai_lead_engineer_app as launch2
print('✓ Import from apps module successful')

app = create_ai_lead_engineer_app()
assert app is not None
print('✓ App instantiation successful')
PY

- name: Summary
if: always()
run: |
echo "AI Lead Engineer App Test Summary"
echo "=================================="
echo "Python version: ${{ matrix.python-version }}"
echo "Status: Test completed"
84 changes: 84 additions & 0 deletions .github/workflows/aimodelshare-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
name: Test latest master branch aimodelshare

on:
workflow_dispatch: # Manual trigger only

permissions:
contents: read

concurrency:
group: master-aimodelshare-tests
cancel-in-progress: true

jobs:
run-tests:
runs-on: ubuntu-latest
timeout-minutes: 120

env:
USERNAME: ${{ secrets.AIMODELSHARE_USERNAME }}
PASSWORD: ${{ secrets.AIMODELSHARE_PASSWORD }}
AWS_ACCESS_KEY_ID: ${{ secrets.DATA_AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.DATA_AWS_SECRET_ACCESS_KEY }}
AWS_REGION: us-east-1

steps:
- name: Checkout repository (master)
uses: actions/checkout@v4
with:
# Uncomment the next line if you want to ALWAYS test master even when dispatching from another ref
# ref: master
fetch-depth: 0

- name: Show commit being tested
run: |
echo "Testing commit:"
git --no-pager log -1 --oneline
echo "Current branch (if detached this may be a commit SHA):"
git branch --show-current || true

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.10"
cache: "pip"

- name: Upgrade pip
run: |
python -m pip install --upgrade pip

- name: Install local aimodelshare (editable) + test dependencies
run: |
pip install boto3 onnx onnxmltools onnxruntime Pympler scikeras shortuuid skl2onnx tf2onnx wget
pip install -e .
pip install pytest scikit-learn pandas numpy opencv-python-headless tensorflow pydot regex psutil IPython "PyJWT<2.0" matplotlib seaborn importlib_resources onnxscript
pip install --index-url https://download.pytorch.org/whl/cpu torch torchvision
python -c "import aimodelshare, os; print('aimodelshare imported from:', aimodelshare.__file__)"

- name: Verify import now points to repository source (not PyPI)
run: |
python - <<'PYCODE'
import aimodelshare, os
path = aimodelshare.__file__
print("Resolved aimodelshare.__file__:", path)
repo_root = os.getcwd()
assert repo_root in os.path.abspath(path), f"aimodelshare does not appear to come from the checked-out repository root: {repo_root}"
assert "site-packages" not in path, "aimodelshare should NOT be the PyPI site-packages build."
print("Verification passed: using local master branch source.")
PYCODE

- name: Run targeted tests against local master branch
run: |
echo "Starting pytest for tests/test_playgrounds_nodataimport.py"
pytest -vv tests/test_aimsonnx.py
pytest -vv tests/test_playgrounds_nodataimport.py

- name: Post-run diagnostics (always runs)
if: always()
run: |
echo "Job conclusion: ${{ job.status }}"
python - <<'PYCODE'
import aimodelshare
print("aimodelshare version attribute (may reflect local dev state):", getattr(aimodelshare, "__version__", "unknown"))
print("Module file path:", aimodelshare.__file__)
PYCODE
149 changes: 149 additions & 0 deletions .github/workflows/bootstrap-terraform.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
name: Bootstrap Terraform State Resources

on:
workflow_dispatch:
workflow_call:
outputs:
s3_bucket_name:
description: "Name of the created S3 bucket"
value: ${{ jobs.bootstrap.outputs.s3_bucket_name }}
dynamodb_table_name:
description: "Name of the created DynamoDB table"
value: ${{ jobs.bootstrap.outputs.dynamodb_table_name }}
github_actions_role_arn:
description: "ARN of the created GitHub Actions IAM role"
value: ${{ jobs.bootstrap.outputs.github_actions_role_arn }}

jobs:
bootstrap:
runs-on: ubuntu-latest

outputs:
s3_bucket_name: ${{ steps.terraform_output.outputs.s3_bucket_name }}
dynamodb_table_name: ${{ steps.terraform_output.outputs.dynamodb_table_name }}
github_actions_role_arn: ${{ steps.terraform_output.outputs.github_actions_role_arn }}

permissions:
contents: read

env:
AWS_REGION: ${{ vars.AWS_REGION || 'us-east-1' }}
TF_IN_AUTOMATION: "true"

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Terraform
uses: hashicorp/setup-terraform@v3
with:
terraform_version: 1.9.5
terraform_wrapper: false

# Configure AWS credentials using access keys per company policy
# Note: Requires AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY repository secrets
# Security: Ensure access keys follow principle of least privilege and key rotation policies
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.DATA_AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.DATA_AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ env.AWS_REGION }}

- name: Check if resources already exist
id: check_resources
working-directory: infra/bootstrap
run: |
# Check if S3 bucket exists
if aws s3api head-bucket --bucket "aimodelshare-tfstate-prod-copilot-2024" 2>/dev/null; then
echo "s3_exists=true" >> $GITHUB_OUTPUT
else
echo "s3_exists=false" >> $GITHUB_OUTPUT
fi

# Check if DynamoDB table exists
if aws dynamodb describe-table --table-name "aimodelshare-tf-locks" 2>/dev/null; then
echo "dynamodb_exists=true" >> $GITHUB_OUTPUT
else
echo "dynamodb_exists=false" >> $GITHUB_OUTPUT
fi

# Check if GitHub OIDC provider exists
ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
if aws iam get-open-id-connect-provider --open-id-connect-provider-arn "arn:aws:iam::${ACCOUNT_ID}:oidc-provider/token.actions.githubusercontent.com" 2>/dev/null; then
echo "oidc_provider_exists=true" >> $GITHUB_OUTPUT
else
echo "oidc_provider_exists=false" >> $GITHUB_OUTPUT
fi

# Check if GitHub Actions IAM role exists
if aws iam get-role --role-name "aimodelshare-github-oidc-deployer" 2>/dev/null; then
echo "github_role_exists=true" >> $GITHUB_OUTPUT
else
echo "github_role_exists=false" >> $GITHUB_OUTPUT
fi

- name: Terraform Init
working-directory: infra/bootstrap
run: terraform init -input=false

- name: Terraform Validate
working-directory: infra/bootstrap
run: terraform validate

- name: Import existing resources (if they exist)
working-directory: infra/bootstrap
if: steps.check_resources.outputs.s3_exists == 'true' || steps.check_resources.outputs.dynamodb_exists == 'true' || steps.check_resources.outputs.oidc_provider_exists == 'true' || steps.check_resources.outputs.github_role_exists == 'true'
run: |
ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)

if [ "${{ steps.check_resources.outputs.s3_exists }}" = "true" ]; then
echo "Importing existing S3 bucket..."
terraform import aws_s3_bucket.terraform_state aimodelshare-tfstate-prod-copilot-2024 || true
terraform import aws_s3_bucket_versioning.terraform_state aimodelshare-tfstate-prod-copilot-2024 || true
terraform import aws_s3_bucket_server_side_encryption_configuration.terraform_state aimodelshare-tfstate-prod-copilot-2024 || true
terraform import aws_s3_bucket_public_access_block.terraform_state aimodelshare-tfstate-prod-copilot-2024 || true
fi

if [ "${{ steps.check_resources.outputs.dynamodb_exists }}" = "true" ]; then
echo "Importing existing DynamoDB table..."
terraform import aws_dynamodb_table.terraform_locks aimodelshare-tf-locks || true
fi

if [ "${{ steps.check_resources.outputs.oidc_provider_exists }}" = "true" ]; then
echo "Importing existing GitHub OIDC provider..."
terraform import aws_iam_openid_connect_provider.github "arn:aws:iam::${ACCOUNT_ID}:oidc-provider/token.actions.githubusercontent.com" || true
fi

if [ "${{ steps.check_resources.outputs.github_role_exists }}" = "true" ]; then
echo "Importing existing GitHub Actions IAM role..."
terraform import aws_iam_role.github_actions aimodelshare-github-oidc-deployer || true
# Also try to import the policy and attachment if they exist
terraform import aws_iam_policy.github_actions_deployment "arn:aws:iam::${ACCOUNT_ID}:policy/aimodelshare-github-actions-deployment" || true
terraform import aws_iam_role_policy_attachment.github_actions_deployment aimodelshare-github-oidc-deployer/arn:aws:iam::${ACCOUNT_ID}:policy/aimodelshare-github-actions-deployment || true
fi

- name: Terraform Plan
id: plan
working-directory: infra/bootstrap
run: |
terraform plan -input=false -out=tfplan

- name: Terraform Apply
working-directory: infra/bootstrap
run: terraform apply -input=false -auto-approve tfplan

- name: Get Terraform Outputs
id: terraform_output
working-directory: infra/bootstrap
run: |
S3_BUCKET=$(terraform output -raw s3_bucket_name)
DYNAMODB_TABLE=$(terraform output -raw dynamodb_table_name)
GITHUB_ROLE_ARN=$(terraform output -raw github_actions_role_arn)
echo "s3_bucket_name=$S3_BUCKET" >> $GITHUB_OUTPUT
echo "dynamodb_table_name=$DYNAMODB_TABLE" >> $GITHUB_OUTPUT
echo "github_actions_role_arn=$GITHUB_ROLE_ARN" >> $GITHUB_OUTPUT
echo "✅ Bootstrap completed successfully!"
echo " S3 Bucket: $S3_BUCKET"
echo " DynamoDB Table: $DYNAMODB_TABLE"
echo " GitHub Actions Role ARN: $GITHUB_ROLE_ARN"
Loading