Skip to content

Develop#45

Merged
jagalindo merged 39 commits into
mainfrom
develop
Jun 2, 2026
Merged

Develop#45
jagalindo merged 39 commits into
mainfrom
develop

Conversation

@jagalindo

Copy link
Copy Markdown
Member

No description provided.

jmhorcas and others added 30 commits July 15, 2025 16:46
- Toolbar-less layout: controls injected into Navbar via setNavControls
- Plugin config system: public/flamapy/plugins.conf.json drives which wheels
  micropip installs and which solver tabs the UI shows; Z3 disabled by default
- Solver tabs (SAT/BDD/Z3) now derived from config loaded by the worker on startup
- New views: Config. Distribution and Feature Prob. charts (from views branch)
  using react-chartjs-2; BDD-backed Python functions in flamapy_ide.py
- Z3 support: attribute optimization modal, getNumericalAttributes worker action
- Collaborative editing: yjs + y-websocket, gated on VITE_ENABLE_COLLAB=true
- Analytics: GA4 with cookie consent, Privacy Policy and Cookie Preferences pages
- Makefile: add build-wheels target to download pure-python wheels from PyPI
- Remove leftover EditorPage copy files

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Toolbar: add Metrics dropdown (Config Distribution, Feature Prob.) inline with View section; remove standalone Configurator section
- DropdownMenu: use minWidth so option text is never clipped
- ModelProperties: remove FM Fact Label link
- flamapy_ide.py: fix BDDFeatureInclusionProbability printing [object Object] by serializing plain dicts to string list
- Makefile: add clean-old-wheels target (reads plugins.conf.json as source of truth); runs automatically after build-wheels
- .gitignore: ignore CLAUDE.md, .claude/, .env, .env.example
- Wheels: upgrade all flamapy packages to 2.5.0, dd to 0.6.0; remove stale 2.1.0.dev0 wheels, flamapy_bdd_colosal, and Linux z3 wheel

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Tests: fix silent assertions in test_get_model_information (missing
  assert keywords and accidental assignments instead of comparisons)
- CI: add ESLint workflow that runs on PRs to main and pushes to develop
- CI: fix Docker workflow — guard both jobs with
  'conclusion == success' so a failed release-please does not trigger
  a build or deploy
- CI: bump Python to 3.12 to match Pyodide runtime; install vendored
  flamapy_configurator wheel; add --cov flag to pytest
- UX: persist editor content to localStorage on every edit and restore
  it on startup when no file is being imported; skipped during collab
  sessions to avoid cross-session bleed

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Medium priority:
- Graph view: explicitly re-fetch feature tree on every switch to graph,
  ensuring the visualization is always in sync with the current model
- Tests: add coverage for get_configuration_distribution,
  get_feature_inclusion_probabilities, and BDDFeatureInclusionProbability
  dict serialization path
- Error boundaries: add ErrorBoundary component wrapping chart views so
  a render crash does not take down the whole editor
- Metrics charts: add Download PNG button to Config Distribution and
  Feature Inclusion Probabilities charts via chartjs toBase64Image

Low priority:
- URL model sharing: ?model=<base64> query param loads a model on startup
  (priority over localStorage); Share section in toolbar copies the link
- UVL autocomplete: Monaco snippet completions for all UVL keywords
  (namespace, features, constraints, mandatory, optional, alternative, or)
- Keyboard navigation in DropdownMenu: ArrowUp/Down to move focus,
  Enter to select, Escape to close; ARIA roles updated to listbox/option
- Dark mode: Tailwind darkMode:'class', toggle button in Navbar (persisted
  to localStorage), dark variants on Navbar, toolbar, output panel,
  model info panel, and dropdown menu

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Exclude public/ from ESLint to prevent vendor files (pyodide, flamapy)
  from causing lint failures in CI
- Wire darkMode prop from App → EditorPage → UVLEditor so Monaco editor
  switches between vs/vs-dark themes when the toggle is clicked

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Cover the remaining components that were displaying light-only colors:
FeatureTree panel/nodes, Wizzard container, ModelProperties text/dividers,
Configuration feature lists, toolbar buttons (solver/analysis/export/metrics/collab),
hide/show panel buttons, Z3 optimization modal, and the UVLEditor wrapper div.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… start_coding.sh

- Add chart.js, js-cookie, react-chartjs-2, react-cookie-consent, react-ga4 to package-lock.json
- Update esbuild to 0.27.3
- Fix micropip.install indentation in flamapy.js
- Add start_coding.sh to .gitignore

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- webworker.js: pass msgId in postMessage responses, simplify context destructuring
- requirements.txt: update to flamapy 2.5.0, add z3, fix configurator install note
- FeatureModelVisualization.jsx: replace dom-to-svg with native XMLSerializer for SVG export
- Normalize file modes and binary assets to match working environment

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Keeping develop's rollup 4.59.0 (already newer than dependabot's 4.34.6 bump).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The vendored flamapy_configurator-2.0.1-py3-none-any.whl requires
flamapy-fw~=2.0.1 and flamapy-fm~=2.0.0, causing pip to downgrade
those packages from 2.5.0. This removed FMLanguageLevel from
flamapy-fm, breaking all test collection with an ImportError.

- Use --no-deps when installing the configurator wheel so 2.5.0
  packages stay in place
- Also upgrade setuptools and wheel alongside pip to avoid
  astutils/ply build failures on older setuptools versions
- Fix BDDVariantFeatures test to use order-independent comparison
  since the BDD operation returns features in non-deterministic order

https://claude.ai/code/session_016tskPAqbm3FrFbA7ZCvisd
- Add node env override in .eslintrc.cjs for server/ files so
  process is recognised without explicit global declarations
- Remove stale eslint-disable comments (no-console in collab-server,
  no-unused-vars in EditorPage) that were flagged as unused directives
- Add PropTypes for Configuration, ErrorBoundary,
  FeatureInclusionProbabilitiesChart, Information, ProductDistributionChart
- Remove unused React import from FeatureInclusionProbabilitiesChart
  and ProductDistributionChart (jsx-runtime transform makes it unneeded)
- Add missing useEffect deps: availableWidth in FeatureModelVisualization,
  type in Information; suppress intentional once-on-mount effect in Home
- Fix no-useless-escape in UVLEditor regex character classes
- Remove unused cancelURL variable from Wizzard
- Remove unused importURL state from Home

https://claude.ai/code/session_016tskPAqbm3FrFbA7ZCvisd
@jagalindo jagalindo merged commit 483a5eb into main Jun 2, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants