- Add change password feature in UserService, allowing users to update their password after verifying the current one.
- Introduce UpdateUserRequest model for updating user details, including username, password, and role.
- Implement RESTful endpoints for changing passwords and updating user information in AuthResource and UsersResource.
- Enhance OpenAPI specification to document new endpoints for password change and user updates.
- Create frontend components for user management, including a dedicated UsersPage for admin users to manage user accounts.
- Add unit tests for UserService to ensure correct behavior of password changes and user updates.
- Annotate create, update, and delete methods in CharacterService and ScenarioService with @Transactional to ensure proper transaction management.
- Add @Transactional annotation to the createUser method in UserService for consistency in transaction handling across services.
- Enhance data integrity and consistency during operations involving character, scenario, and user management.
- Introduce user authentication with form-based login, including a default admin user.
- Implement UserEntity, UserRepository, and UserService for user management.
- Create RESTful endpoints for user listing and creation, restricted to admin role.
- Enhance OpenAPI specification to document new authentication and user management endpoints.
- Add frontend components for login and user management, including protected routes.
- Implement context and hooks for managing authentication state in the React application.
- Include unit tests for user service and authentication logic.
- Add create, update, and delete functionality for characters and scenarios in CharacterService and ScenarioService.
- Introduce CreateCharacterRequest and CreateScenarioRequest models for handling character and scenario creation requests.
- Update CharactersResource and ScenariosResource to expose new endpoints for character and scenario management.
- Enhance OpenAPI specification to document new API endpoints and request/response schemas.
- Implement frontend components for managing characters and scenarios, including listing, creating, editing, and deleting.
- Add unit tests for CharacterService to ensure correct behavior of character creation and updates.
- Upgrade Quarkus and OpenAPI generator versions in pom.xml.
- Introduce CharacterService and ScenarioService for managing character and scenario templates.
- Implement CharacterEntity and ScenarioEntity JPA entities with corresponding repositories.
- Add RESTful APIs for listing and retrieving characters and scenarios.
- Create JSON converter for persisting lists of strings in the database.
- Update OpenAPI specification to include new endpoints for character and scenario management.
- Add Liquibase migration scripts for character and scenario tables.
- Configure application settings for Hibernate ORM and database generation.
- Enhance InMemorySessionService to utilize the two-call Ollama pattern for session creation and turn submissions, generating narratives and state updates based on provided scenarios.
- Introduce OllamaContextBuilder to construct turn contexts for both session initialization and turn continuation.
- Add OllamaPrompts class to define system prompts for narrative generation and state extraction.
- Implement StateUpdateMapper to handle merging state updates into session responses.
- Create unit tests for InMemorySessionService to validate Ollama interactions and ensure correct session state management.
- Introduce UpdateSessionRequest model for partial updates to session state, allowing modification of situation and characters.
- Implement updateSession method in SessionService to handle updates, ensuring omitted fields remain unchanged.
- Enhance InMemorySessionService to support scenario-based session creation, populating initial situation and characters.
- Update SessionResource to delegate update requests to the SessionService.
- Add corresponding API documentation for the update session endpoint in OpenAPI specification.
- Enhance frontend components to allow editing of session scene and characters, integrating with the new update functionality.
- Include unit tests to verify the behavior of session updates and scenario handling.
- Remove the RolePlayApplication class as part of the restructuring.
- Update pom.xml to include new dependencies for YAML configuration and H2 database support.
- Modify API package imports in ModelResource, SessionResource, and TurnResource to use the generated API package.
- Update application.yml to configure H2 datasource and enable Liquibase migrations at startup.
- Update .gitignore to include additional build outputs and IDE files.
- Modify pom.xml to add new plugin versions and configurations for frontend and OpenAPI TypeScript client generation.
- Introduce project guidelines in roleplay-project.mdc, detailing architecture, coding standards, and testing practices.
- Add initial documentation for the RolePlay concept and specifications.
- Implement catch-all JAX-RS resource for serving the React application and establish API base path in application.yml.
- Create foundational web components and TypeScript configuration for the frontend application.
- Introduce main application structure with React, including routing and state management.
- Implement key components: StartPage, SessionPage, NarrativeView, SuggestionList, ActionInput for user interaction.
- Set up Vite for development and build processes, with TypeScript support.
- Create API integration for session management and narrative suggestions.
- Add catch-all JAX-RS resource for serving the React application.
- Create .gitignore to exclude target and IDE files
- Add application.yml for Quarkus configuration
- Implement package-info.java for business logic, facade, data, and common packages
- Define core classes for handling user actions, character states, and narrative suggestions
- Set up Ollama API client for narrative generation and state updates
- Include unit tests for greeting service and serialization of context