docs(stream-install): mark one-pass provider complete
NEXT_STEPS item 2 still described the old per-file unrar provider shape even though the current shared provider now performs one technical listing pass and one sequential unrar payload pass per archive. Update the roadmap so the next implementation slice starts at the remaining solid-archive policy work instead of chasing an already-replaced extraction loop. The item 3 wording now keeps the solid/non-solid archive fork explicit without suggesting the current provider still needs to be swapped merely to avoid per-file extraction. Test Plan: - git diff --check Refs: NEXT_STEPS.md item 2
This commit is contained in:
+13
-10
@@ -13,22 +13,25 @@ product-ready.
|
||||
and hands fetched file details to `StreamInstallGame` instead of the normal
|
||||
download command.
|
||||
|
||||
2. **Replace per-file `unrar p` with a final archive provider**
|
||||
2. **Done — Replace per-file `unrar p` with a final archive provider**
|
||||
|
||||
The prototype provider is intentionally simple: `unrar lt`, then `unrar p`
|
||||
per file. Good for non-solid archives, bad for solid archives. Final shape
|
||||
should be a one-pass provider with real entry boundaries, likely via libunrar
|
||||
or a purpose-built wrapper.
|
||||
The shared external `unrar` stream provider now runs `unrar lt` once for the
|
||||
archive metadata and one sequential `unrar p` pass per archive for payload
|
||||
bytes. It frames directories, file starts, file chunks, and file ends from
|
||||
the technical listing, so CLI and GUI callers use one purpose-built provider
|
||||
instead of a per-file extraction loop.
|
||||
|
||||
3. **Handle solid archives deliberately**
|
||||
|
||||
Add archive inspection that decides:
|
||||
The provider exposes the RAR `solid` flag in `ArchiveBegin`; the remaining
|
||||
work is to make that flag a tested policy decision instead of an incidental
|
||||
stream attribute. Add archive inspection that decides:
|
||||
|
||||
- non-solid: per-file streaming is fine
|
||||
- solid: one sequential archive pass only
|
||||
- non-solid: current one-pass streaming is fine
|
||||
- solid: prove and enforce one sequential archive pass only
|
||||
|
||||
This is the big architectural fork we discussed, and the prototype’s
|
||||
provider is the thing to swap.
|
||||
This is the big architectural fork we discussed: keep non-solid and solid
|
||||
archive handling explicit in the provider contract and scenario coverage.
|
||||
|
||||
4. **Decide the integrity model**
|
||||
|
||||
|
||||
Reference in New Issue
Block a user