Repository navigation
keep media sessions fast and usable and let snapshots use the archive - #454
Merged
Merged
Conversation
The media decorator no longer hashes fetched bytes again: MediaStore.get now promises bytes that match their key, the directory store hashes with the platform's SHA-256, core's pure SHA-256 updates typed arrays in place and the media fingerprint takes one pass. A begin's turn lookups read with SessionReadQuery.media "references", so beginning a turn reads no image. A missing or damaged blob keeps its occurrence's metadata with UNAVAILABLE_MEDIA_DATA, renders as its label line and never reaches the model, instead of failing every later begin; rows without an envelope pass through untouched, so a newer release's row or an unreferenced damaged part no longer fails a whole read. The directory store sweeps abandoned temporary files, repairs a damaged blob when its bytes are put again (keeping the damaged copy in quarantine/), and start reads continue after short answers. Render snapshots whose retained facts differ from this release's selection now log and use the full archive instead of failing every open. They no longer copy replaced summaries, views of omitted entries or cut runs' step contexts, and render equality is checked by the first build of each step-context placement instead of four full renders at open; the checkpoint bridge decodes its history once.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
withMediaStoreno longer hashes fetched bytes again (MediaStore.getpromises they match their key), and a begin's turn lookups read no image (SessionReadQuery.media: "references").UNAVAILABLE_MEDIA_DATA, renders as its label line and is never sent; unavailable storage still fails withstore.io.MediaStoreMemoryLiveis documented for in-memory logs only.withMediaStorereturns rows without an envelope untouched, so a newer release's row or an unreferenced damaged request part no longer fails the whole read.quarantine/), andnodeFilesIo.readStartkeeps reading after short answers.session.decode; snapshots no longer copy replaced summaries, out-of-view compaction text or cut runs' step contexts; render equality is checked by the first build of each placement instead of four full renders at open, and the checkpoint bridge decodes its history once.SessionReadQuery.media(rerunsessionLogConformance), theMediaStore.getintegrity promise, and the snapshot kit subject (validatewithout render options,projectreturningmismatch,MemoryProjection.Projected.verified) are in the CHANGELOG. No stored shape changes.Checks
bun run typecheck: passbun test: 3786 pass, 0 failbun run foundry demo,build:packages,verify:packages,docs:generate(no diff),bun run --cwd packages/website check: pass