fix prioritizing redesign#528
Merged
Merged
Conversation
PTKu
commented
Jun 12, 2026
Contributor
- ocs(openspec): propose webapi priority dispatcher
- hore(tests): bump ax-test-project to AX SDK 2510
- chore: add graphify knowledge graph output
- feat(connector): add priority request dispatcher
- chore(openspec): archive webapi-priority-dispatcher
- chore(sandbox): bump ix-integration projects to AX SDK 2510
eAccessPriority does not prioritize: all requests funnel FIFO through a semaphore, and Low holds a concurrency slot during its 500 ms inter-chunk sleep, throttling the foreground work it should yield to. Proposal specs a PriorityRequestDispatcher (per-class FIFO queues, reserved UI slot, aging against starvation, pause/resume on re-login) and cyclic-write-delivery guarantees fixing the snapshot/clear race that silently drops CyclicToWrite assignments. Backward-compatible: public API, eAccessPriority, BatchSettings unchanged. Includes OpenSpec tooling: opsx commands, skills, config.
Replace per-package devDependency catalog pinned to simatic-ax 2504.0.0-rc.1 with consolidated @ax/sdk 2510.12.0. Regenerate hwc library templates (v3/v4_0 dropped, v4_1 added), hardware identifiers, and certificates for the new toolchain; restructure test IO sources (HwIdentifierList, IoStructures). Add axopen.dev.tool (axdev) to dotnet tools; pin rollForward false on all tools.
Persist generated codebase knowledge graph (graphify-out/: report, community labels, AST cache) for graph-backed queries on this branch.
eAccessPriority never prioritized: all chunks funneled FIFO through antiThrottlingSemaphore, and Low held a concurrency slot during its 500 ms inter-chunk sleep, throttling the foreground work it was meant to yield to. - PriorityRequestDispatcher: per-class FIFO queues, worker count capped at ConcurrentRequestMaxCount (clamped <= 4), one slot reserved for UserInterface/High, aging against starvation, pause/resume during re-login - inter-chunk delay applied between enqueues, never while a worker slot is held - UserInterfaceLatencyBudget (default 1500 ms): breaches logged and surfaced via LastUiBatchDurationMs / UiLatencyBreachCount, no hard timeout - cyclic write fix: dirty-set swapped via Interlocked.Exchange and failed primitives re-added, so CyclicToWrite assignments survive transient failures; re-login clears pending writes with audit log - antiThrottlingSemaphore removed; public API, eAccessPriority and BatchSettings unchanged
Verification complete on real S7-1500 (334/334). Sync delta specs to openspec/specs. Add 5.6 headless test covering the rendered- control refresh pathway (StartPolling → cyclic loop) since the Blazor sandbox is unrunnable pre-operon.
Replace pinned 2504 package catalog with @ax/sdk 2510.12.0; regenerate hwc library templates (v4_1), certificates, and ix output; restructure IO sources for the new hwc layout. Blazor sandbox: add Inxton.Operon with operon-variables.css, bump tailwindcss to 4.3.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.