Add runtime validation gate and known issues baseline
This commit is contained in:
@@ -47,6 +47,8 @@ delivery gradually, not through a single risky cutover.
|
||||
- decompression failures
|
||||
- manifest signature failures
|
||||
- key mismatch by `key_id`
|
||||
- runtime smoke against the real client
|
||||
- scenario gate with known-issues baseline
|
||||
|
||||
## Practical migration loop
|
||||
|
||||
@@ -55,8 +57,31 @@ delivery gradually, not through a single risky cutover.
|
||||
3. Verify it.
|
||||
4. Diff it against the source tree.
|
||||
5. Boot the client with runtime keys.
|
||||
6. Validate asset loads in logs and in-game.
|
||||
7. Move to the next pack group.
|
||||
6. Run the runtime scenario gate.
|
||||
7. Validate asset loads in logs and in-game.
|
||||
8. Move to the next pack group.
|
||||
|
||||
Recommended gate command:
|
||||
|
||||
```bash
|
||||
python3 scripts/validate_runtime_gate.py \
|
||||
--runtime-root /tmp/m2dev-client-runtime-http
|
||||
```
|
||||
|
||||
For release tightening:
|
||||
|
||||
```bash
|
||||
python3 scripts/validate_runtime_gate.py \
|
||||
--runtime-root /tmp/m2dev-client-runtime-http \
|
||||
--strict-known-issues
|
||||
```
|
||||
|
||||
The shared baseline lives in:
|
||||
|
||||
- `known_issues/runtime_known_issues.json`
|
||||
|
||||
This lets the migration fail only on new regressions while still tracking
|
||||
historical client data problems explicitly.
|
||||
|
||||
## Confirmed startup-safe pack group
|
||||
|
||||
@@ -170,6 +195,13 @@ effect files and reports 12 concrete missing references:
|
||||
- `effect/background/turtle_statue_tree_roof_light01.mse` missing `turtle_statue_tree_roof_light01.mde`
|
||||
- `effect/etc/compete/ready.mse` missing `ready.DDS`
|
||||
|
||||
Those current actor and effect findings are also recorded in:
|
||||
|
||||
- `known_issues/runtime_known_issues.json`
|
||||
|
||||
That file is now the shared runtime baseline used by the validators and the
|
||||
aggregated release gate.
|
||||
|
||||
Recommended next pack groups:
|
||||
|
||||
1. remaining startup-adjacent patch packs
|
||||
|
||||
@@ -229,3 +229,50 @@ This validator checks text-based effect assets in `Effect`:
|
||||
- `.msf` `BombEffect`
|
||||
- `.msf` `AttachFile`
|
||||
- derived `.mss` sound scripts and their referenced `.wav` files
|
||||
|
||||
Runtime release gate:
|
||||
|
||||
```bash
|
||||
python3 scripts/validate_runtime_gate.py \
|
||||
--runtime-root /tmp/m2dev-client-runtime-http
|
||||
```
|
||||
|
||||
Strict runtime release gate:
|
||||
|
||||
```bash
|
||||
python3 scripts/validate_runtime_gate.py \
|
||||
--runtime-root /tmp/m2dev-client-runtime-http \
|
||||
--strict-known-issues
|
||||
```
|
||||
|
||||
The gate runs these validators together:
|
||||
|
||||
- `scripts/validate_runtime_scenarios.py`
|
||||
- `scripts/validate_actor_scenarios.py`
|
||||
- `scripts/validate_effect_scenarios.py`
|
||||
|
||||
By default they load the shared baseline:
|
||||
|
||||
- `known_issues/runtime_known_issues.json`
|
||||
|
||||
Result semantics:
|
||||
|
||||
- `known_issue_ids`: currently accepted historical content issues
|
||||
- `unexpected_issue_ids`: new issues that fail the gate
|
||||
- `stale_known_issue_ids`: baseline entries not observed anymore
|
||||
|
||||
Default behavior:
|
||||
|
||||
- known issues are reported but do not fail the gate
|
||||
- only unexpected issues fail the gate
|
||||
|
||||
Strict behavior:
|
||||
|
||||
- unexpected issues fail the gate
|
||||
- stale known-issue entries also fail the gate
|
||||
|
||||
Current baseline on the real runtime:
|
||||
|
||||
- `world`: `0`
|
||||
- `actor`: `5`
|
||||
- `effect`: `12`
|
||||
|
||||
Reference in New Issue
Block a user