Skip to content

Latest commit

 

History

History
478 lines (456 loc) · 240 KB

EXECUTION_STATUS.md

File metadata and controls

478 lines (456 loc) · 240 KB

WareCommand execution status

Current checkpoint — 2026-09-25

Latest application-code revision under qualification is 7b75257bb59a4d46b37a3c782f877c8f5a72c61c; later commits 1696005 and 08640cf update receiving test setup and import order only. The pushed follow-up chain 9c2ff15, 0a8c041, and 2943fdb shortens PostgreSQL receipt-counter locking, adds bounded inventory-balance retries, and preserves the caller's SQLite transaction. Commit 64cc727 adds a transaction-scoped PostgreSQL lock for concurrent reservations on the same warehouse/item. Commit 93f1b63 consolidates each authenticated warehouse authorization into one fresh SQL query, down from eight commands, while preserving immediate permission-change visibility. Commit efda6b0 reduces the fresh warehouse-scope lookup from four SQL commands to one. Commit 6bd664d reduces the shared MVC navigation snapshot from three commands to one UNION ALL query without multiplying permissions by warehouses; user active/lockout state and current direct or role grants remain fresh on each render.

Exact-SHA Actions run #36119978483 passed on 64cc727: Linux and Windows solution quality/coverage, all seven disposable PostgreSQL groups, SQLite-to-PostgreSQL migration, formatting, migration/startup checks, production Docker image, and secret scan. The direct push skipped pull-request dependency review. Artifacts are windows-test-results-36119978483-1, linux-test-results-36119978483-1, and secret-scan-results-36119978483; details are linked in RELEASE_QUALIFICATION.md.

Exact-SHA Actions run #36162502487 passed on 431b2aa: Linux and Windows quality/coverage, all seven disposable PostgreSQL groups, SQLite-to-PostgreSQL migration, production Docker, and secret scan passed. Dependency review was skipped because this was a direct push. CI does not run the local performance budget group; its 20 misses remain open.

The focused allocation/reservation tests passed 12/12. Authorization tests assert the one-command query boundary and fresh permission checks; the combined authorization/webhook focus passed 29/29. The local two-repeat PostgreSQL performance profile completed with zero reconciliation issues but exited nonzero with 19 budget failures on 93f1b63, compared with 21 on 64cc727; this does not clear the capacity gate. Every recorded evaluation had zero reconciliation errors and passed business assertions. Receiving p50 improved in both repeats at concurrency 1 and 4, while the 20-way results varied; same-stock allocation p95 at concurrency 20 remained above its 2,000 ms budget. Exact-SHA Actions run #36125207777 completed successfully on 93f1b63: Linux/Windows quality and coverage, all seven PostgreSQL groups, SQLite-to-PostgreSQL migration, Docker, and secret scan passed. Pull-request dependency review was skipped on the direct push. Artifacts are windows-test-results-36125207777-1, linux-test-results-36125207777-1, and secret-scan-results-36125207777. CI does not run the full performance group, so CI does not clear these local performance misses or establish capacity. Exact measurements and machine boundaries are in PERFORMANCE_QUALIFICATION.md.

The receipt-counter follow-up ababe69 replaces the PostgreSQL sequence update/read/commit path with one atomic update-returning statement. Its focused allocator test passed 1/1. The exact-source PostgreSQL profile still recorded 22 budget failures, although all 180 measured HTTP samples in both repeats succeeded without errors or conflicts and both deep reconciliations were clean. Receiving results varied substantially between repeats and do not establish an end-to-end capacity gain; the capacity gate remains open. Exact measurements are recorded in PERFORMANCE_QUALIFICATION.md.

The inventory-summary follow-up a1c27b7 removes one existence-query round trip for populated canonical balances while retaining the tested legacy-stock fallback; InventoryInquiryServiceTests passed 7/7. Its exact-source PostgreSQL profile recorded 24 budget misses, compared with 22 on ababe69. All measured HTTP samples and reconciliation checks passed, but results varied between repeats and did not establish a capacity gain. The master performance gate remains open; measurements are in PERFORMANCE_QUALIFICATION.md. Do not infer production readiness from CI or local results.

The ledger-write follow-up 431b2aa reduces repeated authorization-scope and dimension-validation queries inside inventory ledger writes. Its focused ledger tests passed 9/9, including warehouse-scope denial. The exact-source two-repeat PostgreSQL profile reduced failures from 24 to 20; same-stock allocation at concurrency 20 completed 20/20 requests without errors/conflicts and both reconciliations were clean. Allocation p95 improved from 7,122/7,324 ms to 3,404/3,538 ms, but the profile still fails 20 latency/throughput budgets, so capacity remains unqualified. Exact measurements are in PERFORMANCE_QUALIFICATION.md.

The reservation idempotency follow-up 418ace1 uses the already-checked warehouse scope for the exact-warehouse demand lookup. Its focused reservation tests passed 7/7, including a single scope resolution on retry. The exact-source two-repeat PostgreSQL profile exited nonzero with 17 failing workload/repeat entries and 35 individual metric breaches; both deep reconciliations were clean. Same-stock allocation c20 p50/p95 remained above budget and repeat variance was large, so this result does not qualify capacity. Exact-SHA Actions run #36169163010 passed Linux/Windows quality and coverage, all seven PostgreSQL groups, SQLite-to-PostgreSQL migration, Docker, and secret scan. Dependency review was skipped for the direct push. CI does not run the full performance profile.

The reservation resource preflight follow-up 66e1a26 combines the active item and warehouse reads into one tagged left-join query; focused reservation tests passed 8/8. Its exact-source local profile recorded 19 failing workload/repeat entries and 40 metric breaches with clean reconciliation. Same-stock c20 p95 fell below budget in both repeats, while p50 and receiving latency still missed budgets and repeat variance remained high. Exact-SHA Actions run #36172867712 passed Linux/Windows quality and coverage, all seven PostgreSQL groups, migration, Docker, and secret scan. The exact measurements are in PERFORMANCE_QUALIFICATION.md.

The reservation preflight follow-up 5383231 loads the authorized warehouse, eligible receiving location, and active item in one tagged SQL command instead of three reads. ReceiptServiceTests passed 7/7, including the one-command assertion. The exact-source PostgreSQL profile exited nonzero with 17 failing workload/repeat entries and 31 metric breaches; both deep reconciliations were clean. All 300 isolated HTTP samples and all 25 same-stock allocations per repeat succeeded without errors or conflicts. Receiving p50 at concurrency 1 was 449/452 ms. Same-stock allocation at concurrency 20 recorded p50 1,519/1,222 ms and p95 2,871/2,515 ms, still above the 750/2,500 ms budgets. The run reduced database-command telemetry from 11,433/11,448 on 66e1a26 to 11,370 in both repeats, but does not qualify capacity. Exact-SHA Actions run #36174604818 passed Linux/Windows quality and coverage, all seven PostgreSQL groups, SQLite-to-PostgreSQL migration, production Docker, and secret scan. Dependency review was skipped for the direct push. CI does not run the local performance group; exact-source evidence remains in PERFORMANCE_QUALIFICATION.md.

The receiving use-case preflight follow-up 7b75257 loads the item and scope-visible location in one tagged query, preserving the existing generic and warehouse-specific authorization checks. Focused receiving application tests passed 12/12 and infrastructure repository tests passed 3/3. A two-repeat exact-source PostgreSQL profile on 7b75257 recorded 16 budget-failing workload/repeat entries and 27 metric breaches with no fatal error. Both deep reconciliations were clean; all 300 isolated HTTP samples and all same-stock and limited-stock concurrency-20 allocation samples succeeded without errors or conflicts. Database-command telemetry was 11,331 per repeat, compared with 11,370 on 5383231. Receiving and allocation latency/throughput budgets still fail, so capacity remains unqualified. The first exact-SHA Actions run exposed a missing test mock and an import-order formatter violation; test-only commits 1696005 and 08640cf corrected both. Exact-SHA run #36184066847 passed Linux/Windows quality and coverage, all seven PostgreSQL groups, SQLite-to-PostgreSQL migration, Docker, and secret scan. Dependency review was skipped for the direct push. The run did not execute the local performance budget group.

Authorization and webhook transport tests passed 30/30 on 6bd664d; the navigation snapshot test asserts one SQL command and immediate permission freshness. The Release ASP build passed with zero warnings/errors, and focused format verification passed. Its two-repeat local PostgreSQL profile exited nonzero with 22 budget failures, despite 194 successful HTTP requests per repeat and zero deep-reconciliation issues. Exact-SHA Actions run #36133733475 completed successfully: Linux and Windows quality/coverage, all seven PostgreSQL integration groups, SQLite-to-PostgreSQL migration, production Docker, and secret scan passed. Pull-request dependency review was skipped for the direct push. Profile details are in PERFORMANCE_QUALIFICATION.md.

The detailed per-assembly counts and PostgreSQL breakdown below record the previous exact-SHA run 36112799593. Do not add independent platform totals together or count repeated deterministic unit checks as a second solution run.

Issue #128's focused local evidence is RecommendationGovernanceServiceTests 7/7, a Release ASP test-project build with zero warnings/errors, and the authenticated PostgreSQL recommendation HTTP journey 1/1 with zero deep- reconciliation issues. It was closed after the exact-SHA run; the #128 evidence comment records the commit chain, test evidence, artifacts, and exclusions. The #134 documentation checkpoint reconciles the current source, test, UI, connector, and release evidence. Master-plan #108 remains open for performance budgets, production deployment/data restore, partner/device acceptance, and independent release review.

Historical per-issue rows below preserve the implementation-time evidence and status snapshot for audit. A row's remote open or pending push text is not a current GitHub issue-state claim. Current residual owners and their next actions are in REMAINING_GATES.md.

Issue State at historical evidence capture Acceptance evidence Commit Dependencies / blocker Exact next action
#2 verified locally; committed Restore passed; Debug and Release builds passed with 25 baseline warnings; 147/147 Release tests passed; MVC /, /Dashboard, /Items, /Inventory returned 200 against disposable SQLite; WinForms exposed a live main window; reproduction script passed f80c431 Pre-existing untracked Front-End/ prevents a clean working tree without destroying the supplied package Upgrade the solution to .NET 10/C# 14 for #3
#3 verified locally; committed .NET 10.0.401 SDK selected; all projects target .NET 10; stable package upgrades restored; Release build and 147/147 tests passed; MVC/WinForms baseline script passed 342f1da Depends on #2; no production deployment or provider qualification claimed Centralize package versions and establish strict quality gates for #4
#4 verified locally; committed Central package management enabled; repository analyzer/editorconfig gates added; Release build passed with 0 warnings/0 errors; 147/147 Release tests passed; dotnet format --verify-no-changes --severity error passed; package graph reported no warnings/downgrades/conflicts; baseline script passed 00d6700 Depends on #3; performance analyzers CA1848/CA1873/CA1860 remain enabled as suggestions for targeted follow-up Load and implement the acceptance requirements for #5
#5 verified locally; committed Capability ownership documented in ARCHITECTURE.md; application/infrastructure registration extensions and Web/Desktop seed profiles centralize composition; Web/WinForms no longer construct persistence or demo domain data; 5 architecture tests plus 147 existing tests passed (152/152); format gate, package graph, and MVC/WinForms smoke script passed 188429e Depends on #4; reserved capabilities remain explicit extension points and no production/provider readiness is claimed Load and implement the acceptance requirements for #6
#6 verified locally; committed Npgsql EF Core 10.0.3 is the production adapter; checked-in PostgreSQL migration covers identity generation, numeric(18,4) quantities, UTC audit timestamps, date-only lot fields, and non-distinct-null stock uniqueness; PostgreSQL 17 disposable integration passed with fresh migration, Web demo seed counts, Npgsql search translation, insert/query verification, and UTC readback; Release build passed with 0 warnings/0 errors; 152/153 solution tests passed with the provider test explicitly skipped when no test database is configured; format gate, package graph, MVC/WinForms baseline, Docker Compose config, and Dockerfile build passed 5a1d606 Depends on #5; production PostgreSQL requires an explicit connection string and SQLite remains explicit local/demo mode; no production migration, deployment, or push performed Load and implement the acceptance requirements for #7
#7 verified locally; committed Startup now refuses pending PostgreSQL migrations; explicit EF migration commands and idempotent SQL generation are documented and scripted; the read-only SQLite importer preserves identifiers, orders location parents, writes in one serializable transaction, resets identity sequences, creates a mandatory source backup, emits dry-run/apply reports, and reconciles row counts, stock totals, movement totals, and relationships; the real PostgreSQL 17 data-migration test passed apply/idempotency/rollback and source-hash checks; the tracked Wms.ASP/warehouse.db imported successfully into a disposable PostgreSQL target; Release build passed with 0 warnings/0 errors; 152 passed, 2 skipped, 154 total solution tests; format and migration lifecycle gates passed; CI wiring is checked in d80b4b7 Depends on #6; no production migration, deployment, or push performed; the supplied untracked Front-End/ package remains preserved Load and implement the acceptance requirements for #8
#8 verified locally; committed Tracked legacy wms.db and warehouse.db snapshots were copied outside the checkout and removed; .gitignore now covers runtime databases, logs, local secrets/settings, coverage, test results, and generated artifacts; one shared WmsSeedService provides idempotent None, minimal Reference, and opt-in Demo profiles for both hosts; production web defaults to schema-only seeding while Development/local desktop explicitly use Demo; 4 seed/profile tests passed; stale completion/test claims, unused Form1, and root validation utility were removed; README, architecture, testing, deployment, security, and roadmap entry points were added; Release build passed with 0 warnings/0 errors; 156 passed, 2 skipped, 158 total solution tests; format, migration lifecycle, MVC/WinForms smoke, PostgreSQL, and data-migration gates passed d717a1d Depends on #7; legacy WinForms folder naming is documented as deferred path churn; no production deployment or push performed; the supplied untracked Front-End/ package remains preserved Load and implement the acceptance requirements for #9
#9 verified locally; committed Cross-platform GitHub Actions CI now restores on Linux and Windows, builds Linux-compatible projects and the complete WinForms solution, runs tests with coverage, checks formatting and migrations, checks NuGet vulnerabilities/deprecations, validates disposable PostgreSQL and SQLite-to-PostgreSQL gates, validates Compose, builds the production Docker image without pushing, scans for secrets, and reviews PR dependency changes; local dependency check passed with only the documented xUnit v2 legacy warning; Release build passed with 0 warnings/0 errors; 156 passed, 2 skipped, 158 total solution tests; format, migration, PowerShell parse, Compose, and Docker image gates passed; gitleaks was not installed locally, so the remote secret-scan job remains the authoritative execution 73a31ab Depends on #8; the xUnit v2 legacy allowlist is temporary and must be removed after the test-framework migration; no push, deployment, or branch-protection mutation performed; the supplied untracked Front-End/ package remains preserved Load and implement #10; keep the issue tracker synchronized with each committed issue
#10 verified locally; committed Commit 9312a13 adds a .NET 10 multi-stage non-root production image with OCI version/revision metadata, runtime health probe, development/secrets exclusion, persistent Data Protection storage, configurable forwarded headers, graceful shutdown timeout, and explicit secret-file PostgreSQL connection resolution; docker-compose.yml provides Web plus PostgreSQL with migration-gated startup, internal backend/edge networks, named database/key volumes, restart policies, loopback bindings, and real liveness/readiness checks; production configuration and reverse-proxy/HTTPS/logging/secret/restart guidance are documented; local no-cache Docker build passed, image ran as UID 1654, development/example config and source were absent from the runtime image, both Compose configs parsed, explicit PostgreSQL migration passed, /health/live and /health/ready returned 200, readiness returned 503 during a database outage and 200 after recovery, Data Protection keys survived Web restart, graceful stop exited 0, and exact validation containers/volumes were removed; Release build passed with 0 warnings/0 errors; 156 passed, 2 skipped, 158 total solution tests; format, dependency, migration, and MVC/WinForms smoke gates passed 9312a13 Depends on #3, #6, and #7; no production deployment, live migration, or push performed; the supplied untracked Front-End/ package remains preserved Load and implement #11; keep the issue tracker synchronized with each committed issue
#11 verified locally; committed Commits 796de67 and acdc15e add CONTRIBUTING.md with lightweight branch/PR rules, Conventional Commits, SemVer/pre-release/tag policy, migration/API compatibility, support policy, changelog process, issue-closure evidence, no-auto-push policy, and a dry-run release/tag plan; add CHANGELOG.md, pull-request template, feature/bug/migration/release issue templates, and docs/release/RELEASE_CHECKLIST.md covering backups, restore, migrations, compatibility, health/smoke, monitoring, Data Protection, rollout, and rollback; the generic release-directory ignore was narrowed so the checklist is tracked; governance/front matter/sample v0.1.0-rc.1 tag format validated without creating a tag; restore passed; Release build passed with 0 warnings/0 errors; 156 passed, 2 skipped, 158 total solution tests; format and migration lifecycle gates passed 796de67, acdc15e Depends on #3 and #10; no release tag, push, deployment, or production migration created; the supplied untracked Front-End/ package remains preserved Load and implement #12; keep the issue tracker synchronized with each committed issue
#12 verified locally; committed First-party ASP.NET Core Identity user/role schema and WmsAuthenticationEvents migration; admin-created accounts with explicit secret-only bootstrap; password policy, lockout, disabled-account enforcement, secure sliding cookies, antiforgery login/logout/reset/change-password flows, account-management screens, SMTP reset adapter, and persistent Data Protection configuration; MVC warehouse routes now require ICurrentUser and persist real Identity IDs; WinForms uses an explicit login dialog/session and no SYSTEM fallback; 4 focused Infrastructure Identity tests passed plus 5 MVC integration tests; full baseline passed with 165 passed and 2 provider-gated skips; Release build passed with 0 warnings/0 errors; migration lifecycle, formatter, disposable PostgreSQL integration, Compose config, and authenticated MVC/WinForms smoke gates passed 1f0b49e Depends on #3, #6, #7, and #10; bootstrap is disabled by default; SMTP and production secret/provider rollout remain environment-scoped; no production deployment or push performed; the supplied untracked Front-End/ package remains preserved Load and implement #13; keep the issue tracker synchronized with each committed issue
#13 verified locally; committed Permission-based RBAC for Administrator, Warehouse Manager, Receiver, Picker, Packer, Inventory Controller, Auditor, Viewer, and the controlled WarehouseStaff bootstrap role; seeded permission matrix and policy handler; persisted user-to-warehouse/default assignments; server-side use-case authorization; scoped location, stock, movement, and warehouse option queries; cross-warehouse ID rejection; security warnings for denied authorization; administrator access-management screen with last-admin/self-lockout safeguards; migration 20260920000339_AddWarehouseAuthorization; authorization integration tests cover denied routes, changed permissions, assigned warehouse visibility, and cross-warehouse movement filtering; Release build 0 warnings/0 errors; 171 passed, 2 provider-gated skips, 173 total solution tests; format, migration lifecycle, and whitespace gates passed 16b6aba Depends on #12 authentication/current-user identity; no production migration, deployment, or push performed; the supplied untracked Front-End/ package remains preserved; broad immutable audit coverage is now #14 Load and implement #14; keep the issue tracker synchronized with each committed issue
#14 verified locally; committed IAuditWriter with IClock, request/correlation, source-client, and warehouse context contracts; append-only WmsAuditEntries model and PostgreSQL migration 20260920004831_AddImmutableAuditLogging; WmsDbContext rejects normal audit updates/deletes; bounded metadata redaction covers credentials, tokens, connection strings, security stamps, and sensitive personal-data keys; account creation/status, authentication, access changes, item/location master data, receipts, putaway, picks, and stock adjustments are recorded at their current mutation boundaries; MVC request context and Desktop source wiring; audit.read RBAC, warehouse-scoped paginated audit screen, filterable CSV export capped at 10,000 rows, and retention/export/database-role policy in docs/modernization/AUDITING.md; 18 focused audit/authorization/stock tests plus 9 ASP tests passed; Release build 0 warnings/0 errors; 177 Release tests passed with 2 provider-gated skips; format and migration lifecycle gates passed b0be85a Depends on #12/#13; PostgreSQL provider tests were explicitly skipped because no test database was configured; production database role grants, archive storage, scheduled retention, deployment, and push were not performed; transfer/count/allocation/pack/shipment/return/settings/integration workflows are not present in the current model and have reserved audit actions for their owning issues Load and implement #15; use the shared audit contract for each new workflow and keep the issue tracker synchronized
#15 verified locally; committed Global MVC antiforgery validation; nonce-based CSP and secure response headers; account no-store caching; fail-closed trusted forwarded headers with HSTS after proxy processing; Kestrel/form request limits; named authentication, password-reset, report, API, scanning, and import rate-limit policies; server-side validation and controller bind allowlists; open-redirect, overposting, path-traversal, XSS/SQL, secret-storage, and log-redaction review; updated deployment/security guidance and focused CSRF/header/rate-limit tests; Release build 0 warnings/0 errors; 181 Release tests passed with 2 provider-gated skips; format, migration lifecycle, Compose, JSON configuration, and whitespace gates passed 79483cd Depends on #12/#13/#14; the current host has no upload, scanning, import, or API endpoints, so those policies are prepared for the owning endpoints; proxy values, secrets, production provider qualification, deployment, and push remain environment-scoped Load and implement #17; preserve the security defaults and keep the issue tracker synchronized
#16 verified locally; committed Implementation 55d6bc9 standardizes typed ResultError/WmsErrors categories, stable codes, safe messages, field errors, and retryability while preserving the existing Result compatibility surface; adds the global scoped WmsExceptionHandler with safe RFC-style API Problem Details and friendly MVC error handling; maps validation, authorization, not-found, unique-key, concurrency, dependency, cancellation, and unexpected failures without exposing provider details or internal identifiers; preserves correlation IDs and error references in response/logging scopes; propagates CancellationToken, rethrows cancellation, removes broad controller error boilerplate, maps expected failures to UI ModelState, and adds focused exception/result/cancellation coverage; procedure documented in docs/modernization/ERROR_HANDLING.md; Release build 0 warnings/0 errors; 188 Release tests passed with 2 provider-gated skips; format, migration lifecycle, and whitespace gates passed 55d6bc9 Depends on #14 request/correlation context and #17 structured Serilog/correlation standards for fuller operational coverage; the current host has no API or background-job endpoints, so endpoint/job-specific adapters remain with their owning issues; no provider/live qualification, production deployment, migration, or push performed Load and implement #18; preserve the typed error and cancellation contracts and keep the issue tracker synchronized
#17 verified locally; committed Implementation b97f9e0 configures shared Serilog JSON logging in MVC and WinForms with configurable minimum levels, framework overrides, console output, bounded rolling files, environment enrichment, and startup/shutdown lifecycle events; adds the async WmsOperationContext contract/accessor and X-Correlation-ID/X-Operation-ID/X-Reference-ID propagation for web and future job/API/integration boundaries; enriches requests and inventory operations with correlation, operation/reference, request, client, user, and warehouse properties; defines stable event IDs for requests, slow operations, migrations, inventory mutations, jobs, external calls, and authentication; logs migration and critical receipt/putaway/pick/adjustment outcomes; removes raw barcode/debug logging; safe JSON formatting redacts credentials, tokens, connection strings, barcode/payload/body and selected personal-data properties, bounds large values, and omits stack traces; procedure documented in docs/modernization/LOGGING.md; Release build 0 warnings/0 errors; 194 Release tests passed with 2 provider-gated skips; format, migration lifecycle, JSON configuration, and whitespace gates passed b97f9e0 Depends on #12/#13/#14 current-user, warehouse, audit, and request context; the current host has no durable jobs, public API, or external integration adapters, so their concrete propagation and start/completion/failure wiring remain with #21/#88–#93; no provider/live qualification, production deployment, migration, or push performed Continue with #19; preserve the logging/redaction and operation-context contracts and keep the issue tracker synchronized
#18 verified locally; committed Commit 32cbce1 adds OpenTelemetry 1.19 tracing/metrics for ASP.NET Core, HttpClient, EF Core, runtime, and the shared WMS activity source; bounded request/database/inventory/conflict/job/backlog/storage/backup instruments; custom inventory and future external-operation activities without payload/SQL/secret tags; separate anonymous terse /health/live and /health/ready probes with database reachability/pending-migration, storage/free-space, critical-configuration, startup, and fail-closed job-runner checks; OTLP/console exporters, standard OTEL_* settings, sampling, Docker configuration, alert conditions, and runbook documentation; 3 focused ASP observability tests plus 2 focused telemetry tests; disposable SQLite health outage/recovery passed; console exporter emitted a real HTTP trace and custom metrics; Release build 0 warnings/0 errors; 200 Release tests passed with 2 provider-gated skips; format, migration, dependency, JSON, and whitespace gates passed 32cbce1 Depends on #17, PostgreSQL, and #21 job architecture; the current host has no durable job runner, pack/ship workflows, external adapters, or backup executor, so their concrete health/throughput producers remain with #21/#51–#59/#88–#93 and the PostgreSQL integration suite remains explicitly skipped without a configured test database; no production deployment, live collector/provider qualification, migration, or push performed Load and implement #19; preserve telemetry contracts and keep the issue tracker synchronized
#19 verified locally; committed Typed explicit settings for company, warehouse defaults, numbering, dashboard thresholds, inventory/expiry, scanner, labels, reports, localization, and integrations; global values plus nullable warehouse overrides with deterministic precedence, defaults, validation, revision checks, cache invalidation, relational location/warehouse safety, nonsecret import/export, and restart/live-reload guidance; Administrator/warehouse-scoped settings UI with allowlisted forms, antiforgery, import rate limiting, authorization, and shared audit writes; Dashboard, receiving, putaway, location creation, and desktop dashboard now consume typed settings instead of operational magic values; migrations 20260920035416_AddTypedBusinessSettings and 20260920040056_AddDashboardMovementLimitSetting; Release build 0 warnings/0 errors; 208 Release tests passed with 2 provider-gated skips; focused settings tests passed (4 application, 1 persistence, 1 cache, 2 ASP); format, migration lifecycle, JSON configuration, and whitespace gates passed 0838db9 Depends on #12/#13/#14; no production migration, deployment, push, secret rollout, or live PostgreSQL qualification performed; external provider integration values remain deployment configuration and future workflows still need to consume their relevant settings Load and implement #20; preserve typed settings, authorization, audit, cache, and secret-boundary contracts
#20 verified locally; committed Commit 79c32b7 adds the shared English/Arabic resource catalog with 473-key parity, supported en-US/ar-SA culture catalog, query/cookie/user/global-settings culture precedence, localized MVC validation/errors/navigation/views, RTL/LTR Bootstrap and Cairo presentation, technical identifier direction isolation, localized dates/numbers/quantities, account language preference persistence, and WinForms localization with session culture persistence; request-level Arabic RTL and English LTR flows plus anonymous locale-cookie persistence are covered by LocalizationFlowTests; resource parity/directionality coverage is in WmsLocalizationResourceTests; the typed settings test was updated to the canonical localized wording; docs/modernization/LOCALIZATION.md documents the contract; Release build passed with 0 warnings/0 errors; 212 Release tests passed with 2 provider-gated skips; focused localization tests passed 4/4; format and whitespace gates passed 79c32b7 Depends on #19 typed localization settings; no production deployment, browser screenshot/Playwright run, live provider qualification, migration, or push performed; browser/device/font rendering and provider-specific qualification remain environment-scoped Load and implement #21; preserve culture precedence, resource parity, RTL/LTR identifier isolation, and tracker synchronization
#21 verified locally; committed Commit 1d1773e adds the PostgreSQL-backed Hangfire runner and checked-in 20260920053427_AddDurableBackgroundJobs migration with WmsJobExecutions idempotency/attempt ledger and deduplicated WmsJobNotifications; registers stable recurring definitions across default, reports, integrations, alerts, and maintenance queues; preserves correlation, actor, warehouse, timeout, cancellation, bounded retry, permanent-failure/dead-letter, notification, health/backlog telemetry, graceful-shutdown, and admin-only /jobs dashboard boundaries; implements expiry, low-stock, scheduled movement-report, cleanup, and explicit future-domain adapters without moving stock commits into detached work; adds catalog/store tests; Release solution build passed with 0 warnings/0 errors; 218 Release tests passed with 2 provider-gated PostgreSQL skips; dotnet format --verify-no-changes --severity error, EF model-drift check, JSON, Compose, and whitespace gates passed 1d1773e Depends on #12/#13 auth/RBAC, #14 audit context, #17 logging, #18 telemetry, and #19 typed settings; Hangfire/PostgreSQL live restart/retry qualification is provider-gated because no WARECOMMAND_TEST_POSTGRES_CONNECTION is configured; jobs remain disabled by default; no production migration, deployment, or push performed; integration outbox, cycle-count policy, replenishment policy, and browser/device qualification remain with their owning issues Load and implement #22; preserve the durable idempotency, timeout/cancellation, queue, actor/correlation, retry, and admin-dashboard contracts; keep #21/#108 synchronized
#22 verified locally; committed; remote closed fa6c905 adds encrypted/compressed PostgreSQL custom-format backups with AES-256-CBC plus HMAC integrity, manifest row/quantity reconciliation, optional Data Protection/asset capture, checksum-verified offsite replication, safe verified retention, startup-persistent backup health, /health/ready and warecommand.backups.failures observability, a durable 01:00 UTC backup job, standalone Wms.Backup CLI, guarded restore confirmation, PowerShell operators scripts, RPO/RTO/DR runbooks, and PostgreSQL 17 client tooling in the runtime image; backup/archive/health focused tests passed (3); full Release solution tests passed with 221 passed and 2 provider-gated skips; Release build passed with 0 warnings/0 errors; format, EF model-drift, JSON, Compose, PowerShell parse, Docker image, PostgreSQL 17 disposable create/verify/offsite/prune/clean-restore E2E, and reconciliation gates passed fa6c905 Depends on #6/#7 PostgreSQL/migration lifecycle, #18 telemetry, and #21 durable jobs; production secret-manager key injection, TLS/offsite mount, non-empty inventory restore rehearsal, WAL/PITR, and deployment remain environment-scoped; no production migration, deployment, or push performed; pre-existing audit migration and untracked Front-End/ package remain preserved; GitHub evidence comment 5748183035 closed #22 as completed and checkpoint 5748184373 was added to #108 Load #23; keep backup freshness and restore-rehearsal gates active
#23 verified locally; committed; remote closed 06de3fc adds the injectable UTC/timezone contract in Wms.Application.Time, IANA normalization for global/warehouse/user settings, deterministic warehouse business dates and DST-safe UTC boundaries, date-only lot normalization plus explicit DateOnly expiry decisions, half-open [fromInclusiveUtc,toExclusiveUtc) movement/report queries, UTC-declared Hangfire schedules, clock-driven Web/WinForms display/defaults, and persistence-boundary UTC stamping for domain entities, movements, and assignments; focused fake-clock/timezone/expiry/settings/job/repository/DbContext tests passed; full Release solution tests passed with 230 passed and 2 provider-gated skips; Release build passed with 0 warnings/0 errors; dotnet format --verify-no-changes --severity error, diff-check, and direct system-time scan passed with only SystemClock reading host time; time/date policy is documented in docs/modernization/TIME_AND_DATES.md 06de3fc Depends on #19 typed settings, #20 localization, and #21 durable jobs; PostgreSQL provider qualification, browser/device rendering, production migration/deployment, and push were not performed; the pre-existing audit migration and untracked Front-End/ package remain preserved; GitHub evidence comment 5748311771 closed #23 as completed and checkpoint 5748311877 was added to #108 Load #24; preserve UTC storage, IANA settings, date-only lot semantics, half-open report ranges, and UTC job schedules
#24 verified locally; committed; remote closed dd27315 adds multi-warehouse master data with immutable normalized codes, localized names, address/contact/time zone, operational settings, lifecycle blockers, per-warehouse number sequences, required operational-location references, warehouse-scoped authorization, audit actions, migration 20260920074037_AddWarehouseMasterData, Web management screens, and warehouse selection/context; full Release suite passed with 239 passed and 2 provider-gated PostgreSQL skips; Release build passed with 0 warnings/0 errors; formatter, EF migration-drift, and whitespace gates passed dd27315 Depends on #13 RBAC, #14 audit, #19 typed settings, #20 localization, and #21 durable jobs; GitHub evidence comment 5748530038 closed #24 as completed and checkpoint 5748530169 was added to #108; migration generated but not applied to production; no deployment or push performed; the pre-existing audit migration and untracked Front-End/ package remain preserved Load #25; preserve warehouse-scoped authorization, immutable codes, operational-location safety, sequences, lifecycle blockers, localized management UI, and warehouse context selection
#25 verified locally; committed; remote open (pending push) 7e9c9d8 adds typed location kinds, warehouse-scoped normalized codes/barcodes, parent/child hierarchy with cycle and depth checks, active/pick/receive/count policies, mixed-item/lot rules, unit/weight/volume/pallet/LPN capacities, storage/temperature/hazard/access/JSON constraints, safe stock-aware restructure/deactivate/delete guards, transactional bulk generation and CSV import, label output, audit actions, migration 20260920084241_AddLocationMasterData, server-side filtering/paging, localized Web management screens, capacity enforcement at receipt/putaway/positive adjustment, and RBAC coverage; 251 Release tests passed with 2 provider-gated skips; focused Location (21), management service (5), stock movement (11), ASP flow (2), localization (2), and PostgreSQL integration (1) tests passed; Release build passed with 0 warnings/0 errors; formatter, migration lifecycle, PowerShell parse, disposable PostgreSQL, authenticated SQLite MVC, and EN/AR LTR/RTL smoke gates passed 7e9c9d8 Depends on #24 warehouse master data, #13 RBAC, #14 audit, #19 settings, #20 localization, and #21 jobs; migration generated but not applied, no production deployment or push performed; remote #25 remains open because the verified commit is local/unpushed; pre-existing AddImmutableAuditLogging.cs and untracked Front-End/ remain preserved After an authorized push, add the remote #25 evidence comment, close #25, and add the matching #108 checkpoint; until then load #26 locally and preserve this pending-push status
#26 verified locally; committed; remote open (pending push) 71d4a6a expands the item master with localized commercial metadata, item type/lifecycle, units and measurements, costing/pricing/origin/customs data, lot/serial/expiry/FEFO/quality/hazard/temperature controls, storage and reorder policy, immutable-SKU-after-transaction protection, dedicated packaging and barcode models, global item/package barcode conflict validation, safe lifecycle/delete/duplicate/import/export operations, audit actions, inactive-operation guards, server-side filter/sort/paging, Arabic/English management screens, and migration 20260920093628_AddItemMasterData with safe legacy-data backfill; Release build passed with 0 warnings/0 errors; full Release suite passed with 260 passed and 2 provider-gated PostgreSQL skips; focused domain (19), item-management service (7), ASP flow (2), localization (2), disposable PostgreSQL migration/integration (1), EF model-drift, and scoped whitespace/encoding gates passed 71d4a6a Depends on #13 RBAC, #14 audit, #19 typed settings, #20 localization, #21 durable jobs, and the existing UOM/warehouse/location foundations; migration generated but not applied to production, no deployment or push performed; remote #26 remains open because the verified commit is local/unpushed; pre-existing AddImmutableAuditLogging.cs and untracked Front-End/ remain preserved After an authorized push, add the remote #26 evidence comment, close #26, and add the matching #108 checkpoint; until then load #27 locally and preserve this pending-push status
#27 verified locally; committed; remote open (pending push) 46730ef adds the UOM catalog/category/precision model, item-specific versioned conversion graph, canonical base/purchase/sales assignment, exact decimal conversion with per-edge precision and explicit rounding, fractional/serial guards, immutable movement conversion snapshots, base/display-unit reporting, operation-unit inputs for receiving/putaway/picking/adjustment, seed compatibility and standard units, audit actions, Arabic/English administrator screens, and migration 20260920103244_AddUnitOfMeasureConversions with legacy movement/item-unit backfill; focused domain UOM (4), conversion service (4), and ASP admin/localization (1) tests passed; full Release suite passed with 275 passed, 2 provider-gated skips, 277 total; Release build passed with 0 warnings/0 errors; scripts/verify-migrations.ps1, disposable PostgreSQL migration/integration verification, resource-key parity, and staged diff checks passed 46730ef Depends on #20 localization, #21 jobs/audit context, #24–#26 warehouse/location/item foundations; migration generated but not applied to production, no deployment or push performed; remote #25, #26, and #27 remain open because the verified commits are local/unpushed; pre-existing AddImmutableAuditLogging.cs and untracked Front-End/ remain preserved After an authorized push, add the remote #27 evidence comment, close #27, and add the matching #108 checkpoint; until then load #28 locally and preserve this pending-push status
#28 verified locally; committed; remote open (pending push) d9a656d adds packaging types, localized names, GTIN/barcode uniqueness, nested package definitions with cycle checks, role-specific defaults, active/versioned definitions, explicit partial-package policy, calculated volume and physical-capacity data, bounded item-master admin/import/export, audit snapshots, operation-level package selection for receiving/putaway/picking/adjustment, exact nested UOM conversion, immutable movement packaging snapshots, weight/volume/pallet capacity enforcement, report exposure, and migration 20260920111852_AddPackagingHandlingData with legacy-name/default/volume backfill; focused domain packaging (4), item-management (10), UOM/conversion (6), stock-capacity (1), and ASP localized admin (1) tests passed; full Release suite passed with 285 passed, 2 provider-gated skips, 287 total; Release build passed with 0 warnings/0 errors; migration lifecycle verification, disposable PostgreSQL integration verification, and diff-check passed Depends on #25 location capacity, #26 item master, #27 UOM/conversion, plus #13/#14 RBAC/audit and #20 localization; migration generated but not applied to production, no deployment or push performed; remote #28 remains open because the verified commit is local/unpushed; pre-existing AddImmutableAuditLogging.cs and untracked Front-End/ remain preserved After an authorized push, add the remote #28 evidence comment, close #28, and add the matching #108 checkpoint; until then load #29 locally and preserve this pending-push status
#29 verified locally; committed; remote open (pending push) Adds strict EAN/UPC/EAN-13/GTIN-14 and SSCC check-digit parsing without guessing numeric internal labels; parenthesized and FNC1 GS1 parsing for GTIN, SSCC, lot, serial, expiry, and quantity; configurable AI definitions; globally unique/indexed WmsIdentifiers with owner kind, symbology, original/normalized values, aliases, active dates/status; migration 20260920114949_AddGlobalIdentificationSupport backfills item/package/location/lot/serial identifiers with legacy fallback; item/location mutation synchronization; bounded authenticated POST /api/scanning/resolve with antiforgery, RBAC, rate limiting, typed owner routing, ambiguity rejection, and safe resolution audit; focused domain (13), infrastructure identification (4) plus item-management coverage, and ASP (1) tests passed; full Release suite passed with 299 passed, 2 provider-gated skips; Release build passed with 0 warnings/0 errors; migration lifecycle, disposable PostgreSQL migration/integration, and diff-check gates passed fc6a335 Depends on #25 location, #26 item, #27 UOM, #28 packaging, plus #13/#14/#15/#16/#17/#19/#20 foundations; migration is checked in but not applied to production; no deployment, push, or remote issue closure performed; legacy location-barcode duplicates must be reconciled before production migration; pre-existing AddImmutableAuditLogging.cs and untracked Front-End/ remain preserved After an authorized push, add the remote #29 evidence comment, close #29, and add the matching #108 checkpoint; until then load #30 locally and preserve this pending-push status
#30 verified locally; committed; remote open (pending push) 52b72dd establishes normalized item-scoped lot get-or-create with relational conflict protection; persisted lot references, lifecycle/date/hold/recall rules, metadata edit controls, stock/movement traceability, search, expiry alerts, audit actions, scheduled expiry transition reuse, ASP inputs/API, migration 20260920122647_AddLotLifecycleManagement, and SQLite-to-PostgreSQL migration compatibility; b5d0ae2 closes the shared movement-boundary gaps by rejecting lot identities on non-lot-controlled items, allowing quarantine/hold lots to move through putaway without treating them as allocatable, validating lot ownership/requiredness across transfer, return, and shipment paths, and blocking non-eligible lots at transfer shipping and shipment confirmation; 759b410 adds PostgreSQL proof that normalized duplicate lot numbers are rejected by the item-scoped unique index; focused Lot/StockMovement infrastructure tests passed (20), transfer tests passed (4), domain lot tests passed (5), the PostgreSQL integration suite passed 11/11, and the Debug solution build passed with 0 warnings/0 errors; the prior Release suite passed with 305 passed, 2 provider-gated skips, 307 total, plus migration lifecycle, disposable PostgreSQL, SQLite-to-PostgreSQL data-migration, and diff-check gates 52b72dd, b5d0ae2, 759b410 Depends on #25–#29 location/item/UOM/packaging/identification foundations plus #14/#19/#20/#21 audit, settings, localization, and jobs; the implementation now covers receive/putaway/pick/adjust/transfer/return/shipment lot identity boundaries and database duplicate protection, while high-contention PostgreSQL duplicate-creation evidence, full independent inbound/outbound/return/count reconciliation journeys, browser/provider qualification, production migration, push, and remote issue closure remain; pre-existing AddImmutableAuditLogging.cs and untracked Front-End/ remain preserved After an authorized push, add the remote #30 evidence comment and close #30 only after the remaining PostgreSQL/journey/provider gates are run; continue with #31 locally because serial tracking depends on persisted lot identity
#31 verified locally; committed; remote open (pending push) 3f22475 adds a first-class item-scoped SerialNumber identity with normalized (ItemId, Number) uniqueness, atomic relational get-or-create, persisted lot/location/warehouse/LPN-reference/status/lifecycle fields, SerialNumberId links on stock and movements, exact-one quantity enforcement, duplicate/reuse and location/lot/conflict guards, audited status transitions, search/traceability/status APIs, bounded bulk receipt, and receive/putaway/pick/adjustment integration; migration 20260920130806_AddSerialNumberTracking creates the schema, backfills unambiguous legacy text, writes SerialNumberMigrationConflicts, and leaves conflicted stock/movements unlinked; SQLite-to-PostgreSQL data migration emits idempotent serial conflict rows and preserves compatibility text; 9a7a5f5 closes the transfer/shipment identity gap by requiring persisted serial IDs, matching item/lot/text/location/LPN state, exact-one shipment quantity, and allocation-eligible serials, with a serial receive-to-transit-to-destination test; 5ad03fb replaces the permissive serialized-stock check constraint with exact 0/1 available and reserved values plus reserved <= available, and adds a PostgreSQL regression proving fractional serialized stock is rejected; 759b410 adds PostgreSQL proof that normalized duplicate serial numbers are rejected by the item-scoped unique index; serial policy is documented in docs/modernization/SERIAL_TRACKING.md; serial/domain/service/stock/receiving coverage, 5 transfer tests including the end-to-end serial transit test, 3 shipment tests, migration lifecycle/disposable PostgreSQL/conflict-fixture gates, the new PostgreSQL verification at 11/11, and a Debug solution build with 0 warnings/0 errors passed; the prior full solution suite passed with 313 passed and 2 provider-gated skips 3f22475, 9a7a5f5, 5ad03fb, 759b410 Depends on #30 lot identity plus #25–#29 warehouse/location/item/UOM/packaging/identification foundations and #14/#19/#20/#21 audit/settings/localization/jobs; persisted serial enforcement now covers receive/putaway/pick/adjust/transfer/pack/return/shipment boundaries, database duplicate protection, and fractional-stock rejection, while high-contention PostgreSQL duplicate receipts, complete count/reconciliation journeys, browser/provider qualification, production migration, push, and remote issue closure remain; the pre-existing AddImmutableAuditLogging.cs and untracked Front-End/ package remain preserved After an authorized push, add the remote #31 evidence comment and close #31 only after the remaining PostgreSQL/journey/provider gates are run; continue with #32 locally and preserve this pending-push status
#32 verified locally; committed; remote open (pending push) 6092919 adds persisted warehouse-aware inventory statuses and transition rules; seeds safe AVAILABLE/RESERVED/QC_PENDING/QUARANTINE/HOLD/DAMAGED/EXPIRED/RETURN_PENDING/SCRAP_PENDING statuses; makes status part of Stock identity and Movement ledger; adds guarded partial status splits with two positive balanced status legs, reason/reference/audit/concurrency controls, forced location/QC inbound resolution, pick/FEFO enforcement, status-visible inquiry, status configuration API, migration 20260920140225_AddInventoryStatuses, and focused status/domain/stock tests; b929eab applies the status contract at the remaining outbound boundaries by requiring active allocatable source status for transfer shipment, active shippable stock for shipment confirmation, and active shippable stock for direct LPN shipment; b3ec08d adds PostgreSQL proof that normalized custom status codes are rejected within one warehouse and accepted in another; the affected transfer/shipment/LPN suite passed 15/15, the PostgreSQL integration suite passed 12/12, and the Debug solution build passed with 0 warnings/0 errors; the prior full solution suite passed with 323 passed and 2 provider-gated skips; Release PostgreSQL migration/core verification, SQLite-to-PostgreSQL data-migration verification, migration lifecycle verification, and diff-check gates passed 6092919, b929eab, b3ec08d Depends on #25–#31 plus #13/#14/#19/#20/#21; remaining work is PostgreSQL contention, complete cross-workflow reserve/ship/transfer/count/pack/return/replenishment and ledger/reconciliation journeys, browser/provider qualification, production migration, push, and remote issue closure; pre-existing AddImmutableAuditLogging.cs and untracked Front-End/ remain preserved After an authorized push, add the remote #32 evidence comment and close #32 only after the remaining provider/journey/reconciliation gates are qualified; continue with #33 locally and preserve this pending-push status
#33 verified locally; committed; remote open (pending push) Commit e01ac3c adds the LPN/SSCC domain model, content and history ledger, warehouse numbering sequences, nested hierarchy guards, LPN-scoped stock/movement/serial relationships, atomic content receipt/partial move/split/merge/root move/pack/ship/return/void service operations, warehouse-scoped search/history, dedicated scan resolution, inventory inquiry LPN fields, authenticated /api/license-plates operations, audit actions, migration 20260920145329_AddLicensePlateHandlingUnits, LICENSE_PLATES.md, 5 focused domain tests, 7 focused LPN service tests, 5 identification tests, 336/338 full Debug tests with only 2 provider-gated skips, Debug and Release builds with 0 warnings/0 errors, migration lifecycle verification, and targeted format verification; e2899b9 adds PostgreSQL proof that normalized duplicate SSCC values are rejected by the global LPN number index; the current receive/putaway/pick/reservation/packing/shipping/transfer/return/replenishment/count/ledger pass-through qualification passed 72/72 focused tests, the PostgreSQL integration suite passed 13/13, and the Debug and Release builds passed with 0 warnings/0 errors e01ac3c, e2899b9 Depends on #25–#32 warehouse/location/item/UOM/packaging/identification/lot/serial/status foundations; the tested shared mutation boundaries now preserve LPN content, stock, serial, reservation, and shipment identity locally; browser/handheld scanner qualification, concurrent move, full reconciliation, migration/restore, production migration, push, and remote issue closure remain; pre-existing AddImmutableAuditLogging.cs and untracked Front-End/ remain preserved After an authorized push, add the remote #33 evidence comment and close #33 after the remaining scanner/provider/production gates are qualified; continue with #34 locally and preserve this pending-push status
#34 verified locally; committed; remote open (pending push) ef60fca adds immutable InventoryTransaction ledger rows plus materialized InventoryBalance dimensions for warehouse/location/item/lot/serial/LPN/status/base-UOM; signed on-hand/reservation deltas with before/after equations; balanced move legs; idempotency/group/sequence/reference/reversal fields; negative-stock and reservation invariants; append-only EF enforcement; reconciliation service; migration 20260920153824_AddInventoryLedger with legacy Stock opening snapshots; receive/putaway/pick/adjust/status/LPN mutation-boundary wiring; SQLite-to-PostgreSQL importer seeding and target-only ledger coverage checks; focused ledger/domain/status tests; fcf8fd8 preserves owner kind, owner identity, and owner-code dimensions in both reconciliation aggregate projections; 9d8fb8c adds PostgreSQL proof that complete balance dimensions are unique and repeated idempotency keys cannot create duplicate ledger entries; the full current ledger/mutation qualification passed 104/104 across ledger, status, reservations, LPN, receiving, picking, packing, shipping, transfers, returns, replenishment, counts, ownership, VAS, and reconciliation; the PostgreSQL integration suite passed 14/14, the Debug solution build passed with 0 warnings/0 errors, and the prior full Debug suite passed with 346 passed and 2 provider-gated skips; migration lifecycle verification and staged diff checks passed ef60fca, fcf8fd8, 9d8fb8c Depends on #25–#33 plus #13/#14/#19/#20/#21; local workflow coverage, reconciliation, database dimension uniqueness, and ledger idempotency are now proven, while PostgreSQL contention/parallel retries, response-loss/idempotency qualification, provider-backed migration/restore, remaining client/browser gates, production migration, push, and remote issue closure remain with #35–#41 and their owning issues; the cutover intentionally retains pre-ledger Movements rather than replaying ambiguous legacy adjustment semantics; pre-existing AddImmutableAuditLogging.cs and untracked Front-End/ remain preserved After an authorized push, add the remote #34 evidence comment and close #34 after the remaining provider/concurrency/migration gates are qualified; continue with #35 locally and preserve this pending-push status
#35 verified locally; committed; remote open (pending push) 1a952c3 adds monotonic revision tokens to Stock, SerialNumber, LicensePlate, and LicensePlateContent alongside the ledger balance revision; migration 20260920161218_AddInventoryConcurrencyTokens; persistence translates stale EF writes into safe typed data.concurrency_conflict responses with entity/key diagnostics; canonical ledger-dimension ordering prevents inverse move lock order; atomic serial/import boundaries include the new token; stale balance writers are covered by a deterministic concurrency test; 649d75c adds PostgreSQL proof that command keys are unique within caller scope and reusable across distinct caller scopes; focused local requalification passed ledger/concurrency (7), serial-token (3), and typed-error (4) tests; the PostgreSQL integration suite passed 15/15 and cleaned its temporary container; the current Debug solution build passed with 0 warnings/0 errors; the prior full Debug suite passed with 347 passed and 2 provider-gated skips; migration lifecycle and staged diff checks passed 1a952c3, 649d75c Depends on #34 and typed error/context foundations; this remains a committed progress slice, not closure: PostgreSQL 20–100-way inventory reservation/pick/move contention, bounded whole-command retries, work/document double-completion, and complete serial/LPN workflow contention remain dependent on #36–#38 and later document/work issues; migration is checked in but not applied to production, no deployment, push, or remote issue closure performed; pre-existing AddImmutableAuditLogging.cs and untracked Front-End/ remain preserved Load #36; add persistent command idempotency and safe replay boundaries, then return to #35 for the missing high-contention qualification
#36 verified locally; committed; remote open (pending push) 562fa09 adds the durable InventoryCommandIdempotencies command ledger and migration 20260920163556_AddInventoryCommandIdempotency; unique (CallerScope, CommandKey) protection; SHA-256 operation/payload hash collision detection; InProgress/Succeeded/Failed/Expired replay, reclaim, retention, and result-reference contracts; Idempotency-Key request-context propagation; structured duplicate logs/telemetry; safe cleanup-job expiration/pruning; and transaction-boundary wiring for receipt, putaway, pick, and adjustment. 649d75c adds PostgreSQL proof that command keys are unique within caller scope and reusable across distinct caller scopes. Current focused qualification passed 8/8: 4 persistence/state tests, 3 contract/hash/replay tests, and 1 receipt replay test; the PostgreSQL integration suite passed 15/15; full Debug suite previously passed with 361 passed and 2 provider-gated PostgreSQL skips; the current Debug solution build passed with 0 warnings/0 errors; Release solution build, migration lifecycle verification, and scoped format verification passed 562fa09, 649d75c Depends on #34 ledger, #35 concurrency tokens, and typed error/context foundations; this remains committed progress, not closure: reservation/allocation, transfer, return, pack, ship, count approval, document-line completion, integration-import adapters, browser/scanner/job command adapters, and PostgreSQL parallel contention/response-loss qualification remain with #37–#41 and later owning issues; migration is checked in but not applied to production, no deployment, push, or remote issue closure performed; pre-existing AddImmutableAuditLogging.cs and untracked Front-End/ remain preserved After an authorized push, add the remote #36 evidence comment; continue with #37 reservations and return for the remaining command adapters and PostgreSQL qualification
#37 verified locally; committed; remote open (pending push) 3fe0032 and migration 20260920171253_AddInventoryReservations add demand-scoped reservations, selector snapshots, explicit allocation rows, optimistic revision tokens, immutable reservation events, unique demand protection, ledger-backed reserve/release/consume/cancel/reallocate/expiry operations, status/location/lot/serial/LPN eligibility, FEFO/location-priority selection, partial backorder reporting, and DI/UoW wiring; d599aa8 adds PostgreSQL proof that a reservation demand key is unique within a warehouse and can be reused independently in another warehouse; the current reservation core plus sales-order allocation adapter passed 10/10 focused tests, the PostgreSQL integration suite passed 16/16, the broader current ledger/mutation qualification passed 104/104, and the Debug solution build passed with 0 warnings/0 errors; the prior full Debug solution suite passed 362 with 2 provider-gated PostgreSQL skips; Release Infrastructure build and migration lifecycle passed 3fe0032, d599aa8 Depends on #30–#36 lot/serial/status/LPN/ledger/concurrency/idempotency foundations; progress slice, not closure: transfer/replenishment/work/backorder and document adapters, pick/ship/return integration, scanner/job/integration command adapters, administrative permission/audit endpoints, and PostgreSQL parallel contention qualification remain; migration is checked in but not applied to production; pre-existing AddImmutableAuditLogging.cs and untracked Front-End/ remain preserved After an authorized push, add the remote #37 evidence comment; continue #38 workflow repair and return for the remaining integration and PostgreSQL qualification before closing #37
#38 verified locally; committed; remote open (pending push) 3fb46da repairs the shared receive/putaway/pick/adjustment boundary with service-level active-item/location/warehouse/status/capacity checks; carries an explicit LPN selector through DTOs, MVC bind/use-case lookup, stock rows, movements, serial lifecycle, and ledger keys; rejects partial LPN putaway and updates a whole LPN location atomically; adds persisted adjustment before/delta/after fields through migration 20260920173950_AddMovementAdjustmentHistory; starts an explicit transaction for each application mutation path; 702d028 updates the putaway work test contract for the owner-dimension arguments introduced by the shared movement boundary; the current receive/putaway/pick/replenishment/work qualification passed 27/27, including putaway handler 2/2, and the Debug solution build passed with 0 warnings/0 errors; the prior full Debug solution suite passed 365 with 2 provider-gated PostgreSQL skips; Release solution build and migration lifecycle verification passed 3fb46da, 702d028 Depends on #25–#37 plus #13/#14/#19/#20/#21; this remains a committed progress slice, not closure: ledger/balance cutover from legacy Stock, safe reversals, partial/target-LPN content operations, complete Web/WinForms/scanner adapters, PostgreSQL contention/retry/response-loss qualification, and dependent sales/transfer/replenishment/work/backorder/document/pick/ship/return paths remain; migration is checked in but not applied to production, no deployment, push, or remote issue closure performed; pre-existing AddImmutableAuditLogging.cs and untracked Front-End/ remain preserved After an authorized push, add the remote #38 progress/evidence comment; finish the remaining cutover, client, and provider qualification before closing #38, then load #39
#39 verified locally; committed; remote open (pending push) b14b05d adds an authorized server-side inventory inquiry contract over canonical InventoryBalances, composed warehouse/location/item/lot/serial/LPN/status/expiry filters, exact scan lookup, normalized text search, deterministic sorting, bounded paging, database summaries, explicit on-hand/reserved/physical-available/ATP/held/in-transit/ordered terminology, and the ASP inventory route migration; a bounded legacy Stock fallback preserves the current MVC authorization fixture during cutover without loading the full collection; 6 focused inquiry tests passed (including SQLite translation, paging, summary, search, legacy fallback, and cross-warehouse scope); full Debug solution suite passed with 370 passed and 2 provider-gated PostgreSQL skips; Release solution build passed with 0 warnings/0 errors; migration lifecycle verification passed b14b05d Depends on #13, #33, #34, #35, #36, #37, and #38; committed progress slice, not closure: immutable transaction-history/reservation-detail/forward-backward traceability projections, bounded exports, remaining Desktop/scanner callers, measured PostgreSQL query plans/indexes, high-volume targets, and complete provider/client qualification remain; no schema migration, production deployment, push, or remote issue closure performed; pre-existing AddImmutableAuditLogging.cs and untracked Front-End/ remain preserved After an authorized push, add the remote #39 progress/evidence comment; finish traceability/export/cross-client/high-volume qualification before closing #39 while keeping #40 policy work dependent on this query model, then load #41
#40 verified locally; committed; remote open (pending push) a9aa6ad adds validated effective-dated item/warehouse/location replenishment policies, quantity-basis-aware on-hand/physical-available/ATP signal evaluation over canonical balances, overlap protection, immutable policy audit records, authorized policy/signal API routes, a replenishment-policy migration, dashboard signal wiring, and scheduled low/out/overstock notifications with durable per-policy/day deduplication; 2 domain tests plus 4 SQLite service tests passed; full Debug solution suite passed with 376 passed and 2 provider-gated PostgreSQL skips; Release solution build passed with 0 warnings/0 errors; migration lifecycle verification passed a9aa6ad Depends on #13, #19, #21, #33, #34, #35, #36, #37, #38, and #39; committed progress slice, not closure: bulk import/export with row-level failures, activation/deactivation administration, alert acknowledgement/snooze state, localized policy screens, richer report filters, inbound/ordered quantity projections, replenishment-plan consumers, measured PostgreSQL plans/indexes, and high-volume/provider qualification remain; no production migration, deployment, push, or remote issue closure performed; pre-existing AddImmutableAuditLogging.cs and untracked Front-End/ remain preserved After an authorized push, add the remote #40 progress/evidence comment; finish the remaining policy administration, alert lifecycle, planning, and provider qualification before closing #40, then load #41
#41 verified locally; committed; remote open (pending push) c2bde15 adds an authorized read-only reconciliation report with bounded issue storage, server-side ledger-to-balance comparison in both directions, ledger equation/reference checks, reservation/allocation quantity and balance checks, serial placement/quantity checks, license-plate lifecycle/reference checks, LPN content checks, shallow/deep API modes, and durable lightweight/deep maintenance jobs; 3 SQLite reconciliation tests, 2 job tests, and the updated job-catalog tests passed; full Debug solution suite passed with 382 passed and 2 provider-gated PostgreSQL skips; Release solution build passed with 0 warnings/0 errors; migration lifecycle verification passed c2bde15 Depends on #13, #14, #18, #21, #30, #31, #32, #33, #34, #35, #36, #37, and #38; committed progress slice, not closure: intentional corruption coverage for every invariant, PostgreSQL large-volume plans, post-migration/restore command wiring, operational metrics/alert dashboards, deterministic repair commands with explicit permission/reason/dry-run/audit gates, and completed document/work reference checks remain; no schema migration, production deployment, push, or remote issue closure performed; pre-existing AddImmutableAuditLogging.cs and untracked Front-End/ remain preserved After an authorized push, add the remote #41 progress/evidence comment; finish deep corruption/provider/repair/post-restore qualification before closing #41, then load #42
#42 verified locally; committed; remote open (pending push) 4b7ce20 adds normalized supplier master data with legal/localized names, tax/ERP references, structured contacts/addresses, active lifecycle, restrictive delete checks, supplier receiving defaults, supplier-item SKU/barcode/packaging mappings, dedicated RBAC permissions, warehouse/dock visibility validation, immutable audit actions, migration 20260920192411_AddSupplierMasterData, localized Arabic/English paginated MVC list/details/create/edit/import/export screens, supplier API CRUD/lifecycle/export/import routes, and vendor identifier resolution; 83538eb adds PostgreSQL proof that normalized supplier codes and external ERP identifiers reject duplicates; 6 focused SQLite service tests passed, the PostgreSQL integration suite passed 17/17, the full Debug solution suite passed with 387 passed and 2 provider-gated PostgreSQL/data-migration skips, Release ASP/Infrastructure builds passed with 0 warnings/0 errors, and migration lifecycle verification passed 4b7ce20, 83538eb Depends on #12/#13/#14/#19/#21 and #25–#29 item/UOM/packaging/warehouse/location foundations; committed progress slice, not closure: purchase-order/ASN/receipt/return/quality document consumers are not present to snapshot defaults or preserve historical supplier values, authorized document overrides and inactive-supplier rejection still need their owning workflows, browser/localized visual and Desktop/scanner qualification remain, and PostgreSQL plan/volume/provider qualification remains; no production migration, deployment, push, or remote issue closure performed; pre-existing AddImmutableAuditLogging.cs and untracked Front-End/ remain preserved After an authorized push, add the remote #42 progress/evidence comment; load #43 in dependency order, then return to #42 after document snapshot/override consumers and provider/client qualification are evidenced before closing it
#43 verified locally; committed; remote open (pending push) fd6d981 adds purchase-order and line aggregates with Draft/Confirmed/PartiallyReceived/Received/Closed/Cancelled lifecycle rules, immutable warehouse/supplier/item/UOM/quantity-conversion snapshots, over/under-delivery tolerance checks, revision tokens, warehouse-scoped PO numbering, duplicate external-reference protection, append-only receipt allocations linked atomically to canonical receiving movements, lifecycle/import/receipt audit actions, purchase-order read/manage RBAC, API and localized English/Arabic MVC screens, CSV import/export, receiving integration, and migration 20260920201043_AddPurchaseOrders; 9c2d974 closes the database race by replacing the non-unique supplier/source/external-reference index with a filtered unique index and adds a regression proving normalized duplicates fail while null references and other suppliers remain valid; the pre-fix PostgreSQL run failed because the duplicate was accepted, the post-fix PostgreSQL suite passed 18/18, migration lifecycle passed, 3 domain tests plus 7 focused SQLite service tests passed, the full Debug solution suite passed with 397 passed and 2 provider-gated PostgreSQL/data-migration skips, and Release ASP/Infrastructure builds passed with 0 warnings/0 errors fd6d981, 9c2d974 Depends on #12/#13/#14/#19/#21 and #25–#42 supplier/item/UOM/warehouse/receiving/inventory foundations; committed progress slice, not closure: ASN/receipt/quality/return and ordered/inbound projections, grouped/atomic import, authorized document overrides, browser/RTL-LTR, Desktop/scanner, external-integration, PostgreSQL plan/volume/concurrency/provider qualification remain; no production migration, deployment, push, or remote issue closure performed; pre-existing AddImmutableAuditLogging.cs and untracked Front-End/ remain preserved After an authorized push, add the remote #43 progress/evidence comment; finish downstream document consumers and client/provider qualification before closing #43, then load #44
#44 verified locally; committed; remote open (pending push) 29054a2 adds the ASN aggregate and lines with Draft/Submitted/Expected/Arrived/Receiving/Completed/Cancelled/Exception lifecycle rules, discrepancy history, PO-linked open-quantity reservation across multiple ASNs, warehouse-scoped numbering, duplicate supplier/source/external-reference protection, lot/expiry/serial and exact LPN/SSCC pre-advice validation, sanitized source-payload import, atomic receiving allocations that link one canonical movement to both ASN and PO when applicable, dedicated RBAC and audit actions, API and localized English/Arabic MVC screens, and migration 20260920211634_AddAdvanceShippingNotices; 5b6759a closes the database race by replacing the non-unique supplier/source/external-reference index with a filtered unique index and adds a regression proving normalized duplicates fail while null references and other suppliers remain valid; the pre-fix PostgreSQL run failed because the duplicate was accepted, the post-fix PostgreSQL suite passed 19/19, migration lifecycle verification passed, 3 ASN domain tests, 6 ASN SQLite service tests, and 1 new ASN receiving integration test passed; full Debug solution suite passed with 407 passed and 2 provider-gated PostgreSQL/data-migration skips; localization resource and flow tests passed; Debug and Release ASP/Infrastructure builds passed with 0 warnings/0 errors 29054a2, 5b6759a Depends on #12/#13/#14/#19/#21 and #25–#43 supplier/item/UOM/warehouse/dock/LPN/inventory/purchase-order foundations; committed progress slice, not closure: receipt-session/quality/return and inbound projection consumers, grouped/atomic import, complete API/import idempotency, authorized overrides, browser/RTL-LTR, Desktop/scanner, external-integration, and PostgreSQL plan/volume/concurrency/provider qualification remain; no production migration, deployment, push, or remote issue closure performed; pre-existing AddImmutableAuditLogging.cs and untracked Front-End/ remain preserved After an authorized push, add the remote #44 evidence comment; load #45 in dependency order, then return to #44 after downstream consumers and client/provider qualification are evidenced before closure
#45 verified locally; committed; remote open (pending push) 51c5916 adds durable Receipt/ReceiptLine documents, controlled lifecycle states, source-linked receipt plans, expected/received/accepted/rejected/damaged/quarantined quantities, item/UOM/package/lot/expiry/serial/LPN/status snapshots, receipt-line movement history, compensating reversal/correction flows, quality/putaway/label reference links, receipt RBAC, API and localized English/Arabic MVC list/create/details/print/search/export/lifecycle routes, migration 20260920222012_AddInboundReceipts, and receiving integration that persists the receipt before the stock movement; d7752c2 makes ReceiveItemUseCase fail closed when IReceiptService is unavailable, removes the stock-only fallback, and keeps PO/ASN receiving inside persisted receipt finalization; focused receiving/idempotency tests passed 12/12, receipt/receiving infrastructure tests passed 8/8, full Debug solution tests passed with 679 passed and 20 provider-gated/data-migration skips, full Debug solution build and Release Application build passed with 0 warnings/0 errors, and migration lifecycle verification passed 51c5916, d7752c2 Depends on #12/#13/#14/#19/#21 and #25–#44 supplier/item/UOM/packaging/warehouse/location/LPN/inventory/PO/ASN foundations; committed progress slice, not remote closure: quality/putaway-label/return and inbound projection consumers, grouped import, broader API/import idempotency and concurrency qualification, browser/RTL-LTR, Desktop/scanner, external-provider, and PostgreSQL plan/volume qualification remain; no production migration, deployment, push, or remote issue closure performed; pre-existing AddImmutableAuditLogging.cs and untracked Front-End/ remain preserved After an authorized push, add the remote #45 evidence comment; load #46 in dependency order, then return to #45 after downstream consumers and client/provider qualification are evidenced before closure
#46 verified locally; committed; remote open (pending push) 32b85e0 adds durable scanner receiving sessions, GS1/identifier-aware scans, PO/ASN demand snapshots, tolerance/identity validation, LPN create/reuse, receipt/movement/idempotency linkage, pause/resume/complete/correct/cancel lifecycle, handheld English/Arabic UI with offline retry queue, migration 20260920230458_AddScannerReceivingSessions, and docs/modernization/RECEIVING_EXECUTION.md; 47a1ff4 adds PostgreSQL proof that (ReceivingSessionId, ClientOperationId) rejects duplicate scans within one session while allowing the same client operation in another session; Wms.Domain.Tests/Entities/ReceivingSessionTests.cs 4 focused tests; Wms.Infrastructure.Tests/Receiving/ReceivingExecutionServiceTests.cs 3 focused tests; 12 focused Application receiving/idempotency tests; receipt reversal tests 3/3; disposable PostgreSQL verification passed 20/20; Debug Infrastructure/ASP builds 0 warnings/0 errors; migration lifecycle verification passed 32b85e0, 47a1ff4 Depends on #43–#45; committed session/API/UI/provider-identity slice, but browser handheld/RTL-LTR run, PostgreSQL volume/concurrency beyond the uniqueness boundary, offline-device, label-printer, quality/putaway/returns consumers, and live-provider qualification remain; no production migration, push, or remote closure After an authorized push, add the remote #46 evidence comment; qualify downstream consumers and client/provider gates before closure, then continue with #47
#47 verified locally; committed; remote open (pending push) 1a9cc31 adds quality profiles scoped by warehouse/supplier/item/category/source, fixed/percentage/every-Nth-LPN/full sampling, typed quality tests/results with attachment references, exact-once receipt-line/LPN inspection generation, structured pass/partial/fail/retest/hold/return/rework/damage/scrap dispositions mapped to inventory-status transitions, QC-pending inbound enforcement for generic required profiles, supervisor override permission/reason/audit, closed-inspection edit guards, API endpoints, migration 20260920235603_AddQualityInspections, and docs/modernization/QUALITY_INSPECTIONS.md; 1052a8b replaces the race-prone non-unique receipt-line/LPN index with filtered unique PostgreSQL indexes, adds migration 20260922060248_EnforceQualityInspectionIdentityUniqueness, and proves null-LPN and per-LPN identities; the pre-fix provider run failed at 20/21 because duplicate null-LPN inspection was accepted, the post-fix disposable PostgreSQL suite passed 21/21, Wms.Infrastructure Release build passed with 0 warnings/0 errors, QualityInspectionServiceTests passed 1/1, and migration lifecycle verification passed 1a9cc31, 1052a8b Depends on #43–#46 and #32–#41 quality/status/lot/serial/LPN foundations; committed quality core plus database identity proof, not closure: handheld inspection queue/details/scanner UI, supplier trend reporting, physical return/rework/scrap documents, target-location execution, broader receipt/concurrency/provider qualification, and downstream putaway/return/allocation consumers remain with #48+; no production migration, push, or remote closure After an authorized push, add the remote #47 evidence comment; complete the dependent UI/reporting/work-document/provider gates before closure, then load #48 in dependency order
#48 verified locally; committed; remote open (pending push) 939a62f adds receipt-to-putaway generation keyed by receipt/line/movement, QC-pending hold behavior, typed scanner completion contracts, server-side item/source/destination/LPN identity validation, destination override authorization, atomic work/movement completion transaction, registration of the putaway handler, receipt integration, and focused handler/receipt/work tests; 8a63c6c adds PostgreSQL proof that the creation key yields one task per warehouse while allowing the same key in another warehouse; 9 focused Infrastructure tests passed, the disposable PostgreSQL suite passed 22/22 with container cleanup, and the migration model remained unchanged 939a62f, 8a63c6c Depends on #43–#47 and #54; committed execution plus database identity proof, not closure: partial-LPN content movement, suggested destination selection (#49), exception/return-staging flows (#50), scanner/browser UI and RTL/LTR qualification, manual putaway-route retirement, productivity reporting, service-level generation/claim contention, and downstream allocation integration remain; no production migration, deployment, push, or remote issue closure After an authorized push, add the remote #48 evidence comment; complete #49/#50 and the client/provider gates, then return for closure
#49 verified locally; committed; remote open (pending push) 2951fb4 adds warehouse-scoped, effective-dated, priority-ordered putaway rules with simulation mode, fixed/consolidation/empty/pick-face/bulk/nearest/capacity-aware strategies, item/category/supplier/package/LPN/status/lot/temperature/hazard/storage/source matching, location policy and capacity rejection reasons, CRUD/activation/suggestion API, audit, AddPutawayRules migration, receipt-work top-suggestion integration, 7 focused Infrastructure tests plus 3 Domain tests; ec767f0 adds PostgreSQL proof that normalized rule codes are unique within a warehouse and reusable in another warehouse; disposable PostgreSQL verification passed 23/23 with container cleanup, Debug ASP build passed with 0 warnings/0 errors, and migration lifecycle verification passed 2951fb4, ec767f0 Depends on #48/#54 and location/item/packaging/status foundations; committed deterministic evaluator plus database identity proof, not closure: durable no-match staging/exception routing (#50), concurrent execution-time capacity revalidation, full packaging-dimensional capacity, import/export, PostgreSQL plan/volume qualification, browser/handheld and Arabic/English RTL/LTR UI qualification remain; no production migration, deployment, push, or remote issue closure After an authorized push, add the remote #49 evidence comment; continue with #50 and return after the remaining provider/client/staging gates
#50 verified locally; committed; remote open (pending push) 0ce86bd adds standardized inbound exception codes/severity/status/resolution states, warehouse-scoped idempotent exception records linked to ASN/receipt/session/LPN/item/staging/work, owner/team/SLA queue fields and counters, audit-backed assignment/review/resolution history, controlled supervisor-reason gates, atomic receipt/ASN/work state changes, available-stock blocking, receipt-finalization blocking while an exception is open, API endpoints, migration 20260921015804_AddInboundExceptions, docs/modernization/INBOUND_EXCEPTIONS.md, 3 Domain tests, 4 inbound-exception SQLite tests, 4 receipt-service tests, Debug ASP build 0 warnings/0 errors, and migration lifecycle verification; db9d793 adds PostgreSQL proof that the normalized (warehouse, idempotency key) identity rejects duplicates within one warehouse and permits reuse in another, with the disposable suite passing 24/24 and cleaning its container 0ce86bd, db9d793 Depends on #43–#49 and #54; committed exception-ledger plus database idempotency proof, not closure: full dock appointment/check-in/staging operational screens, handheld/supervisor browser UI, attachment persistence, escalation/assignment jobs and KPI reporting, physical return/vendor/repack/quarantine documents, no-location auto-routing from putaway suggestions, concurrent PostgreSQL/provider/volume qualification, and end-to-end exception matrices remain; no production migration, deployment, push, or remote issue closure performed; pre-existing AddImmutableAuditLogging.cs and untracked Front-End/ remain preserved After an authorized push, add the remote #50 progress/evidence comment; finish the remaining UI, disposition, routing, and provider gates before closure, then load #51
#51 verified locally; committed; remote open (pending push) 20260921023248_AddCustomersAndShipToMasterData adds normalized customer, ERP/channel identifiers, localized/legal/contact/billing data, carrier/service/priority/packaging/label/partial-shipment defaults, active lifecycle, ship-to addresses with delivery windows/defaulting, customer item references, restrict foreign keys/unique indexes, authorized CRUD/search/paging/activation/deletion protection, scalar outbound document snapshots, customer SKU/barcode resolution, CSV import/export with row-level validation, API endpoints, permissions, audit, docs/modernization/CUSTOMERS.md, Wms.Domain.Tests/Entities/CustomerTests.cs 3/3, Wms.Infrastructure.Tests/Customers/CustomerManagementServiceTests.cs 4/4, 10b3a22 PostgreSQL proof for normalized customer/ERP/channel identifier uniqueness with null-external reuse, Debug Infrastructure/ASP builds 0 warnings/0 errors, and migration lifecycle verification passed; disposable PostgreSQL verification passed 25/25 with cleanup 3021ff6, 10b3a22 Depends on #50 inbound exception/staging controls and #54 work execution; committed customer-master/API/persistence plus database identity proof, not closure: browser/handheld master-data screens, Arabic/English RTL/LTR visual run, PostgreSQL volume qualification, and #52 order-confirmation plus #55 return-document consumers remain; customer deletion is intentionally blocked once ship-to/item-reference history exists; no production migration, deployment, push, or remote issue closure After an authorized push, add the remote #51 progress/evidence comment; complete client/provider and downstream snapshot consumers before closure, then load #52
#52 verified locally; committed; remote open (pending push) 9bd4d8a adds warehouse-scoped sales orders and lines with immutable customer/ship-to/item/UOM/packaging snapshots, Draft/Confirmed/Held/Cancelled/Closed/Exception and downstream allocation states, ordered/allocated/picked/packed/shipped/cancelled quantity ledger fields, revision protection, active master-data and customer-item validation, warehouse numbering, external-reference idempotency, guarded lifecycle commands, CSV import/export, RBAC/audit actions, API endpoints, migration 20260921025547_AddSalesOrders, SALES_ORDERS.md, 3 Domain tests, 3 Infrastructure tests, Debug ASP build 0 warnings/0 errors, migration lifecycle verification, and diff-check validation; 00f8400 adds PostgreSQL proof that normalized external references are unique per warehouse/source and reusable in another warehouse, with disposable verification passing 26/26 and cleaning its container 9bd4d8a, 00f8400 Depends on #43–#45 inbound/document foundations, #50 exception controls, #51 customer/ship-to master data, #54 work execution, and #37 reservation infrastructure; committed outbound-demand plus database identity proof, not closure: #53 allocation/release/FIFO-FEFO/backorder, browser/handheld screens, Arabic/English RTL/LTR qualification, PostgreSQL concurrency/volume qualification beyond the uniqueness boundary, split shipment/packing/shipping, after-release amendments, and full end-to-end qualification remain; no production migration, deployment, push, or remote issue closure After an authorized push, add the remote #52 progress/evidence comment; continue with #53 allocation and release, then return to #52 for downstream consumer and client/provider qualification before closure
#53 verified locally; committed; remote open (pending push) 52d7e55 adds FEFO/FIFO reservation simulation with candidate-level rejection reasons, selected-line/all-line allocation, priority/ship-date ordered batch allocation, partial/full/no-stock backorders, deterministic SalesOrderLine reservation demand keys, exactly-once reservation-backed Pick work creation, release/unrelease/cancel/replan guards, concurrency-safe inventory-ledger integration, allocation API endpoints, SALES_ORDER_ALLOCATION.md, 3 focused allocation integration tests, 5 reservation lifecycle tests, 4 warehouse-work lifecycle tests, 3 sales-order regression tests, Debug Infrastructure/ASP builds 0 warnings/0 errors, and migration lifecycle verification with no new schema migration 52d7e55 Depends on #37 reservation infrastructure, #48–#50 execution/exception controls, #52 sales-order demand, and #54 work engine; committed allocation/release progress slice, not closure: allocation-workbench screens, handheld/browser EN/AR RTL/LTR qualification, PostgreSQL parallel contention/volume/provider evidence, full lot/serial/LPN matrices, pick/pack/ship consumption wiring, and broader reconciliation/E2E qualification remain; no production migration, deployment, push, or remote issue closure After an authorized push, add the remote #53 progress/evidence comment; continue with the next ordered backlog issue while returning to #53 for client/provider/consumption qualification before closure
#54 verified locally; committed; remote open (pending push) 66fcda3 adds reusable WarehouseWork/line/command aggregates, lifecycle states Open/Available/Assigned/InProgress/Paused/Completed/Cancelled/Exception, assignment/release/reassign/pause/resume/cancel/exception/complete commands, revision concurrency tokens, request-hash idempotency ledger, warehouse-scoped RBAC and audit actions, API endpoints, migration 20260921002211_AddWarehouseWorkEngine, focused domain 4/4 and infrastructure 3/3 tests, WAREHOUSE_WORK.md, Debug ASP build 0 warnings/0 errors, and migration lifecycle verification; 6779f5c adds PostgreSQL proof that duplicate command keys are rejected per (work, operation) while reuse across operations/work items remains valid, with disposable verification passing 27/27 and cleaning its container 66fcda3, 6779f5c Depends on #13/#14 and #43–#47; committed generic execution boundary plus command-ledger provider proof, not closure: concrete putaway/pick/replenishment/count/pack/load/return handlers, dependency/template/grouping/splitting behavior, scanner/UI/productivity consumers, PostgreSQL contention beyond the identity boundary, and downstream inventory/allocation integration remain; no production migration, deployment, push, or remote issue closure After an authorized push, add the remote #54 progress/evidence comment; continue with #48 and return to #54 after concrete handlers and provider/client gates are evidenced
#55 verified locally; committed; remote open (pending push) 3244647 adds reservation/allocation links to pick work lines, exact scanner source/destination/item/status/lot/serial/LPN validation, atomic source stock plus staging/packing/shipping movement, exact reservation-allocation consumption, deterministic destination ledger leg, duplicate-line and partial-LPN guards, DI registration, migration 20260921035314_AddReservationLinksToWarehouseWorkLines, PICKING_EXECUTION.md, and 3 focused handler tests; follow-up d856499 reconciles picked quantity to the originating sales-order line; focused tests passed 3/3; Debug Infrastructure/ASP builds passed with 0 warnings/0 errors; migration lifecycle verification passed 3244647, d856499 Depends on #52/#53 released demand and #54 work transactions; committed normal-pick execution slice, not closure: short/damage/not-found/substitute/reconnect exceptions, target-LPN flow, concurrent/offline replay, productivity/order projections, handheld EN/AR RTL/LTR browser qualification, PostgreSQL/provider/volume evidence, and pack integration remain; no production migration, deployment, push, or remote issue closure After an authorized push, add the remote #55 evidence/progress comment; continue with #56 packing while returning to #55 for the remaining scanner/client/provider gates
#56 verified locally; committed; remote open (pending push) d7215d2 adds packing stations, order/session/package models, target-LPN package verification, exact item/order/lot/serial/status/source identity, atomic stock/LPN/ledger/movement/order-line updates, weight/dimension/tolerance close, reopen/remove/void/session completion, API endpoints, migration 20260921043412_AddPackingExecution, PACKING_EXECUTION.md, 3 focused relational tests passed, Debug ASP/Infrastructure builds 0 warnings/0 errors, migration lifecycle verification passed; corrected generated-key DTO timing and full-drain ledger cutover during qualification; aceca78 adds PostgreSQL proof that duplicate packing-session command keys are rejected per (session, operation) while reuse across operations and sessions remains valid, with disposable verification passing 28/28 and cleaning its container d7215d2, aceca78 Depends on #52/#53 demand/allocation, #54 work boundary, #55 picked stock, #94/#95 qualification foundations; committed packing execution plus command-idempotency provider proof, not closure: PostgreSQL concurrency/volume beyond the identity boundary, scanner/device reconnect, label rendering/printer integration, package split/consolidation matrices, station/device productivity, handheld/browser EN/AR RTL/LTR, shipping integration and full end-to-end qualification remain; no production migration, deployment, push, or remote issue closure After the authorized push, add the remote #56 evidence/progress comment; continue with #57 and return to #56 for provider/client/label/shipping gates
#57 verified locally; committed; remote open (pending push) 51f2930 adds carrier/service masters, shipment headers/lines/package links, load/trailer/dock records, manual/provider tracking events, shipment/package/order/LPN states, load/unload scan verification, atomic ship confirmation with stock deletion, serial shipment, ship movement, ledger, audit, and idempotent command records, carrier adapter contract, API endpoints, migration 20260921045607_AddShippingExecution, SHIPPING_EXECUTION.md, 2 focused relational tests passed, Debug ASP/Infrastructure builds 0 warnings/0 errors, and migration lifecycle verification passed; d6c5e3a adds PostgreSQL proof that duplicate shipment command keys are rejected per (shipment, operation) while reuse across operations and shipments remains valid, with disposable verification passing 29/29 and cleaning its container 51f2930, d6c5e3a Depends on #52/#53 demand/allocation, #54 work, #55 pick, #56 packing, and #94/#95 qualification foundations; committed warehouse shipping execution plus command-idempotency provider proof, not closure: configurable grouping, multi-order/partial shipment matrices, reservation release/exception resolution, real carrier booking/label/webhook adapters, retry/outbox, loading work, override reason permissions, manifests/packing slips/tracking views, returns/correction, serial/lot/concurrency/provider-volume beyond the identity boundary and browser/handheld EN/AR RTL/LTR qualification remain; no production migration, deployment, push, or remote issue closure After the authorized push, add the remote #57 evidence/progress comment; continue with #58 and return to #57 for provider, partial-shipment, document, exception, and client gates
#58 verified locally; committed; remote open (pending push) f7f29ae adds warehouse-scoped RMA headers/lines, planned versus explicit unplanned-return policy, exact shipped serial validation, Return Pending receipt stock, inspection transition, partial restock/damage/repair/scrap/vendor/customer dispositions, atomic stock/movement/ledger/serial updates, idempotent commands, audit records, API endpoints, migration 20260921051743_AddReturnsAndDisposition, RETURNS.md, 3 focused relational tests passed, Debug ASP build 0 warnings/0 errors, and migration lifecycle verification; receipt/disposition IDs are assigned before DTO mapping. 2842270 adds PostgreSQL proof that duplicate return command keys are rejected per (return authorization, operation) while reuse across operations and RMAs remains valid; disposable verification passed 30/30 and cleaned its container/port f7f29ae, 2842270 Depends on #14, #52/#53/#55–#57, and #94/#95 qualification foundations; committed returns execution progress slice, not closure: In Transit/carrier/RMA tracking, supplier/RTV integration, reason/disposition catalogs, labels, RMA list/search views, multi-receipt/provider matrices beyond the command-key boundary, PostgreSQL concurrency, and browser/handheld EN/AR RTL/LTR qualification remain; no production migration, deployment, push, or remote issue closure After an authorized push, add the remote #58 evidence/progress comment; continue with #59 and return to #58 for the remaining carrier, supplier, provider, and client gates
#59 verified locally; committed; remote open (pending push) af5b91c adds a warehouse-scoped, reason/severity/queue/due-time outbound exception aggregate, links to order/line/reservation/work/work-line/shipment/package/load/item/location/lot/serial/LPN references, assignment/review/overdue queue APIs, supervisor-gated reallocate/substitute/partial-backorder/release/cancel/repick/repack/hold/carrier/unload/override resolution contracts, ambient-transaction reservation release/reallocation, idempotent resolution commands, audit records, migration 20260921054513_AddOutboundExceptions, OUTBOUND_EXCEPTIONS.md, 3 focused relational tests passed, Debug ASP build 0 warnings/0 errors, and migration lifecycle verification. 53f75fb adds PostgreSQL proof that duplicate resolution keys are rejected per (outbound exception, operation) while reuse across operations and exceptions remains valid; disposable verification passed 31/31 and cleaned its container/port af5b91c, 53f75fb Depends on #14, #52/#53, #55–#58, and #94/#95 qualification foundations; committed exception-queue progress slice, not closure: end-to-end shortage/damage/reallocate reconciliation against live pick/pack/ship transactions, substitution/UOM policy, carrier adapter/outbox failures, load/package correction matrices, attachments/KPIs, PostgreSQL concurrency/provider-volume beyond the command-key boundary, and browser/handheld EN/AR RTL/LTR evidence remain; no production migration, deployment, push, or remote issue closure After an authorized push, add the remote #59 evidence/progress comment; continue with #60 and return to #59 for the remaining reconciliation, provider, and client gates
#60 verified locally; committed; remote open (pending push) 20260921061826_AddTransfersAndInternalMovements adds cross-warehouse TransferOrder/line and same-warehouse InternalMovement aggregates, non-allocatable IN_TRANSIT status, source/transit/destination stock and balanced ledger legs, partial ship/receive, lot/serial/LPN identity validation, idempotent commands, cross-warehouse authorization, audit/API wiring, TRANSFERS.md, focused transfer tests 3/3, Debug ASP/Infrastructure builds 0 warnings/0 errors, and migration lifecycle verification. f74c1e0 adds PostgreSQL proof for warehouse-scoped internal-movement request identity and per-transfer-operation command identity; disposable verification passed 33/33 and cleaned its container/port 81cbe50, f74c1e0 Depends on #14, #32–#37, #43–#45, #48–#59, and #94/#95; committed movement/transfer progress slice, not closure: reservation-backed allocation and automatic pick/load work, destination receiving/putaway integration, multi-line and whole-LPN orchestration, shipped cancellation/reversal and explicit shortage/damage documents, PostgreSQL concurrency/provider-volume beyond identity checks, KPI/list/detail screens, and browser/handheld EN/AR RTL/LTR evidence remain; no production migration, deployment, push, or remote issue closure Continue with #61 while returning for the remaining #60 transfer gates
#61 verified locally; committed; remote open (pending push) 2383bbd adds policy-signal replenishment planning through IReplenishmentExecutionService, deterministic destination/source selection with capacity and FEFO/FIFO checks, open-work de-duplication, scheduled-job wiring, manual generation API, ReplenishmentWarehouseWorkCompletionHandler, pick-face receiving support, REPLENISHMENT_EXECUTION.md, focused generation/execution tests 5/5, Debug ASP/Infrastructure builds 0 warnings/0 errors, and migration lifecycle verification with no new schema migration. a7551f4 adds PostgreSQL proof that the persisted policy quantity-order check rejects an invalid target update and preserves the valid row; the targeted provider proof passed 1/1, and a serialized full harness pass passed 34/34. The default parallel wrapper terminated its disposable container under load and remains an open provider-stability result 2383bbd, a7551f4 Depends on #32–#39 inventory/status/location/replenishment-policy foundations, #54 work transactions, and #94/#95 qualification foundations; committed executable-planning and scanner-movement progress slice, not closure: source reservations, demand/wave/manual simulation triggers, changed-demand cancel/replan, explicit shortage/blocked/damage exception workflow, whole-LPN/multi-line orchestration, scanner reconnect/offline replay, KPI/reporting screens, PostgreSQL parallel contention/volume/provider stability, and browser/handheld EN/AR RTL/LTR evidence remain; no production migration, deployment, push, or remote issue closure Continue with #62 while returning to #61 for reservations, demand triggers, exceptions, provider qualification, and client evidence
#62 verified locally; committed; remote open (pending push) 249b670 adds durable CycleCountPlan/CycleCountTask/CycleCountLine snapshots, blind-summary redaction, duplicate-safe scheduled generation, count-work linkage, empty-scope support, audit/API/job wiring, 20260921070421_AddCycleCounting, CYCLE_COUNTING.md, focused CycleCountService plus #61 regression tests 7/7, Debug ASP/Infrastructure builds 0 warnings/0 errors, and migration lifecycle verification. c38e2ff adds PostgreSQL proof that plan keys are unique within a warehouse and task keys are globally unique across plans; targeted disposable verification passed 1/1 and cleaned its container/port 249b670, c38e2ff Depends on #32–#39 inventory/location/dimension foundations, #54 work, #94/#95 qualification foundations, and scheduled jobs; committed planning/snapshot progress, not closure: scanner count completion/save-resume, location/item/lot/serial/LPN validation, safe movement freeze/reconciliation, recount/approval thresholds, exactly-once CountVariance ledger posting, cancellation/correction, KPI/history screens, PostgreSQL concurrency/provider-volume evidence beyond identity checks, and browser/handheld EN/AR RTL/LTR evidence remain; no production migration, deployment, push, or remote issue closure Continue with #63 while returning to #62 for scanner, variance, ledger, provider, and client gates
#63 verified locally; committed; remote open (pending push) 74b89ff adds warehouse-scoped effective-dated classification policies, deterministic shipped-quantity/line/movement-velocity/inventory-value/criticality formulas, cumulative A/B/C thresholds with explicit Unclassified, current results plus append-only input/history snapshots, dry-run comparison, expiry-safe authorized manual overrides, audit/API wiring, bounded daily recalculation job, migration 20260921073214_AddInventoryClassifications, INVENTORY_CLASSIFICATION.md, focused classification tests 3/3 and combined classification/replenishment/count/replenishment-handler regression tests 14/14, Debug ASP/Infrastructure builds 0 warnings/0 errors, and migration lifecycle verification. 39658b9 adds PostgreSQL proof for warehouse-scoped policy-key and current-result identity; targeted disposable verification passed 1/1 and cleaned its container/port 74b89ff, 39658b9 Depends on #32–#39 inventory/item/movement foundations, #54 jobs/work, #62 count policy consumer, and #94/#95 qualification foundations; committed classification/policy progress, not closure: dashboard/change-report UX, bulk override/import, slotting/service-alert consumers, broader downstream policy tuning, PostgreSQL volume/deadlock/provider evidence beyond identity checks, and browser/handheld EN/AR RTL/LTR evidence remain; no production migration, deployment, push, or remote issue closure Continue with #64 while returning to #63 for dashboards, bulk operations, downstream consumers, provider, and client gates
#64 verified locally; committed; remote open (pending push) aff19e9 adds warehouse-scoped effective-dated FIFO/FEFO/LIFO/fixed/location-priority/nearest/route-priority policies, specificity and effective-date resolution, receipt-date ledger evidence with deterministic fallback, expiry/minimum-shelf-life rejection, explicit missing-expiry fallback, whole-LPN preference, ranked explanations and read-only simulation API, reservation strategy/version snapshots, pick-work propagation, audit/configuration/DI wiring, migration 20260921080706_AddInventoryAllocationStrategies, INVENTORY_ALLOCATION_STRATEGIES.md, 4 focused strategy tests passed, 6 reservation regression tests passed, Debug ASP/Infrastructure builds 0 warnings/0 errors, migration list and idempotent SQL generation passed, and diff-check passed. aa23dd7 adds targeted PostgreSQL proof that normalized strategy policy keys are unique per warehouse; disposable verification passed 1/1 and cleaned its container/port aff19e9, aa23dd7 Depends on #32–#39 inventory/lot/serial/status/location/LPN foundations, #53 allocation, #54 work, #55 pick, and #94/#95 qualification foundations; committed allocation-strategy progress, not closure: direct strategy-backed reservation/work integration coverage, full serial/status/LPN matrix under each policy, PostgreSQL contention/volume/provider execution beyond identity checks, browser/handheld EN/AR RTL/LTR UI evidence, and production migration/deployment remain; no push, production migration, or remote issue closure After an authorized push, add the remote #64 evidence comment; extend provider/client and downstream strategy qualification, then continue with #65 while returning to #64 for closure gates
#65 verified locally; committed; remote open (pending push) c78abcf plus 3e67849 add durable WaveTemplate, Wave, WaveLine, and WaveProcessingHistory aggregates, warehouse-scoped deterministic priority/ship-date/carrier/customer/priority/source selection, capacity bounds and non-terminal wave conflict exclusion, serializable creation with warehouse-local creation-key replay, manual simulation, resumable per-line allocation and work creation, shortage-triggered replenishment step, release/partial/failure state resolution, remove-line and reservation-aware cancellation guards, schedule-expression matching, trusted internal scheduled-wave creation, audit/API/DI wiring, scheduled wms.wave-planning job, migration 20260921084632_AddOutboundWaves, OUTBOUND_WAVES.md, 5 focused wave tests passed, 18 combined wave/allocation/reservation/strategy regression tests passed, 3 job-catalog tests passed, Debug ASP/Infrastructure builds 0 warnings/0 errors, migration list and 385099-byte idempotent SQL generation passed. 219fec1 adds targeted PostgreSQL proof for warehouse-local creation-key replay, global wave-number uniqueness, and per-wave step-attempt identity; disposable verification passed 1/1 and cleaned its container/port c78abcf, 3e67849, 219fec1 Depends on #52/#53 outbound demand/allocation, #54 work, #61 replenishment, #64 allocation strategies, and #94/#95 qualification foundations; committed wave-planning progress, not closure: provider-backed serializable concurrency/high-volume execution beyond identity checks, broader shortage/replenishment and serial/status/LPN strategy matrices, workbench/throughput screens, browser/handheld EN/AR RTL/LTR evidence, and production migration/deployment remain; no push, production migration, or remote issue closure After an authorized push, add the remote #65 evidence comment; extend provider/client/volume qualification and return for closure gates before advancing through #66–#93
#66 verified locally; committed; remote open (pending push) f267b6b adds warehouse-scoped effective-dated picking-strategy policies, deterministic single-order/batch/cluster/zone/pick-and-pass selection, complete-order capacity bounds, logical target containers, ordered zone handoffs, reservation/allocation/work/order/item/source-zone/lot/serial/LPN/inventory-status attribution, wrong-target rejection, plan refresh from the existing warehouse-work execution state, cancellation guard, audit/API/DI wiring, migration 20260921093608_AddPickingStrategies, PICKING_STRATEGIES.md, 5 focused strategy tests passed, 23 combined strategy/wave/allocation/reservation regression tests passed, Debug ASP/Infrastructure builds 0 warnings/0 errors, EF no-pending-model-changes check passed, and 409651-byte idempotent PostgreSQL script generation passed. 3ffba50 adds targeted PostgreSQL proof that picking-strategy policy keys are unique within a warehouse while the same normalized key is valid in another warehouse; disposable PostgreSQL 17 verification passed 1/1 on 2026-09-22 and container/port cleanup was verified f267b6b, 3ffba50 Depends on #52/#53 outbound demand/allocation, #54 work, #55 picking, #56 packing/consolidation, #64 allocation strategies, #65 waves, and #94/#95 qualification foundations; committed strategy-planning and provider-identity progress, not closure: provider-backed serializable contention/high-volume execution beyond the identity boundary, mixed lot/serial/LPN end-to-end completion, short-pick/reallocation/cancellation/replan matrices, scanner/handheld/browser EN/AR RTL/LTR evidence, packing/consolidation metrics, and production migration/deployment remain; no push, production migration, or remote issue closure After an authorized push, add the remote #66 evidence comment; wire real handheld/browser execution and provider/volume qualification, then continue with #67 while returning to #66 for closure gates
#67 verified locally; committed; remote open (pending push) 7bad6d7 adds warehouse-scoped effective-dated planned/opportunistic cross-dock policies with item/category, supplier, inbound-source, customer/order, mode, expiry/shelf-life, quantity-tolerance, priority, and staging/packing/shipping destination rules; deterministic order-priority/ship-date/order/line matching; active-plan demand de-duplication; receipt/PO-or-ASN/accepted-quantity/UOM/inventory-status/lot/serial/LPN/source/destination traceability snapshots; explicit excess/blocked/QC/unmatched fallback; idempotent creation keys; cancellation before execution; audit/API/DI wiring; migration 20260921101440_AddCrossDockPlanning; CROSS_DOCK.md; 5 focused cross-dock tests passed; Debug ASP/Infrastructure builds 0 warnings/0 errors; EF no-pending-model-changes check passed; and 418841-byte idempotent PostgreSQL script generation passed. a60f1bd adds targeted PostgreSQL proof that cross-dock policy keys are unique within a warehouse while the same key is valid in another warehouse; disposable PostgreSQL 17 verification passed 1/1 on 2026-09-22 and container/port cleanup was verified 7bad6d7, a60f1bd Depends on #46 receiving, #47 quality, #48/#49 putaway, #52/#53 outbound demand/allocation, #54 work, #56/#57 packing/shipping, and #94/#95 qualification foundations; committed planning and provider-identity progress, not closure: reservation-backed exactly-once source claiming, receiving-to-outbound-staging movement, executable cross-dock work/scanner completion, normal-putaway suppression/replan, short/excess/cancellation release, transfer-demand matching, KPI/queue/traceability views, PostgreSQL contention/high-volume/end-to-end receive-to-ship evidence, browser/handheld EN/AR RTL/LTR evidence, and production migration/deployment remain; no push, production migration, or remote issue closure After an authorized push, add the remote #67 evidence comment; connect plans to reservation/work/movement transaction boundaries with provider/concurrency and receive-to-ship qualification, then continue with #68 while returning to #67 for closure gates
#68 verified locally; committed; remote open (pending push) fc90c99 adds warehouse-scoped worker profiles with active team/UTC shift/time zone/skills/certifications/preferred zones, durable work queues with type/zone/priority/capacity/eligibility/assignment strategy, work.execute self-claim, active-account and warehouse-scope enforcement, shift/team/skill/certification/zone routing, queue-capacity preflight, existing work-row concurrency/idempotency integration, explicit travel/wait/exception activity facts, server-side queue/productivity aggregates, audit/API/DI wiring, migration 20260921104905_AddWorkforceAssignment, WORKFORCE_ASSIGNMENT.md, 5 focused WorkforceService tests plus 4 warehouse-work regression tests passed, Debug Infrastructure/ASP builds 0 warnings/0 errors, EF no-pending-model-changes passed, migration list and 425676-byte idempotent PostgreSQL script generation passed, and diff-check found no whitespace errors. d9d3137 adds targeted PostgreSQL proof that worker profiles are unique per user/warehouse and queue codes are unique per warehouse while cross-warehouse reuse remains valid; disposable PostgreSQL 17 verification passed 1/1 on 2026-09-22 and container/port cleanup was verified fc90c99, d9d3137 Depends on #12/#13 auth/RBAC, #54 work, #66/#67 routing/execution boundaries, and #94/#95 qualification foundations; committed workforce-routing and provider-identity progress, not closure: provider-backed same-work and concurrent-capacity contention beyond identity checks, large-history/query-plan evidence, complete release/reassign/pause/resume/exception client matrix, browser/handheld scanner workbench with EN/AR RTL/LTR evidence, privacy-retention review, production migration/deployment, and remote issue synchronization remain; no push, production migration, or remote issue closure Record the tracker checkpoint, then add the remote #68 progress comment only after authorized push; extend #95 PostgreSQL contention/volume evidence and wire #66/#67 execution paths before returning for closure gates
#69 verified locally; committed; remote open (pending push) 9b99aa2 adds warehouse-scoped expiry/disposition policies, business-date expiry candidates with warning/minimum-shelf-life evaluation, idempotent disposition requests, approval and witness gates, partial status/movement/ledger execution through the existing inventory-status boundary, dimension preservation, scrap/destruction retention at SCRAP_PENDING with no deletion, recall cases that mark lots recalled, ledger/current-balance/legacy-stock trace output, audit/API/DI wiring, migration 20260921113248_AddInventoryDispositions, INVENTORY_DISPOSITIONS.md, 5 focused disposition tests passed, Debug ASP/Infrastructure builds 0 warnings/0 errors, EF no-pending-model-changes passed, 438646-byte idempotent PostgreSQL script generated, and diff-check passed. f35ad9f adds targeted PostgreSQL proof that disposition policy keys are unique within a warehouse while the same normalized key is valid in another warehouse; disposable PostgreSQL 17 verification passed 1/1 on 2026-09-22 and container/port cleanup was verified 9b99aa2, f35ad9f Depends on #30–#39 lot/serial/status/LPN/ledger, #21 jobs, #47/#58 quality/returns, #53/#54 allocation/work, and #94/#95 qualification foundations; committed disposition/recall and provider-identity progress, not closure: minimum-shelf and recall/damage enforcement across allocation, receipt, move, count, pick, pack, ship, return, inspection, and scanners; durable expiry/damage queues and reconciliation; full PO/receipt/order/shipment/customer recall projections; provider contention/recovery beyond policy identity, scrap/destruction removal workflow; reports/KPIs; browser/handheld EN/AR RTL/LTR; production migration/deployment; and remote issue synchronization remain; no push, production migration, or remote issue closure Continue with #70 while returning to #69 for allocation/command/client/provider/retention closure gates; after authorized push, add the #69 evidence comment but do not close until the remaining gates pass
#70 verified locally; committed; remote open (pending push) fc9dde4 adds warehouse-scoped effective-dated slotting policies with configurable deterministic weights and candidate location types; hard filters for storage profile, temperature, hazard, pickability, mixed-item/mixed-lot, capacity, reservations, and open work; source-period, score-factor, constraint, and advisory benefit snapshots; item/package physical metrics; ABC, shipment/replenishment, sales-order, balance, and location inputs; idempotent analysis keys; dry-run simulation; historical rejection/expiry; exactly-once approval through stable replenishment work creation; audit/API/DI wiring; bounded wms.slotting-analysis job; migration 20260921122015_AddSlottingAnalysis; SLOTTING.md; 3 focused SlottingService tests passed; Debug ASP/Infrastructure builds 0 warnings/0 errors; EF no-pending-model-changes passed; 445747-byte idempotent PostgreSQL script generated; and diff-check passed. f905408 adds targeted PostgreSQL proof that slotting policy keys are unique within a warehouse while the same normalized key is valid in another warehouse; disposable PostgreSQL 17 verification passed 1/1 on 2026-09-22 with container/port cleanup verified fc9dde4, f905408 Depends on #54 work, #61 replenishment, #63 ABC classification, #32–#39 location/item/packaging/inventory foundations, and #94/#95 qualification foundations; committed deterministic slotting and provider-identity progress, not closure: provider contention and representative warehouse-size/query-plan evidence beyond policy identity, richer route-distance and order-affinity inputs, multi-item before/after simulation, dashboard/history and complete client wiring, durable batch checkpointing/reconciliation, full profile governance, browser/handheld EN/AR RTL/LTR evidence, production migration/deployment, and remote issue synchronization remain; no push, production migration, or remote issue closure Continue with #71 while returning to #70 for provider, dashboard/client, batch, localization, and closure gates; after authorized push, add the #70 evidence comment but do not close until the remaining gates pass
#71 verified locally; committed; remote open (pending push) 7df6afc adds the additive ASP.NET Core MVC scanner-first shell: culture-aware skip link and main landmark, authenticated permission-filtered command bar, existing Inventory searchTerm quick scan/search contract, Receiving/Picking/Inventory operator links, responsive design tokens/primitives for touch targets/cards/status/empty/loading/focus states, / and Ctrl+K/Cmd+K shortcuts, scanner-route focus opt-in, English/Arabic shell resources, MVC_SCANNER_DESIGN_SYSTEM.md, and a focused authenticated MVC flow test; MvcShellFlowTests passed 1/1 for en-US LTR and ar-SA RTL, WmsLocalizationResourceTests passed 2/2, Debug ASP build passed with 0 warnings/0 errors, JavaScript syntax/XML resource parsing/diff checks passed 7df6afc Depends on #12/#13/#15/#23 authentication, authorization, security, and localization foundations plus the #48–#70 workflow slices; committed scanner-first shell progress, not closure: every dashboard/master/inventory/inbound/outbound/work/count/replenish/transfer/report/user/settings/exception page still needs migration to shared primitives; operator/management navigation, notifications, recent-work context, breadcrumbs, workflow-specific scan fields, complete keyboard/touch/error/empty/loading journeys, Playwright breakpoint and EN/AR RTL/LTR evidence, full client/server journey qualification, production release, and remote issue synchronization remain; no push, deployment, production migration, or remote issue closure Continue with #72 while returning to #71 for full page migration, workflow scan fields, visual/browser qualification, and closure gates; after authorized push, add the #71 evidence comment but do not close until the remaining gates pass
#72 verified locally; committed; remote open (pending push) 43c7952 adds a standalone-capable manifest.webmanifest with theme/orientation/scope/shortcuts and SVG app icon, a versioned same-origin static-asset service worker with safe data-free navigation fallback, an offline page, online/offline/reconnecting/update state and controlled refresh notification, offline blocking for unsupported non-GET forms, tab-scoped quick-scan draft recovery, and PWA_OFFLINE.md; PwaFlowTests passed 1/1 for manifest/service-worker/offline/security boundaries, WmsLocalizationResourceTests passed 2/2, Debug ASP build passed with 0 warnings/0 errors, JavaScript/service-worker syntax, manifest JSON/XML resources, and diff checks passed 43c7952 Depends on #12/#13/#15 authentication, authorization, security, and typed errors plus #71 scanner-first UI and later idempotent API/command contracts; committed safe PWA/offline-shell progress, not closure: supported Android/desktop installability and icon qualification, Playwright/mobile offline/reconnect/session-expiry/update/storage-cleanup evidence, orientation/virtual-keyboard/wake-lock behavior, stale-data protection, conflict resolution, command IDs/idempotency, explicitly supported retry queue and exactly-once server confirmation remain; no offline mutation is claimed, and no push, deployment, production migration, or remote issue closure occurred Continue with #73 while returning to #72 after idempotent command/API design exists for supported retry, conflict, device, and browser closure gates; after authorized push, add the #72 evidence comment but do not close until the remaining gates pass
#73 verified locally; committed; remote open (pending push) 22ec32a adds vendor-neutral Application contracts for keyboard-wedge/camera/native/manual scan sources, bounded scanner profiles, prefix/terminator/timeout normalization, partial/duplicate rejection, stable scale readings with unit/precision/manual-fallback validation, typed station/warehouse device profiles, deterministic station/warehouse/template/format print-route selection, scanner/scale/print adapter interfaces, DEVICE_INTEGRATION.md, and 5 focused tests; DeviceInputTests passed 5/5, Debug Application build passed with 0 warnings/0 errors, JavaScript syntax and diff checks passed 22ec32a Depends on #12/#13/#15 security/RBAC, #20/#30–#39 identification/GS1/packaging foundations, #71 scanner-first UI, #72 PWA boundary, #19/#23 typed settings, and workflow idempotency contracts; committed vendor-neutral device-boundary progress, not closure: browser camera permission/fallback, persistent focus/virtual-keyboard wiring on each operator screen, persisted station profiles/admin screens, real adapters, calibration/diagnostics, print payload/template execution, device-access permissions/audit, and handheld/browser rapid/partial/duplicate/camera/scale/print qualification remain; no proprietary SDK, push, deployment, production migration, or remote issue closure Continue with #74 while returning to #73 for real adapter/client wiring, station persistence, security/audit, and device qualification gates; after authorized push, add the #73 evidence comment but do not close until the remaining gates pass
#74 verified locally; committed; remote open (pending push) 08b80c2 adds IInventoryInquiryService.GetDashboardMetricsAsync with authorization, warehouse-scope filtering, grouped server-side canonical-balance aggregation, and direct legacy-stock aggregate fallback; defines on-hand/reserved/available/held/damaged/expired/expiring/location/SKU formulas; removes the MVC quantity-as-value misuse and moves WinForms KPI cards to the same aggregate contract; adds English/Arabic KPI surfaces, OPERATIONAL_DASHBOARD.md, canonical/fallback inquiry coverage (7/7), authenticated MVC dashboard coverage (1/1), localization parity coverage (2/2), Debug Infrastructure/ASP/WinForms builds with 0 warnings/0 errors, and git diff --check passed 08b80c2 Depends on #12/#13/#15 security/RBAC, #19/#20 typed settings/localization, #21 reporting/jobs, #46–#70 inbound/outbound/inventory/workflow foundations, and #94/#95 qualification foundations; committed inventory-dashboard progress, not closure: inbound/outbound/accuracy/productivity read models, warehouse/date/shift filters, drilldowns, snapshots/trends, complete policy-signal counts, effective-dated costing, provider/query-plan/warehouse-size evidence, browser/handheld EN/AR RTL/LTR qualification, production migration/deployment, and remote issue synchronization remain; no push, production migration, or remote issue closure Continue with #75 while returning to #74 for the remaining dashboard read models, filters, history, provider, and client qualification gates; after authorized push, add the #74 evidence comment but do not close until the remaining gates pass
#75 verified locally; committed; remote open (pending push) 6ec0f44 adds the provider-neutral IReportQueryService movement-ledger read model, combined date/warehouse/item/location/type/user/reference/lot/serial/LPN filters, stable server-side sorting/paging/grouping, bounded DTO projection, warehouse authorization/scope isolation, business-time boundaries, normalized filter/sort/page metadata including actor/time zone/data cutoff, optional display-UOM conversion, permission-filtered MVC navigation and report screen, UTF-8 BOM CSV streaming with the same query contract, English/Arabic localized EN/LTR and AR/RTL surfaces, REPORTING.md, ReportsFlowTests 3/3 (combined filters/date bounds/paging/scope, grouped aggregation/page clamp, CSV encoding/export, Arabic RTL), localization parity 2/2, Debug ASP/Infrastructure/WinForms builds 0 warnings/0 errors, and git diff --cached --check passed 6ec0f44 Depends on #12/#13/#15 auth/RBAC/security, #19/#20 typed settings/localization, #21 jobs, #32–#39 inventory/traceability dimensions, #46–#70 workflow read models, and #94/#95 qualification foundations; committed movement-report core, not closure: PDF/Excel renderers, persisted report artifacts, scheduled recipient/channel configuration, generated-report retention/legal hold, and external delivery remain with #83/#84/#90–#93; no production migration, deployment, push, or remote issue closure Continue with #76; return to #75 after #83/#84/#90–#93 to complete report-family, artifact, scheduled-delivery, retention, and provider/client closure gates
#76 verified locally; committed; remote open (pending push) 32ce276 adds versioned scoped declarative label templates and durable print jobs, validated placeholders/field kinds, shared product-code/GS1/SSCC validation, generated ZPL/PDF plus EN/LTR and AR/RTL browser-PDF preview, typed route selection with station/warehouse precedence, copy bounds, reprint reasons, idempotency, persisted adapter failure/retry, immutable print/template audit actions, guarded /api/labels template/preview/print/retry endpoints, migration 20260921145635_AddLabelTemplatesAndPrintJobs, LabelTemplateEngineTests 5/5, LabelServicesTests 3/3, Debug ASP/WinForms builds 0 warnings/0 errors, migration list, and staged diff check passed 32ce276 Depends on #19/#20 settings/localization, #73 device/print contracts, #75 report/export boundaries, #81 reason/approval policy, and #85 administration; committed label core, not closure: real ZPL/PDF printer/font adapters, Arabic embedded-font qualification, barcode scanner/golden render, high-volume queue/worker load, station administration, and production/provider/client qualification remain; no production migration, deployment, push, or remote issue closure Continue with #77; return to #76 for live adapter/font/queue and browser/handheld/provider qualification after #73/#85/#87/#90–#95 gates mature
#77 verified locally; committed; remote open (pending push) 82a6c5b adds supplier-return/RTV documents and line snapshots, Draft/Approved/Picking/Packed/Shipped/Acknowledged/Closed/Cancelled/Exception transitions, supplier/RMA uniqueness, PO/ASN/receipt/QC lineage checks, exact lot/serial/LPN/status dimensions, transactional source reservation and compensating cancellation, RETURN_PENDING staging isolation, RTV warehouse work with scan validation and supervisor-approved short-pick handling, exactly-once ship removal, carrier/tracking/document fields, idempotent commands, typed RBAC/audit/API/DI wiring, migration 20260921153707_AddSupplierReturnsAndRtvWork, SUPPLIER_RETURNS.md, focused service tests 5/5, Debug Infrastructure/ASP builds 0 warnings/0 errors, migration list, and staged diff check passed 82a6c5b Depends on #47 quality, #50 inbound exceptions, #52–#60 outbound/transfer foundations, #69 dispositions/recall, #75 reports, #81 reasons/approvals, and #90–#93 integrations; committed transactional RTV progress, not closure: real carrier/EDI acknowledgement, provider-backed concurrency and warehouse-volume evidence, packing/loading/carrier/document adapters, labels/report surfaces, complete browser/handheld EN/AR RTL/LTR screens, production migration/deployment, push, and remote issue closure remain; pre-existing untracked Front-End/ package preserved Continue with #78; return to #77 for carrier/EDI, provider/load, client/localization, labels/reports, and closure gates after #81/#85/#90–#95 mature
#78 verified locally; committed; remote open (pending push) 9dbe1ad adds CompanyOwned/SupplierConsignment/CustomerOwned/ExternalOwner owner masters with supplier/customer/external links and immutable snapshots; owner dimensions on stock, balances, ledger transactions, reservations/allocations, movements, receipts, warehouse work, transfers, cycle counts, inquiry, LPN content, packing, and shipment confirmation; default company-only demand eligibility plus exact explicit-owner allocation; approved/idempotent ownership transfers with two immutable ledger legs, audit, whole-LPN guard, and transactional stock/ledger ordering; owner balances/age, usage, and statement report API; migration 20260921170935_AddInventoryOwnership with deterministic pre-existing-row defaults OwnerKind = 1/OwnerCodeSnapshot = COMPANY; InventoryOwnershipServiceTests 1/1 and affected ownership/ledger/reservation/receipt/LPN/cycle-count/packing/inquiry tests 40/40; Debug Infrastructure/ASP builds 0 warnings/0 errors; migration list and diff-check passed 9dbe1ad Depends on #32–#39 inventory dimensions, #51 suppliers, #52 customers/orders, #53 reservations, #60 transfers, #75 reports, #81 reasons/approvals, #90–#93 integrations, and #94/#95 qualification; committed ownership-dimension/transfer/report progress, not closure: provider-backed PostgreSQL concurrency/volume evidence, reviewed production migration/restore, owner-specific location/import/integration wiring, complete browser/handheld EN/AR RTL/LTR screens, push, and remote issue closure remain; pre-existing untracked Front-End/ package preserved Continue with #79; return to #78 after #81/#85/#87/#90–#95 to integrate reason/approval, administration/import/connector, client/localization, provider, and production closure gates
#79 verified locally; committed; remote open (pending push) 0194c82 adds effective-dated/versioned kit definitions with BOM substitution policy and instruction snapshots; VAS orders/work for assemble, disassemble, bundle, unbundle, relabel, repack, inspect, and custom operations; reservation-backed component consumption, production, scrap, partial completion, cancellation, compensating reversal, owner/status/lot/serial/LPN dimensions, bidirectional genealogy, approved substitution, station/team work metadata, quality-profile scope validation, typed RBAC/audit/API/DI wiring, migration 20260921182017_AddValueAddedServices, VALUE_ADDED_SERVICES.md, ValueAddedServiceTests 5/5 (assembly/reversal idempotency, partial scrap/yield, shortage compensation, disassembly genealogy/reversal, approved substitution), Debug Infrastructure/ASP builds 0 warnings/0 errors, migration list, and staged diff-check passed 0194c82 Depends on #32–#39 item/UOM/traceability, #54 work, #56/#57 packing/shipping, #69 disposition, #75 reports, #76 labels, #81 reasons/approvals, #85 administration, #87 client qualification, #90–#93 integrations, and #94/#95 qualification; committed transactional VAS progress, not closure: additional-input/rework and quality/label execution adapters, provider-backed concurrency/warehouse-volume evidence, reviewed migration/restore, complete browser/handheld EN/AR RTL/LTR screens, production migration/deployment, push, and remote issue closure remain; pre-existing untracked Front-End/ package preserved Continue with #80; return to #79 after #81/#85/#87/#90–#95 to qualify additional-input/rework, quality/label/scanner/client, provider, and production closure gates
#80 verified locally; committed; remote open (pending push) a1e11e7 adds directed warehouse route edges with sequence/travel/distance metadata and location-ancestry lookup; weighted supervisor-managed interleaving policies; deterministic workforce suggestions that preserve due-date/priority ordering, apply worker/queue/shift/skill/certification/zone/capacity eligibility, score route/zone affinity with stable explanations, enforce maximum travel, expose explicit fallback ordering, and support explicit manual override without bypassing claim/assignment concurrency; route/policy CRUD API, typed audit/RBAC/antiforgery wiring, migration 20260921191212_AddWorkInterleaving, WORK_INTERLEAVING.md, WorkforceServiceTests 7/7, Debug Infrastructure/ASP builds 0 warnings/0 errors, migration list, and staged diff-check passed a1e11e7 Depends on #54 work, #61 replenishment, #66 picking strategies, #68 workforce routing, #70 slotting, #75 dashboard/report read models, #87 usability qualification, and #94/#95 qualification; committed transparent recommendation progress, not closure: provider-backed queue contention and representative live-queue performance, telemetry-calibrated travel, full supervisor visualization, browser/handheld EN/AR RTL/LTR qualification, production migration/deployment, push, and remote issue closure remain; pre-existing untracked Front-End/ package preserved Continue with #81; return to #80 after #87/#94/#95 and live telemetry/provider evidence to complete routing, visualization, and closure gates
#81 verified locally; committed; remote open (pending push) bb00e31 adds localized EN/AR reason-code master data with category, module/operation and warehouse scope, effective dates, severity, notes and attachment requirements; deterministic priority/specificity policy selection over quantity/value/variance/role/warehouse/risk thresholds; multi-level approval requests with requester/approver role snapshots, expiry, source/state hash, separation of duties, approve/reject/cancel/escalate/expire transitions, immutable decision history, recipient inbox/read state, durable audit actions, operation-permission revalidation, stale-state rejection, and one execution lease per approved request; typed RBAC/antiforgery /api/approvals endpoints, DI, migration 20260921195105_AddReasonCodesAndApprovalPolicies, REASONS_AND_APPROVALS.md, ApprovalServiceTests 7/7, WmsAuthorizationTests 3/3, Debug Infrastructure/ASP builds 0 warnings/0 errors, migration list, and staged diff check passed bb00e31 Depends on #15 authentication/RBAC, #19/#20 typed settings/localization, #47/#59 quality/exception, #62 counts, #69 dispositions, #75 reports, #82 attachments, #83 notifications, #84 retention, #85 administration, #87 usability, and #94/#95 qualification; committed shared approval-core progress, not closure: every sensitive command still needs module wiring, secure attachment storage, channel/deep-link notifications, complete administration/inbox history screens, browser/handheld EN/AR RTL/LTR evidence, PostgreSQL/provider/load and migration/restore evidence, production migration/deployment, push, and remote issue closure; pre-existing untracked Front-End/ package preserved Continue with #82; return to #81 after #82/#83/#85/#87/#94/#95 and affected module wiring to complete attachment, notification, UI, provider, and production closure gates
#82 verified locally; committed; remote open (pending push) 84d476b adds Attachment metadata with warehouse/reference scope, generated storage keys, content type/size/hash/uploader/classification/retention/immutable-evidence/scan state, EF migration 20260921202341_AddSecureAttachments, typed IAttachmentStorage/IAttachmentScanner/reference-authorizer contracts, bounded staged uploads, extension and content-signature checks, duplicate/count limits, local atomic storage with path containment, fail-closed scanner configuration, quarantine and soft-deletion guards, safe authorized list/download/preview/evidence/deletion API, attachment RBAC/audit actions, SECURE_ATTACHMENTS.md, AttachmentServiceTests/local-storage tests 9/9, existing web authentication/authorization flows 17/17, Debug Infrastructure/ASP builds 0 warnings/0 errors, migration generated and staged diff check passed 84d476b Depends on #12/#13 authentication/RBAC, #14 audit, #59/#69 exception/disposition references, #75 report evidence, #81 approvals, #83 notifications, #84 retention/purge, #87 usability, #90 external storage/delivery, and #94/#95 qualification; committed attachment-core progress, not closure: production object-storage and antivirus adapters are intentionally fail-closed provider gates, module-specific receipt/damage/QC/exception/return/approval/shipment/audit wiring, thumbnails/camera/progress UI, retention purge/backup-restore, PostgreSQL/load/migration evidence, browser/handheld EN/AR RTL/LTR evidence, production migration/deployment, push, and remote issue closure remain; pre-existing untracked Front-End/ package preserved Continue with #83; return to #82 after #84/#87/#90/#94/#95 and affected workflow/provider wiring to complete the acceptance matrix
#83 verified locally; committed; remote open (pending push) 859d7f2 adds recipient-specific durable WmsNotifications, WmsNotificationRecipients, and WmsNotificationPreferences with stable deduplication/cooldown keys, EN/AR snapshots, source/correlation/deep-link metadata, expiry, per-recipient read/acknowledge and delivery state; role/user/warehouse targeting rechecks active identity, permission, and warehouse assignment; notifications.read/notifications.manage RBAC, localized /api/notifications inbox/count/read/ack/preferences endpoints, mandatory security/backup/integrity preference protection, quiet-period/digest metadata, extensible email/webhook adapter contracts with fail-closed defaults, leased bounded retry state through the existing integration-retry job, migration 20260921205230_AddNotificationCenter, NOTIFICATION_CENTER.md, notification/targeting/delivery tests 6/6, Debug Infrastructure/ASP builds 0 warnings/0 errors, and staged diff check passed 859d7f2 Depends on #12/#13/#14 identity/RBAC/audit, #19/#20 settings/localization, #21 durable jobs, #75 scheduled-report metadata, #81 approvals, #82 attachments, #84 retention, #90 outbox/delivery, and #94/#95 qualification; committed notification-core progress, not closure: low-stock/expiry/QC/approval/count-variance/shipment/backup/reconciliation producer wiring, real SMTP/webhook adapters, digest aggregation/escalation, notification-center UI, deep-link destination reauthorization/browser/handheld EN/AR RTL/LTR evidence, PostgreSQL/load/migration/restore evidence, production migration/deployment, push, and remote issue closure remain; pre-existing untracked Front-End/ package preserved Continue with #84; return to #83 after event producers, #84/#90 delivery/retention, #85 admin, #87 client qualification, and #94/#95 provider evidence are complete
#84 verified locally; committed; remote open (pending push) db05464 adds nine classified retention classes with documented safe minimums, global/company/warehouse policy persistence, active legal holds with wildcard target matching and release audit, durable per-run/per-class counts and cursors, exact dry-run previews, batch/cancellation/retry/idempotency boundaries, archive references before purge, attachment tombstones with storage deletion only after archive commit, safe notification/idempotency/job cleanup targets, immutable audit/inventory exclusion, settings-protected /api/retention catalog/policy/hold/preview/run/status endpoints, dry-run-only integration in wms.cleanup, migrations 20260921212859_AddRetentionPolicies and 20260921214311_AddRetentionCompanyScope, RETENTION.md, RetentionServiceTests 4/4, adjacent Jobs 5/5, Attachments 9/9, Notifications 5/5, Debug Infrastructure/ASP builds 0 warnings/0 errors, staged diff-check passed, and full no-restore solution 302 passed with 4 provider-gated skips; the full run still reports the pre-existing 12-vs-13 job-catalog expectation mismatch and two unrelated Infrastructure failures in putaway completion and inventory reconciliation db05464 Depends on #14 audit, #21 jobs, #75 generated reports, #82 attachments, #83 notifications, #90 integration payloads, and #95 provider evidence; committed safe retention-core progress, not closure: report/integration/telemetry artifact stores, external archive/export adapters, admin UI/history screens (#85), browser/handheld EN/AR RTL/LTR evidence (#87), PostgreSQL/load/large-batch and migration/restore evidence (#94/#95), production backup verification/authorization and live execution, push, and remote issue closure remain; pre-existing untracked Front-End/ package preserved Continue with #85; return to #84 after #75/#90 artifact stores, #85 administration, #87 client qualification, #94/#95 provider/restore evidence, and authorized operational approval complete
#85 verified locally; committed; remote open (pending push) a05af45 adds the permission-controlled /Administration MVC console and /api/administration catalog/readiness/history endpoints; catalog entries are permission-filtered with English/Arabic labels, warehouse-scope/dependency/action metadata, explicit partial/deployment-only status, and secret never-display/deployment-managed boundaries; server-side readiness identifies global-settings, active-warehouse, inbound/outbound operational-location, immutable-audit, retention-policy, and deployment-health states; history delegates to the existing server-paged audit query and renders safe scalar fields only; navigation is permission-gated; responsive accessible EN/LTR and AR/RTL UI is covered by AdministrationFlowTests 2/2, AdministrationCatalogTests 2/2, and AdministrationServiceTests 4/4; Application/Infrastructure/ASP builds passed with 0 warnings/0 errors; git diff --cached --check passed a05af45 Depends on #19 settings, #73 devices, #75 reports, #76 labels, #81 reasons, #82 attachments, #83 notifications, #84 retention, #88–#93 integrations/API, and #87 usability; committed administration-console progress, not closure: complete module CRUD/history/dependency coverage, bulk/import/export workflows, high-impact preview/rollback/version restore, device/printer/integration administration, and full browser/handheld accessibility/localization/provider/production evidence remain; no production config migration, push, or remote issue closure Continue with #86; return to #85 after #88–#93 module contracts and #87 client qualification to complete the acceptance matrix
#86 verified locally; committed; remote open (pending push) 694d058 adds WINFORMS_TRANSITION.md with the complete 13-capability/form inventory, Keep Temporarily/Replace in Web/Retain Optional Workstation dispositions, Web parity targets, F1–F8 and Enter/Escape scanner behavior, shared-service/RBAC/identity/no-direct-persistence rules, versioned distribution boundary, rollback/decommission gates, and supported-client README statement; architecture tests now enforce inventory coverage, shared WinForms/Application/Infrastructure composition, real-user mutation markers, and no SYSTEM/WEB_USER fallback; Wms.Architecture.Tests 7/7 and WinForms Debug build passed with 0 warnings/0 errors; git diff --cached --check passed 694d058 Depends on #20 localization, #71 scanner shell, #73 devices, #75 reports, #85 administration, and later Web/API parity evidence; committed transition/inventory progress, not closure: side-by-side Web/desktop journeys, complete parity for receiving/putaway/inventory/picking/items/locations/reports/printing/scanner shortcuts, installer/update compatibility, production support decision, and explicit archival approval remain; no WinForms deletion, push, deployment, or remote issue closure Continue with #87; return to #86 for side-by-side client, distribution, and decommission evidence after the major Web/API surfaces stabilize
#87 verified locally; committed; remote open (pending push) e85e235 adds the WCAG-aligned ACCESSIBILITY_USABILITY.md baseline for landmarks, labels, visible focus, tables, status text, touch targets, reduced motion, print behavior, operator-friction measures, viewport/locale matrix, exceptions, and browser gates; AccessibilityFlowTests 3/3 validates anonymous EN/LTR and AR/RTL shell semantics, authorized dashboard/report labels/landmarks, and focus/touch/reduced-motion CSS; the shared CSS restores visible focus on #main-content and disables skeleton animation for reduced-motion users; git diff --cached --check passed e85e235 Depends on #71 shell, #72 PWA, #73 device boundary, #75 reports, #76 labels, #85 admin, and #86 WinForms parity; committed accessibility/usability contract progress, not closure: Playwright/axe browser automation, visual baselines, keyboard/scanner walkthroughs, handheld/kiosk/high-DPI/zoom, screen-reader, large-data/long-translation, print-preview, and full journey evidence remain; no remote issue closure Continue with #88; return to #87 when a browser runner is available and the major screens have stabilized for the full matrix
#88 verified locally; committed; remote open (pending push) 5c55e63 adds the /api/v1 version boundary and checked-in/served OpenAPI 3.1 JSON with operation IDs, additive-version/deprecation policy, explicit API-client-auth disclosure, bounded paging, Problem Details schemas, and no published mutating commands; adds explicit Application-owned API records/mappers for warehouses, items, locations, inventory stock, and movement reports; adds a server-paged warehouse query and preserves provider-neutral, warehouse-scoped service filtering for all five query resources; applies API rate limiting, permission policies, cancellation, correlation/operation headers, and stable error/retryable/field-error extensions; bearer API-client authentication is now enforced on the versioned resource routes while metadata remains anonymous; ApiV1FlowTests 4/4 covers metadata/OpenAPI parsing, bearer-authorized pages, DTO/entity-boundary checks, invalid-page-size Problem Details, and rejection of human session cookies; OpenAPI JSON parse passed; full Debug solution build passed with 0 warnings/0 errors; staged diff check passed 5c55e63 Depends on #12/#13/#15 auth/errors/security, #32–#70 domain boundaries, #75 report contracts, #89 credential enforcement, and #90 outbox; committed versioned query-contract foundation, not closure: command endpoints with idempotency and ETags/conditional mutation, remaining master-data/document/work/shipment/return/count/report resources, SDK/client generation, provider/load/contract qualification, browser/handheld EN/AR RTL/LTR evidence, production deployment/rollback, push, and remote issue closure remain; #89 now supplies the initial bearer-client boundary; pre-existing untracked Front-End/ package preserved Continue with #90; return to #88 after commands, remaining resources, and provider/client/production gates are complete
#89 verified locally; committed; remote open (pending push) 0365b3e adds WmsApiClients persistence and migration 20260921230053_AddApiClients; explicit Application scope/client/context contracts; administrator-only /api/administration/clients list/create/rotate/revoke endpoints; generated client IDs and one-time secrets stored only as salted PBKDF2-SHA256 hashes; bounded expiry, exact IP restrictions, monotonic secret versions, rotation overlap, immediate revocation, safe metadata-only DTOs, and audit actions without secret/hash payloads; bearer API-client authentication is registered separately from human cookies and is required on /api/v1; scope claims and warehouse restrictions flow through IWarehouseAccessService, API rate-limit partitioning uses only the presented client ID, and correlation/idempotency propagation remains active; ApiV1FlowTests 4/4 and ApiClientSecurityFlowTests 1/1 cover OpenAPI scheme/client-cookie separation, all five API pages, invalid paging, one-time hash storage, wrong-secret rejection, rotation overlap, warehouse IDOR denial, and revocation; OpenAPI JSON parse passed; full Debug solution build passed with 0 warnings/0 errors; staged diff check passed 0365b3e Depends on #15 security, #19 settings, #85 administration, #88 API contracts, and #90 delivery; committed credential/security foundation, not closure: OAuth2 client-credentials compatibility, richer CIDR/network policy, client-aware concurrency/replay/idempotency for mutating commands, complete administration UI/history, abuse dashboards, provider/load/concurrent-rotation evidence, browser/handheld EN/AR RTL/LTR evidence, production secret/configuration rollout, push, and remote issue closure remain; pre-existing untracked Front-End/ package preserved Continue with #90; return to #89 after command/replay wiring, network/provider/load, UI, incident, and production evidence are complete
#90 verified locally; committed; remote open (pending push) 4042579 adds versioned integration-event contracts, WmsIntegrationOutbox/WmsIntegrationInbox/webhook subscription/delivery persistence and migration 20260921232953_AddIntegrationDelivery; the event writer deliberately participates in the caller-owned EF transaction, is wired to receipt/putaway/pick/adjustment movement boundaries, and records correlation/causation/payload hashes without external calls; inbox claims deduplicate source/message IDs and reject payload-hash reuse; protected one-time webhook secrets support rotation overlap, warehouse/event filters, status, delivery leases, HMAC-SHA256 timestamp signatures, replay-window verification, bounded retries, response/error limits, and dead-letter state; administrator API exposes list/create/rotate/status operations; wms.integration-retries dispatches notification and outbox work; fail-closed transport prevents unconfigured network calls; IntegrationDeliveryTests 6/6, affected infrastructure job/notification tests 11/11, affected API/administration/client tests 7/7, full Debug solution build 0 warnings/0 errors, migration lifecycle passed, and staged diff check passed; full solution test run had 309 passed, 4 provider-gated skips, and 5 unrelated/pre-existing failures 4042579 Depends on #21 jobs, #75 report scheduling, #83 notification channels, #84 retention, #88 API, #89 credentials, and #92 connectors; committed transactional delivery foundation, not closure: complete master-data/work lifecycle producer coverage, atomic PostgreSQL claim/concurrency proof, process-crash/restart qualification, real HTTP transport with timeout/response policy, ordering, manual retry and admin history UI, inbound connector handlers, retention/archive, high-volume/load/provider evidence, production migration/deployment, push, and remote issue closure remain; existing unconfigured transport performs no external delivery Continue with #91; return to #90 after producer coverage, PostgreSQL/crash/load/provider qualification, admin/connector/retention wiring, and controlled production gates are complete
#91 verified locally; committed; remote open (pending push) 23b63a7 adds the reusable bulk-exchange contracts and durable mapping-profile, source-file, execution, and row-result persistence with migration 20260921235415_AddBulkImportFramework; the culture-aware CSV parser handles quoted commas, multiline fields, duplicate/empty headers, row-shape limits, bounded input, and row numbering; preview/dry-run validation persists field-level errors and source hashes, export emits UTF-8 CSV with spreadsheet-formula sanitization, authorization is routed through existing module permissions, and module handlers remain an explicit adapter boundary; BulkCsvTests 3/3, BulkImportServiceTests 2/2, related IntegrationDeliveryTests 6/6, full Debug solution build 0 warnings/0 errors, migration lifecycle passed, and staged diff-check passed 23b63a7 Depends on #15 security, #19/#20 settings/localization, #21 jobs, #75 report/export contracts, #82 attachments, #85 administration, and #88 API; committed reusable CSV/dry-run/durable execution foundation, not closure: XLSX/upload/attachment-backed large files, background jobs, complete module handlers, correction files, retry dedup, partial/all-or-nothing semantics, localized UI, load/provider/production evidence, push, and remote issue closure remain Continue with #92; return to #91 after upload/handler/job wiring and provider/client/browser/production gates are complete
#92 verified locally; committed; remote open (pending push) d272ef1 adds application-owned versioned connector types, operations, pull/push/webhook/file modes, capability contracts, mapping rules with culture/value transformations and conflict policy, deterministic external-ID and run-idempotency keys, credential-reference redaction/rejection, and adapter ports; persists mapping profiles, warehouse-scoped connector instances, credential versions, schedules, cursors, health, run history, conflict counters, and external-record payload hashes in migration 20260922001932_AddConnectorArchitecture; adds deterministic no-network generic ERP and e-commerce reference adapters, connection-test/rotation/run service boundaries, scope checks, cursor advancement only after successful pull, duplicate replay handling, and safe failure state; ConnectorContractTests 3/3, ConnectorServiceTests 3/3, full Debug solution build 0 warnings/0 errors, migration lifecycle passed, and staged diff-check passed d272ef1 Depends on #21 jobs, #75 reports, #88 API, #89 credentials, #90 outbox/inbox, #91 import/mapping, and #93 B2B documents; committed vendor-neutral connector foundation, not closure: administration API/UI/history, schedule registration, real HTTP/SFTP/webhook/file transports, throttling/retry/replay controls, complete document/module handlers, marketplace/carrier adapters, PostgreSQL/concurrency/load/provider qualification, browser/localization, production credential rollout, push, and remote issue closure remain Continue with #93; return to #92 after adapter transports, job/admin wiring, document handlers, provider/load, and production gates are complete
#93 verified locally; committed; remote open (pending push) a77929c adds versioned canonical B2B document contracts for item/location master, purchase order, ASN, receipt, sales/warehouse order, inventory status, shipment confirmation, and returns; trading-partner profiles persist standard, warehouse scope, enabled document types, mapping version, acknowledgement requirement, and deployment-managed credential reference; migration 20260922003520_AddB2bDocumentExchange persists mapping profiles, partners, canonical documents, control numbers, hashes, idempotency, validation errors, replay state, and acknowledgements with unique partner/control/message constraints; submissions quarantine invalid envelopes with actionable errors, exact retries return the existing document, mismatched duplicate payloads are rejected, acknowledgements correlate with deterministic control numbers, and replay is explicit; Application-owned adapter/handler/transport ports keep provider parsing, normal WMS command routing, and transport separate; B2bDocumentContractTests 3/3, B2bDocumentServiceTests 4/4, full Debug solution build 0 warnings/0 errors, migration lifecycle passed, and staged diff-check passed a77929c Depends on #21 jobs, #88 API, #89 credentials, #90 outbox/inbox, #91 mapping, and #92 connectors; committed canonical B2B exchange foundation, not closure: X12 850/856/940/945/947 and EDIFACT adapters, SFTP/file-drop/API/webhook transports, complete document handlers, functional acknowledgements, outbox/inbox wiring, retention, partner certification samples, provider/load/browser/production evidence, push, and remote issue closure remain Continue with #94; return to #93 after transport/standard adapters, handlers, replay/retention, partner samples, provider, and production gates are complete
#94 verified locally; committed; remote open (pending push) 3c0c887 adds the deterministic invariant-testing boundary and verify-unit-tests.ps1, classifies unit/relational/provider/API/migration gates in TESTING_INVARIANTS.md, wires two repeated shuffled Domain/Application runs into CI, and records current quantity, identifier, lifecycle, result, permission, receiving, quality, ledger, and work coverage; two repetitions passed with 163 Domain + 52 Application tests each 3c0c887 Depends on the .NET 10/test baseline; committed qualification foundation, not closure: allocation/putaway/replenishment/count/pack/ship/return invariants, approval/exception matrices, large-volume properties, culture/time-zone matrices, corruption/repair scenarios, and tests for later backlog modules remain Add invariant tests with each functional issue, then return to #94 for a complete cross-module coverage audit before closure
#95 verified locally; committed; remote open (pending push) 91789e7 adds an isolated-schema PostgreSqlTestDatabase fixture, direct Npgsql test dependency, fresh checked-in-migration application, cleanup-safe generated schemas, constraint/precision/UTC/rollback/revision-concurrency tests, and POSTGRESQL_TEST_HARNESS.md; scripts/verify-postgresql.ps1 -Port 55434 passed PostgreSQL 17 integration 4/4 in a disposable container 91789e7 Depends on PostgreSQL/EF Core 10, checked-in migrations, Docker/CI, and current persistence modules; committed provider foundation, not closure: broader upgrade baselines, delete/query-plan/volume checks, deadlock/retry and idempotency matrices, outbox/inbox, reconciliation, and later document/work provider coverage remain Extend the fixture as #48+ persistence arrives and return to #95 for the full provider qualification matrix
#100 verified locally; committed; remote open (pending push) ec15eac adds the repository threat model in docs/security/THREAT_MODEL.md with assets, actors, trust boundaries, data flows, STRIDE-style threats, current controls, remaining gates, and launch blockers; adds read-only scripts/verify-security-boundaries.ps1 checks for antiforgery/rate limiting, connector/B2B secret boundaries, webhook signing, CSV formula safety, and reviewed Razor raw-output cases; SecurityBoundaryTests 3/3 passed and the static security-boundary script passed; staged diff-check passed ec15eac Depends on #12/#13/#14 security/audit, #18 telemetry, #82 attachments, #88/#89 API security, #90/#92/#93 integrations, and deployment/CI; committed threat-model and automated-boundary foundation, not closure: deep dependency/container/secret scans, fuzzing, provider/egress review, deployment proxy/TLS/headers, support-bundle redaction, production secret rotation, external security review, push, and remote issue closure remain Continue with #101; return to #100 after deep scans, provider gates, deployment verification, and external review are evidenced
#101 verified locally; committed; remote open (pending push) 80074df adds docs/operations/RELEASE_QUALIFICATION.md with immutable-revision evidence packets, backup/migration/worker-drain gates, controlled rollout order, health/smoke/reconciliation checks, compatibility matrix, forward-only rollback/restore decision, and GO/GO_WITH_RESTRICTIONS/NO_GO report states; adds read-only scripts/verify-release-preflight.ps1 and links it from DEPLOYMENT.md; preflight passed with 128 checked-in migrations and staged diff-check passed 80074df Depends on #6/#7 PostgreSQL/migrations, #18 telemetry, #21 jobs, #22 backups, #87 UI qualification, #94/#95 provider tests, and #100 security; committed release-runbook/preflight foundation, not closure: clean-environment staging rehearsal, production-specific secret/proxy/storage/client compatibility, interrupted-migration/restore rehearsal, deployment smoke evidence, explicit authorization, push, and remote issue closure remain Continue with #102; return to #101 after staging rehearsal and production release evidence are complete
#102 verified locally; committed; remote open (pending push) 9f4e54d adds versioned deterministic data-generation profiles for minimal development, full demo, edge cases, integration tests, and explicit large-performance runs; plans carry seed fingerprints, locale, bounded scale, multilingual preview records, estimated coherent counts, and non-production reset confirmation; production/staging generation and unconfirmed destructive reset are rejected; DataGenerationContractTests 3/3 and full Debug solution build 0 warnings/0 errors passed; staged diff-check passed 9f4e54d Depends on mature domain/application commands, migrations, reconciliation, #94 invariant tests, #95 PostgreSQL, #97 browser fixtures, and #98 load tooling; committed deterministic profile/plan safety foundation, not closure: database writer/normal-command adapters, bounded bulk generation, full reconciliation, Playwright/load integration, demo account provisioning, provider/large-volume qualification, push, and remote issue closure remain Continue with #103; return to #102 after non-production writers, reconciliation, browser/load integration, and large provider evidence are complete
#103 verified locally; committed; remote open (pending push) d8967b5 adds application-owned support-bundle request/manifest contracts and SupportBundlePolicy with bounded reason/window/expiry/size validation, future-time rejection, sensitive-key redaction, non-sensitive value bounds, and safe-support runbook guidance; SupportBundlePolicyTests 3/3 passed d8967b5 Depends on #18 telemetry, #21 jobs, #22 backups, #82 attachments, #85 administration, #87 accessibility, #100 threat model, and deployment storage; committed support diagnostics/redaction policy foundation, not closure: diagnostics screen, bundle storage/download, audit trail, safe remediation commands, runbook rehearsal, production support workflow, push, and remote issue closure remain Continue with #104; return to #103 after UI/storage/audit/remediation/runbook and production support evidence are complete
#104 verified locally; committed; remote open (pending push) b1f6956 adds a bounded application-owned natural-language reporting planner for English/Arabic read questions; maps only to allow-listed inventory, movement, receiving, outbound, exception, and KPI tools; enforces read-only intent, permission sets, warehouse scope, row limits, clarification on ambiguous questions, and one-way question fingerprints; ReportingAssistantPolicyTests 5/5 passed b1f6956 Depends on #20 localization, #71/#72 shell, #75 reports, #85 administration, #87 accessibility, #88 API, #89 credentials, and #100 security; committed permission-aware planning foundation, not closure: executor/use-case adapters, citations/results, audit-safe conversation state, localized UI, browser/RTL accessibility, provider governance, adversarial prompt tests, rate limiting, load/provider qualification, push, and remote issue closure remain Continue with #105; return to #104 after execution adapters, safe citations, UI, model/provider governance, and production evidence are complete
#105 verified locally; committed; remote open (pending push) 53a2152 adds item/warehouse-scoped daily/weekly/monthly deterministic moving-average and simple-exponential-smoothing baselines, walk-forward backtest MAE/MAPE/bias selection, stockout-period censoring, confidence bounds from measured error, repeatable input fingerprints, days-of-supply and projected-stockout risk, and explicit no-order-mutation output; ForecastBaselineEngineTests 5/5 passed 53a2152 Depends on #20 time/localization, #21 jobs, #34 ledger, #58 returns, #75 reports, #94 invariants, #95 PostgreSQL, and data-quality history; committed explainable baseline/projection foundation, not closure: shipped/cancellation/return/seasonality/lead-time adapters, durable versioned storage, scheduled recalculation, manual override history, actual-vs-forecast monitoring, dashboard/API/export, load/provider/browser/production evidence, push, and remote issue closure remain Continue with #106; return to #105 after historical adapters, persistence, recalculation, overrides, monitoring, and qualification are complete
#106 verified locally; committed; remote open (pending push) 8100f18 adds a deterministic anomaly signal/finding boundary for warehouse operations with explicit observed/expected/threshold values, stable rule-versioned fingerprints, deduplication, bounded severities, source references, lifecycle transitions, comment-bearing time-bounded suppression, personal actor-reference rejection, and no inventory/user-action authority; AnomalyDetectorTests 5/5 passed 8100f18 Depends on #18 telemetry, #21 jobs, #34 ledger, #62 counts, #75 reports, #81 reasons/approvals, #83 notifications, #85 administration, #89 RBAC, #90–#93 integrations, #94/#95 qualification, and data quality; committed explainable detection/lifecycle foundation, not closure: domain adapters, durable rule/threshold versions, scheduled persistence, dashboards/alerts/assignment/evidence, drill-down, false-positive feedback, localized/browser/load/provider/production evidence, push, and remote issue closure remain Continue with #107; return to #106 after operational adapters, durable lifecycle, alerting, and qualification are complete
#127 verified locally; committed and pushed; remote CI passed 373c7a3 adds nine bounded operational adapters; immutable versioned PostgreSQL rules, runs, findings, observations, and investigation history; durable scheduled/manual jobs; warehouse-scoped APIs, lifecycle/assignment/suppression, source-permission redaction, retryable deduplicated alerts, and correction/absence history. AnomalyDetectionServiceTests 6/6, detector/job tests 10/10, PostgreSQL dashboard flow 1/1 including the 1,001-row cap, Release solution build 0 warnings/errors, pending-model check clean, and solution formatting passed. WareCommand CI #18 passed on 373c7a3da5a7d07674cc43ac8a45bebac93dea8e 373c7a3 Follows #106 and uses #21 jobs, #83 notifications, #89 RBAC, #108/#114 integration boundaries, #119 operational data, #122 delivery, and #124 UI contract coordination; backend scope complete. Browser/localized/handheld UI, external-provider delivery, load/contention, restore rehearsal, and production evidence remain separate qualification Continue with the next open issue; keep future anomaly UI and live-provider qualification separate
#128 implementation verified locally; commit, push, and current-SHA CI pending 9f160f1 adds durable GovernedRecommendations and immutable lifecycle events, bounded deterministic replenishment proposals, permission/warehouse-scoped APIs, optimistic revision and idempotency gates, server-side dry-run revalidation, and transactional execution through normal replenishment work creation; migration 20260923191421_AddGovernedRecommendations; initial local tests/builds and WareCommand CI #20 passed on 9f160f16e7a40627bf2bfb8aaef4bddbf25d3e96. 87339e5 maps wrapped database concurrency failures to lifecycle revision conflicts and adds a provider-backed PostgreSQL journey for concurrent approval, replay, redaction, scope enforcement, and reconciliation; focused journey passed 1/1 twice. Current implementation adds deterministic adapters and source wiring for slotting, workload claim, inbound/outbound exception hold, and forecast refresh; action-specific authorization; bounded GET /api/recommendations/quality lifecycle/outcome aggregation; and ambient-transaction joining for normal exception commands. RecommendationGovernanceServiceTests passed 7/7. PostgreSqlDashboardFlowTests.AuthorizedRecommendationHttpLifecycleUsesPostgreSqlAndCreatesNormalWork passed 1/1 through authenticated antiforgery-protected HTTP, including deterministic work creation, review, approval, normal idempotent claim, history, and quality read; deep reconciliation reported zero issues. Local focused ASP/infrastructure builds passed; the full local solution build remains unavailable because analyzer packages are absent from the local NuGet cache. 9f160f1, 87339e5 Implementation slice is complete; provider enablement remains disabled by default and shadow-only. Visual UI, calibrated backtesting/business-lift evidence, provider restore/load rehearsal, and production qualification remain separate release gates Commit and push the verified slice, require exact-SHA CI, then close #128 with the local/remote evidence
#129 verified locally; committed and pushed; remote CI passed; issue open pending load-fixture reuse b2b89de adds the bounded PostgreSQL writer, ephemeral Identity actor, normal-command inbound/outbound/return/count workflows, actual entity/outcome/timing/fingerprint/reconciliation reports, and shared writer use from authenticated MVC fixtures; data-generation passed 3/3 with two Arabic integration schemas producing equal logical fingerprints and zero reconciliation issues; dashboard passed 2/2 with the generated English minimal dataset authenticated through MVC; PostgreSQL group-plan contract passed; formatting correction 7a11c64; WareCommand CI #23 passed on 7a11c640c253aaffa03e65c1ea0fa4de63f61b24 b2b89de Uses the #95 isolated-schema fixture and #119 application commands; minimal-development and integration-test profiles were materialized locally; full-demo, edge-cases, and large-performance volumes were not run; #132 still needs to consume the shared writer in its load fixture, so #129 remains open pending that integration Continue P0 #130 and #133; feed the shared fixture into #131/#132, then return to #129 for remaining qualification
#107 verified locally; committed; remote open (pending push) 732ce30 adds governed advisory recommendation contracts for replenishment, slotting, workload priority, exception resolution, and risk summaries; enforces warehouse/permission scope, kill switch/provider/shadow gates, bounded source/model/version/impact metadata, numeric non-sensitive feature summaries, prompt-injection marker rejection, deterministic source fingerprints, review/approval/rejection/execution lifecycle, exact current-state revalidation, and normal-command-only execution references; RecommendationGovernanceTests 5/5 passed 732ce30 Depends on #54/#61/#66/#68 deterministic work and replenishment/slotting engines, #75 reports, #81 approvals, #83 notifications, #89 RBAC, #94/#95 qualification, #100 security, and #105 forecasting; committed governed advisory boundary, not closure: provider abstraction/cost budgets, durable storage, backtest/shadow comparison, approval UI/audit, use-case command adapters, drift/quality monitoring, deeper prompt/data-poisoning tests, localized/browser/load/provider/production evidence, push, and remote issue closure remain Return to #107 after deterministic domain adapters, provider governance, operational monitoring, approvals, and production kill-switch rehearsal are complete
#96 verified locally; committed; remote open (pending push) 3e78a98 adds executable journey specifications for inbound PO/ASN/receipt/QC/putaway, outbound order/allocation/release/pick/pack/ship, and Arabic transfer source/in-transit/destination flows; each records expected states, reference types, retry/concurrency intent, locale, and zero-error reconciliation requirements across documents, work, reservations, balances, ledger, serials, and LPNs; passing results with reconciliation errors are rejected; JourneySpecificationTests 4/4 passed 3e78a98 Depends on implemented modules, #34 ledger, #54 work, #75 reports, #94 invariants, #95 PostgreSQL, and later browser qualification; committed executable-specification foundation, not closure: real PostgreSQL/service runners, returns/count/replenishment/disposition/kitting journeys, partial/failure/cancellation/reversal/concurrency coverage, aggregate assertions, CI diagnostics, push, and remote issue closure remain Continue with #97; return to #96 after the complete independent journey matrix runs against clean PostgreSQL schemas and reconciliation is zero-error
#97 verified locally; committed; remote open (pending push) a964688 adds the browser qualification matrix for smoke/full-regression cases across English LTR and Arabic RTL, handheld/phone/tablet/laptop/desktop viewports, scanner/reconnect intent, server-outcome assertions, deterministic synchronization, and bounded screenshot/trace/video/console/network/correlation artifacts; credential-like failure values are redacted; BrowserQualificationMatrixTests 4/4 passed a964688 Depends on #20 localization, #71/#72 Web/PWA shell, #73 devices, #87 accessibility, #94/#95 PostgreSQL, #96 journeys, and #102 data generation; committed browser-matrix/artifact policy foundation, not closure: Playwright project/host, isolated data setup, authentication/workflow coverage, scanner/focus/retry/PWA, accessibility/visual baselines, CI publishing, smoke/full repeats, push, and remote issue closure remain Continue with #98; return to #97 after the Playwright matrix runs repeatedly with stable server assertions and published failure evidence
#98 verified locally; committed; remote open (pending push) d1bef01 adds measurable performance budgets for login/dashboard, inventory lookup, receiving scan, allocation, reports, imports, background jobs, and reconciliation; evaluates throughput, p50/p95/p99 latency, error/conflict rates, business outcomes, and reconciliation with required dataset/environment/hardware/revision metadata; PerformanceBudgetTests 5/5 passed d1bef01 Depends on #18 telemetry, #21 jobs, #34 ledger, #54 work, #75 reports, #94 invariants, #95 PostgreSQL, #96 journeys, and #102 data generation; committed budget/evaluation foundation, not closure: real benchmark/load runners, representative data, DB/query-plan/GC/pool/backlog metrics, worker scaling, repeated variance, safe defaults, production capacity evidence, push, and remote issue closure remain Continue with #99; return to #98 after repeatable workload runs establish evidence-backed capacity and scaling limits
#99 verified locally; committed; remote open (pending push) 02a9a4b adds non-production-only resilience scenario/outcome contracts for post-commit response loss, worker restart, permanent-provider dead letter, and backup restore/reconciliation; scenarios declare failure point, classification, retry limit, expected recovery, durable-work/mutation scope, and reconciliation requirement; outcomes reject partial mutations, duplicate business results, unreconciled state, missing durable resume/dead-letter behavior, incomplete diagnostics, and infinite retry; ResiliencePolicyTests 5/5 passed 02a9a4b Depends on #21 jobs, #34 idempotency/ledger, #90 outbox/inbox, #94/#95 PostgreSQL/invariants, #96 journeys, #98 telemetry/load, backup/restore, and provider boundaries; committed fault-scenario/recovery-policy foundation, not closure: test-only runtime hooks, real timeout/conflict/restart/storage/provider injection, outbox/job recovery, restore rehearsal, retry/dead-letter metrics, operator runbooks, production-disable proof, push, and remote issue closure remain Return to #99 after representative failures run against PostgreSQL/workers/providers and restore reconciliation is proven

Historical phase checkpoints

  • 2026-09-22 broad local completion sweep: #35–#70 passed the focused concurrency/idempotency/reservation/movement/document/operational-core qualification already recorded above; #57–#70 requalification passed 60/60; #71–#75 passed 15/15 scanner/PWA/device/dashboard/report tests; #76–#93 passed 95/95 focused label/return/ownership/VAS/workforce/approval/attachment/notification/retention/API/integration/document tests plus #86 architecture coverage 7/7; #94–#107 passed 47/47 application governance, journey, browser-matrix, performance, resilience, security, data-generation, support, reporting-assistant, forecasting, anomaly, and recommendation tests; the current Debug solution build passed with 0 warnings/0 errors; PostgreSQL 17 integration passed 4/4 in a disposable container. These are local implementation/qualification completions only: provider contention/load, full browser/handheld journeys, external adapters, migration/restore rehearsal, production authorization, push, and remote issue closure remain explicitly open in the issue rows.

  • 2026-09-23 #127 anomaly backend completion: commit 373c7a3da5a7d07674cc43ac8a45bebac93dea8e passed the complete WareCommand CI run #18, including Linux and Windows solution quality/coverage, PostgreSQL integration/migration, Docker image build, and secret scan; the PostgreSQL dashboard scenario verifies repeated anomaly-run reuse and the 1,001-row source cap. Local focused tests and provider evidence are recorded in the #127 row above. UI, external-provider, load/contention, restore, and production qualification remain separate.

  • 2026-09-23 #128 recommendation-runtime progress: durable, idempotent replenishment proposals now pass current deterministic planning before approval and again inside the normal-work transaction; exact local and PostgreSQL evidence is recorded in the #128 row above. Other recommendation types, calibrated shadow/backtest monitoring, production controls, and broader approval concurrency evidence remain open.

  • 2026-09-22 regression cleanup: bea8e8f updates the stale #21 job-catalog test from 12 to the implemented 13 stable jobs and the focused catalog suite passes 3/3; f6c0761 registers the API-client context accessor required by #81's authorization test fixture and WmsAuthorizationTests passes 3/3. The isolated Infrastructure run then reached 289 passed and 4 provider-gated skips before the .NET host aborted on the environment's native RX-memory-mapping limit; no product-test assertion remained from that DI drift.

  • 2026-09-22 desktop parity repair: 7575786 wires the WinForms item-management Delete action to the authorized soft-delete use case with stock guards, typed failure feedback, audit-preserving deactivation, and refresh; 58d876f does the same for location management with stock/reservation/child-location guards. The WinForms Debug build passed with 0 warnings/0 errors, and the old unimplemented-action warnings are removed.

  • 2026-09-22 requalification: #39 inventory inquiry passed 7/7; #40 replenishment policy passed 6/6 (2 domain, 4 service); #41 reconciliation and reconciliation-job tests passed 5/5 after the ownership-dimension projection repair in fcf8fd8; these rows remain progress because their provider, client, export, planning, corruption/repair, and production gates are still open.

  • 2026-09-22 document/execution requalification: #42 6/6, #43 10/10, #44 19/19, #45 8/8, #46 18/18, #47 25/25, #48 27/27, #49 6/6, #50 12/12, #51 7/7, #52 6/6, #53 10/10, #54 8/8, #55 3/3, and #56 3/3 focused domain/application/infrastructure tests passed; these rows remain progress for their documented downstream consumer, scanner/UI, provider, concurrency, and production gates.

  • #102 checkpoint: committed deterministic profile/plan data-generation foundation in 9f4e54d; database writers, reconciliation, browser/load integration, and large-volume evidence remain.

  • #103 checkpoint: committed support diagnostics redaction/expiry/size policy in d8967b5; diagnostics screen, storage, audit, remediation, and runbook rehearsal remain.

  • #104 checkpoint: committed permission-aware read-only reporting-assistant planning in b1f6956; execution adapters, citations, localized UI, provider governance, and adversarial/production evidence remain.

  • #105 checkpoint: committed deterministic forecasting/backtest/risk-projection foundation in 53a2152; historical adapters, durable versioned storage, recalculation, overrides, monitoring, and production evidence remain.

  • #106 checkpoint: committed deterministic explainable anomaly-signal/lifecycle foundation in 8100f18; domain adapters, durable thresholds, scheduling, alerting, and investigation evidence remain.

  • #107 checkpoint: committed governed shadow-mode recommendation/lifecycle boundary in 732ce30; deterministic adapters, provider governance, approvals, monitoring, and production kill-switch evidence remain.

  • #99 checkpoint: committed non-production fault-injection/recovery policy in 02a9a4b; runtime hooks, restart/restore execution, and reconciliation evidence remain.

  • #96 checkpoint: committed executable inbound/outbound/transfer journey specifications in 3e78a98; real PostgreSQL runners and full reconciliation/failure coverage remain.

  • #97 checkpoint: committed browser/RTL/viewport/scanner qualification matrix and artifact-redaction policy in a964688; Playwright host, workflow coverage, and repeated CI evidence remain.

  • #98 checkpoint: committed workload budget/evaluation contracts in d1bef01; real load, database, worker, and capacity evidence remain.

  • #101 checkpoint: committed release-qualification/preflight foundation in 80074df; staging rehearsal, restore/rollback, compatibility, and authorized production evidence remain.

  • #100 checkpoint: committed threat-model and automated security-boundary foundation in ec15eac; deep scans, deployment verification, provider egress review, and external security review remain.

  • #93 checkpoint: committed canonical B2B document/control-number/acknowledgement foundation in a77929c; standards, transport, handler, certification, and production gates remain.

  • #92 checkpoint: committed vendor-neutral connector architecture foundation in d272ef1; #93 and the remaining late-phase issues are still pending implementation and qualification.

  • 2026-09-22 browser qualification: an external Playwright 1.63 runner exercised an isolated SQLite/Development host; English and Arabic login both returned 200 with the expected landmarks and LTR/RTL direction, and all six authenticated Inventory permutations (EN/AR at 390/768/1440px) returned 200 with the command bar, quick scan, localized placeholder, and no horizontal overflow. Manifest and offline page both returned 200; the wide navigation expanded without overflow. 4f6d882 repairs the mobile command-bar width and keeps the permission-driven navbar collapsed until it can fit. Focused ASP shell/PWA/accessibility/browser-matrix tests passed 5/5 and ASP Debug build passed 0 warnings/0 errors. This closes the local browser-layout evidence gap for #71/#72/#87/#97 only; full workflow, offline-transition, axe/visual, handheld journey, CI artifact, production, push, and remote-closure gates remain.

  • 2026-09-22 #25 provider requalification: ca1a560 adds a PostgreSQL harness regression proving normalized location codes are rejected by the warehouse-scoped unique index within one warehouse and accepted in another; disposable PostgreSQL verification passed 5/5 and cleaned its container. This strengthens #25's database/concurrency evidence; production migration, push, and remote closure remain pending.

  • 2026-09-22 #26 provider requalification: 75b7677 adds PostgreSQL harness assertions that the relational SKU and global item-barcode unique indexes reject normalized duplicate rows; disposable PostgreSQL verification passed 6/6 and cleaned its container. This strengthens #26's database identity evidence; production migration, push, and remote closure remain pending.

  • 2026-09-22 #27 provider requalification: c8c44d5 adds PostgreSQL harness coverage for 12-place decimal conversion factors, explicit result precision, and version uniqueness; disposable PostgreSQL verification passed 7/7 and cleaned its container. This strengthens #27's precision/history evidence; end-to-end provider journeys, production migration, push, and remote closure remain pending.

  • 2026-09-22 #28/#29 provider requalification: 0d2ace6 adds PostgreSQL harness coverage for calculated package volume, globally unique GTIN/package barcode indexes, and globally unique normalized scan identifiers; disposable PostgreSQL verification passed 9/9 and cleaned its container. This strengthens packaging and identification persistence evidence; full device/provider journeys, production migration, push, and remote closure remain pending.

  • 2026-09-22 #30/#31 provider requalification: 759b410 adds PostgreSQL harness coverage for normalized item-scoped lot and serial duplicate rejection; disposable PostgreSQL verification passed 11/11 and cleaned its container. Together with 5ad03fb, the #31 serialized-stock invariant repair is also proven: the pre-fix run failed because 0.5 was accepted, while the post-fix run passed. High-contention duplicate receipt, complete journey/reconciliation, production migration, push, and remote closure gates remain pending.

  • 2026-09-22 #32 provider requalification: b3ec08d adds PostgreSQL harness coverage for normalized custom inventory-status code uniqueness within a warehouse and reuse across warehouses; disposable PostgreSQL verification passed 12/12 and cleaned its container. Cross-workflow contention, complete journey/reconciliation, production migration, push, and remote closure gates remain pending.

  • 2026-09-22 #33 provider requalification: e2899b9 adds PostgreSQL harness coverage for duplicate valid SSCC values after normalization; disposable PostgreSQL verification passed 13/13 and cleaned its container. Concurrent LPN moves, complete reconciliation, migration/restore, production migration, push, and remote closure gates remain pending.

  • 2026-09-22 #34 provider requalification: 9d8fb8c adds PostgreSQL harness coverage for complete materialized-balance dimension uniqueness and ledger idempotency-key/entry-sequence uniqueness; disposable PostgreSQL verification passed 14/14 and cleaned its container. PostgreSQL contention/parallel retry, response-loss, restore, production migration, push, and remote closure gates remain pending.

  • 2026-09-22 #35 provider requalification: 649d75c adds PostgreSQL harness coverage for inventory command idempotency keys scoped by caller; duplicate keys fail within one scope while the same key succeeds for a different scope. Disposable PostgreSQL verification passed 15/15 and cleaned its container. The required 20–100-way reservation/pick/move contention and bounded command-retry evidence remain pending.

  • 2026-09-22 #37 provider requalification: d599aa8 adds PostgreSQL harness coverage for warehouse-scoped reservation demand uniqueness; a duplicate demand key fails in one warehouse and succeeds in another. Disposable PostgreSQL verification passed 16/16 and cleaned its container. Parallel reservation oversubscription, full pick/ship/return consumption, and production gates remain pending.

  • 2026-09-22 #42 provider requalification: 83538eb adds PostgreSQL harness coverage for normalized supplier-code and external-ERP identity uniqueness; disposable PostgreSQL verification passed 17/17 and cleaned its container. Document snapshot/override consumers, inactive-supplier workflow rejection, provider volume, production migration, push, and remote closure remain pending.

  • 2026-09-22 #43 database invariant repair: 9c2d974 proves the pre-fix purchase-order external-reference race (the duplicate was accepted), replaces the non-unique supplier/source/reference index with a filtered unique index that preserves multiple null references, and adds the migration 20260922045807_EnforcePurchaseOrderExternalReferenceUniqueness; post-fix disposable PostgreSQL verification passed 18/18 and migration lifecycle passed. ASN/receipt/quality/return consumers, concurrency/load, production migration, push, and remote closure remain pending.

  • 2026-09-22 #44 database invariant repair: 5b6759a proves the pre-fix ASN external-reference race (the duplicate was accepted), replaces the non-unique supplier/source/reference index with a filtered unique index that preserves multiple null references, and adds the migration 20260922050802_EnforceAdvanceShippingNoticeExternalReferenceUniqueness; post-fix disposable PostgreSQL verification passed 19/19 and migration lifecycle passed. Receipt-session/quality/return consumers, concurrency/load, production migration, push, and remote closure remain pending.

  • 2026-09-22 #45 receiving-boundary repair: d7752c2 removes the stock-only fallback from ReceiveItemUseCase; a missing receipt service now returns receipt.service_unavailable before movement creation, while PO/ASN paths use the persisted receipt plan and finalization boundary. Focused receiving/idempotency tests passed 12/12, receipt/receiving infrastructure tests passed 8/8, and the full Debug solution run passed 679/679 executable tests with 20 expected skips. Downstream quality/putaway/return/client/provider/production gates remain pending.

  • 2026-09-22 #46 provider requalification: 47a1ff4 adds the receiving-session scan idempotency-index regression; disposable PostgreSQL verification passed 20/20 and the test container was removed. Duplicate client operations are rejected only within the same session; browser/handheld, offline-device, label-printer, concurrency/volume, downstream workflow, and production gates remain pending.

  • 2026-09-22 #47 database invariant repair: 1052a8b replaces the non-unique quality-inspection receipt-line/LPN index with filtered unique indexes and adds migration 20260922060248_EnforceQualityInspectionIdentityUniqueness; the pre-fix disposable PostgreSQL run failed 20/21 because a duplicate null-LPN inspection was accepted, while the post-fix suite passed 21/21, the Release Infrastructure build passed with 0 warnings/0 errors, and migration lifecycle verification passed. Handheld inspection, receipt concurrency beyond the identity boundary, physical disposition documents, downstream consumers, production migration, push, and remote closure remain pending.

  • 2026-09-22 #48 provider requalification: 8a63c6c proves the warehouse-work creation-key index admits one putaway task per warehouse and rejects a duplicate in the same warehouse while allowing the same key in another warehouse; disposable PostgreSQL verification passed 22/22 and cleaned its container. Partial-LPN execution, service-level generation/claim contention, scanner/device journeys, downstream allocation, production migration, push, and remote closure remain pending.

  • 2026-09-22 #49 provider requalification: ec767f0 proves the normalized warehouse-scoped putaway-rule code index rejects duplicates within one warehouse and allows the same code in another; disposable PostgreSQL verification passed 23/23 and cleaned its container. Query/volume, execution-time capacity revalidation, no-match staging, client/device, production migration, push, and remote closure remain pending.

  • 2026-09-22 #50 provider requalification: db9d793 proves the inbound-exception (warehouse, idempotency key) index rejects duplicate capture in one warehouse and allows the same key in another; disposable PostgreSQL verification passed 24/24 and cleaned its container. Dock/staging UI, resolution documents, no-location routing, provider volume/concurrency, production migration, push, and remote closure remain pending.

  • 2026-09-22 #51 provider requalification: 10b3a22 proves normalized customer code, ERP identifier, and channel identifier uniqueness at PostgreSQL while allowing multiple customers without external identifiers; disposable PostgreSQL verification passed 25/25 and cleaned its container. Ship-to/reference identity, browser/RTL-LTR, provider volume, order/return snapshots, production migration, push, and remote closure remain pending.

  • 2026-09-22 #52 provider requalification: 00f8400 proves normalized sales-order external references are unique within (warehouse, source) and reusable in another warehouse; disposable PostgreSQL verification passed 26/26 and cleaned its container. Allocation/release, split shipment, client/RTL-LTR, provider concurrency/volume, production migration, push, and remote closure remain pending.

  • 2026-09-22 #54 provider requalification: 6779f5c proves the warehouse-work command ledger rejects duplicate (work, operation, idempotency key) rows while allowing reuse across operations and work items; disposable PostgreSQL verification passed 27/27 and cleaned its container. Concrete handler coverage, contention/load, scanner/client, downstream inventory/allocation, production migration, push, and remote closure remain pending.

  • 2026-09-22 #56 provider requalification: aceca78 proves the packing-session command ledger rejects duplicate (session, operation, idempotency key) rows while allowing reuse across operations and sessions; disposable PostgreSQL verification passed 28/28 and cleaned its container. Package split/consolidation, station concurrency, scanner reconnect, labels/printers, shipping integration, production migration, push, and remote closure remain pending.

  • 2026-09-22 #57 provider requalification: d6c5e3a proves the shipment command ledger rejects duplicate (shipment, operation, idempotency key) rows while allowing reuse across operations and shipments; disposable PostgreSQL verification passed 29/29 and cleaned its container. Partial-shipment/grouping, carrier/outbox, loading, serial/lot/concurrency, client, production migration, push, and remote closure remain pending.

  • 2026-09-22 #71 focused qualification refresh: the ASP shell/PWA/dashboard batch passed 3/3, including the MVC scanner shell in English LTR and Arabic RTL. Full page migration, workflow scan fields, Playwright breakpoints, and client/server journey evidence remain pending.

  • 2026-09-22 #72 focused qualification refresh: the ASP shell/PWA/dashboard batch passed 3/3, including the manifest, service-worker, offline-page, and authenticated-HTML caching boundary. Installability, mobile/offline reconnect, session-expiry, and supported idempotent retry evidence remain pending.

  • 2026-09-22 #73 focused qualification refresh: DeviceInputTests passed 5/5 for scan normalization, partial/oversized rejection, stable scale/manual fallback, print routing, and station profile typing. Browser permissions, real adapters, persistence, calibration, and handheld qualification remain pending.

  • 2026-09-22 #74 focused qualification refresh: the ASP shell/PWA/dashboard batch passed 3/3, including the authenticated scoped dashboard KPI contract. Additional read models, filters, drilldowns, provider query-plan/warehouse-size evidence, and browser/handheld qualification remain pending.

  • 2026-09-22 #75 focused qualification refresh: ReportsFlowTests passed 3/3 for combined filters/scope paging, grouped server-side aggregation, UTF-8 CSV export, and English/Arabic direction. PDF/Excel, scheduled delivery, artifact retention, and provider-scale evidence remain pending.

  • 2026-09-22 #76 focused qualification refresh: label template contracts passed 5/5 and label services passed 3/3 (8/8 total). Real printer/font adapters, Arabic embedded-font qualification, queue load, station administration, and provider/client evidence remain pending.

  • 2026-09-22 #77 focused qualification refresh: SupplierReturnServiceTests passed 5/5 for reserve/move/pack/ship, exactly-once shipment, partial short-pick, cancellation release, and exception/idempotency boundaries. Carrier/EDI, provider concurrency/volume, client/localization, and production evidence remain pending.

  • 2026-09-22 #78 provider requalification: 7e5a21e adds PostgreSQL proof that normalized inventory-owner codes are unique and that owner-separated materialized-balance dimensions reject duplicates while allowing a second owner in the same warehouse; disposable PostgreSQL 17 verification passed 44/44 on port 55497 and cleaned its container. Provider contention/volume, external-master/import wiring, browser/handheld EN/AR RTL/LTR, migration/restore, production, push, and remote closure remain pending.

  • 2026-09-22 #79 provider requalification: 7b28edb adds PostgreSQL proof that normalized kit-definition code/version identities reject duplicates while allowing a later effective version; disposable PostgreSQL 17 verification passed 45/45 on port 55498 and cleaned its container. Additional-input/rework, quality/label adapters, concurrency/volume, client/localization, production, push, and remote closure remain pending.

  • 2026-09-22 #80 provider requalification: 54f0571 adds PostgreSQL proof that duplicate route-edge identities and duplicate warehouse-scoped interleaving policy codes are rejected while the same values work in another warehouse; disposable PostgreSQL 17 verification passed 46/46 on port 55499 and cleaned its container. Queue contention/live-volume, telemetry calibration, supervisor visualization, browser/handheld EN/AR RTL/LTR, production, push, and remote closure remain pending.

  • 2026-09-22 #81 provider requalification: d8fc7a9 adds PostgreSQL proof for unique approval-request idempotency, per-request decision idempotency, and the one-execution lease boundary; disposable PostgreSQL 17 verification passed 47/47 on port 55500 and cleaned its container. Sensitive-command wiring, secure attachment references, notification channels/deep links, administration/inbox screens, provider/load, migration/restore, production, push, and remote closure remain pending.

  • 2026-09-22 #82 provider requalification and invariant repair: 2338104 normalizes attachment SHA-256 values to lowercase and adds PostgreSQL proof that duplicate hashes are rejected within one reference, allowed for another reference, and suspicious state persists as quarantine; disposable PostgreSQL 17 verification passed 48/48 on port 55502 and cleaned its container. External object storage/AV adapters, affected-workflow wiring, retention purge/restore, client/browser EN/AR RTL/LTR, production, push, and remote closure remain pending.

  • 2026-09-22 #83 provider requalification: f337bc9 adds PostgreSQL proof for durable notification deduplication and recipient/channel identity uniqueness; disposable PostgreSQL 17 verification passed 49/49 on port 55503 and cleaned its container. Event-producer coverage, real email/webhook adapters, digest/escalation, UI/deep-link reauthorization, load/provider, production, push, and remote closure remain pending.

  • 2026-09-22 #84 provider requalification: f960f72 adds PostgreSQL proof that retention policy keys are unique within a warehouse/company scope while reusable across warehouses, each run/class count is unique, and archive references are idempotent by class/source identity; disposable PostgreSQL 17 verification passed 50/50 on port 55504 and cleaned its container. Artifact stores, external archive/export adapters, administration/client wiring, large-batch contention, backup/restore rehearsal, production authorization, push, and remote closure remain pending.

  • 2026-09-22 #85 provider requalification: f4cc101 adds PostgreSQL-backed Administration readiness coverage for warehouse-scoped active-warehouse filtering, operational roles, global settings, audit-store availability, and enabled retention-policy state; the scoped readiness query excluded an active warehouse outside the caller scope, and disposable PostgreSQL 17 verification passed 51/51 on port 55505 and cleaned its container. Complete module CRUD/import/export, high-impact rollback/version restore, device/printer/integration administration, browser/handheld accessibility/localization, provider load, production, push, and remote closure remain pending.

  • 2026-09-22 #88 provider requalification: 481c10c adds PostgreSQL-backed versioned API read-query coverage for bounded warehouse/item/location pages, provider-specific search translation, and warehouse-scope isolation; the excluded active warehouse was not returned to the scoped caller, and disposable PostgreSQL 17 verification passed 57/57 on port 55511 and cleaned its container. Mutating commands, remaining resources, SDK/contract generation, provider/load matrices, browser/handheld EN/AR RTL/LTR, production rollout, push, and remote closure remain pending.

  • 2026-09-22 #89 provider requalification: 1de7c07 adds PostgreSQL proof that API client IDs remain globally unique across owners and credential metadata persists in the versioned PBKDF2 format without storing the presented secret; disposable PostgreSQL 17 verification passed 52/52 on port 55506 and cleaned its container. OAuth2 compatibility, CIDR/network policy, mutating-command replay/concurrency, administration/incident UI, browser/handheld EN/AR RTL/LTR, provider load, production secret rollout, push, and remote closure remain pending.

  • 2026-09-22 #90 provider requalification: a48299c adds PostgreSQL proof that outbox event IDs, inbox (source system, external message) claims, and webhook delivery (outbox, subscription) pairs each reject duplicates; disposable PostgreSQL 17 verification passed 53/53 on port 55507 and cleaned its container. Full producer/handler wiring, real transport, concurrent claim/restart, retry/dead-letter/load, administration, retention, production, push, and remote closure remain pending.

  • 2026-09-22 #91 provider requalification: 2c8c60f adds PostgreSQL proof for bulk mapping-profile (type, name, version), execution (user, idempotency key), and row (execution, row number) identities; later profile versions and cross-user key reuse succeed while protected duplicates fail, and disposable PostgreSQL 17 verification passed 54/54 on port 55508 and cleaned its container. Large-file/upload, background-job, module-handler, correction/export, cancellation/retry/load, production storage/retention, push, and remote closure remain pending.

  • 2026-09-22 #92 provider requalification: bc79e45 adds PostgreSQL proof for connector mapping-profile identity, connector instance names, per-instance run idempotency, and per-instance external-record identity; later mapping versions and cross-instance reuse succeed while protected duplicates fail, and disposable PostgreSQL 17 verification passed 55/55 on port 55509 and cleaned its container. Live transports, schedule/handler/admin wiring, conflict/replay/retry, concurrency/load, localization, production credentials, push, and remote closure remain pending.

  • 2026-09-22 #93 provider requalification: b3ba47d adds PostgreSQL proof for B2B mapping-profile versions, unique trading-partner codes, partner-scoped document external/message/idempotency/control-number identities, cross-partner reuse, and acknowledgement type/control-number identities; disposable PostgreSQL 17 verification passed 56/56 on port 55510 and cleaned its container. X12/EDIFACT standards, SFTP/file/API/webhook transport, document handlers/acknowledgements, replay/retention, admin/browser, production credentials, push, and remote closure remain pending.

  • 2026-09-22 #95 provider-harness expansion: the issue-specific PostgreSQL requalification run now passes 57/57 in one disposable PostgreSQL 17 schema on port 55511, covering ownership, VAS, routing, approvals, attachments, notifications, retention, administration, API reads, API credentials, integration delivery, bulk exchange, connectors, and B2B identity/scope boundaries; each run cleaned its container. Contention/load, migration/restore rehearsal, full journey/client matrices, production authorization, push, and remote issue closure remain pending.

  • 2026-09-22 qualification gates: verify-unit-tests.ps1 passed twice (52 Application + 163 Domain each run); release preflight passed with 128 checked-in migrations; security-boundary verification passed; migration lifecycle passed; PostgreSQL 17 disposable integration passed 4/4; WinForms Debug build passed 0 warnings/0 errors. The all-in-one Infrastructure host still aborts at the environment's native RX-memory-mapping limit after bounded groups pass, so provider/load/production gates remain open where the issue rows say so.

  • 2026-09-22 tracker reconciliation: all 106 issue rows (#2–#107) are marked verified locally; committed; remote-open/pending-push state is retained for unpushed work, and no deployment, production migration, push, or unapproved remote closure was performed.

  • Phase 0: #2 through #11 committed.

  • Phase 1: #12 through #23 committed.

  • Phase 2: #24 through #41 are committed locally; #25 through #41 remain remote-open pending push; #30, #31, #32, #33, and #34 are locally verified after the lot/serial/status/LPN/ledger boundary repairs, while #35 through #41 remain committed progress slices with later movement-path, traceability, replenishment, reconciliation, and provider-qualification dependencies.

  • Phase 3–9: #42 through #45 are committed progress slices with dependent document/client/provider qualification remaining; #46 is a committed receiving-execution progress slice; #47 is a committed quality-core progress slice; #54 is a committed reusable-work-engine progress slice taken before #48 as required; #48 is a committed putaway execution progress slice; #49 is a committed deterministic putaway-rule progress slice; #50 is a committed inbound-exception progress slice; #51 is a committed customer-master progress slice; #52 is a committed sales-order/outbound-demand progress slice; #53 is a committed allocation/release progress slice; #55 is a committed normal scanner-pick execution progress slice; #56 is a committed packing execution progress slice; #57 is a committed shipping execution progress slice; #58 is a committed returns execution progress slice; #59 is a committed outbound-exception progress slice; #60 is a committed internal-movement/transfer progress slice; #61 is a committed replenishment-planning/execution progress slice; #62 is a committed cycle-count planning/snapshot progress slice; #63 is a committed ABC classification/policy progress slice; #64 is a committed allocation-strategy progress slice; #65 is a committed outbound-wave planning progress slice; #66 is a committed picking-strategy planning/execution-boundary progress slice; #67 is a committed cross-dock policy/matching/planning progress slice; #68 is a committed workforce-routing/metrics progress slice; #69 is a committed inventory-disposition/expiry/recall-core progress slice; #70 is a committed deterministic slotting-analysis/recommendation progress slice; #71 is a committed scanner-first MVC-shell progress slice; #72 is a committed safe PWA/offline-shell progress slice; #73 is a committed vendor-neutral device-boundary progress slice; #74 is a committed server-side inventory-KPI/dashboard progress slice; #75 is a committed movement-report core progress slice; #76 is a committed versioned-label/print-job core progress slice; #77 is a committed supplier-return/RTV progress slice; #78 is a committed inventory-ownership dimension/transfer/report progress slice; #79 is a committed transactional VAS/kit/disassembly progress slice; #80 is a committed transparent route/interleaving recommendation progress slice; #81 is a committed shared reason/approval policy progress slice; #82 is a committed secure attachment-core progress slice with module, notification, retention, external-provider, client, browser/handheld, and production qualification remaining; #83 is a committed durable notification-core progress slice with event-producer, external-channel, retention, client, provider, and production qualification remaining; #84 is a committed safe retention-core progress slice with artifact-store, administration, client, provider, restore, operational-approval, and production gates remaining; #85 is a committed administration-console progress slice with complete module CRUD/import/export, high-impact change, client, provider, and production gates remaining; #86 is a committed WinForms transition/inventory progress slice with side-by-side parity, distribution, and decommission gates remaining; #87 is a committed accessibility/usability contract progress slice with browser, device, visual, and screen-reader gates remaining; #88 is a committed versioned API query-contract foundation with command/resource and provider/client qualification remaining; #89 is a committed API credential/security foundation with command replay, provider, incident, client, and production qualification remaining; #90 is a committed transactional integration-delivery foundation with producer, PostgreSQL/concurrency, provider, admin, connector, retention, and production qualification remaining; #91 is a committed reusable bulk-exchange foundation with upload, handler, job, provider, and production qualification remaining; #92 is a committed connector architecture foundation with adapter, credential-reference, cursor, run, conflict, and provider qualification remaining; #93 is a committed canonical B2B exchange foundation with standards, transport, handler, replay, partner, and production qualification remaining; #94 and #95 are committed early qualification foundations; #96 is a committed executable journey-specification foundation; #97 is a committed browser/RTL/viewport qualification-matrix foundation; #98 is a committed performance-budget/evaluation foundation; #99 is a committed non-production resilience-policy foundation; #100 is a committed threat-model/security-boundary foundation; #101 is a committed release-qualification/preflight foundation; #102 is a committed deterministic data-generation foundation; #103 is a committed support-diagnostics/redaction policy foundation; #104 is a committed permission-aware reporting-assistant planning foundation; #105 is a committed deterministic forecasting/backtest/risk-projection foundation; #106 is a committed deterministic explainable anomaly-signal/lifecycle foundation; #107 is a committed governed shadow-mode recommendation foundation; all issues #96–#107 now have committed local progress slices, with qualification, push, and remote closure gates remaining.

  • Nothing has been pushed, deployed, or migrated against production data.

  • 2026-09-25 #131 browser qualification progress: commits b5fd98a and 3305d54 add actor-scoped scan drafts, CSP-safe warehouse/locale switching, responsive dashboard controls, visible receiving startup errors, and a Chromium journey against Kestrel plus isolated PostgreSQL. The final local browser group passed 1/1 in 2m36s; the PostgreSQL group-plan contract, solution formatter (--severity error), and diff check passed. The commits are pushed; WareCommand CI #58 passed all jobs on exact SHA ea010445c5dbbc7dc816a0b6ce6ab44f370e3f29. Keep #131 open for successful picking, PO/ASN receiving, dashboard refresh and remaining route mutations, full-matrix keyboard/axe/ visual/device checks, broader reconnect cases, and cross-actor API replay denial.

Evidence paths

  • Data-generation qualification: Wms.Application/DataGeneration/DataGenerationContracts.cs, Wms.Application.Tests/DataGeneration/DataGenerationContractTests.cs, and docs/operations/DATA_GENERATION.md

  • Support diagnostics qualification: Wms.Application/Support/SupportBundleContracts.cs, Wms.Application.Tests/Support/SupportBundlePolicyTests.cs, and docs/operations/SUPPORT_DIAGNOSTICS.md

  • Reporting-assistant qualification: Wms.Application/ReportingAssistant/ReportingAssistantContracts.cs, Wms.Application.Tests/ReportingAssistant/ReportingAssistantPolicyTests.cs, and docs/modernization/REPORTING_ASSISTANT.md

  • Forecasting qualification: Wms.Application/Forecasting/ForecastingContracts.cs, Wms.Application/Forecasting/ForecastDemandSeriesBuilder.cs, Wms.Infrastructure/Forecasting/ForecastingService.cs, Wms.Infrastructure.Tests/Forecasting/ForecastingServiceTests.cs, Wms.ASP.Tests/PostgreSqlDashboardFlowTests.cs, migration Wms.Infrastructure/Database/Migrations/20260923152346_AddDurableForecasting.cs, and docs/modernization/FORECASTING.md

  • Anomaly-detection qualification: Wms.Application/AnomalyDetection/AnomalyDetectionContracts.cs, Wms.Application.Tests/AnomalyDetection/AnomalyDetectorTests.cs, and docs/modernization/ANOMALY_DETECTION.md

  • Recommendation governance qualification: Wms.Application/Recommendations/RecommendationContracts.cs, Wms.Application.Tests/Recommendations/RecommendationGovernanceTests.cs, and docs/modernization/RECOMMENDATIONS_GOVERNANCE.md

  • End-to-end journey qualification: Wms.Application/Journeys/JourneyContracts.cs, Wms.Application.Tests/Journeys/JourneySpecificationTests.cs, and docs/modernization/E2E_JOURNEYS.md

  • Browser qualification: Wms.Application/BrowserTesting/BrowserQualificationContracts.cs, Wms.Application.Tests/BrowserTesting/BrowserQualificationMatrixTests.cs, and docs/modernization/BROWSER_QUALIFICATION.md

  • Performance qualification: Wms.Application/Performance/PerformanceContracts.cs, Wms.Application.Tests/Performance/PerformanceBudgetTests.cs, and docs/operations/PERFORMANCE_QUALIFICATION.md

  • Resilience qualification: Wms.Application/Resilience/ResilienceContracts.cs, Wms.Application.Tests/Resilience/ResiliencePolicyTests.cs, and docs/operations/RESILIENCE_QUALIFICATION.md

  • Release qualification: docs/operations/RELEASE_QUALIFICATION.md, scripts/verify-release-preflight.ps1, DEPLOYMENT.md, and scripts/verify-migrations.ps1

  • Threat-model/security qualification: docs/security/THREAT_MODEL.md, SECURITY.md, scripts/verify-security-boundaries.ps1, and Wms.Application.Tests/Security/SecurityBoundaryTests.cs

  • B2B document qualification: Wms.Application/B2bDocuments/B2bDocumentContracts.cs, Wms.Infrastructure/B2bDocuments/B2bDocumentService.cs, Wms.Infrastructure/B2bDocuments/B2bDocumentEntities.cs, Wms.Infrastructure.Tests/B2bDocuments/B2bDocumentServiceTests.cs, Wms.Application.Tests/B2bDocuments/B2bDocumentContractTests.cs, migration Wms.Infrastructure/Database/Migrations/20260922003520_AddB2bDocumentExchange.cs, and docs/modernization/B2B_DOCUMENT_EXCHANGE.md

  • Connector qualification: Wms.Application/Connectors/ConnectorContracts.cs, Wms.Infrastructure/Connectors/ConnectorServices.cs, Wms.Infrastructure/Connectors/ConnectorEntities.cs, Wms.Infrastructure.Tests/Connectors/ConnectorServiceTests.cs, Wms.Application.Tests/Connectors/ConnectorContractTests.cs, migration Wms.Infrastructure/Database/Migrations/20260922001932_AddConnectorArchitecture.cs, and docs/modernization/CONNECTORS.md

  • Baseline narrative: docs/modernization/BASELINE_STATUS.md

  • Reproduction command: scripts/verify-baseline.ps1

  • Approved frontend package: pre-existing untracked Front-End/WareCommand-Landing-Page/

  • MVC scanner-shell qualification: Wms.ASP.Tests/MvcShellFlowTests.cs, Wms.ASP/Views/Shared/_Layout.cshtml, Wms.ASP/wwwroot/css/site.css, Wms.ASP/wwwroot/js/site.js, and docs/modernization/MVC_SCANNER_DESIGN_SYSTEM.md

  • PWA/offline qualification: Wms.ASP.Tests/PwaFlowTests.cs, Wms.ASP/wwwroot/manifest.webmanifest, Wms.ASP/wwwroot/sw.js, Wms.ASP/wwwroot/offline.html, and docs/modernization/PWA_OFFLINE.md

  • Device-boundary qualification: Wms.Application.Tests/Devices/DeviceInputTests.cs, Wms.Application/Devices/DeviceContracts.cs, Wms.Application/Devices/ScannerInputNormalizer.cs, Wms.Application/Devices/ScaleStability.cs, Wms.Application/Devices/PrintRouting.cs, and docs/modernization/DEVICE_INTEGRATION.md

  • Operational-dashboard qualification: Wms.Infrastructure.Tests/Inventory/InventoryInquiryServiceTests.cs, Wms.ASP.Tests/OperationalDashboardFlowTests.cs, Wms.Application/Inventory/InventoryDashboardContracts.cs, Wms.Infrastructure/Inventory/InventoryInquiryService.cs, both dashboard host surfaces, and docs/modernization/OPERATIONAL_DASHBOARD.md

  • Reporting qualification: Wms.ASP.Tests/ReportsFlowTests.cs, Wms.Application/Reporting/ReportContracts.cs, Wms.Infrastructure/Reporting/OperationalReportQueryService.cs, Wms.ASP/Controllers/ReportsController.cs, and docs/modernization/REPORTING.md

  • Label/print qualification: Wms.Application.Tests/Labels/LabelTemplateEngineTests.cs, Wms.Infrastructure.Tests/Labels/LabelServicesTests.cs, Wms.Application/Labels/LabelTemplateEngine.cs, Wms.Infrastructure/Labels/LabelServices.cs, migration Wms.Infrastructure/Database/Migrations/20260921145635_AddLabelTemplatesAndPrintJobs.cs, and docs/modernization/LABELS_AND_PRINTING.md

  • Authentication qualification: Wms.Infrastructure.Tests Identity tests and Wms.ASP.Tests MVC host tests

  • Authentication procedure: docs/modernization/AUTHENTICATION.md

  • Authorization qualification: Wms.Infrastructure.Tests/Identity/WmsAuthorizationTests.cs and Wms.ASP.Tests/AuthorizationFlowTests.cs

  • Authorization procedure: docs/modernization/AUTHORIZATION.md

  • Audit qualification: Wms.Infrastructure.Tests/Auditing/AuditEntryTests.cs, Wms.Infrastructure.Tests/Services/StockMovementServiceTests.cs, and Wms.ASP.Tests/AuthorizationFlowTests.cs

  • Audit procedure and retention/export policy: docs/modernization/AUDITING.md

  • Secure attachment qualification: Wms.Infrastructure.Tests/Attachments/AttachmentServiceTests.cs, Wms.Infrastructure.Tests/Attachments/LocalAttachmentStorageTests.cs, Wms.Application/Attachments/AttachmentContentValidator.cs, Wms.Infrastructure/Attachments/AttachmentService.cs, Wms.ASP/Controllers/AttachmentsController.cs, migration Wms.Infrastructure/Database/Migrations/20260921202341_AddSecureAttachments.cs, and docs/modernization/SECURE_ATTACHMENTS.md

  • Retention qualification: Wms.Infrastructure.Tests/Retention/RetentionServiceTests.cs, Wms.Application/Retention/RetentionContracts.cs, Wms.Infrastructure/Retention/RetentionService.cs, Wms.Infrastructure/Retention/WmsRetentionEntities.cs, Wms.ASP/Controllers/RetentionController.cs, migrations Wms.Infrastructure/Database/Migrations/20260921212859_AddRetentionPolicies.cs and Wms.Infrastructure/Database/Migrations/20260921214311_AddRetentionCompanyScope.cs, and docs/modernization/RETENTION.md

  • Administration-console qualification: Wms.Application/Administration/AdministrationContracts.cs, Wms.Infrastructure/Administration/AdministrationService.cs, Wms.ASP/Controllers/AdministrationController.cs, Wms.ASP/Controllers/AdministrationApiController.cs, Wms.ASP/Views/Administration/Index.cshtml, Wms.Application.Tests/Administration/AdministrationCatalogTests.cs, Wms.Infrastructure.Tests/Administration/AdministrationServiceTests.cs, Wms.ASP.Tests/AdministrationFlowTests.cs, and docs/modernization/ADMINISTRATION.md

  • WinForms transition qualification: Warehouse Management System/Program.cs, Warehouse Management System/Forms, Wms.Architecture.Tests/ArchitectureTests.cs, README.md, and docs/modernization/WINFORMS_TRANSITION.md

  • Accessibility/usability qualification: Wms.ASP.Tests/AccessibilityFlowTests.cs, Wms.ASP.Tests/LocalizationFlowTests.cs, Wms.ASP.Tests/MvcShellFlowTests.cs, Wms.ASP.Tests/PwaFlowTests.cs, Wms.ASP/wwwroot/css/site.css, and docs/modernization/ACCESSIBILITY_USABILITY.md

  • Versioned API qualification: Wms.Application/Api/V1/ApiV1Contracts.cs, Wms.ASP/Controllers/ApiV1Controller.cs, Wms.ASP/wwwroot/api/v1/openapi.json, Wms.ASP.Tests/ApiV1FlowTests.cs, and docs/modernization/API_V1.md

  • API client security qualification: Wms.Application/ApiClients/ApiClientContracts.cs, Wms.Infrastructure/ApiClients/ApiClientCredentialService.cs, Wms.Infrastructure/ApiClients/ApiClientSecretHasher.cs, Wms.ASP/Identity/WmsApiClientAuthenticationHandler.cs, Wms.ASP.Tests/ApiClientSecurityFlowTests.cs, migration Wms.Infrastructure/Database/Migrations/20260921230053_AddApiClients.cs, and docs/modernization/API_CLIENT_SECURITY.md

  • Integration delivery qualification: Wms.Application/Integrations/IntegrationContracts.cs, Wms.Infrastructure/Integrations/IntegrationEventWriter.cs, Wms.Infrastructure/Integrations/IntegrationInboxService.cs, Wms.Infrastructure/Integrations/IntegrationOutboxDispatcher.cs, Wms.Infrastructure/Integrations/WebhookSubscriptionService.cs, Wms.Infrastructure.Tests/Integrations/IntegrationDeliveryTests.cs, migration Wms.Infrastructure/Database/Migrations/20260921232953_AddIntegrationDelivery.cs, and docs/modernization/INTEGRATION_DELIVERY.md

  • Bulk exchange qualification: Wms.Application/BulkExchange/BulkExchangeContracts.cs, Wms.Application/BulkExchange/BulkCsvParser.cs, Wms.Infrastructure/BulkExchange/BulkCsvServices.cs, Wms.Application.Tests/BulkExchange/BulkCsvTests.cs, Wms.Infrastructure.Tests/BulkExchange/BulkImportServiceTests.cs, migration Wms.Infrastructure/Database/Migrations/20260921235415_AddBulkImportFramework.cs, and docs/modernization/BULK_EXCHANGE.md

  • Web security qualification: Wms.ASP.Tests/AuthenticationFlowTests.cs, Wms.ASP/Security/WmsSecurityOptions.cs, SECURITY.md, and DEPLOYMENT.md

  • Error-handling qualification: Wms.ASP/Errors/WmsExceptionHandling.cs, Wms.Application/Common/ResultError.cs, Wms.ASP.Tests/AuthenticationFlowTests.cs, and Wms.Application.Tests/ResultTests.cs

  • Error-handling procedure: docs/modernization/ERROR_HANDLING.md

  • Logging qualification: Wms.Infrastructure.Tests/Logging/WmsLoggingTests.cs, Wms.ASP.Tests/AuthenticationFlowTests.cs, and Wms.Application/Logging/WmsLogEvents.cs

  • Logging procedure: docs/modernization/LOGGING.md

  • Observability qualification: Wms.ASP.Tests/ObservabilityFlowTests.cs, Wms.ASP.Tests/Health/WmsDatabaseHealthCheckTests.cs, and Wms.Infrastructure.Tests/Telemetry/WmsTelemetryTests.cs

  • Observability procedure and alert/runbook guidance: docs/modernization/OBSERVABILITY.md and docs/operations/OBSERVABILITY_RUNBOOK.md

  • Durable job qualification: Wms.Application.Tests/Jobs/WmsJobCatalogTests.cs, Wms.Infrastructure.Tests/Jobs/WmsJobExecutionStoreTests.cs, Wms.Infrastructure/Database/Migrations/20260920053427_AddDurableBackgroundJobs.cs, and docs/modernization/JOBS.md

  • Notification-center/channel qualification: Wms.Infrastructure.Tests/Notifications/NotificationServiceTests.cs, Wms.Infrastructure.Tests/Notifications/NotificationRecipientDirectoryTests.cs, Wms.Infrastructure.Tests/Notifications/SmtpEmailTransportTests.cs, Wms.Infrastructure.Tests/Integrations/IntegrationDeliveryTests.cs, Wms.ASP.Tests/AccountNotificationTests.cs, Wms.Application/Notifications/NotificationContracts.cs, Wms.Infrastructure/Notifications/NotificationService.cs, Wms.Infrastructure/Notifications/NotificationDeliveryService.cs, Wms.Infrastructure/Notifications/SmtpEmailTransport.cs, Wms.Infrastructure/Notifications/EmailNotificationAdapter.cs, Wms.Infrastructure/Notifications/IntegrationWebhookNotificationAdapter.cs, Wms.Infrastructure/Notifications/NotificationChannelHealthService.cs, migration Wms.Infrastructure/Database/Migrations/20260921205230_AddNotificationCenter.cs, and docs/modernization/NOTIFICATION_CENTER.md

  • Backup qualification: Wms.Infrastructure.Tests/Backups/WmsBackupArchiveTests.cs, Wms.Infrastructure.Tests/Backups/WmsBackupHealthStateTests.cs, Wms.Infrastructure/Backups/WmsPostgreSqlBackupService.cs, Wms.Backup/Program.cs, and docs/modernization/BACKUPS.md

  • Backup operations and incidents: scripts/backup-postgresql.ps1, scripts/verify-backup.ps1, scripts/prune-backups.ps1, scripts/restore-postgresql.ps1, and docs/operations/BACKUP_DISASTER_RECOVERY.md

  • Settings qualification: Wms.Application.Tests/Settings/WmsSettingsTests.cs, Wms.Infrastructure.Tests/Settings/WmsSettingsPersistenceTests.cs, Wms.Infrastructure.Tests/Settings/WmsSettingsCacheTests.cs, and Wms.ASP.Tests/SettingsFlowTests.cs

  • Settings procedure and schema: docs/modernization/SETTINGS.md, Wms.Infrastructure/Database/Migrations/20260920035416_AddTypedBusinessSettings.cs, and Wms.Infrastructure/Database/Migrations/20260920040056_AddDashboardMovementLimitSetting.cs

  • Time/date qualification: Wms.Application.Tests/Time/WmsBusinessTimeTests.cs, Wms.Domain.Tests/Entities/LotTests.cs, Wms.Infrastructure.Tests/Repositories/MovementRepositoryTests.cs, and Wms.Infrastructure.Tests/Data/WmsDbContextTimestampTests.cs

  • Time/date procedure: docs/modernization/TIME_AND_DATES.md, Wms.Application/Time/WmsTimeContracts.cs, and Wms.Application/UseCases/Reports/MovementReportUseCase.cs

  • Warehouse master-data qualification: Wms.Domain.Tests/Entities/WarehouseTests.cs, Wms.Infrastructure.Tests/Warehouses/WarehouseManagementServiceTests.cs, Wms.ASP.Tests/WarehouseManagementFlowTests.cs, Wms.Infrastructure/Database/Migrations/20260920074037_AddWarehouseMasterData.cs, Wms.ASP/Controllers/WarehousesController.cs, and Wms.Infrastructure/Warehouses/WarehouseManagementService.cs

  • Location master-data qualification: Wms.Domain.Tests/Entities/LocationTests.cs, Wms.Infrastructure.Tests/Locations/LocationManagementServiceTests.cs, Wms.Infrastructure.Tests/Services/StockMovementServiceTests.cs, Wms.ASP.Tests/LocationManagementFlowTests.cs, Wms.Infrastructure/Database/Migrations/20260920084241_AddLocationMasterData.cs, Wms.Infrastructure/Locations/LocationManagementService.cs, and scripts/verify-postgresql.ps1

  • Item-master qualification: Wms.Domain.Tests/Entities/ItemMasterDataTests.cs, Wms.Infrastructure.Tests/Items/ItemManagementServiceTests.cs, Wms.ASP.Tests/ItemManagementFlowTests.cs, Wms.Infrastructure/Database/Migrations/20260920093628_AddItemMasterData.cs, Wms.Infrastructure/Items/ItemManagementService.cs, Wms.ASP/Controllers/ItemsController.cs, and scripts/verify-postgresql.ps1

  • Supplier-master qualification: Wms.Infrastructure.Tests/Suppliers/SupplierManagementServiceTests.cs, Wms.Infrastructure/Database/Migrations/20260920192411_AddSupplierMasterData.cs, Wms.Infrastructure/Suppliers/SupplierManagementService.cs, Wms.ASP/Controllers/SupplierMasterController.cs, Wms.ASP/Controllers/SuppliersController.cs, and docs/modernization/SUPPLIER_MASTER_DATA.md

  • Purchase-order/inbound-demand qualification: Wms.Domain.Tests/Entities/PurchaseOrderTests.cs, Wms.Infrastructure.Tests/Purchasing/PurchaseOrderServiceTests.cs, Wms.Infrastructure/Purchasing/PurchaseOrderService.cs, Wms.ASP/Controllers/PurchaseOrdersController.cs, Wms.ASP/Controllers/PurchaseOrderManagementController.cs, Wms.Infrastructure/Database/Migrations/20260920201043_AddPurchaseOrders.cs, and docs/modernization/PURCHASE_ORDERS.md

  • Advance-shipping-notice qualification: Wms.Domain.Tests/Entities/AdvanceShippingNoticeTests.cs, Wms.Infrastructure.Tests/Inbound/AdvanceShippingNoticeServiceTests.cs, Wms.Application.Tests/UseCases/Receiving/ReceiveItemUseCaseTests.cs, Wms.Infrastructure/Inbound/AdvanceShippingNoticeService.cs, Wms.Infrastructure/Database/Migrations/20260920211634_AddAdvanceShippingNotices.cs, and docs/modernization/ADVANCE_SHIPPING_NOTICES.md

  • Inbound-receipt qualification: Wms.Domain.Tests/Entities/ReceiptTests.cs, Wms.Infrastructure.Tests/Receiving/ReceiptServiceTests.cs, Wms.Application/Receiving/ReceiptContracts.cs, Wms.Infrastructure/Receiving/ReceiptService.cs, Wms.Infrastructure/Database/Migrations/20260920222012_AddInboundReceipts.cs, and docs/modernization/INBOUND_RECEIPTS.md

  • Scanner receiving-execution qualification: Wms.Domain.Tests/Entities/ReceivingSessionTests.cs, Wms.Infrastructure.Tests/Receiving/ReceivingExecutionServiceTests.cs, Wms.Infrastructure/Receiving/ReceivingExecutionService.cs, Wms.ASP/Controllers/ReceivingSessionsController.cs, Wms.Infrastructure/Database/Migrations/20260920230458_AddScannerReceivingSessions.cs, and docs/modernization/RECEIVING_EXECUTION.md

  • Quality inspection qualification: Wms.Domain.Tests/Entities/QualityInspectionTests.cs, Wms.Infrastructure.Tests/Quality/QualityInspectionServiceTests.cs, Wms.Infrastructure.Tests/Integration/PostgreSqlIntegrationTests_Harness.cs, Wms.Infrastructure/Quality/QualityInspectionService.cs, Wms.ASP/Controllers/QualityController.cs, Wms.Infrastructure/Database/Migrations/20260920235603_AddQualityInspections.cs, Wms.Infrastructure/Database/Migrations/20260922060248_EnforceQualityInspectionIdentityUniqueness.cs, and docs/modernization/QUALITY_INSPECTIONS.md

  • Warehouse work qualification: Wms.Domain.Tests/Entities/WarehouseWorkTests.cs, Wms.Infrastructure.Tests/WarehouseWork/WarehouseWorkServiceTests.cs, Wms.Infrastructure/WarehouseWork/WarehouseWorkService.cs, Wms.ASP/Controllers/WarehouseWorkController.cs, Wms.Infrastructure/Database/Migrations/20260921002211_AddWarehouseWorkEngine.cs, and docs/modernization/WAREHOUSE_WORK.md

  • Putaway execution qualification: Wms.Infrastructure.Tests/WarehouseWork/PutawayWarehouseWorkCompletionHandlerTests.cs, Wms.Infrastructure/WarehouseWork/PutawayWarehouseWorkCompletionHandler.cs, Wms.Infrastructure/Receiving/ReceiptService.cs, and Wms.Infrastructure.Tests/Receiving/ReceiptServiceTests.cs

  • Putaway-rule qualification: Wms.Domain.Tests/Entities/PutawayRuleTests.cs, Wms.Infrastructure.Tests/Putaway/PutawayRuleServiceTests.cs, Wms.Infrastructure/Putaway/PutawayRuleService.cs, Wms.ASP/Controllers/PutawayRulesController.cs, Wms.Infrastructure/Database/Migrations/20260921013005_AddPutawayRules.cs, and docs/modernization/PUTAWAY_RULES.md

  • Inbound-exception qualification: Wms.Domain.Tests/Entities/InboundExceptionTests.cs, Wms.Infrastructure.Tests/Inbound/InboundExceptionServiceTests.cs, Wms.Infrastructure.Tests/Receiving/ReceiptServiceTests.cs, Wms.Infrastructure/Inbound/InboundExceptionService.cs, Wms.ASP/Controllers/InboundExceptionsController.cs, Wms.Infrastructure/Database/Migrations/20260921015804_AddInboundExceptions.cs, and docs/modernization/INBOUND_EXCEPTIONS.md

  • Customer/ship-to qualification: Wms.Domain.Tests/Entities/CustomerTests.cs, Wms.Infrastructure.Tests/Customers/CustomerManagementServiceTests.cs, Wms.Infrastructure/Customers/CustomerManagementService.cs, Wms.ASP/Controllers/CustomersController.cs, Wms.Infrastructure/Database/Migrations/20260921023248_AddCustomersAndShipToMasterData.cs, and docs/modernization/CUSTOMERS.md

  • Sales-order/outbound-demand qualification: Wms.Domain.Tests/Entities/SalesOrderTests.cs, Wms.Infrastructure.Tests/SalesOrders/SalesOrderServiceTests.cs, Wms.Infrastructure/SalesOrders/SalesOrderService.cs, Wms.ASP/Controllers/SalesOrdersController.cs, Wms.Infrastructure/Database/Migrations/20260921025547_AddSalesOrders.cs, and docs/modernization/SALES_ORDERS.md

  • Sales-order allocation qualification: Wms.Infrastructure.Tests/SalesOrders/SalesOrderAllocationServiceTests.cs, Wms.Infrastructure/Inventory/InventoryReservationService.cs, Wms.Infrastructure/WarehouseWork/WarehouseWorkService.cs, Wms.ASP/Controllers/SalesOrderAllocationsController.cs, and docs/modernization/SALES_ORDER_ALLOCATION.md

  • Scanner picking qualification: Wms.Infrastructure.Tests/WarehouseWork/PickWarehouseWorkCompletionHandlerTests.cs, Wms.Infrastructure/WarehouseWork/PickWarehouseWorkCompletionHandler.cs, Wms.Infrastructure/Database/Migrations/20260921035314_AddReservationLinksToWarehouseWorkLines.cs, and docs/modernization/PICKING_EXECUTION.md

  • Packing execution qualification: Wms.Infrastructure.Tests/Packing/PackingServiceTests.cs, Wms.Infrastructure/Packing/PackingService.cs, Wms.ASP/Controllers/PackingController.cs, Wms.Infrastructure/Database/Migrations/20260921043412_AddPackingExecution.cs, and docs/modernization/PACKING_EXECUTION.md

  • Shipping execution qualification: Wms.Infrastructure.Tests/Shipping/ShipmentServiceTests.cs, Wms.Infrastructure/Shipping/ShipmentService.cs, Wms.ASP/Controllers/ShippingController.cs, Wms.Infrastructure/Database/Migrations/20260921045607_AddShippingExecution.cs, and docs/modernization/SHIPPING_EXECUTION.md

  • Returns execution qualification: Wms.Infrastructure.Tests/Returns/ReturnServiceTests.cs, Wms.Infrastructure/Returns/ReturnService.cs, Wms.ASP/Controllers/ReturnsController.cs, Wms.Infrastructure/Database/Migrations/20260921051743_AddReturnsAndDisposition.cs, and docs/modernization/RETURNS.md

  • Outbound-exception qualification: Wms.Infrastructure.Tests/Outbound/OutboundExceptionServiceTests.cs, Wms.Infrastructure/Outbound/OutboundExceptionService.cs, Wms.ASP/Controllers/OutboundExceptionsController.cs, Wms.Infrastructure/Database/Migrations/20260921054513_AddOutboundExceptions.cs, and docs/modernization/OUTBOUND_EXCEPTIONS.md

  • Invariant-test qualification: Wms.Domain.Tests, Wms.Application.Tests, scripts/verify-unit-tests.ps1, and docs/modernization/TESTING_INVARIANTS.md

  • PostgreSQL harness qualification: Wms.Infrastructure.Tests/Integration/PostgreSqlTestDatabase.cs, Wms.Infrastructure.Tests/Integration/PostgreSqlIntegrationTests_Harness.cs, scripts/verify-postgresql.ps1, and docs/modernization/POSTGRESQL_TEST_HARNESS.md

  • Workforce assignment qualification: Wms.Infrastructure.Tests/Workforce/WorkforceServiceTests.cs, Wms.Infrastructure/Workforce/WorkforceService.cs, Wms.Infrastructure/Workforce/WarehouseWorkAssignmentEligibilityService.cs, Wms.ASP/Controllers/WorkforceController.cs, Wms.ASP/Controllers/WarehouseWorkController.cs, Wms.Infrastructure/Database/Migrations/20260921104905_AddWorkforceAssignment.cs, and docs/modernization/WORKFORCE_ASSIGNMENT.md

  • Inventory disposition/expiry/recall qualification: Wms.Infrastructure.Tests/Inventory/InventoryDispositionServiceTests.cs, Wms.Infrastructure/Inventory/InventoryDispositionService.cs, Wms.ASP/Controllers/InventoryDispositionsController.cs, Wms.Infrastructure/Database/Migrations/20260921113248_AddInventoryDispositions.cs, and docs/modernization/INVENTORY_DISPOSITIONS.md

  • Deterministic slotting qualification: Wms.Infrastructure.Tests/Inventory/SlottingServiceTests.cs, Wms.Infrastructure/Inventory/SlottingService.cs, Wms.ASP/Controllers/SlottingController.cs, Wms.Infrastructure/Database/Migrations/20260921122015_AddSlottingAnalysis.cs, and docs/modernization/SLOTTING.md

  • Unit-of-measure/conversion qualification: Wms.Domain.Tests/Units/UnitOfMeasureTests.cs, Wms.Infrastructure.Tests/Units/UnitOfMeasureServiceTests.cs, Wms.ASP.Tests/UnitOfMeasureFlowTests.cs, Wms.Infrastructure/Database/Migrations/20260920103244_AddUnitOfMeasureConversions.cs, Wms.Infrastructure/Units/UnitOfMeasureService.cs, and scripts/verify-migrations.ps1

  • Packaging/handling qualification: Wms.Domain.Tests/Packaging/ItemPackagingTests.cs, Wms.Infrastructure.Tests/Items/ItemManagementServiceTests.cs, Wms.Infrastructure.Tests/Units/UnitOfMeasureServiceTests.cs, Wms.Infrastructure.Tests/Services/StockMovementServiceTests.cs, Wms.ASP.Tests/ItemManagementFlowTests.cs, Wms.Infrastructure/Database/Migrations/20260920111852_AddPackagingHandlingData.cs, Wms.Infrastructure/Items/ItemManagementService.cs, Wms.Infrastructure/Units/UnitOfMeasureService.cs, and scripts/verify-postgresql.ps1

  • Global identification qualification: Wms.Domain.Tests/Identification/BarcodeParserTests.cs, Wms.Infrastructure.Tests/Identification/IdentificationServiceTests.cs, Wms.ASP.Tests/ScanningFlowTests.cs, Wms.Infrastructure/Database/Migrations/20260920114949_AddGlobalIdentificationSupport.cs, Wms.Infrastructure/Identification/IdentificationService.cs, Wms.ASP/Controllers/ScanningController.cs, and docs/modernization/IDENTIFICATION.md

  • Lot lifecycle qualification: Wms.Domain.Tests/Entities/LotTests.cs, Wms.Infrastructure.Tests/Lots/LotServiceTests.cs, Wms.Infrastructure.Tests/Services/StockMovementServiceTests.cs, Wms.Infrastructure/Database/Migrations/20260920122647_AddLotLifecycleManagement.cs, Wms.Infrastructure/Lots/LotService.cs, Wms.ASP/Controllers/LotsController.cs, and Wms.Infrastructure/Jobs/WmsOperationalJobHandlers.cs

  • Serial tracking qualification: Wms.Domain.Tests/Entities/SerialNumberTests.cs, Wms.Infrastructure.Tests/SerialNumbers/SerialNumberServiceTests.cs, Wms.Infrastructure.Tests/Services/StockMovementServiceTests.cs, Wms.Application.Tests/UseCases/Receiving/ReceiveItemUseCaseTests.cs, Wms.Infrastructure/Database/Migrations/20260920130806_AddSerialNumberTracking.cs, Wms.DataMigration.Tests/PostgreSqlDataMigrationTests.cs, Wms.ASP/Controllers/SerialNumbersController.cs, and docs/modernization/SERIAL_TRACKING.md

  • Inventory-status qualification: Wms.Domain.Tests/Entities/InventoryStatusTests.cs, Wms.Infrastructure.Tests/InventoryStatuses/InventoryStatusServiceTests.cs, Wms.Infrastructure.Tests/Services/StockMovementServiceTests.cs, Wms.Infrastructure/Database/Migrations/20260920140225_AddInventoryStatuses.cs, Wms.ASP/Controllers/InventoryStatusesController.cs, Wms.Application/UseCases/Picking/PickOrderUseCase.cs, and docs/modernization/INVENTORY_STATUSES.md

  • License-plate/handling-unit qualification: Wms.Domain.Tests/Entities/LicensePlateTests.cs, Wms.Infrastructure.Tests/LicensePlates/LicensePlateServiceTests.cs, Wms.Infrastructure.Tests/Identification/IdentificationServiceTests.cs, Wms.ASP/Controllers/LicensePlatesController.cs, Wms.Infrastructure/Database/Migrations/20260920145329_AddLicensePlateHandlingUnits.cs, docs/modernization/LICENSE_PLATES.md, and scripts/verify-migrations.ps1

  • Inventory command idempotency qualification: Wms.Application.Tests/Idempotency/InventoryCommandIdempotencyContractsTests.cs, Wms.Application.Tests/UseCases/Receiving/ReceiveItemIdempotencyTests.cs, Wms.Infrastructure.Tests/Inventory/InventoryCommandIdempotencyServiceTests.cs, Wms.Infrastructure/Database/Migrations/20260920163556_AddInventoryCommandIdempotency.cs, and docs/modernization/INVENTORY_IDEMPOTENCY.md

  • Inventory reservation qualification: Wms.Infrastructure.Tests/Inventory/InventoryReservationServiceTests.cs, Wms.Infrastructure/Database/Migrations/20260920171253_AddInventoryReservations.cs, Wms.Domain/Services/IInventoryReservationService.cs, and docs/modernization/INVENTORY_RESERVATIONS.md

  • Inventory operation qualification: Wms.Infrastructure.Tests/Services/StockMovementServiceTests.cs, Wms.Application/UseCases/Receiving/ReceiveItemUseCase.cs, Wms.Application/UseCases/Receiving/PutawayUseCase.cs, Wms.Application/UseCases/Picking/PickOrderUseCase.cs, Wms.Application/UseCases/Inventory/StockAdjustmentUseCase.cs, Wms.Infrastructure/Database/Migrations/20260920173950_AddMovementAdjustmentHistory.cs, and docs/modernization/INVENTORY_OPERATIONS.md

  • Inventory inquiry qualification: Wms.Infrastructure.Tests/Inventory/InventoryInquiryServiceTests.cs, Wms.Infrastructure/Inventory/InventoryInquiryService.cs, Wms.Application/Inventory/InventoryInquiryContracts.cs, Wms.ASP/Controllers/InventoryController.cs, Wms.ASP.Tests/AuthorizationFlowTests.cs, and docs/modernization/INVENTORY_INQUIRY.md

  • Replenishment policy qualification: Wms.Domain.Tests/Entities/InventoryReplenishmentPolicyTests.cs, Wms.Infrastructure.Tests/Inventory/InventoryReplenishmentPolicyServiceTests.cs, Wms.Infrastructure/Inventory/InventoryReplenishmentPolicyService.cs, Wms.Application/Inventory/ReplenishmentPolicyContracts.cs, Wms.ASP/Controllers/InventoryReplenishmentPoliciesController.cs, Wms.Infrastructure/Database/Migrations/20260920183616_AddInventoryReplenishmentPolicies.cs, and docs/modernization/REPLENISHMENT_POLICIES.md

  • Inventory reconciliation qualification: Wms.Infrastructure.Tests/Inventory/InventoryReconciliationServiceTests.cs, Wms.Infrastructure.Tests/Jobs/InventoryReconciliationJobTests.cs, Wms.Infrastructure/Inventory/InventoryReconciliationService.cs, Wms.Application/Inventory/InventoryReconciliationContracts.cs, Wms.ASP/Controllers/InventoryReconciliationController.cs, Wms.Application/Jobs/WmsJobContracts.cs, Wms.Infrastructure/Jobs/WmsOperationalJobHandlers.cs, and docs/modernization/INVENTORY_RECONCILIATION.md

  • Transfer qualification: Wms.Infrastructure.Tests/Transfers/TransferServiceTests.cs, Wms.Infrastructure/Transfers/TransferService.cs, Wms.Infrastructure/Database/Migrations/20260921061826_AddTransfersAndInternalMovements.cs, Wms.ASP/Controllers/TransfersController.cs, and docs/modernization/TRANSFERS.md