WIP: Integrate attachment, My Work, field values and Redis recovery candidates #51

Draft
KofTwentyTwo wants to merge 32 commits from integration/redis-collaboration-20261029 into feature/collab
pull from: integration/redis-collaboration-20261029
32 Commits
Author SHA1 Message Date
James Maes 355b06d2a4 build: consume verified Redis integration snapshot 2026-10-29 11:57:35 -05:00
James Maes 02085baff9 docs: record exact integrated sources and qualification gaps 2026-10-29 11:42:14 -05:00
James Maes 44a89d77b1 Include current field-value PR head in integration 2026-10-29 11:36:03 -05:00
James Maes 075eb79f20 Integrate current attachment settlement head for qualification 2026-10-29 11:35:35 -05:00
James Maes a6e8a0014b Integrate field values and capacity qualification candidates 2026-10-29 11:34:20 -05:00
James Maes c216993365 Integrate presence recovery candidate for qualification 2026-10-29 11:34:12 -05:00
James Maes fbc74f8c02 Integrate attachment and bounded My Work candidates for qualification 2026-10-29 11:34:12 -05:00
james.maesandCodex cdcf7ee365 docs(collaboration): record combined my work verification
Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
2026-10-29 09:56:39 -05:00
james.maesandCodex 56a8b760d9 test(collaboration): capture multi-node presence capacity
Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
2026-10-29 09:56:38 -05:00
james.maesandCodex 776ebe3fcb test(collaboration): verify packaged presence recovery
Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
2026-10-29 09:56:37 -05:00
james.maesandGPT-6 347b4ff695 test: verify bounded Redis stall recovery
Co-Authored-By: GPT-6 (Codex) <noreply@openai.com>
2026-10-26 11:28:40 -05:00
james.maesandGPT-6 f38dc29f6f test: verify presence churn across surviving nodes
Co-Authored-By: GPT-6 (Codex) <noreply@openai.com>
2026-10-26 11:23:29 -05:00
james.maesandGPT-6 fd8d7afe76 test: measure cross-node browser presence updates
Co-Authored-By: GPT-6 (Codex) <noreply@openai.com>
2026-10-26 11:13:53 -05:00
james.maesandGPT-6 ea06d6fb4e test: measure presence resources and node loss
Co-Authored-By: GPT-6 (Codex) <noreply@openai.com>
2026-10-26 11:07:11 -05:00
james.maesandGPT-6 5b7c947480 test: add independent-node presence workload
Co-Authored-By: GPT-6 (Codex) <noreply@openai.com>
2026-10-26 10:33:49 -05:00
james.maesandGPT-6 1da538cf43 docs: record published selectable-field snapshot evidence
Co-Authored-By: GPT-6 (Codex) <noreply@openai.com>
2026-10-26 08:36:16 -05:00
james.maesandGPT-6 ecff347efe build: adopt published virtual field provider core
Co-Authored-By: GPT-6 (Codex) <noreply@openai.com>
2026-10-26 08:21:29 -05:00
james.maesandGPT-6 7d987eca2a test: cover shared readiness and partial presence loss
Co-Authored-By: GPT-6 (Codex) <noreply@openai.com>
2026-10-26 07:37:47 -05:00
james.maesandGPT-6 0062644530 test: verify controlled presence restore across JVMs
Co-Authored-By: GPT-6 (Codex) <noreply@openai.com>
2026-10-26 07:31:33 -05:00
james.maesandGPT-6 4b0d6a32d6 perf: avoid repeated table scans during presence recovery
Clean the table when its recovery generation is created, retaining lazy cleanup for record rooms. Add guard-loss regression and diagnostic measurements at 1,000 and 10,000 leases; expose browser profiles and await dashboard redirect before navigation.

Co-Authored-By: GPT-6 (Codex) <noreply@openai.com>
2026-10-26 07:10:54 -05:00
james.maesandGPT-6 1c195d689e test: verify browser presence recovery across JVMs
Exercise unavailable rendering and automatic lease rejoin through actual Chromium and two backend processes after disposable Redis loss. Retain traces and screenshots; frontend serving remains fixture-only and opt-in.

Co-Authored-By: GPT-6 (Codex) <noreply@openai.com>
2026-10-26 06:50:30 -05:00
james.maesandGPT-6 ef2c0c11a0 feat: detect lost Redis presence authority and rejoin
Report unavailable presence during recovery, invalidate stale leases, and isolate controlled restores by host generation. Add store, HTTP and independent-JVM recovery acceptance. Browser, maintenance enforcement and performance qualification remain open in QQQ #1300.

Co-Authored-By: GPT-6 (Codex) <noreply@openai.com>
2026-10-26 06:42:52 -05:00
james.maesandGPT-6 dc65a826ce feat: resolve settled attachment uploads with retained receipts
Require identified admin evidence and locked reference checks before deleting bytes. Preserve immutable operational receipts, exclude them from retries, and expose the standard Review/Result table action with help.

Co-Authored-By: GPT-6 (Codex) <noreply@openai.com>
2026-10-26 05:46:05 -05:00
james.maesandGPT-6 a9add0501d fix: retain cleanup ownership for uncertain uploads
Do not retire a failed-upload locator merely because DELETE succeeds. Let adapters attest authoritative settlement; otherwise retain it with bounded retry scheduling. Reproduce a PUT completing after rollback and an independent sweep.

Refs QRun-IO/qqq#1289

Co-Authored-By: GPT-6 (Codex) <noreply@openai.com>
2026-10-22 18:37:09 -05:00
james.maesandGPT-6 bdb1934c6a feat: expose tag labels and EAV values through core reads
Use batched providers without replacing host customizers. Preserve transaction visibility and parent authorization, retain tag picker behavior, and verify query, GET and export values. Requires coordinated core PR QRun-IO/qqq#1322; published dependency pin follows after its snapshot is available.

Refs QRun-IO/qqq#1196

Co-Authored-By: GPT-6 (Codex) <noreply@openai.com>
2026-10-22 18:25:20 -05:00
james.maesandCodex 4e45546c89 fix: persist attachment upload ownership before storage writes
Coordinate upload and cleanup with transactional row locks. Verify rejected intent creation, outer transaction ownership, abrupt child JVM termination and concurrent recovery. Full Maven verify passes 196 tests and coverage gates.

Co-Authored-By: Codex <noreply@openai.com>
2026-10-22 16:18:16 -05:00
james.maesandCodex 2ac067bea4 test: measure pooled My Work query workload
Add a reproducible opt-in shared/distinct-parent workload with SQL and latency measurements, exact visibility assertions and bounded pool checks. Correct the fixture's unpooled connection churn to match the host provider; no runtime capacity claim.

Co-Authored-By: Codex <noreply@openai.com>
2026-10-22 15:08:28 -05:00
james.maesandCodex 53e51029a2 test: verify My Work query budget against PostgreSQL
Measure actual SQL calls with pg_stat_statements and preserve visible count, top-ten order and permission revocation. Focused real PostgreSQL fixture passes.

Co-Authored-By: Codex <noreply@openai.com>
2026-10-22 14:36:10 -05:00
james.maesandCodex 9c0e7a4afa fix: bound My Work summary pages and parent lookups
Preserve exact visible counts and due-date top ten without retaining all matching rows. Recheck authorization per page and request. Full verification passes 193 tests and coverage gates.

Co-Authored-By: Codex <noreply@openai.com>
2026-10-22 14:33:03 -05:00
james.maesandCodex 15cb8cbf72 fix: compensate ambiguous attachment uploads
Verify plain and versioned MinIO deletion replay and simultaneous PostgreSQL cleanup workers. Full verification passes 191 tests and coverage gates.

Co-Authored-By: Codex <noreply@openai.com>
2026-10-22 14:20:13 -05:00
james.maesandCodex 576f078c48 fix: persist upload compensation and defer failed cleanup
Retain cleanup locators after rollback compensation fails, keep failed batches from starving later work, and preserve pending requests across schema upgrades. Real PostgreSQL regressions and full verification pass; crash and provider acceptance remains tracked in QQQ #1289.

Co-Authored-By: Codex <noreply@openai.com>
2026-10-22 14:08:41 -05:00
james.maesandCodex 69f7caf346 fix: retain durable attachment deletion recovery
Commit cleanup intent with attachment metadata removal before deleting storage bytes. Retry committed cleanup through the existing scheduler and verify PostgreSQL rollback, failed metadata deletion, lost callbacks and replay. Remaining upload and provider recovery acceptance stays tracked in QQQ #1289.

Co-Authored-By: Codex <noreply@openai.com>
2026-10-22 14:00:39 -05:00