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
|
and hands fetched file details to `StreamInstallGame` instead of the normal
|
||||||
download command.
|
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`
|
The shared external `unrar` stream provider now runs `unrar lt` once for the
|
||||||
per file. Good for non-solid archives, bad for solid archives. Final shape
|
archive metadata and one sequential `unrar p` pass per archive for payload
|
||||||
should be a one-pass provider with real entry boundaries, likely via libunrar
|
bytes. It frames directories, file starts, file chunks, and file ends from
|
||||||
or a purpose-built wrapper.
|
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**
|
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
|
- non-solid: current one-pass streaming is fine
|
||||||
- solid: one sequential archive pass only
|
- solid: prove and enforce one sequential archive pass only
|
||||||
|
|
||||||
This is the big architectural fork we discussed, and the prototype’s
|
This is the big architectural fork we discussed: keep non-solid and solid
|
||||||
provider is the thing to swap.
|
archive handling explicit in the provider contract and scenario coverage.
|
||||||
|
|
||||||
4. **Decide the integrity model**
|
4. **Decide the integrity model**
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user