75 Commits
Author SHA1 Message Date
james.maes 46afa2e533 Merge pull request 'ci: build on the shared ci-workflows container workflow' (#47) from ci/ci-workflows into develop
container / build (push) Successful in 7m6s
build / container (push) Successful in 7m6s
2026-11-07 20:21:12 +00:00
James MaesandClaude Opus 5.5 0740fab027 build(image): apply Ubuntu security updates in the runtime image
container / build (push) Successful in 6m57s
build / container (push) Successful in 6m57s
The eclipse-temurin:21-jre-jammy base ships apt 2.4.14 (HIGH
CVE-2026-109518, fixed in 2.4.15ubuntu0.1), which the CI Trivy gate
blocks. Upgrade installed packages when building the image.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 14:13:31 -06:00
James MaesandClaude Opus 5.5 30820a6d4f ci: keep the script tests green on Gitea CI
container / build (push) Failing after 7m28s
build / container (push) Failing after 7m28s
The CI-contract test now checks the Gitea workflow smokes the Maven
final jar (the orb .qqq-ci.yml is gone). The release-bundle test renders
compose.yaml with docker compose config, so CI installs a checksum-pinned
Compose binary behind a docker compose-only shim.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 14:05:00 -06:00
James MaesandClaude Opus 5.5 22bb23613f ci: one command per line for the Python install
container / build (push) Failing after 26s
build / container (push) Failing after 26s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 14:03:38 -06:00
James MaesandClaude Opus 5.5 0e80a5e736 ci: install checksum-pinned Python for the smoke scripts
container / build (push) Failing after 24s
build / container (push) Failing after 24s
The job image runs unprivileged without python3, so apt is unavailable.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 14:03:07 -06:00
James MaesandClaude Opus 5.5 2b04d936cf ci: build on the shared ci-workflows container workflow
container / build (push) Failing after 16s
build / container (push) Failing after 16s
Replace the retired CircleCI qqq-orb pipeline and the GitHub release
workflow (qqq-orb caller) with KofTwentyTwo/ci-workflows container.yaml@v1.
Every push runs the script unit tests, mvn verify and the packaged core
HTTP smoke check, then builds and Trivy-scans the image; develop pushes
git.kof22.com/qrun-io/qqq-all (ci-<sha>-run-<n> and develop).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 14:01:29 -06:00
james.maes 23b67c51f7 Merge pull request 'ci: remove workflows that call the retired CI system' (#46) from retire/old-ci into develop 2026-11-07 13:29:05 +00:00
james.maesandClaude Opus 5.5 a710d56e8c ci: remove workflows that call the retired CI system
Owner decision 2026-11-07: only KofTwentyTwo/ci-workflows remains.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 13:29:03 +00:00
forge-recovery 006dbb4600 ci: enroll original aggregate container lifecycle
Original QQQ all container lifecycle / release (push) Skipped
QRun-IO/ci-policy: ci / fork-guard (push) Skipped
QRun-IO/ci-policy: ci / application-template-0 (push) Skipped
QRun-IO/ci-policy: ci / gradle-1 (push) Skipped
QRun-IO/ci-policy: ci / java-docker-3 (push) Skipped
QRun-IO/ci-policy: ci / java-docker-4 (push) Skipped
QRun-IO/ci-policy: ci / java-frontend-browser-5 (push) Skipped
QRun-IO/ci-policy: ci / java-maven-6 (push) Skipped
QRun-IO/ci-policy: ci / java-maven-7 (push) Skipped
QRun-IO/ci-policy: ci / node-8 (push) Skipped
QRun-IO/ci-policy: ci / node-9 (push) Skipped
QRun-IO/ci-policy: ci / node-10 (push) Skipped
QRun-IO/ci-policy: ci / node-playwright-11 (push) Skipped
QRun-IO/ci-policy: ci / repository-policy-12 (push) Skipped
QRun-IO/ci-policy: ci / source-config-13 (push) Skipped
QRun-IO/ci-policy: ci / source-config-14 (push) Skipped
QRun-IO/ci-policy: ci / android-0 (push) Skipped
QRun-IO/ci-policy: ci / original-business (push) Skipped
QRun-IO/ci-policy: ci / original-mcp (push) Skipped
QRun-IO/ci-policy: ci / original-voyage (push) Skipped
QRun-IO/ci-policy: ci / not-enrolled (push) Skipped
QRun-IO/ci-policy: native / fork-deny (push) Skipped
QRun-IO/ci-policy: native / dotnet-0 (push) Skipped
QRun-IO/ci-policy: native / native-result (push) Successful in 5s
QRun-IO/ci-policy: ci / head-profile (push) Successful in 11s
QRun-IO/ci-policy: ci / repository-policy (push) Skipped
QRun-IO/ci-policy: ci / java-core-2-head (push) Skipped
QRun-IO/ci-policy: ci / java-docker-3-head (push) Skipped
QRun-IO/ci-policy: ci / java-maven-6-head (push) Skipped
Shared QQQ all CI (original verify-and-smoke and develop image capture) / build-and-test (push) Successful in 4m19s
QRun-IO/ci-policy: Shared QQQ all CI (original verify-and-smoke and develop image capture) / build-and-test (push) Successful in 4m9s
Shared QQQ all CI (original verify-and-smoke and develop image capture) / core (push) Successful in 30s
QRun-IO/ci-policy: Shared QQQ all CI (original verify-and-smoke and develop image capture) / core (push) Successful in 32s
Shared QQQ all CI (original verify-and-smoke and develop image capture) / full (push) Successful in 8m25s
QRun-IO/ci-policy: Shared QQQ all CI (original verify-and-smoke and develop image capture) / full (push) Successful in 8m20s
Shared QQQ all CI (original verify-and-smoke and develop image capture) / Develop Container (build and retain the OCI image for the trusted publisher) (push) Successful in 2m34s
Shared QQQ all CI (original verify-and-smoke and develop image capture) / gate (push) Successful in 9s
Original QQQ all container lifecycle / develop (push) Successful in 15m34s
QRun-IO/ci-policy: Shared QQQ all CI (original verify-and-smoke and develop image capture) / Develop Container (build and retain the OCI image for the trusted publisher) (push) Successful in 3m19s
QRun-IO/ci-policy: Shared QQQ all CI (original verify-and-smoke and develop image capture) / gate (push) Successful in 9s
QRun-IO/ci-policy: ci / java-maven-7-head (push) Successful in 16m3s
QRun-IO/ci-policy: ci / ci-result (push) Successful in 3s
2026-11-04 04:27:58 +00:00
forge-recoveryandCodex 7a39277072 ci: enroll original aggregate container lifecycle
QRun-IO/ci-policy: ci / fork-guard (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-docker-3 (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 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-7 (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 / not-enrolled (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: native / native-result (pull_request) Successful in 4s
QRun-IO/ci-policy: ci / head-profile (pull_request) Successful in 12s
QRun-IO/ci-policy: ci / repository-policy (pull_request) Skipped
QRun-IO/ci-policy: ci / java-core-2-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-3-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-6-head (pull_request) Skipped
QRun-IO/ci-policy: Shared QQQ all CI (original verify-and-smoke and develop image capture) / build-and-test (pull_request) Successful in 4m24s
QRun-IO/ci-policy: Shared QQQ all CI (original verify-and-smoke and develop image capture) / core (pull_request) Successful in 28s
QRun-IO/ci-policy: Shared QQQ all CI (original verify-and-smoke and develop image capture) / full (pull_request) Successful in 7m39s
QRun-IO/ci-policy: Shared QQQ all CI (original verify-and-smoke and develop image capture) / Develop Container (build and retain the OCI image for the trusted publisher) (pull_request) Skipped
QRun-IO/ci-policy: Shared QQQ all CI (original verify-and-smoke and develop image capture) / gate (pull_request) Successful in 8s
QRun-IO/ci-policy: ci / java-maven-7-head (pull_request) Successful in 12m18s
QRun-IO/ci-policy: ci / ci-result (pull_request) Successful in 4s
Co-Authored-By: Codex <noreply@openai.com>
2026-11-04 04:09:57 +00:00
james.maesandClaude Fable 5.1 778a5d904c Merge chore/drop-guarded-column-stats: core guards column stats (#1367); full-profile reportStorage SFTP details
QRun-IO/ci-policy: Shared Java Maven CI / gate (push) Failing after 9s
QRun-IO/ci-policy: ci / java-maven-2 (push) Failing after 18m48s
QRun-IO/ci-policy: ci / ci-result (push) Failing after 5s
QRun-IO/ci-policy: ci / fork-guard (push) Skipped
QRun-IO/ci-policy: ci / gradle-0 (push) Skipped
QRun-IO/ci-policy: ci / java-docker-1 (push) Skipped
QRun-IO/ci-policy: ci / node-3 (push) Skipped
QRun-IO/ci-policy: ci / node-4 (push) Skipped
QRun-IO/ci-policy: ci / source-config-5 (push) Skipped
QRun-IO/ci-policy: ci / not-enrolled (push) Skipped
QRun-IO/ci-policy: Shared Java Maven CI / verify (push) Failing after 2m28s
QRun-IO/ci-policy: Shared Java Maven CI / secrets (push) Successful in 1m12s
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-11-01 17:35:15 -06:00
james.maesandClaude Fable 5.1 a2200d736e chore(enterprise): drop GuardedColumnStatsStep now that core guards column stats
QRun-IO/qqq#1367 is fixed in core (2ac4fda45): ColumnStatsStep always
refuses statistics for a field the caller cannot read in full and tags
its result records with the analysed table. The host's guarded subclass
and the code swap in EnterpriseFeatures are gone; the enterprise profile
keeps registering the plain columnStats process.

GuardedColumnStatsStepTest becomes EnterpriseColumnStatsAccessTest and
now proves the same through core's step: a field behind a field security
lock is refused without the key, returns statistics (tagged with the
table) with it, and an unrestricted field is allowed.

The same core sweep made filesystem tables without backend details fail
validation (qqq#1364), which broke the full profile: its reportStorage on
the SFTP backend had none. It now gets one-file-per-record SFTP details
(reportStorage/, reference + contents), as the enterprise profile's local
files backend already did.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-11-01 17:32:56 -06:00
james.maesandClaude Fable 5.1 13408c3cfa Merge fix/enterprise-custom-fields-403: admin can read and manage Custom Fields
QRun-IO/ci-policy: ci / fork-guard (push) Skipped
QRun-IO/ci-policy: ci / gradle-0 (push) Skipped
QRun-IO/ci-policy: ci / java-docker-1 (push) Skipped
QRun-IO/ci-policy: ci / node-3 (push) Skipped
QRun-IO/ci-policy: ci / node-4 (push) Skipped
QRun-IO/ci-policy: ci / source-config-5 (push) Skipped
QRun-IO/ci-policy: ci / not-enrolled (push) Skipped
QRun-IO/ci-policy: Shared Java Maven CI / gate (push) Canceled after 0s
QRun-IO/ci-policy: Shared Java Maven CI / secrets (push) Canceled after 0s
QRun-IO/ci-policy: Shared Java Maven CI / verify (push) Canceled after 0s
QRun-IO/ci-policy: ci / java-maven-2 (push) Canceled after 0s
QRun-IO/ci-policy: ci / ci-result (push) Canceled after 0s
Fixes #47. The enterprise session gets the collaboration permissions that FieldSecurity checks by name, and keeps the frontend user value on customized sessions. 37 tests green.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-11-01 17:27:22 -06:00
james.maesandClaude Fable 5.1 1c4a8cc115 fix(enterprise): keep the frontend user value on customized sessions
39c28a4 moved the enterprise grants into DemoUsers.grantEnterpriseAccess
and dropped the session.withValueForFrontend("user", …) line between
the two enterprise blocks, so manageSession answered {} and clients
showed no signed-in user name. Restored, with a test that a customized
session still carries the user for the frontend.

Refs #47

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-11-01 16:35:47 -06:00
james.maesandClaude Fable 5.1 39c28a4e00 fix(enterprise): let the admin read and manage collaboration Custom Fields
The Custom Fields table (collaboration_field_definition) answered 403
"This needs collaboration.view." to the all-access admin. Its permission
rules are NOT_PROTECTED with qbit-collaboration's FieldSecurity checker,
which tests collaboration.view / collaboration.admin (and
collaboration.fields.manage for writes and processes) by literal name, so
PermissionsHelper.getAllAvailablePermissionNames never lists them; the
same pattern as the jobs and assistant names the profile already grants.

The enterprise session now also holds collaboration.view, .admin,
.fields.manage and .tags.manage. The grants moved into
DemoUsers.grantEnterpriseAccess so EnterpriseAccessTest can run the real
FieldSecurity checker against them: refused without, read and insert
allowed with.

GuardedColumnStatsStep gets a TODO to delete it once QRun-IO/qqq#1367
lands in core.

Fixes #47

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-11-01 16:26:11 -06:00
james.maesandClaude Fable 5.1 8015b8b090 feat(enterprise): store sessions for mock sign-ins (#52)
QRun-IO/ci-policy: ci / fork-guard (push) Skipped
QRun-IO/ci-policy: ci / gradle-0 (push) Skipped
QRun-IO/ci-policy: ci / java-docker-1 (push) Skipped
QRun-IO/ci-policy: ci / node-3 (push) Skipped
QRun-IO/ci-policy: ci / node-4 (push) Skipped
QRun-IO/ci-policy: ci / source-config-5 (push) Skipped
QRun-IO/ci-policy: ci / not-enrolled (push) Skipped
QRun-IO/ci-policy: Shared Java Maven CI / gate (push) Canceled after 0s
QRun-IO/ci-policy: Shared Java Maven CI / secrets (push) Canceled after 0s
QRun-IO/ci-policy: Shared Java Maven CI / verify (push) Canceled after 0s
QRun-IO/ci-policy: ci / java-maven-2 (push) Canceled after 0s
QRun-IO/ci-policy: ci / ci-result (push) Canceled after 0s
Only the OAuth2 module wrote to the session store; mock sign-in built a fresh session per request and stored nothing, so the terminal clients' Online count could not see signed-in terminals. The profile's mock session customizer now records each session uuid once through qbit-session-store (identity only, expiry) and touches it at most once a minute.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-11-01 13:34:49 -06:00
james.maesandClaude Fable 5.1 2c8abf6a64 feat(enterprise): the assistant answers, with Claude when keyed or a local Ollama (#51)
QRun-IO/ci-policy: ci / fork-guard (push) Skipped
QRun-IO/ci-policy: ci / gradle-0 (push) Skipped
QRun-IO/ci-policy: ci / java-docker-1 (push) Skipped
QRun-IO/ci-policy: ci / node-3 (push) Skipped
QRun-IO/ci-policy: ci / node-4 (push) Skipped
QRun-IO/ci-policy: ci / source-config-5 (push) Skipped
QRun-IO/ci-policy: ci / not-enrolled (push) Skipped
CodeQL / analyze (push) Canceled after 0s
QBit CodeQL / Analyze branch source (push) Canceled after 0s
QRun-IO/ci-policy: Shared Java Maven CI / verify (push) Failing after 2m27s
QRun-IO/ci-policy: Shared Java Maven CI / secrets (push) Successful in 13s
QRun-IO/ci-policy: Shared Java Maven CI / gate (push) Failing after 12s
QRun-IO/ci-policy: ci / java-maven-2 (push) Failing after 15m16s
QRun-IO/ci-policy: ci / ci-result (push) Failing after 5s
EnterpriseAssistant registers both provider types and keeps two provider rows, Anthropic (Claude) when ANTHROPIC_API_KEY is set (referenced by env-var name, never stored) else Local Ollama when it answers on 127.0.0.1:11434, else NOT_CONFIGURED; enterprise sessions hold assistant.hasAccess and assistant.admin; timeouts allow a local 70B model.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-11-01 11:30:09 -06:00
james.maesandClaude Fable 5.1 fb70b5f7c2 feat(enterprise): quick search covers every demo and sample table (#50)
Registers every demo table and every visible sample table with a record label through qbit-quick-search 1.1's own registration and self-priming (STRING fields only: label fields plus the obvious text fields), labels unlabelled tables by name, and shortens the index sync to 60 s so new tables build at startup. 17 tables, 57 documents on the enterprise profile; 'Illinois' and 'ada' both resolve.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-11-01 10:48:41 -06:00
james.maesandClaude Fable 5.1 d91d996289 feat(enterprise): column statistics, field audits, object storage on MinIO, guarded columnStats (#49)
Turns QUERY_STATS on for backends that can aggregate (H2, SQLite, the sample's in-memory H2, memory), registers the columnStats process behind a GuardedColumnStatsStep that refuses fields the caller cannot read in full and tags results with the analysed table so field-access rules apply (core follow-up: QRun-IO/qqq#1367), adds field-level audits to orderLine and the sample tables, and installs the Object Storage QBit on MinIO when S3_ENDPOINT is set so collaboration attachments work.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-11-01 07:01:13 -06:00
james.maesandClaude Fable 5.1 74837f5db2 feat: enterprise profile with the full QBit set for terminal-client testing (#48)
Adds QQQ_ALL_PROFILE=enterprise composing the QBit set an enterprise rollout would run (jobs, collaboration, alerts, data-analysis, db-performance, sql-workbench, help, release-notes, qa-capture, secured-data, email, slack, cluster, cdn, backups, file-gateway, session-store, worm-audit, assistant, quick-search 1.1.0, redis realtime, the core profile's seven QBits, the sample app, core audits/scripts/saved views/reports/bulk-load/sharing/query stats/durable jobs/health) with MOCK auth and an in-memory Quartz scheduler. Fixes found by the sweep: health advertised, calculateOrderTotal input form, record labels, mutable health indicators, quoted H2 reserved words, webhook test-event ordering workaround, jobs-permission workaround, quick-search admin permission for the full profile's smoke.

Closes #44, closes #45, closes #46. Refs #47, QRun-IO/qqq#1361, QRun-IO/qqq#1362.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-11-01 06:21:34 -06:00
james.maesandCodex 0252c6811b ci: adopt managed orb 0.8 patch track (#40)
Co-authored-by: Codex <noreply@openai.com>
2026-10-21 16:04:22 -05:00
james.maesandCodex 73bdcc1a6f ci: adopt shared orb 0.7.17 (#39)
Co-authored-by: Codex <noreply@openai.com>
2026-10-21 14:25:53 -05:00
james.maesandCodex d937b19050 ci: use central source scanning (#37)
Co-authored-by: Codex <noreply@openai.com>
2026-10-21 11:52:26 -05:00
james.maesandCodex 2b75c6beb9 ci: adopt central orb 0.7.12 and stable gates (#36)
Co-authored-by: Codex <noreply@openai.com>
2026-10-21 03:36:27 -05:00
james.maesandCodex 12ae927c33 ci: align canonical shared orb workers (#35)
Co-authored-by: Codex <noreply@openai.com>
2026-10-21 01:33:08 -05:00
james.maesandCodex 6bcc28e332 ci: adopt shared orb 0.7.11 (#34)
Co-authored-by: Codex <noreply@openai.com>
2026-10-21 00:58:52 -05:00
james.maesandCodex cc89f73680 ci: centralize All builds smoke checks and releases (#33)
* ci: centralize All builds smoke checks and releases

Use orb 0.7.9 and its immutable shared release worker. Build once, preserve core/full verification and conditional public GHCR delivery, and consume public Circle provenance without exporting a token.

Co-Authored-By: Codex <noreply@openai.com>

* fix: use shared SDK v2 S3 support for MinIO

Replace obsolete SDK v1 client overrides with upstream endpoint and path-style metadata. Preserve endpoint coverage for every filesystem action and local HTTP listing/write assertions.

Co-Authored-By: Codex <noreply@openai.com>

* test: verify the HttpOnly OIDC session contract

Current QQQ omits the session UUID from JSON for HttpOnly cookies. Require the nonempty HttpOnly cookie and reject exposed UUIDs, retaining authenticated backend and permission checks.

Co-Authored-By: Codex <noreply@openai.com>

* fix: accept leading-dash Mongo credentials in Compose

Use explicit username/password option assignments in health and replica-set initialization. Reproduced the original failure and verified authenticated ping with the corrected arguments against mongo:7 and a leading-dash fixture password.

Co-Authored-By: Codex <noreply@openai.com>

---------

Co-authored-by: Codex <noreply@openai.com>
2026-10-20 21:56:33 -05:00
james.maes e35f1f6b99 Merge pull request #28 from QRun-IO/feature/GH-992-smoke-diagnostics
ci(GH-992): retain sanitized full smoke diagnostics
2026-10-01 21:29:33 -05:00
james.maes cedc3023c8 ci(GH-992): identify failures in sequential image pulls
Retain each selected service, image and sanitized pull result before full startup. Refs QRun-IO/qqq#992.
2026-10-01 21:22:00 -05:00
james.maes 281d1bdb07 ci(GH-992): retain sanitized full smoke diagnostics
Record startup, service and artifact identities before private cleanup. Refs QRun-IO/qqq#992; original hosted failure remains unexplained.
2026-10-01 20:57:16 -05:00
james.maes 9a56ec64e2 Merge pull request #27 from QRun-IO/feature/GH-921-qqq-all-rc-path
ci: prepare exact RC1 distribution delivery
2026-10-01 20:24:39 -05:00
james.maes 308830a06a fix: preserve SFTP target in release Compose bundle
Use long volume syntax for Compose 2.38.2 rendering and assert that the variable survives. Refs QRun-IO/qqq#921.
2026-10-01 20:18:36 -05:00
james.maes 1a8d393d03 ci: prepare exact RC1 distribution delivery
Extend the existing release gates and ship an image Compose bundle. Refs QRun-IO/qqq#921.
2026-10-01 20:12:51 -05:00
james.maes d709359317 Merge pull request #26 from QRun-IO/feature/GH-10-next-rc8
feat: pin Next UI RC8 in the stack BOM (#10)
2026-10-01 07:08:27 -05:00
james.maes aafc96a839 feat(GH-10): pin public Next UI RC8 in the stack BOM 2026-10-01 06:58:05 -05:00
james.maes 59e606418c Merge pull request #25 from QRun-IO/feature/GH-10-packaged-notices
fix(packaging): include project notices in JAR and image (#24)
2026-10-01 00:01:21 -05:00
james.maes 6d981933b9 fix(packaging): include project notices in JAR and image (#24) 2026-09-30 23:56:07 -05:00
james.maes de378a70ae Merge pull request #23 from QRun-IO/feature/GH-10-current-release-docs
docs(#10): align release instructions with approved decisions
2026-09-30 23:10:40 -05:00
james.maes 5ae596c66a docs(#10): align release instructions with approved decisions 2026-09-30 23:05:42 -05:00
james.maes 4c6794065c feat(#8): complete runtime demos and core/full smoke gates (#19)
* ci(smoke): add core CI and prepare full conformance harness (#8)

* fix(smoke): query SFTP qbit and isolate Compose ports (#8)

* fix(smoke): require order-correlated Artemis trace and full CI job (#8)

* fix(smoke): exercise private full Compose services over HTTP (#8)

* fix(smoke): require explicit standalone full search endpoint (#8)

* fix(smoke): use Maven final jar in core CI (#8)

* test(smoke): verify Rabbit completion through ESB API

Grant full-profile admin ESB access and keep the exact process-run assertion. Part of #8.

* feat(esb): expose service observability in core profile

* feat(#21): complete runtime demos and backend modules (#22)

* feat(GH-21): complete runtime backend and JavaScript demos

* fix(GH-21): follow listener address for the API catalog

* ci(#8): pin settings-safe QQQ orb 0.6.8
2026-09-30 11:04:41 -05:00
james.maes e667b05b07 Merge C9 release preparation (#20)
Reviewed release gates and Central parent/BOM preparation; no publication.
2026-09-26 11:57:37 -05:00
james.maes 75e85e2077 fix: verify published BOM dependency management (#10) 2026-09-26 11:53:15 -05:00
james.maes a661610f52 ci: gate 4.1.0 release publication (#10) 2026-09-26 11:45:40 -05:00
james.maes ee86e62c04 Merge pull request #18 from QRun-IO/feature/GH-9-readme-quick-start
docs: runnable qqq-all quick start and feature tour (#9)
2026-09-26 10:59:32 -05:00
james.maes 53913bd8df docs: clarify demo logins and webhook flow (#9) 2026-09-26 10:55:51 -05:00
james.maes 71401f8e0f docs: integrate quick start with qbits and Compose (#9) 2026-09-26 10:53:27 -05:00
james.maes 1d76c5d930 Merge pull request #17 from QRun-IO/feature/GH-7-compose-image
feat(compose): runnable core and full demo stacks (#7)
2026-09-26 10:50:31 -05:00
james.maes 77e72ae068 fix: provision full-profile Postgres qbit schema after C5 merge 2026-09-26 10:45:18 -05:00
james.maes ee0c60dcec docs: correct qqq-all build and seed behavior (#9) 2026-09-26 10:21:46 -05:00
james.maes aff97b503c merge: integrate C5 qbits into C6 compose (#7) 2026-09-26 10:09:40 -05:00