rdmsm4x-changelog-20260902-2329-replicantdb-memory-bound-checkpoint
rdmsm4x-changelog-20260902-2329-replicantdb-memory-bound-checkpoint
Checkpointed a measured ReplicantDB GUI-memory fix in an isolated worktree; passive status refresh no longer hydrates more than one million duplicate-member records, while fleet build/deployment remains held behind the serialized portfolio queue and a SwiftPM test-harness self-lock.
Scope
- Host changed:
rdmsm4xonly. - Source worktree:
/Users/richh/dev/_handoff/codex-out/replicantdb-memory-bounds-20260902. - Branch/commit:
codex/replicantdb-memory-bounds-20260902at259c7917539ff2be678505789a4ed16a63f30678. - Ticket:
ISSUE-20260901-26, lease retained bycodex@rdmsm4x/replicantdb-memory-bounds. - Release-gate defect filed as
ISSUE-20260902-20. - Canonical checkout, installed applications, live databases, daemon registrations, TCC settings, and the other five hosts were not changed.
Files changed
Sources/ReplicantDBCore/Database.swiftSources/replicantDB/ReplicantDBApp.swiftTests/ReplicantDBTests/DuplicateStatisticsMemoryBoundTests.swiftSESSION-STATE.mdISSUES.md/Users/richh/.agent-coordination/checkins/codex-rdmsm4x-replicantdb-memory-bounds-20260902.json- Fleet coordination message
20260902-232834-F59094AF
What changed
- Replaced
getStats()duplicate object hydration with one SQLite grouped aggregate. - Removed duplicate-member loading from startup and four-second Status telemetry.
- Added lazy browsing limits of 250 groups and 100 hydrated members per group, while retaining complete group counters.
- Added exact-hash complete-group resolution immediately before an explicit per-group deduplication action.
- Moved GUI-triggered duplicate reads/actions off the MainActor.
- Added four isolated regression tests for aggregate semantics, liveness/zero-byte exclusions, preview limits, and full-group action resolution.
- Recorded Rich's next-rollout cleanup requirement: after canary acceptance, retain one active revision plus one rollback package per host, archive every other old app/CLI/MCP/staging copy outside launch/search paths, and prove that with a second six-host inventory. Preserve the shared code-identity TCC grants because they are not version-specific.
Commands and verification
swift test --filter DuplicateStatisticsMemoryBoundTests— 4 executed, 0 failures; app target compiled under Swift 6.swift test— 1,095 executed, 1 failure, 1,094 passed, 447.712 seconds.sample 88618 1 1,sample 89716 1 10, andlsofon the worktree build lock proved the sole failure was a nested SwiftPM self-lock: the outer test process held.build.lockwhileLocalIntelligenceTestslaunchedswift package describe --type jsonin the same worktree.kill -TERM 89716terminated only the deadlocked child so the suite could record the failure and complete.git diff --checkpassed before the explicit-path commit.- No
./build.sh, signing, installation, process restart, live-data command, scan, OCR, classification, hashing, tagging, deduplication, or file move was run.
Preservation and undo
- The complete source checkpoint is commit
259c7917539ff2be678505789a4ed16a63f30678in the isolated worktree; the deployed 1.19.0 (34) fleet remains unchanged with its existing per-host rollback archives. - To discard only this candidate before integration, delete the linked worktree/branch after first preserving the commit reference. Do not reset or clean the dirty canonical checkout.
- If a later deployed build fails, use the per-host rollback workflow
recorded in
deployment-evidence/REPLICANTDB-1.19.0-BUILD34-FLEET-ROLLOUT-20260902.md; no new rollback payload exists yet because no new artifact was built.
Outstanding owner/queue actions
- Wait for the serialized portfolio coordinator to release the ReplicantDB heavyweight lane.
- Repair the nested SwiftPM source-audit test without weakening its dependency coverage, then rerun the full suite.
- If and only if that gate is green: bump 1.19.1 (35), build/sign universal2, verify the artifact, canary, deploy all six hosts, perform the requested old-copy archive sweep, and collect a post-install memory curve.
- Do not resolve
ISSUE-20260901-26until comparable long-duration runtime evidence exists; the separate Vision/IOSurface worker-retention risk also remains open for follow-up.