magi-code 0.96.1

Repository-aware CLI coding agent for terminal work
Documentation
use super::*;

#[test]
#[ignore = "release-mode transcript projection measurement; run with --release --ignored --nocapture"]
fn transcript_projection_and_thinking_measurement() {
    let mut state = MissionControlState::default();
    for index in 0..500 {
        state.transcript.push_back(format!(
            "assistant: entry {index} {}",
            "wrapped ".repeat(40)
        ));
    }
    let _ = visible_scrollback_visual_lines(&state, 80, 20, 200);
    reset_project_entry_count_for_profiling();
    let started = std::time::Instant::now();
    for _ in 0..100 {
        let _ = visible_scrollback_visual_lines(&state, 80, 20, 200);
    }
    eprintln!(
        "transcript_cache unchanged_frames=100 elapsed_us={} projected_cards={} entry_hash_bytes=0 shared_cards=true backend=projection physical_terminal=false",
        started.elapsed().as_micros(),
        project_entry_count_for_profiling()
    );

    for (label, width, focus) in [
        (
            "narrow_prompt_focus",
            40,
            crate::tui::state::TuiFocusPane::Prompt,
        ),
        (
            "wide_transcript_focus",
            120,
            crate::tui::state::TuiFocusPane::Transcript,
        ),
    ] {
        state.focus_pane = focus;
        let started = std::time::Instant::now();
        let visible = visible_scrollback_visual_lines(&state, width, 20, 200);
        eprintln!(
            "transcript_scenario name={} elapsed_us={} visible_lines={} width={} backend=projection physical_terminal=false",
            label,
            started.elapsed().as_micros(),
            visible.lines.len(),
            width
        );
    }
    state.start_selection(
        crate::tui::layout::TuiPane::Transcript,
        crate::tui::selection::TextPosition::new(0, 0, 0),
    );
    state.update_selection(
        crate::tui::layout::TuiPane::Transcript,
        crate::tui::selection::TextPosition::new(20, 0, 20),
    );
    let started = std::time::Instant::now();
    let selected = crate::tui::transcript_projection::visible_transcript_lines(&state, 80, 20);
    eprintln!(
        "transcript_scenario name=selection elapsed_us={} visible_lines={} width=80 backend=projection physical_terminal=false",
        started.elapsed().as_micros(),
        selected.lines.len()
    );

    let mut streaming = MissionControlState::default();
    let started = std::time::Instant::now();
    reset_project_entry_count_for_profiling();
    for _ in 0..100 {
        streaming.apply_output_event(&OutputEvent::ThinkingSummaryDelta { text: "x".into() });
        let _ = visible_scrollback_visual_lines(&streaming, 80, 20, 0);
    }
    eprintln!(
        "transcript_thinking deltas=100 elapsed_us={} projected_cards={} appended_bytes={} backend=projection physical_terminal=false",
        started.elapsed().as_micros(),
        project_entry_count_for_profiling(),
        streaming.thinking_append_work_bytes
    );
}