Compare commits

..
Author SHA1 Message Date
CircleCI d56cad2373 Bump version to 1.1.0-RC.13 [skip ci] 2026-10-15 21:34:38 +00:00
james.maesandClaude Opus 5.5 3ca35ddc51 Merge develop into release/1.1 for 1.1.0-RC.13 (#63 UI API 1.6.0 extension, QQQ RC.15)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 16:25:57 -05:00
james.maes a1ca3121e3 Bump version to 1.1.0-RC.12 [skip ci] 2026-10-15 14:33:56 -05:00
james.maes 6028a66ece Bump version to 1.1.0-RC.11 [skip ci] 2026-10-15 14:21:14 -05:00
james.maesandClaude Opus 5.5 ca8d776845 Merge develop into release/1.1 for 1.1.0-RC.11 (cluster caches, QQQ RC.14)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 14:17:06 -05:00
CircleCI 2e2501df31 Bump version to 1.1.0-RC.11 [skip ci] 2026-10-15 12:57:27 +00:00
github-actions[bot] eccffec4b9 Merge develop into release/1.1 for the next 1.1.0 RC 2026-10-15 12:52:38 +00:00
CircleCI ff8dba8cbb Bump version to 1.1.0-RC.10 [skip ci] 2026-10-15 03:22:02 +00:00
james.maesandClaude Opus 5.5 6e13c1505d Merge develop into release/1.1 for 1.1.0-RC.10 (#59 help bundle, #57 health, #60 bundle version)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 22:13:04 -05:00
CircleCI 035697f2cf Bump version to 1.1.0-RC.9 [skip ci] 2026-10-14 22:35:38 +00:00
james.maesandClaude Opus 5.5 4fd4a9423f Merge develop into release/1.1 for 1.1.0-RC.9 (#58 setup card, seeds, help)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 17:27:14 -05:00
CircleCI d8efbee58d Bump version to 1.1.0-RC.8 [skip ci] 2026-10-14 19:03:33 +00:00
james.maesandClaude Opus 5.5 12d85c9923 Merge develop into release/1.1 for 1.1.0-RC.8 (#40 scores/highlights, #56 suggest)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 13:54:50 -05:00
CircleCI 5265d203a9 Bump version to 1.1.0-RC.7 [skip ci] 2026-10-14 16:37:04 +00:00
james.maesandClaude Opus 5.5 3f5dfa6d67 Merge develop into release/1.1 for 1.1.0-RC.7 (#55 never index PII/PHI/secure fields)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 11:26:19 -05:00
CircleCI 20aab6aae5 Bump version to 1.1.0-RC.6 [skip ci] 2026-10-14 15:58:42 +00:00
james.maesandClaude Opus 5.5 1cd32841fd Merge develop into release/1.1 for 1.1.0-RC.6 (#54 realTimeErrorCount)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 10:51:21 -05:00
CircleCI 532a17c889 Bump version to 1.1.0-RC.5 [skip ci] 2026-10-14 12:31:17 +00:00
james.maesandClaude Opus 5.5 6ed75ffd6d Merge develop into release/1.1 for 1.1.0-RC.5 (#51 QuickSearchStatus API on QQQ RC.6)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 07:23:17 -05:00
CircleCI ad20b350e6 Bump version to 1.1.0-RC.4 [skip ci] 2026-10-12 21:18:41 +00:00
james.maesandClaude Opus 5.5 1298af3c57 Merge develop into release/1.1 for 1.1.0-RC.4
Data-driven Quick Search configuration (#47).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 16:14:17 -05:00
james.maesandClaude Opus 5.5 a8c0210643 ci: fix the GA tag filter YAML (no brackets in the flow sequence) [skip ci]
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 16:01:58 -05:00
james.maesandClaude Opus 5.5 9343143b33 ci: publish only GA tags on this release branch [skip ci]
RC tags no longer trigger a publish (/^v[0-9]+\.[0-9]+\.[0-9]+$/ only).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 15:57:03 -05:00
CircleCI 6d656369cf Bump version to 1.1.0-RC.3 [skip ci] 2026-10-12 20:34:00 +00:00
james.maesandClaude Opus 5.5 5c39fbb69e Merge develop into release/1.1 for 1.1.0-RC.3
Brings the record developer panel provider (#41) and the snake_case
table, PVS and permission names (#42).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 15:29:29 -05:00
CircleCI bd110b0814 Bump version to 1.1.0-RC.2 [skip ci] 2026-10-12 12:46:46 +00:00
james.maesandClaude Opus 5.5 16ee516447 Merge develop into release/1.1 for 1.1.0-RC.2
Brings search admin tooling (#35/#39), stuck REBUILDING recovery (#24/#25),
cron zone validation (#29/#31) and docs fixes to the 1.1 release line.
Owner approval 2026-10-12: "all approved and releases approved".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 07:42:40 -05:00
CircleCI 60e977cf95 Bump version to 1.1.0-RC.1 [skip ci] 2026-10-11 18:55:55 +00:00
5 changed files with 3 additions and 32 deletions

No files matched your search

-1
View File
@@ -11,7 +11,6 @@ All notable changes to this project are documented here. The format follows Keep
Requires QQQ 4.1.0-RC.15 or later (central health checks, help bundles, the spec-managed UI API extension contract, and `ClusterCaches` for multi-node deployments).
### Fixed
- Priming config records at startup, and recording diagnostic events, build their system session with the instance, so it has its all-access keys. Startup logged "QInstance was not supplied when creating a QSystemUserSession" once per node.
- Multi-node deployments: a Quick Search config change (an index row, its fields or the settings row, from the admin UI or a config process) now clears the cached config on every node, not only the node that made the change. The runtime's config cache (the config store snapshot and settings, and the per-table enabled flags) is registered with QQQ `ClusterCaches` as `qbit-quick-search.config`, and `QuickSearchRuntime.invalidateConfig()` publishes a cluster invalidation. The 30 s and 60 s TTLs remain as the safety net. `QuickSearchFieldRules`' warn-once table set is registered as node-local. `QuickSearchClusterCachesTest` audits the package for unregistered static caches and covers a remote invalidation.
- Indexing bookkeeping is no longer record-audited: the `quick_search_index` runtime fields written by basepull, full reindex and real-time indexing (status, last basepull time, document count, last run, real-time error count) and the settings row's priming outcome (`lastPrimedAt`, summary) are written with `omitDmlAudit`. On a production host these wrote about 470 "Record was Edited during process: Update search index" audit rows an hour. Admin edits to an index, its fields or the settings are still audited.
- Real-time indexing failures now increase the table's error count by the number of failed events. Successful basepulls and full reindexes reset the count. Counter update failures are logged without failing the source write.
+1 -1
View File
@@ -20,7 +20,7 @@
<properties>
<qbit.guardrails.enforce>true</qbit.guardrails.enforce>
<qbit.guardrails.strictUiApiRoutes>true</qbit.guardrails.strictUiApiRoutes>
<revision>1.1.0-SNAPSHOT</revision>
<revision>1.1.0-RC.13</revision>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
<opensearch.version>3.10.0</opensearch.version>
@@ -758,7 +758,7 @@ public class QuickSearchRuntime
{
return;
}
QContext.init(qInstance, new QSystemUserSession(qInstance));
QContext.init(qInstance, new QSystemUserSession());
try
{
configStore.tryPrime();
@@ -124,7 +124,7 @@ public class DiagnosticEventRecorder implements AutoCloseable
*******************************************************************************/
private void insert(QInstance qInstance, String tableName, QuickSearchDiagnosticEvent event)
{
QSession session = new QSystemUserSession(qInstance);
QSession session = new QSystemUserSession();
try
{
QContext.init(qInstance, session);
@@ -30,7 +30,6 @@ import com.kingsrook.qqq.backend.core.model.data.QRecord;
import com.kingsrook.qqq.backend.core.model.metadata.QInstance;
import com.kingsrook.qqq.backend.core.model.metadata.code.QCodeReference;
import com.kingsrook.qqq.backend.core.model.metadata.qbits.QBitMetaData;
import com.kingsrook.qqq.backend.core.model.session.QSystemUserSession;
import com.kingsrook.qbits.quicksearch.model.QuickSearchIndex;
import com.kingsrook.qbits.quicksearch.model.QuickSearchIndexField;
import com.kingsrook.qbits.quicksearch.publisher.IndexEventPublisher;
@@ -224,31 +223,4 @@ class QuickSearchRuntimeTest extends BaseQuickSearchTest
failFast.close();
}
/*******************************************************************************
** Priming at startup without a QContext builds the system session with the
** start instance (so it has the all-access keys), not from the empty context.
*******************************************************************************/
@Test
void primeConfigWithoutAContextGivesTheSystemSessionItsInstance()
{
QInstance qInstance = QContext.getQInstance();
QuickSearchRuntime runtime = new QuickSearchRuntime(new QuickSearchQBitConfig().withBackendName(TEST_BACKEND_NAME).withOpensearchHost("127.0.0.1").withOpensearchPort(1).withOpensearchIndexName("t"));
QCollectingLogger collectingLogger = QLogger.activateCollectingLoggerForClass(QSystemUserSession.class);
try
{
runtime.setStartInstance(qInstance);
QContext.clear();
runtime.primeConfig();
}
finally
{
QLogger.deactivateCollectingLoggerForClass(QSystemUserSession.class);
QContext.init(qInstance, new QSystemUserSession(qInstance));
runtime.close();
}
assertThat(collectingLogger.getCollectedMessages()).noneSatisfy(m -> assertThat(m.getMessage()).contains("QInstance was not supplied"));
}
}