feat: v1 clean-room rewrite of Quick Search QBit #2

Merged
KofTwentyTwo merged 15 commits from feature/v1-clean-room-rewrite into develop 2026-03-29 12:26:41 +00:00
15 Commits
Author SHA1 Message Date
james.maes 9d38170afe chore: add standard QBit repo files and SDLC setup
Add CONTRIBUTING.md, CODE_OF_CONDUCT.md, CODE_STYLE.md, SECURITY.md.
Copy checkstyle config from qbit-webhooks. Switch LICENSE to AGPL v3.0
to match QRun-IO org standard. Update .gitignore to standard template.
Rewrite README following qbit-crm pattern with badges and full docs.
Set version to 0.1.0-SNAPSHOT for develop branch.
2026-03-29 07:22:24 -05:00
james.maes b593401a75 feat: add end-to-end integration test with Testcontainers
OpenSearch integration test with 5 test cases: index creation, full
reindex, search results, pagination, no-results. Gracefully skipped
when Docker is unavailable. Bumped Testcontainers to 1.21.0.
2026-03-29 07:10:01 -05:00
james.maesandClaude Opus 4.6 f1b769467d feat: add end-to-end integration test with Testcontainers
Adds OpenSearchIntegrationTest.java which uses Testcontainers to spin up
a real OpenSearch 2.11.0 instance and validates full reindex, search results,
pagination, and no-results behavior end-to-end. Tests are skipped gracefully
when Docker is unavailable (disabledWithoutDocker = true).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 07:01:19 -05:00
james.maes c811986654 docs: rewrite README and update CLAUDE.md for v1 architecture 2026-03-28 19:25:23 -05:00
james.maes 5a2b2aa4f1 feat: add QuickSearchQBitProducer with annotation discovery and customizer registration 2026-03-28 19:08:38 -05:00
james.maes 8d74e8640b feat: complete Layer 4 - basepull and full reindex process steps
Add BasepullIndexStep with batching, lazy index creation, and
isDueForBasepull logic. Add FullReindexStep with per-table reindex
and delete-before-reindex. 161 tests passing.
2026-03-28 19:00:18 -05:00
james.maesandClaude Sonnet 4.6 c0c2caedf6 feat: add AbstractIndexingStep base class and BaseQuickSearchTest
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-28 18:47:09 -05:00
james.maes 2bbafc9acd feat: complete Layer 3 - customizers and search action
Add post-insert/update/delete customizers with no-arg constructors.
Add QuickSearchAction with pagination, scoring, and highlights.
Fixed customizer method signatures to match TableCustomizerInterface.
144 tests passing.
2026-03-28 18:36:27 -05:00
james.maes c022cae09e feat: complete Layer 2 - OpenSearch client and publisher
Add QuickSearchOpenSearchClient with batching, explicit mappings,
edge-ngram analyzer, and proper lifecycle. Add IndexEventPublisher
interface and SynchronousIndexEventPublisher. 110 tests passing.
2026-03-28 17:54:28 -05:00
james.maes 6d914ec9f4 feat: add OpenSearch client with batching, mappings, and proper lifecycle
Bump jackson-datatype-jsr310 to 2.21.0 to align with jackson-databind from BOM.
2026-03-28 17:54:26 -05:00
james.maes 0df6603d22 feat: complete Layer 1 foundation classes
Add annotations, DTOs, entity models, config/context, and IndexingUtils.
89 tests passing. All Layer 1 tasks complete.
2026-03-28 15:24:30 -05:00
james.maes 9041ef7a77 feat: add QuickSearchable and QuickSearchField annotations 2026-03-28 15:18:10 -05:00
james.maes 24c0da4f63 chore: clean slate for v1 clean-room rewrite
Remove all existing Java source and test files. Remove template docs.
Remove unused javalin dependency. Raise JaCoCo thresholds to 70%/90%.
2026-03-28 15:14:30 -05:00
james.maes 67816b8aa3 chore: merge main into develop to reconcile branches 2026-03-28 15:13:16 -05:00
james.maes 23f4305f1b feat(tests): add tests for Step and Producer classes
- Add FullReindexStepTest with 7 tests
- Add BasepullIndexStepTest with 8 tests
- Add QuickSearchQBitProducerTest with 12 tests
- Update CLAUDE.md with project status
- Add docs/TODO.md and docs/SESSION-STATE.md
2026-01-09 14:54:31 -06:00