james.maes and Codex
75e8a5e10e
ci: centralize QBit source scanning
...
Co-Authored-By: Codex <noreply@openai.com >
2026-10-21 10:15:46 -05:00
james.maes and Codex
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.maes and Codex
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.maes and Codex
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.maes and Codex
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.maes and Codex
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.maes and Claude 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.maes and Claude 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.maes and Claude 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.maes and Claude 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 Maes and Claude 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.maes and Claude 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.maes and Claude 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.maes and Claude 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.maes and Claude 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.maes and Claude 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.maes and Claude 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