Version 7.3.0¶
This release introduces a new UserDiagram for describing the different end-user profiles of apps, the Agent Personalization workflow to create variations of the same agent for each user profile, and a standalone chatbot deploy target on the existing GitHub deploy flow. It also tightens the deploy export so diagrams.json written into deployed repos is re-importable through the editor, and gates the new recommendation endpoints behind GitHub OAuth so the BESSER server’s OpenAI quota cannot be drained anonymously.
New Features and Improvements¶
User Diagram
Added UserDiagram as a first-class diagram type for describing the different user profiles of created apps, capturing personal information, language profile, competences, accessibility constraints, abilities, and cultural dimensions in the same metamodel space as the rest of B-UML.
Shipped an OCL constraint set (
pi_age_range,skill_name_not_empty,education_required_fields,disability_description_not_empty) declared inconstants/user_buml_model.pyand evaluated by the existingcheck_ocl_constraintpipeline.Extended the validation router so the same
/validate-diagramendpoint covers UserDiagram payloads alongside the existing diagram types.Added a dedicated palette in the Web Modeling Editor (
UserModelName,UserModelAttribute,UserModelIcon).The attribute-edit panel now supports enumeration values with case-insensitive enum lookup.
Documentation:
docs/source/buml_language/model_types/user_diagram.rst.
Agent Personalization Pipeline
Based on a given agent model, user model, and agent profile (defining user specific customizations), a personalized model can be generated, reflecting the customizations
The BAF_generator can now ingest multiple agent models with a user-profile-to-agent-model mapping and generate an agent that provides a personalized experience based on the available profiles.
Documentation:
docs/source/generators/agent_personalization.rst.
Standalone Chatbot Deploy
Extended
POST /github/deploy-webappto accept adeploy_config.targetof"webapp"or"chatbot"(the frontend translates its"agent"→"chatbot"at the wire boundary).
Web Modeling Editor
Added the agent-personalization workflow with
AgentConfigurationPanel(absorbing the previous two personalization panels) and an agent-variant management UI on the agent diagram.Added the Deploy → “Publish to Render” agent target so users can deploy a personalized chatbot directly from the editor.
Added v2
LocalStorageRepositorymigrations forbesser_systemConfigand the legacyagentConfigkey.Migrated
useGitHubRepo.createRepotoapiClient.postwithX-GitHub-Sessionforwarded;DeployWebappResponseis hoisted at module scope and thedeployment_urls/is_first_deployfallback lives in a singletoGitHubRepoResultmapper.Added a real UI-driven Playwright spec at
tests/e2e/github-deploy.spec.tsthat drives the production Deploy menu and asserts the captured request body carriesprojectExport.version === "2.0.0"and a non-emptyproject.diagramsmap.Object diagram now prefers the
classNamelabel for user-model elements.
B-UML Metamodel
Fixed
Object._validate_object_completenessso a child class that only inherits attributes is still flagged when no slot values are provided. The check now callsclassifier.attributesandclassifier.inherited_attributes()directly (instead of guarding withhasattr/getattrdefaults that masked real type bugs).
Testing¶
Backend full
pytestsuite: 771 passed, 5 skipped, 3 xfailed.New unit tests cover
user_profile_utils(safe_pathtraversal/prefix-sibling,generate_user_profile_documentsmoke),agent_config_recommendation_utils(markdown-fence JSON extraction, clamp + whitelist normalization,lru_cacheidentity), andagent_config_manual_mapping_utils(representative profiles for older-adults, language-code-switching, and low-literacy abbreviation rules; determinism + deepcopy safety).New behavioral integration tests in
test_api_integration.pycover/recommend-agent-config-mappingend-to-end (real helpers, no LLM mock),/recommend-agent-config-llmwith out-of-range LLM responses to verify clamping, and/deploy-webappwithdeploy_target="agent"driving the chatbot path via a mocked PyGithub client.Frontend
vitest: 23/23 onshared/utils/__tests__/projectExportUtils.test.ts(existing 20 + 3 new envelope-contract cases — version pin, ISOexportedAtround-trip,diagramTypesargument forwarding).Tightened
test_relationship_fk_placementslicing to stop at the#---relationship-block separator so a non-deterministic class-ordering run no longer leaksSensor.dt_idintoPhysicalAsset’s slice.Added
.github/codeql/codeql-config.ymlexcludingpy/clear-text-storage-sensitive-data: the rule fires on thef.write(render_config)calls in the deploy paths becauserender.yamlreferences env-var KEY names (OPENAI_API_KEY,STREAMLIT_DB_PASSWORD) so Render can wire secrets at deploy time — no password VALUES are written.