NAVAL-SEM v1.0 ships a complete fsQCA engine — calibration, necessity analysis, truth table construction, and Quine-McCluskey Boolean minimisation, all in a single API call.
frequency_cutoff.BubbleChartPoint[] for XY coincidence visualisation of fuzzy-set membership in the frontend.The new reporting engine reads from any completed analysis run and renders journal-submission-ready APA 7th edition tables directly to a .docx file, downloadable from the UI's Downloads tab.
All public result schemas are now frozen for semantic versioning. Field names, types, and required status cannot change in patch or minor releases. New optional fields may be added; nothing may be removed or renamed. Integrations built on v1.0.x will continue to work on v1.y.z.
| Model | Status | Since |
|---|---|---|
| ModelResult | FROZEN | v1.0.0 |
| BootstrapResult | FROZEN | v1.0.0 |
| ModerationResult | FROZEN | v1.0.0 |
| IPMAResult | FROZEN | v1.0.0 |
| NCAResult | FROZEN | v1.0.0 |
| NCAESSEResult | FROZEN | v1.0.0 |
| FIMIXResult | FROZEN | v1.0.0 |
| PLSPOSResult | FROZEN | v1.0.0 |
| MGAResult | FROZEN | v1.0.0 |
| ModMediationResult | FROZEN | v1.0.0 |
| FsQCAResult | FROZEN | v1.0.0 |
| ScaleDevelopmentResult | FROZEN | v1.0.0 |
| CVIResult | FROZEN | v1.0.0 |
v1.0.0 is a forward-only additive release. All v0.9 API calls work unchanged. The only behaviour difference: schemas.py models now carry model_config = ConfigDict(extra="ignore"), which means unexpected fields in a request body are silently discarded rather than raising a 422. This is a strictness relaxation, not a breaking change.
Add POST /fsqca and POST /report to your integration. Both follow the same request/response pattern as existing endpoints: multipart JSON body, synchronous response, error on 422.
New files introduced in this release:
app/fsqca.py app/report.py POST /fsqca POST /reportUpdated files:
app/schemas.py app/main.py .github/workflows/release.yml static/index.html