Skip to content

A compaction delta without encrypted_content clears the accumulated metadata #1984

Description

@sylvesterkaczmarek

On main at 18f2554, the beta streaming accumulator assigns encrypted_content from every compaction_delta. The decoded model defaults an absent field to None, so a later content-only update clears metadata received earlier.

Reproduction: send the existing compaction fixture's populated delta, followed by {"type":"compaction_delta","content":"Updated summary."} for the same block. Both synchronous and asynchronous streams return encrypted_content=None in the final block and in the second BetaCompactionEvent, despite no metadata update being present.

An absent field should retain the previous metadata. A present null must still clear it, and empty or nonempty strings must replace it.

The regression parameterizes all four cases through the public beta streaming APIs. Only the omitted-field cases fail on main. This is separate from #1830 and #1665, which change compaction summary text accumulation; this report does not propose changing summary text behavior.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions