Implement crash-safe streaming worker runtime

This commit is contained in:
ms2k 2026-07-17 18:51:44 +09:00
commit cdeef3cc1a
2 changed files with 7448 additions and 194 deletions

View file

@ -113,6 +113,8 @@ export interface AttemptRuntimeFailureDto {
export interface ResultDescriptorDto {
kind: 'manifest'
manifest_id: OpaqueIdDto
schema_version: number
manifest: ObjectIdentityDto
member_count: number
total_bytes: number
@ -124,6 +126,7 @@ export interface ObjectIdentityDto {
key: string
version_id?: string
checksum: string
size: number
}
export interface JobPhaseProjectionDto {

View file

@ -277,10 +277,19 @@ function decodeEventProgress(value: unknown): EventProgressDto {
function decodeResult(value: unknown): ResultDescriptorDto {
const object = record(value)
exactKeys(object, ['kind', 'manifest', 'member_count', 'total_bytes'])
exactKeys(object, [
'kind',
'manifest_id',
'schema_version',
'manifest',
'member_count',
'total_bytes',
])
if (object.kind !== 'manifest') throw new Error('unknown result kind')
return {
kind: 'manifest',
manifest_id: opaqueId(string(object.manifest_id)),
schema_version: positiveInteger(object.schema_version),
manifest: decodeObjectIdentity(object.manifest),
member_count: positiveInteger(object.member_count),
total_bytes: nonnegativeInteger(object.total_bytes),
@ -289,7 +298,14 @@ function decodeResult(value: unknown): ResultDescriptorDto {
function decodeObjectIdentity(value: unknown): ObjectIdentityDto {
const object = record(value)
exactKeys(object, ['store', 'bucket', 'key', 'version_id', 'checksum'])
exactKeys(object, [
'store',
'bucket',
'key',
'version_id',
'checksum',
'size',
])
return {
store: string(object.store),
bucket: string(object.bucket),
@ -298,6 +314,7 @@ function decodeObjectIdentity(value: unknown): ObjectIdentityDto {
? {}
: { version_id: string(object.version_id) }),
checksum: string(object.checksum),
size: nonnegativeInteger(object.size),
}
}