Files
qbit-collaboration/docs/VIRTUAL-FIELD-UPGRADE.md
James MaesandClaude Sonnet 5.5 63245b14e0
QRun-IO/ci-policy: ci / fork-guard (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: ci / Scoped workflow [workflow d20a578c7d818bc7ca32a2ac2c675da4e4f27385] (pull_request) Successful in 5s
QRun-IO/ci-policy: ci / head-profile (pull_request) Skipped
QRun-IO/ci-policy: ci / repository-policy (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-core-2-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-3 (pull_request) Skipped
QRun-IO/ci-policy: native / native-result (pull_request) Successful in 4s
QRun-IO/ci-policy: ci / java-docker-3-head (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-6-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-7 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-7-head (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 / original-cli (pull_request) Skipped
QRun-IO/ci-policy: ci / not-enrolled (pull_request) Skipped
QRun-IO/ci-policy: ci / shared-pipeline (pull_request) Skipped
QRun-IO/ci-policy: ci / ci-result (pull_request) Successful in 5s
maven / build (push) Failing after 42s
build / maven (push) Failing after 42s
feat(collaboration): integrate presence, Redis presence, virtual-field and fixture work on the attachment base
One reviewable integration on current develop 7d61f29e. It starts from
feat/record-files-standalone (attachment lifecycle, upload journal, retention
SPI; descends from develop) and adds the owner stack content from
feature/collab, feature/collab-int-20261029, feature/field-values-1196,
feature/presence-recovery-1300, test/presence-capacity-1302 and the
fix/attachment-transactions-1289 / fix/mywork-query-bounds-1291 work, plus
KOF22 adaptations: CollaborationQBitConfig.attachmentLifecycle,
CollaborationRecords.insertActivity/query(transaction), ActivityWriter source
feature routing, and the Redis/fixture tests.

Build: develop CI files are preserved. pom.xml only adds the Redis API
guardrail allow-list and an optional qbit-redis dependency; the core and
qbit-redis versions stay on the canonical SNAPSHOT lines with markers to repin
after the core and redis integration PRs are published (order CORE -> REDIS ->
COLLAB). No PRIVATE or feature-snapshot coordinate is introduced. Not yet
compiled: it needs the core integration artifact (virtual-field providers).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-05 17:19:49 -06:00

4.0 KiB

Selectable collaboration fields: published feature snapshot

Tracks QQQ #1196.

This source branch requires the new core virtual-field value-provider API. Its default BOM pin is now the published 4.1.0-virtual-field-values-1196-cc3981bb3-SNAPSHOT. Core publisher job 9716 passed from commit cc3981bb3c95e8f2dd7ef2a02e2233db7d0e2a79; an independent consumer with an initially empty Maven repository downloaded its BOM and core and compiled the provider interface on October 26, 2026. Both artifacts resolve to timestamp 20261026.130631-1 from Sonatype's snapshot repository.

Published artifact SHA-256 receipts:

Artifact SHA-256
BOM POM d68cf837d7e07513c4e70977829f99e6236cb3e89f8af85fc75239d5b52564a5
Core POM d89d491aaa9312051ec462e1cf165b948ee3e88c9aec2721ff25a00e956c431b
Core JAR ae6dbeba8d0e4bc55f2714303ee3482dbf6a0cd34c03663c6009d8fe2c1da54d

The collaboration follow-up is published as 0.1.0-field-values-1196-ecff347-SNAPSHOT, timestamp 20261026.133203-1. Publisher job 168 passed from commit ecff347efe2bb84949b8452a3383e3fdeb4bcede, using signed tag publish-values1196-20261026-ecff347.

Collaboration artifact SHA-256
POM cc12f59cbdfd4bc53ba545a9f2b6d7c14a316034b107ef5541ddc48df45fe6af
JAR 284fa370504dd82cee8c87d2b8f5c0cecba8c4b15b32a4f9d3d62a0a062e549d

On October 26, an independent Java 21 consumer downloaded this pair into an initially empty Maven repository and compiled both TagValueProvider and CustomFieldValueProvider as VirtualFieldValueProviderInterface instances. Maven recorded Sonatype central-portal-snapshots as the artifact source. The downloaded collaboration POM pins the core version above; the independently downloaded core JAR matches the receipt above. This checks published dependency resolution and API compatibility; runtime behavior is covered by the 198-test verification below, not by this compilation probe.

This snapshot does not include the separate attachment, My Work or presence recovery follow-up PRs. It has not been deployed to Kof22.

Earlier local verification used core artifacts installed as 4.1.0-values1196-SNAPSHOT, with ./mvnw.cmd -Dqqq.snapshot.version=4.1.0-values1196-SNAPSHOT verify. That version exists only in the local Maven repository; it is not an adoption pin.

Behavior

  • collaborationTags returns sorted, distinct approved labels from global or matching-table vocabulary. Merged tags and deleted assignments are excluded. The picker and filters retain their tag IDs; exports contain one Tags column.
  • EAV custom fields return typed existing values and ordinary possible-value display labels. Missing values are null internally and omitted from HTTP value maps. This change does not enable EAV writes.
  • Providers process batches and use the originating transaction. Parent record authorization and field visibility remain enforced by core. Existing host post-query customizers remain installed.
  • SQL DISTINCT on provider values is explicitly unsupported. Backend primary-key identity is required; joined heavy primary keys must be fetched explicitly.

Release sequence

  1. Publish and verify the coordinated core artifact containing the provider API (done).
  2. Replace this branch's core BOM pin with that published version (done).
  3. Run full collaboration verification against the published prerequisite (done October 26: 198 tests, no failures/errors/skips; packaging and coverage passed, including HTTP, PostgreSQL transaction and Redis tests).
  4. Publish the collaboration snapshot and verify an independent consumer using published artifacts (done; exact pair recorded in CANDIDATE-RELEASE.md).
  5. Update Kof22 Website-Backend adoption work and qualify it in the selected isolated staging environment before requesting production deployment.

The published pair contains this implementation. Kof22 adoption, a compatible packaged frontend and staging qualification remain separate release steps.