codetether-agent 4.7.0-a-002.4

A2A-native AI coding agent for the CodeTether ecosystem
Documentation
//! Origin-aware pairing repair for incremental derivation (issue #231
//! item 5).
//!
//! Mirrors
//! [`crate::session::helper::experimental::pairing::repair_orphans`]
//! but updates a parallel [`MessageOrigin`] vector so the caller can
//! recompute `dropped_ranges` accurately after repair + clamp.

use crate::provider::Message;

use super::incremental_repair_drop::drop_orphan_results;
use super::incremental_repair_inject::inject_synthetic;
use super::incremental_types::MessageOrigin;

/// Run pairing repair in place, keeping `origins` aligned with
/// `messages`.
///
/// # Panics
///
/// Panics in debug builds if the input lengths are out of sync.
pub fn repair_with_origins(messages: &mut Vec<Message>, origins: &mut Vec<MessageOrigin>) {
    debug_assert_eq!(messages.len(), origins.len());
    inject_synthetic(messages, origins);
    drop_orphan_results(messages, origins);
    debug_assert_eq!(messages.len(), origins.len());
}