Skip to content

merge with milva master#1

Open
bbesli wants to merge 16 commits into
devoplus:masterfrom
Milvasoft:master
Open

merge with milva master#1
bbesli wants to merge 16 commits into
devoplus:masterfrom
Milvasoft:master

Conversation

@bbesli

@bbesli bbesli commented May 22, 2026

Copy link
Copy Markdown
Member

Description

Please provide a brief description of the changes in this PR.

Related Issue

Fixes #(issue number)

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Performance improvement
  • Code refactoring
  • Test update

Changes Made

  • Change 1
  • Change 2
  • Change 3

Testing

Describe the tests you ran to verify your changes:

  • Unit tests pass
  • Integration tests pass
  • Manual testing performed

Test Configuration:

  • OS:
  • .NET Version:

Checklist

  • My code follows the project's style guidelines
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published

Screenshots (if applicable)

Add screenshots to help explain your changes.

Additional Notes

Add any additional notes for reviewers.

bugrakosen added 16 commits May 20, 2026 21:50
Introduce cursor-based pagination for job occurrences and enhance
workflow triggering with per-step job data overrides.

* Add `.env` and `.env.local` to `.gitignore` for local environment management.
* Add `GetJobOccurenceListCursorQuery` and handler for cursor-based pagination.
* Update `JobsController` with `GetJobOccurrencesCursorAsync` endpoint.
* Add `StepJobData` to `WorkflowRuns` via `WorkflowJobDataOverride` migration.
* Enhance `WorkflowStepDto` with `WorkerId` and `JobNameInWorker`.
* Refactor `GetWorkflowDetailQueryHandler` to include job info for steps.
* Add `TriggerWorkflowCommand` and handler for per-step job data overrides.
* Implement `MergeJobData` method in `WorkflowEngineService`.
* Update `OccurrenceTable` and `ExecutionList` for cursor-based pagination.
* Add `TriggerWorkflowModal` for workflow triggering with step overrides.
* Update `WorkflowDetail` and `WorkflowList` to integrate the modal.
* Enhance `occurrenceService` and `workflowService` for new features.
* Upgrade NuGet dependencies for improved functionality and compatibility.
* Update unit tests to reflect changes in `JobDataMap` handling.
* Add new CSS styles for `TriggerWorkflowModal` and pagination updates.
Introduce `BasePath` for hosting under a sub-path.

* Add `BasePath` property to `MilvaionConfig.cs` for configuration.
* Update `docker-compose.yml` and `Dockerfile` to support `VITE_BASE_PATH`.
* Modify `Program.cs` to use `UsePathBase` middleware for routing.
* Update `vite.config.js` to dynamically configure `base` and proxy settings.
* Update `.env` files to include `VITE_BASE_PATH` for local and production builds.
* Refactor React components to use `useNavigate` for base path compatibility.
* Update `api.js` and `signalRService.js` to construct URLs dynamically.
* Add integration tests (`BasePathIntegrationTests.cs`) to validate sub-path hosting.
* Document `BasePath` configuration in `06-configuration.md`.
* Update PWA settings to respect the base path.

These changes enable deployment flexibility by allowing the application to be hosted under a configurable sub-path.
Refactor startup recovery to improve dispatcher responsiveness:
* Add `CleanupZombieOccurrencesAsync` to handle zombie cleanup in the background.
* Remove inline zombie cleanup logic from `PerformStartupRecoveryAsync`.
* Update log messages to indicate background zombie cleanup.
* Enhance XML documentation for `PerformStartupRecoveryAsync` and add documentation for `CleanupZombieOccurrencesAsync`.

This change allows the dispatcher to start immediately while zombie cleanup runs asynchronously, improving system performance and maintainability.
Introduce /config.js endpoint to serve runtime base path and settings for the frontend. Update React app to read base path from window.__MILVAION_CONFIG__ for routing, API, and SignalR. Adjust documentation and docker-compose.yml to reflect new runtime configuration approach.
- Added ManagementEnabled and ManagementPort to RabbitMQOptions and appsettings.json. - Introduced RabbitMQManagementClient for querying queue stats via the Management HTTP API.
- Updated QueueDepthMonitor to use the Management API for detailed queue statistics and dynamic queue discovery, with fallback to AMQP when unavailable.
- Updated DI registration and XML docs accordingly.
Updated Milvasoft SDK and template package versions across projects.
ApiWorker and ConsoleWorker now reference the latest SDK.Worker.
Improved SyncOrchestratorService logging to only log when there
are actual synced or failed items.
- Added `JobTestRunner` and `Milvasoft.Milvaion.Sdk.Worker.Testing` for in-process local job testing without external services
- Documented local job testing in `23-local-job-testing.md`
- Updated worker templates to generate test projects by default
- Added sample test projects and example tests for workers
- Upgraded NuGet dependencies and added SQLitePCLRaw for .NET 10 support
- Added root `dotnet-tools.json` for tool manifest
- Bump Milvaion template version to 10.1.4
- Update Microsoft.AspNetCore.OpenApi and Microsoft.Extensions.Hosting to 10.0.9
- Switch test imports to Milvasoft.Milvaion.Sdk.Worker.Testing
- Remove unused FluentAssertions import in ConsoleWorker.Tests
Refactored AlertNotifier to properly dispose the timeout CancellationTokenSource and handle unregistered channels more cleanly. Updated WorkflowEngineServiceTests to use a polling wait instead of a fixed delay, ensuring all workflow runs have settled before proceeding.
- Implemented infinite scroll for the card (list) view in JobList using IntersectionObserver and a sentinel element.
- Refactored job loading logic to support both paginated table and infinite scroll card views.
- Updated CSS for infinite scroll UI elements, including loading spinner and end-of-list message. Improved refresh and error handling for both views.
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