# Day 2 UI v2 Deep Frame Memory Date: 2026-06-10 ## Goal Make one canvas frame behave like one continuous ideation thread, even as it gets deep. The model should receive the root idea, current user card, all user iterations, and the prior AI pressure trail so it does not reset or drift away from the original frame. ## Change - `run_canvas_engine()` now builds a richer frame-memory prompt. - Frame memory includes: - frame continuity instruction - current iteration - original idea - full user iteration history - prior AI pressure trail with depth, direction, pressure, and `why_it_bites` - Prior pressure cards are still passed separately as forbidden context so MiniCPM avoids copying earlier angles. - UI soft-pass behavior now covers broad idea-grounding retry exhaustion as well as repeat and current-iteration grounding exhaustion. Malformed JSON, advice language, and wrong direction shape still fail closed. ## Live Local Smoke Ran `iris.ui.run_canvas_engine()` against local MiniCPM4.1 with: - Depth: 6 - Four user iterations in one frame - Three prior AI pressure cards from earlier depths - Current iteration: vetted weather data plus cheap compute before live updates Result: - `ok: true` - `kind: pressures` - `depth: 6` - `card_count: 4` - Directions: Constraints, Limitations, Capabilities, Reality Contact This verifies the live model path can continue a deeper single-frame ideation thread without losing the root context or dead-ending the frame. ## Automated Checks - `python3 -m unittest discover -s tests` passed. - `python3 -m compileall iris tests app.py` passed.