Skip to content

release: v7.13.0 — LLM-driven GUI personalization - #580

Merged
ArmenSl merged 15 commits into
masterfrom
development
Jul 22, 2026
Merged

release: v7.13.0 — LLM-driven GUI personalization#580
ArmenSl merged 15 commits into
masterfrom
development

Conversation

@ArmenSl

@ArmenSl ArmenSl commented Jul 22, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Per-profile GUI page variants — a new POST /personalize-gui-page endpoint LLM-adapts a GrapesJS page ({components, css}) to a user-profile model; logic lives in a dedicated gui_personalization_utils service (thin router).
  • Personalized web-app generation — the web-app generator emits a Base app plus one personalized variant per user profile (each in its own subfolder); no variants ⇒ unchanged single-app behavior.
  • User-profile modeling — form-based user-profile editor + modeling-agent support for UserDiagram models.
  • Fixes — user-profile criterion parsing (age == 22 splits on the stored ==, blank criteria skipped), OCL evaluation skips constraints on unset attributes, and backend cleanup (single DEFAULT_OPENAI_MODEL, dead code removed, regression tests).
  • Frontend rides along via the submodule bump 360dcfa6 → b14dadec (all GUI-personalization work; no multilingual changes).

Test plan

  • python -m pytest tests/utilities/web_modeling_editor/backend — converter + gui-personalization suites green
  • Full docs build: cd docs && make html — the new v7.13.0 page renders
  • Editor smoke: auto-personalize a page for a profile; generate a web app with ≥1 variant

Aran30 and others added 15 commits June 27, 2026 14:27
… cleanup

Addresses review feedback on #577 (organization + correctness):

- Extract the ~150-line /personalize-gui-page endpoint body into a new
  services/utils/gui_personalization_utils.py, mirroring the
  agent_personalization pattern: the ~40-line LLM system prompt is now a
  module constant, and personalize_gui_page() owns validation, prompt
  building, the OpenAI call and response parsing. The router endpoint is
  now a thin validate -> delegate -> shape-response handler.
- Consolidate the OpenAI model default into one DEFAULT_OPENAI_MODEL =
  'gpt-5' constant. Removes the inconsistent/invalid defaults the PR
  introduced (gpt-5.4-mini x7, gpt-5.6-luna) that would 404 at runtime.
- Remove a leftover print('calling now') debug statement.
- Remove two dead '... and False' branches in replace_reply_batch.
- Add test_gui_personalization.py (10 tests, LLM mocked) covering
  validation, model selection, response parsing and error mapping.

Left as-is: the translate-before-style reorder in replace_reply_batch
(appears intentional); pre-existing gpt-5.5 default at generation_router
line 172 (out of scope).
…anup

refactor(gui-personalization): extract endpoint to a module + fix model defaults
…ion skip

Regression tests for the #579 fixes in object_diagram_processor:
- a manually-typed 'title == X' criterion must split on the stored '=='
  (not the first '='), so the value is 'X' not '= X';
- a blank criterion ('title = ') is skipped, not materialised as an
  empty-valued slot.
- Bump setup.cfg 7.12.0 -> 7.13.0 and add v7.13.0 release notes.
- Frontend submodule bump 360dcfa6 -> b14dadec: the GUI-personalization
  UI (user-profile form editor, per-profile page variants + switching,
  web-app version selection in the generation dialog) plus review
  cleanups. All GUI-personalization work; no multilingual changes.
- Backend: the GUI-personalization feature (#577), the extract-to-service
  cleanup (#578), and the user-profile OCL/parsing fixes + regression
  tests (#579) are already on development.
@ArmenSl
ArmenSl merged commit 80ec34f into master Jul 22, 2026
6 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.

2 participants