21 Commits
Author SHA1 Message Date
James MaesandClaude Sonnet 5.5 9f07db4990 build: require the published QQQ 4.1 core (4.1.0-RC.21)
QRun-IO/ci-policy: ci / fork-guard (pull_request) Skipped
QRun-IO/ci-policy: native / fork-deny (pull_request) Skipped
QRun-IO/ci-policy: native / dotnet-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / Scoped workflow [workflow 60e5a80ed7a5a67877bfb3e129b1929c83464b6e] (pull_request) Successful in 9s
QRun-IO/ci-policy: ci / head-profile (pull_request) Skipped
QRun-IO/ci-policy: ci / repository-policy (pull_request) Skipped
QRun-IO/ci-policy: ci / application-template-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / gradle-1 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-core-2-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-3 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-3-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-4 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-frontend-browser-5 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-6-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-7 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-7-head (pull_request) Skipped
QRun-IO/ci-policy: ci / node-8 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-9 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-10 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-playwright-11 (pull_request) Skipped
QRun-IO/ci-policy: ci / repository-policy-12 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-13 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-14 (pull_request) Skipped
QRun-IO/ci-policy: ci / android-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / original-business (pull_request) Skipped
QRun-IO/ci-policy: ci / original-mcp (pull_request) Skipped
QRun-IO/ci-policy: ci / original-voyage (pull_request) Skipped
QRun-IO/ci-policy: ci / original-cli (pull_request) Skipped
QRun-IO/ci-policy: ci / not-enrolled (pull_request) Skipped
QRun-IO/ci-policy: ci / shared-pipeline (pull_request) Skipped
QRun-IO/ci-policy: native / native-result (pull_request) Successful in 11s
Shared Java Maven CI / secrets (push) Successful in 42s
QRun-IO/ci-policy: Shared Java Maven CI / secrets (pull_request) Successful in 30s
Shared Java Maven CI / gate (push) Canceled after 0s
Shared Java Maven CI / verify (push) Canceled after 0s
qrun-release / release (push) Canceled after 4m40s
qrun-release / postpublish (push) Canceled after 0s
QRun-IO/ci-policy: Shared Java Maven CI / verify (pull_request) Failing after 1m3s
QRun-IO/ci-policy: Shared Java Maven CI / gate (pull_request) Failing after 22s
QRun-IO/ci-policy: ci / java-maven-6 (pull_request) Failing after 42m36s
QRun-IO/ci-policy: ci / ci-result (pull_request) Failing after 11s
Import qqq-bom-pom 4.1.0-RC.21 unconditionally ahead of the parent's BOM
and port the test base to the 4.1 API: QInstance.setAuthentication no
longer exists, so BaseTest uses withInstanceDefaultAuthentication. The
development revision and the parent are unchanged.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-05 05:46:46 -06:00
james.maesandClaude Opus 5.5 758c39c727 feat: contingent possible values for scoped foreign keys
Dependent choices follow their parent selection on the same form (QQQ possibleValueSourceFilter with ${input.x}); filter builders still list everything.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 20:25:14 -05:00
james.maes 89b0d2340e test: push instruction coverage to 90%+ -- mvn verify passes
829 tests (up from 736). Added entity, process, widget, and
completion handler tests across billing, advanced, receiving,
widgets, and tasks packages. JaCoCo enforcement now functional.
2026-03-29 15:29:41 -05:00
james.maes 0a39638a7c fix: HIGH/MEDIUM audit remediation -- adapters, tests, error handling
Add CarrierAdapter/AccountingAdapter interfaces with default placeholders.
Update GenerateShippingLabelStep and SyncInvoiceToAccountingStep to use adapters.
Add carrierAdapter/accountingAdapter fields to WmsQBitConfig.
Remove explicit maven.compiler.source/target (let parent POM control).
Upgrade billing catch blocks from LOG.warn to LOG.error with exception.
Add 14 process step tests covering fulfillment, returns, advanced, billing.
2026-03-29 11:54:30 -05:00
james.maes 969ab7f139 fix: address all CRITICAL and HIGH audit findings
- RecordSecurityLock on warehouseId + clientId (NullValueBehavior.ALLOW)
- QPermissionRules on all tables (READ_INSERT_EDIT_DELETE) and processes (HAS_ACCESS)
- postProduceActions wired: security locks, permissions, all 11 widgets registered
- ALLOCATE/DEALLOCATE transaction types added (fixes PICK misuse in allocation)
- PickCompletionHandler atomic read-modify-write (fixes race condition)
- CompleteTaskStep duplicate imports cleaned
- JaCoCo prepare-agent + verify-phase check enforcement
- README rewritten to match actual API (46 tables, 47 processes, 11 widgets)
- @ChildTable annotations verified (all 11 present)
2026-03-29 11:29:29 -05:00
james.maesandClaude Opus 4.6 d701d34ce6 feat: Phase 6 billing + Phase 7 advanced -- all phases complete
Phase 6 (3PL Billing):
- GenerateInvoice process: queries unbilled activities, applies rate card rates,
  creates invoice with line items, marks activities as billed
- StorageSnapshot process: nightly snapshot of occupied pallet/bin positions,
  creates STORAGE billing activities per client
- SyncInvoiceToAccounting process: marks invoice as SENT with sentDate
- BillingDashboard widget: MULTI_STATISTICS showing revenue, unbilled counts,
  invoice status breakdown

Phase 7 (Advanced Features):
- WmsReplenishmentRule entity with min/max thresholds for pick face locations
- ReplenishCompletionHandler: moves inventory source->destination with
  REPLENISH transaction (perpetual inventory), registered in dispatcher
- ReplenishCheck process: evaluates rules, creates REPLENISH tasks for
  locations below min threshold
- AbcAnalysis process: classifies items A/B/C by order velocity
- ExpirationAlertCheck process: finds inventory expiring within threshold days
- LowStockAlertCheck process: finds items at or below reorder point
- AutoAssignTasks process: assigns PENDING tasks to available workers
- AutoAllocateAndRelease process: auto-allocates PENDING orders using FEFO

Tests (18 new, 717 total passing):
- Entity tests for all billing models and WmsReplenishmentRule
- Process MetaData registration tests for all Phase 6+7 processes
- ReplenishCompletionHandler unit tests (move + zero-qty no-op)
- BillingIntegrationTest: end-to-end rate card -> activities -> invoice -> sync

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 10:57:56 -05:00
james.maesandClaude Opus 4.6 8ac9301748 feat: Phase 4 shipping + Phase 5 returns/kitting -- all complete with tests
Phase 4 (Shipping):
- Shipping processes: GenerateShippingLabel, ManifestShipments, ShipConfirm
- LoadCompletionHandler: cartons->SHIPPED, order->SHIPPED, quantity_shipped, SHIP txn
- Registered LOAD handler in TaskCompletionDispatcher

Phase 5 (Returns + Kitting):
- Return entities: WmsReturnAuthorization, WmsReturnAuthorizationLine, WmsReturnReceipt, WmsReturnReceiptLine
- Return processes: CreateRMA, ReceiveReturn, InspectReturn, DispositionReturn
- ReturnPutawayCompletionHandler: inventory at destination, RETURN txn, RMA status update
- WmsKitWorkOrder entity, KitAssemblyProcess + KitAssemblyStep
- Registered RETURN_PUTAWAY handler in TaskCompletionDispatcher

Also fixes:
- WmsBillingRateCard section name collision (dates -> dateRange)
- WmsBillingRate missing producePossibleValueSource

All 699 tests pass.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 10:39:34 -05:00
james.maes 2e4a2dbd9f wip: Phase 4-7 partial -- shipping entities, billing entities (agents hit limit) 2026-03-29 10:07:20 -05:00
james.maesandClaude Opus 4.6 37612e0bb8 feat: Phase 3 fulfillment complete -- entities, processes, completion handlers, tests
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 08:19:42 -05:00
james.maes 58d9d053ad wip: Phase 3 fulfillment -- entities, enums, partial processes (agents hit limit) 2026-03-29 07:58:52 -05:00
james.maes 38b7e832f2 fix+test: Phase 2 entity fixes + receiving tests
Add producePossibleValueSource to WmsAsn and WmsPurchaseOrderLine.
Add receiptNumber generation to ReceiveAgainstPOStep and BlindReceiveStep.
Add BaseTest helpers and 69 new tests covering entities, processes,
completion handlers, and receiving integration flow.
2026-03-29 07:10:58 -05:00
james.maes 39ad96971c feat: Phase 2 receiving -- entities, processes, completion handlers (WIP)
7 receiving entities, 1 AsnStatus enum, 5 receiving processes,
PutawayTaskCompletionHandler, QcInspectTaskCompletionHandler.
Entities agent still finishing.
2026-03-28 19:25:30 -05:00
james.maesandClaude Opus 4.6 e271991e9c test: add process, completion handler, and widget tests for 90%+ coverage
Add 98 new tests across 22 test files covering:
- TaskCompletionDispatcher and handlers (Count, Move)
- All task process steps (GetNext, Complete, Pause, Resume, Reassign,
  Reprioritize, Cancel, Hold, Release, StaleTaskCheck)
- All inventory process steps (Adjustment, Move, Hold, Release,
  CycleCount, ApproveCountVariance)
- All 7 widget renderers (TaskQueueSummary, InventorySummary,
  WorkerProductivity, ActiveWorkers, TaskAging, LowStockAlerts,
  InventoryAccuracy)
- MetaDataProducer validation for all 16 process producers

Total: 516 passing tests, 96% instruction coverage (up from 60.7%).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 19:00:17 -05:00
james.maes b1de29a4fd fix: resolve entity annotation and accessor errors causing 150 test failures 2026-03-28 18:16:31 -05:00
james.maes ee0d525e0d fix: compile errors resolved, test runtime errors remaining
418 tests compile, 150 fail with ChildJoin table resolution error.
Root cause: @ChildTable annotations referencing entities with null TABLE_NAME.
2026-03-28 17:57:49 -05:00
james.maes 78401ea33d fix: resolve all compilation errors
Fixed MetaDataProducerInterface import path, QFieldSection.Tier -> Tier,
getValueBigDecimal -> ValueUtils.getValueAsBigDecimal on process inputs.
2026-03-28 17:54:34 -05:00
james.maes 29eac2a8ab feat: remaining entity tests + process files (tests agent still running)
Adds WmsTask, TaskTypeConfig, CycleCount, CycleCountLine tests.
Some inventory process files from earlier commit overlap resolved.
2026-03-28 15:45:03 -05:00
james.maes 3cdadeab85 feat: Phase 1 widgets + partial tests (114 files total)
15 dashboard widgets (7 producers + 7 renderers + dashboard app).
Entity tests and enum tests in progress from parallel agent.
2026-03-28 15:40:12 -05:00
james.maes f75934935b feat: Phase 1 scaffold complete -- 57 Java files
38 enums (PossibleValueEnum<Integer>), 16 entities (QRecordEntity),
WmsQBitConfig, WmsQBitProducer, BaseTest with helpers.
Core entities: Warehouse, Zone, Location, Item, Client, Vendor,
Inventory, InventoryTransaction, Task, CycleCount, LicensePlate.
JaCoCo enforcing 90% instruction + 90% class coverage.
2026-03-28 15:27:59 -05:00
james.maes 86c6735093 wip: Phase 1 scaffold -- core entities in progress (47 files) 2026-03-28 15:22:19 -05:00
james.maes 82bc4b7060 wip: Phase 1 scaffold -- pom.xml, core enums, initial entities (agent in progress) 2026-03-28 15:18:01 -05:00