Remove temporary v0 export translator after contract alignment
- Dominant language
- TypeScript
- Stars
- 22.5k
- Forks
- 3.1k
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 715
Description
## Summary
Remove the temporary v0-to-v1 compatibility translator introduced by #11813 after #11977 makes supported v0 exports directly consumable by the v1 parser and planner.
Blocked by: #11977
Parent validation objective: #11810
Introduced by: #11813
## Why
#11813 keeps a narrow translator so the hosted OpenClaw lifecycle can be validated before the export contracts are aligned. #11977 assigns configuration projection to the v0 exporter. Once that work lands, retaining the v1 translator would duplicate mapping and policy logic and allow the two paths to drift.
The lifecycle scenario remains valuable. This cleanup changes its input path from translated compatibility YAML to the raw, aligned v0 export; it does not remove plan, apply, real-agent, unchanged apply, export/reapply, destroy, redaction, or evidence checks.
## Scope
- Replace `desired_state_from_v0_export` use with the normal v1 `Document::parse` path over raw aligned export bytes.
- Remove the translator types, implementation, synthetic translation expectations, and translator-specific negative tests that no longer express a supported boundary.
- Remove process-principal and target-runtime translation inputs when the aligned export or v1 defaults own those decisions.
- Keep explicit live gating, immutable runtime selection where qualification requires it, artifact hashing, redaction checks, resource identity checks, and the complete lifecycle assertions.
- Update the scenario documentation to identify #11977 as the export contract and describe manual fixture refresh from a real redacted v0 export.
## Acceptance Criteria
- [ ] #11977 has landed direct v0 export compatibility for the hosted OpenClaw scenario.
- [ ] The checked-in scenario input is raw output from the supported public v0 export path, with secrets redacted and audit metadata retained separately where useful.
- [ ] The scenario parses and plans that input through the ordinary v1 path without a compatibility translator.
- [ ] No `desired_state_from_v0_export`, `V1RuntimeBindings`, or `V1ProcessPrincipalBinding` compatibility surface remains.
- [ ] The existing hosted lifecycle assertions and evidence envelope remain intact.
- [ ] Focused tests and required workspace checks pass.
## Non-goals
- Implementing the v0 exporter changes tracked by #11977.
- Adopting or taking ownership of an existing v0 deployment.
- Expanding the initial compatibility matrix beyond the scenarios accepted by #11977.
Contributor guide
Research direction
Wait for #11977, then locate desired_state_from_v0_export, V1RuntimeBindings, and V1ProcessPrincipalBinding and trace the hosted lifecycle scenario’s current input path. Replace that path with raw export bytes through Document::parse, remove translator-specific expectations and negative tests, and preserve the listed lifecycle and evidence assertions. Run the focused tests and required workspace checks; update the scenario documentation with the supported export and fixture-refresh guidance.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- documentation, testing, tooling
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100