# P15-076 Stage0 Decision

Status: `STOP`. B29 is `STOP-NO-SOURCE`.

The gate is bound to frozen DUT BASE
`3e9bc3f03ba9c39c38cc40f2f08eb6e769557f55` and FreeBSD source HEAD
`106727738dcfb6c001b46f25363b91cece970085`. Three host attempts are retained:

- `20260815T170841Z-G05-P15-076`: `RUNNER_FAIL`, FreeBSD headers shadowed
  glibc headers during host compilation.
- `20260815T170931Z-G05-P15-076`: `RUNNER_FAIL`, the Deflate oracle compared
  one selected extent with the complete source payload.
- `20260815T171051Z-G05-P15-076`: the runner returned 0, but final review
  rejects its local `GO` because mandatory state-model conditions are not
  closed.

## Last Attempt Command

```sh
timeout -k 10 240 repo-pre-15/tests/pre15/gates/P15-076.sh \
    --base 3e9bc3f03ba9c39c38cc40f2f08eb6e769557f55 \
    --output planning/pre15/evidence/20260815T171051Z-G05-P15-076/gate-output
```

The command returned 0 in three seconds. The gate script SHA-256 is
`1d2cc18de150c8bdeb4fa8d284ab345f9ec4249c2ba1b50e1badbe7f942b42dc`,
the input SHA-256 is
`30497cf86785c367dcd4a3d6889ba6a6302f6f133d68e4af31d984a1031e0058`,
and the result SHA-256 is
`ac007afc4ad5a97bb1561888105c67612d3eea5427f77c54a858bede4c86e0a3`.

## Benefit Result

The last attempt regenerates the frozen B28 EROFS fixtures in owned temporary
storage and decodes the exact selected LZMA, Deflate, and Zstd extents. Input,
expected output, and output buffers are outside the tracked allocator region.
Baseline creates and destroys a context per decode; the prototype resets one
context across 64 exact decodes. Seven samples are retained per mode.

| Codec | Baseline events | Reused events | Reduction | Measured peak |
|---|---:|---:|---:|---:|
| LZMA | 128 | 2 | 98.4375% | 28,504 B |
| Deflate | 256 | 4 | 98.4375% | 39,928 B |
| Zstd | 128 | 2 | 98.4375% | 95,992 B |

All tracked baseline backend allocator events are context lifecycle events, so
the measured share is 100 percent and passes the 10 percent threshold. All
three event reductions pass the 25 percent threshold. Exact output and
balanced allocation/free counts pass. CPU remains diagnostic: Deflate is
1.30 percent faster, LZMA is 10.20 percent slower, and Zstd is 15.35 percent
faster by median per-decode time; the LZMA regression is retained.

## STOP Review

G05 requires both the benefit threshold and a complete pre-source state model.
The retained runner does not establish a hard memory limit: its 329,616-byte
mount and 2,636,928-byte global calculations use peaks from representative
streams. In particular, its Zstd prototype sets `ZSTD_d_windowLogMax` to 16,
while the frozen DUT accepts values through 20. The measured 95,992-byte Zstd
peak therefore is not a hard bound for the production-supported range. LZMA is
also sampled with a 65,536-byte dictionary while the DUT accepts up to 8 MiB.

The state model also does not execute a global-exhaustion transition. It sets
`global_owned` and `mount_owned` to the mount limit of two and selects fresh
allocation because the mount is full; the independent global limit of 16 is
never reached. Text describing global exhaustion cannot replace that missing
assertion. Therefore the hard-cap and global-exhaustion requirements are not
closed, and the runner-local `GO` cannot authorize source work.

No threshold, sample, or result is changed to force a decision. Per G05, one
failed mandatory condition makes P15-076 `STOP`; B29 is recorded
`STOP-NO-SOURCE`. No production `src/**`, B29 case, fixture, or helper was
changed. B29 H/K/Q acceptance, QEMU, and the full feature suite were not run.
The hard-timeout D check passed. Owned temporary cleanup passed; protected PID
26318, port 9222, and the shared base image were untouched.
