| | |
| | | # Auto Tune Dispatch Verification |
| | | |
| | | - Verification time: 2026-04-27 12:50:15 CST |
| | | - Verification time: 2026-04-27 14:06:42 CST |
| | | - Branch: `codex/auto-tune-dispatch` |
| | | - HEAD: `0a13eab` |
| | | - Scope: Task 7 end-to-end verification and operator notes only. No business code was changed. |
| | | - Verified code HEAD: `2cc6134` |
| | | - Scope: full auto-tune dispatch branch after final safety fixes. This document update is a docs-only follow-up to refresh verification evidence. |
| | | |
| | | ## Command Results |
| | | |
| | | | Command | Result | Notes | |
| | | | --- | --- | --- | |
| | | | `git status --short --branch` | PASS | Output: `## codex/auto-tune-dispatch`; no uncommitted files before this document was created. | |
| | | | `mvn -q -Dtest=FlowTopologySnapshotServiceImplTest,AutoTuneApplyServiceImplTest,AutoTuneCoordinatorServiceImplTest test` | PASS | Exit code 0. Output includes expected negative-path logs from tests that intentionally throw MCP, guard, log, and agent failures. Mockito/ByteBuddy dynamic agent warnings were also printed. | |
| | | | `git status --short --branch` | PASS | Output before this document refresh: `## codex/auto-tune-dispatch`; no uncommitted business-code files. | |
| | | | `mvn -q -Dtest=FlowTopologySnapshotServiceImplTest,AutoTuneApplyServiceImplTest,AutoTuneCoordinatorServiceImplTest,AutoTuneSnapshotServiceImplTest test` | PASS | Exit code 0. Output includes expected negative-path logs from tests that intentionally throw MCP, guard, cache refresh, lock, log, and agent failures. Mockito/ByteBuddy dynamic agent warnings were also printed. | |
| | | | `mvn -q -DskipTests compile` | PASS | Exit code 0. | |
| | | | `mvn -q -DskipTests spring-boot:run` | PASS with controlled stop | Started far enough to confirm `Tomcat started on port 9090 (http) with context path '/wcs'`; process was then stopped to avoid hanging. | |
| | | |
| | | ## Startup Verification |
| | | |
| | | Startup log file from this run: `/tmp/zy-wcs-auto-tune-startup-43850.log`. |
| | | Startup log file from this run: `/tmp/zy-wcs-auto-tune-startup-1777269992.log`. |
| | | |
| | | Observed runtime startup evidence: |
| | | |
| | |
| | | - Embedded context path initialized as `/wcs`. |
| | | - MySQL/Hikari connection pool started successfully in this environment. |
| | | - `AiMcpMountInitializer` logged `AI MCP mounts initialized, insertedOrRecovered=1`. |
| | | - `AiPromptTemplateServiceImpl` logged default prompt block initialization for `sceneCode=wcs_auto_tune_dispatch`, `version=1`. |
| | | - `AiPromptTemplateInitializer` logged `AI prompt templates initialized, insertedOrRecovered=1`. |
| | | - `AiPromptTemplateInitializer` logged `AI prompt templates initialized, insertedOrRecovered=0`, meaning prompt rows already existed from prior initialization. |
| | | - `McpServerAutoConfiguration` logged tools capability enabled and `Registered tools: 12`. |
| | | |
| | | Startup caveats: |
| | |
| | | |
| | | Dry-run, apply, rollback, batch, buffer, and safety gate coverage: |
| | | |
| | | - `AutoTuneApplyServiceImplTest` covers whitelist rejection, numeric validation, range limits, step limits, cooldown rejection, dry-run no-write behavior, mixed valid/invalid real batch rejection, successful mixed batch apply across `sys_config`, `station`, `crn`, and `dual_crn`, write failure rollback, successful rollback, and failed rollback. |
| | | - `AutoTuneApplyServiceImplTest` covers whitelist rejection, numeric validation, range limits, step limits, cooldown rejection, dry-run no-write behavior, mixed valid/invalid real batch rejection, successful mixed batch apply across `sys_config`, `station`, `crn`, and `dual_crn`, write failure rollback, successful rollback, failed rollback, apply/rollback lock rejection, apply/rollback audit/job transaction rollback, cache refresh failure isolation, and failure-job recovery. |
| | | - `rejectStationOutTaskLimitAboveDirectionalBufferCapacity` verifies `station.outTaskLimit` cannot exceed directional `bufferCapacity`. |
| | | - `rejectStationOutTaskLimitNullUnlimitedCurrentValue` and `rejectStationOutTaskLimitNegativeUnlimitedCurrentValue` verify `NULL` or negative station `outTaskLimit` values are treated as unlimited and rejected for automatic tuning until an operator initializes a finite value. |
| | | - `allowStationOutTaskLimitZeroToOneAsFiniteStep` verifies `0` is treated as a finite blocking value, not as unlimited. |
| | | - `AutoTuneCoordinatorServiceImplTest` covers MCP apply dry-run requirement, direct real-apply rejection without dry-run token, matching token apply, mismatched token rejection, expired token rejection, rollback tool delegation, allowed tool sequence, disallowed tool rejection, and allowed tool failure handling. |
| | | |
| | | Scheduler/coordinator coverage: |
| | |
| | | - `coordinatorSkipsWhenRunningLockIsNotAcquired` covers distributed lock gating. |
| | | - `coordinatorSetsGuardWhenAgentReturnsFailure` and `coordinatorSetsGuardWhenAgentThrows` cover failure throttle guard behavior. |
| | | - `coordinatorKeepsAgentResultWhenOperateLogFails` and `coordinatorRunsAgentAndReleasesLockWhenGuardWriteFails` cover cleanup/release behavior around secondary write failures. |
| | | - `AutoTuneSnapshotServiceImplTest.loadActiveTasksIncludesNullWrkStatusInGroupedCondition` verifies the snapshot active-task predicate matches scheduler semantics and includes `wrk_sts IS NULL`. |
| | | |
| | | ## Not Fully Runtime-Verified |
| | | |