Commit Graph
43 Commits
Author SHA1 Message Date
james.maesandCodex 75e8a5e10e ci: centralize QBit source scanning
Co-Authored-By: Codex <noreply@openai.com>
2026-10-21 10:15:46 -05:00
james.maesandCodex 0a91e27ce8 ci: adopt central orb 0.7.12 and stable gates (#11)
Co-authored-by: Codex <noreply@openai.com>
2026-10-21 08:51:26 -05:00
james.maesandCodex df1608eb6f ci: centralize rc release completion in qqq orb (#10)
Co-authored-by: Codex <noreply@openai.com>
2026-10-21 02:23:42 -05:00
james.maesandCodex 72430fd030 ci: publish GA artifacts only from stable tags (#9)
Co-authored-by: Codex <noreply@openai.com>
2026-10-21 01:11:03 -05:00
james.maesandCodex 6ed2716042 ci: adopt shared orb 0.7.11 (#8)
Co-authored-by: Codex <noreply@openai.com>
2026-10-21 00:57:26 -05:00
CircleCI 5c3d4e6e7f Bump version to 0.2.0-SNAPSHOT [skip ci] 2026-10-21 00:33:02 +00:00
james.maes cd64b09ed9 Merge pull request #7 from QRun-IO/feature/central-ci
ci: adopt shared QQQ orb 0.7.4
2026-10-20 19:30:31 -05:00
james.maesandCodex 40f45596df ci: adopt central QQQ orb 0.7.4
Co-Authored-By: Codex <noreply@openai.com>
2026-10-20 19:26:35 -05:00
james.maes 82907e0cd2 Merge pull request #6 from QRun-IO/ci/release-rc-secrets-inherit
ci(release-rc): pass secrets so the shared workflow can sign the RC tag
2026-10-16 08:04:28 -05:00
james.maesandClaude Opus 5.5 fb2496aac5 ci(release-rc): pass secrets to the shared workflow so it can sign the RC tag
QRun-IO/.github#2 adds a tag-and-release job that signs vX with the
QRUN_TAG_SIGNING_KEY secret after Maven Central confirms the artifact.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 16:22:38 -05:00
james.maes a9b7becc4b Merge pull request #5 from QRun-IO/feature/contingent-possible-values
feat: contingent possible values (warehouse, client and item scoping)
2026-10-14 07:09:09 -05: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 bd4f0cda93 Merge pull request #4 from QRun-IO/feature/release-rc-automation
ci: automate RC releases; hotfix/* pushes no longer publish
2026-10-13 15:01:08 -05:00
james.maesandClaude Opus 5.5 1e96e15d3e ci: automate RC releases; hotfix/* pushes no longer publish
Removes publish_hotfix_release: a hotfix/* branch push published a GA
release to Maven Central with no tag or review (QRun-IO/qbit-cdn#12,
QRun-IO/qqq#1121). hotfix/* branches now run test_only; a hotfix
release publishes from a reviewed vX.Y.Z tag through publish_release.
Adds .github/workflows/release-rc.yml (reusable QRun-IO/.github
qbit-release-rc): a manual dispatch, or merging a develop PR labelled
release:rc, merges develop into the release line and the release/* push
runs the existing CircleCI RC publish.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 14:37:41 -05:00
james.maes 335e36fad5 Merge pull request #3 from QRun-IO/feature/ga-only-release-tags
ci: publish only GA tags (vX.Y.Z), never RC tags
2026-10-12 16:08:09 -05:00
james.maesandClaude Opus 5.5 761d2364d7 ci: publish only GA tags (vX.Y.Z), never RC tags
An RC tag matched /v.*/ and the orb republished it as the next RC.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 16:00:56 -05:00
James MaesandClaude Opus 4.8 7a36c6120e docs: add CLAUDE.md pointer to QQQ knowledge-base dossier + hub
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-12 05:31:30 -05:00
james.maesandClaude Opus 4.7 f8c2551489 chore: add CODEOWNERS pointing to sole maintainer
Architecture audit pass 2026-05-21. Minimal CODEOWNERS file
making the implicit ownership explicit.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-21 17:14:03 -05:00
james.maesandClaude Opus 4.6 f9cfd677d1 docs: comprehensive README rewrite with usage guides, config reference, task walkthrough
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 15:41:36 -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
CircleCI 1448852cb7 Bump version to 0.1.0 [skip ci] 2026-03-29 12:47:00 +00:00
james.maes 9dded9b687 ci: trigger rebuild after adding v0.1.0 tag 2026-03-29 07:45:51 -05:00
james.maes 96a796c19f fix: pin h2 version to 2.2.220 for test compatibility 2026-03-29 07:26:29 -05:00
james.maes 24c17dadd8 docs: add comprehensive README following qbit-crm pattern 2026-03-29 07:20:39 -05:00
james.maes 1054f65fde chore: add standard QBit repo files and CircleCI config
.gitignore, CONTRIBUTING.md, CODE_OF_CONDUCT.md, CODE_STYLE.md,
SECURITY.md, LICENSE (AGPL v3), checkstyle/ (from qbit-webhooks),
.circleci/config.yml (qqq-orb workflows), pom.xml updated to use
qbit-build-parent 1.4.0 with revision property. Removed target/
from tracking.
2026-03-29 07:17:07 -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