You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I read through the documentation about artifact updates in the Streaming Support section, and it feels like this section needs to be clearer about how updates happen. Here are some questions I have that I don't think are currently answered:
First off, are names for Artifacts unique in the scope of a Task? Are indexes unique? Is it allowed in the spec to have two Artifacts in a Task with the same name but different indexes? Conversely, is it allowed in the spec to have two Artifacts in a Task with different names but the same index?
Assuming that index is unique in the scope of a Task, what do you do when a TaskArtifactUpdateEvent sends a new name for the Artifact? Does it overwrite the previous name? Is it an error? Or is it ignored? Similarly, is a new description for the Artifact an overwrite/error/ignored?
When you send metadata in a TaskArtifactUpdateEvent, does it replace the existing metadata for the Artifact, or is it merged into the existing metadata for the Artifact on a field-by-field basis, or is it an error, or is it ignored?
How do append and lastChunk work in practice? A few examples that I'm unsure about:
Let's say you send one update with append: false and lastChunk: false, and then send a second update again with append: false and lastChunk: false. Intuitively, I would think that this wipes out and overwrites the first update. Is that correct, or is this an error?
Now, let's say you send several updates in a row with append: true and lastChunk: false. Then you send an update with append: true and lastChunk: true. Finally you send an update with append: true and lastChunk:false. Is that an error?
Similar to the last one, let's say you send several updates in a row with append: true and lastChunk: false. Then you send an update with append: true and lastChunk: true. Finally you send an update with append: false and lastChunk:false. Is that an error or does it wipe out all the previous updates?
I know that some of these may seem like nitpicks, but I tend to think a spec should be really clear about error cases and state transitions. I think in it's current state, a reasonable engineer could assume several different ways this artifact update mechanism works.
The text was updated successfully, but these errors were encountered:
I read through the documentation about artifact updates in the Streaming Support section, and it feels like this section needs to be clearer about how updates happen. Here are some questions I have that I don't think are currently answered:
name
for the Artifact? Does it overwrite the previous name? Is it an error? Or is it ignored? Similarly, is a newdescription
for the Artifact an overwrite/error/ignored?append
andlastChunk
work in practice? A few examples that I'm unsure about:append: false
andlastChunk: false
, and then send a second update again withappend: false
andlastChunk: false
. Intuitively, I would think that this wipes out and overwrites the first update. Is that correct, or is this an error?append: true
andlastChunk: false
. Then you send an update withappend: true
andlastChunk: true
. Finally you send an update withappend: true
andlastChunk:false
. Is that an error?append: true
andlastChunk: false
. Then you send an update withappend: true
andlastChunk: true
. Finally you send an update withappend: false
andlastChunk:false
. Is that an error or does it wipe out all the previous updates?I know that some of these may seem like nitpicks, but I tend to think a spec should be really clear about error cases and state transitions. I think in it's current state, a reasonable engineer could assume several different ways this artifact update mechanism works.
The text was updated successfully, but these errors were encountered: