Original concept illustration of source version, chunk removal, cache rejection. No product screenshot.
Original editorial concept illustration by Fone.

Deleting a source document should start a traceable operation across the places that can still supply its content. The search index is one of those places. Cached answers, queued indexing work and already-open conversations need their own decisions.

This is a design review for the unimplemented AI Support Desk blueprint. The accompanying worksheet proposes deletion checks. The small runnable example exercises a sequential in-memory model. No external integration has been run, and the design does not establish a retention or erasure guarantee for any deployed system.

Give every derivative a source identity

Record a stable document identifier and a version when a source enters the system. Each chunk should retain both values. Keep a manifest of the chunks created by that version and identify cached answers that depend on them. This proposed relationship lets a deletion job name the objects it intends to remove without searching for similar text.

Pinecone documents deletion by record identifiers and deletion with metadata filters within a namespace. The appropriate choice depends on the actual record model. A chunk manifest makes the identifier-based path inspectable, while a metadata path requires checking that every derivative carries the expected metadata. Pinecone deletion methods.

Include workspace identity in the manifest. A document number reused in another workspace must not cause that workspace's records to be deleted. The deletion request should inherit the authenticated workspace rather than accepting a namespace supplied by the browser without verification.

Distinguish the requested change from observed removal

An indexer may need to observe a deletion marker before it can remove a search entry. Azure AI Search describes this dependency for blob soft deletion. Its documentation also warns that the retention period must give the indexer enough time to process the marker, and that one-to-many indexing needs separate deletion handling. These are concrete reasons to inspect the configured indexing path before promising propagation. Azure change and delete detection.

Use a proposed deletion record with separate checkpoints for source access, index removal and answer-cache invalidation. Store the requested document version and timestamps for observed outcomes. A failed checkpoint should remain visible instead of converting the whole request into an unexplained success message.

Checkpoint Evidence to collect Failure to investigate
Source admission Document version is marked unavailable New retrieval still accepts it
Chunk removal Direct lookup and retrieval exclude all listed chunks One derivative remains
Cached answer Dependent answer is rejected or regenerated Warm cache returns deleted material
Late indexing job Old job cannot reactivate the deleted version Worker recreates removed chunks
New conversation Fresh question cannot use the deleted version Answer cites its old content

Deletion review tracing one source version through chunk records and cached answers, with a late indexing job held for rejection

Close the gap while deletion propagates

A proposed application-side safeguard is to maintain an unavailable-source record and check it before admitting retrieved chunks to generation. Repeat the check when serving a cached answer. This design has to cover every serving path; it offers no protection to a route that bypasses it.

For cache removal, Redis distinguishes detaching keys from the keyspace from reclaiming their memory. UNLINK performs the memory reclamation asynchronously. Verify that the answer can no longer be read through the application rather than treating memory reclamation as the user-facing criterion. Redis UNLINK.

Also inspect HTTP caches when the application serves reusable answers through a browser or proxy. HTTP cache controls have defined scope. no-store directs caches not to store the exchange, while private constrains shared-cache storage. Neither setting documents what your separate answer database retains. HTTP caching requirements.

Rehearse a deletion with named observations

Prepare a synthetic source containing a distinctive test phrase, retrieve it and warm the answer cache. Record its chunk identifiers. Request deletion, then check both direct chunk lookup and a new retrieval query. Repeat the question in a new conversation and an existing conversation, documenting how your policy handles material already shown to the user.

Pause an indexing job before it writes, delete the source version, then resume the job. The expected result is rejection of that obsolete write. A recovered backup and a source re-upload need separately documented policies, since either could reintroduce content under a new identifier.

These are proposed experiments, all marked Not run in the deletion propagation worksheet. The download also contains an original Python example and seven passing local checks for chunk removal, cache rejection, tenant boundaries and a late sequential indexing job. Its test output establishes only those modeled behaviors. It does not measure distributed propagation or establish concurrency safety.

The AI Support Desk blueprint provides a starting scope for one approved collection, deletion handling and reviewed answers. Bring the actual storage and indexing configuration before agreeing to deletion acceptance criteria.