feat(joinir): Phase 70-B - Multihop Relay Passthrough Support (dev-only)
Phase 70-B relaxes runtime guard from "always error" to "unsupported only". Adds structural detection (is_supported_multihop_pattern) to distinguish: - Simple passthrough (no self-updates): ACCEPT - Complex patterns (self-conflict, etc): REJECT with [ownership/relay:runtime_unsupported] Changes: - plan_validator.rs: +is_supported_multihop_pattern() method + unit tests - normalized_joinir_min.rs: +2 integration tests for passthrough/rejection - phase70-relay-runtime-guard.md: Phase 70 series status table added Tests: normalized_dev 52/52 PASS, lib 950/950 PASS Design: Structural detection only (no by-name branching) 🤖 Generated with Claude Code Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
@ -74,14 +74,27 @@ Verifies:
|
||||
|
||||
---
|
||||
|
||||
## Phase 70 Series
|
||||
|
||||
| Phase | Status | Description |
|
||||
|-------|--------|-------------|
|
||||
| Phase 70-A | ✅ Complete | Runtime guard with standard tag `[ownership/relay:runtime_unsupported]` |
|
||||
| Phase 70-B | ✅ Complete | Simple passthrough multihop support (contiguous path, no self-updates) |
|
||||
| Phase 70-C | ✅ Complete | Merge relay detection (multiple inner loops → same owner) |
|
||||
| Phase 70-D+ | 🚧 Future | Full runtime execution support (exit PHI merge, carrier propagation) |
|
||||
|
||||
---
|
||||
|
||||
## Related Documents
|
||||
|
||||
- [Phase 65: Multihop Design](phase65-ownership-relay-multihop-design.md)
|
||||
- [Phase 66: Multihop Implementation](phase65-ownership-relay-multihop-design.md#phase-66-implementation-status)
|
||||
- [Phase 70-C: Merge Relay](phase70c-merge-relay.md)
|
||||
- [Phase 56: Ownership-Relay Architecture](phase56-ownership-relay-design.md)
|
||||
|
||||
---
|
||||
|
||||
## Changelog
|
||||
|
||||
- **2025-12-13**: Phase 70-C completed - Merge relay detection and validation
|
||||
- **2025-12-13**: Phase 70-A created - Fail-Fast tag standardization
|
||||
|
||||
Reference in New Issue
Block a user