CodePulse v2.3.136–v2.3.138 — Real-life mode fully isolated from CLI + production smoke-test fixes
TAB-626 redesign: Real-life mode is now fully isolated from the Code-mode CLI bridge — separate session registry, separate prompt, separate streaming pipeline. Plus the first round of production smoke-test fixes (mid-spawn race, response-card layout, placeholder UX) and stop-hook diagnostic instrumentation that surfaced the cross-session contamination bug fixed in TAB-642/643.
What landed
- TAB-626 — Real-life fully isolated from CLI (the redesign). The original Path D plumbing reused the Code-mode CLI bridge with a
realLifeModeflag. After two weeks of Phase 6 polish that boundary started leaking — Code-mode hooks bled into RL sessions, Code-mode response chrome appeared in RL Telegram cards. The redesign extracts a dedicatedpersistent-cli-bridge.tsfor RL with its own session registry, prompt template (no Code-mode preamble), and streaming pipeline. Boundary B3 (UI chrome) and B4 (learned patterns) are now structurally enforced, not just convention. - TAB-640 — Production smoke-test fixes. Three classes of bugs caught in the first wave of real-user RL testing:
- Mid-spawn race — RL session got registered AFTER its first hook fired, so the bridge briefly treated it as a non-RL Code session. Fixed by registering at spawn intent, not at spawn confirm.
- Response card frame — first RL response card's frame dropped because the placeholder bubble swallowed the formatting.
- Placeholder UX — the "thinking..." card position was wrong (above the approval cards instead of below). Fixed alignment.
- TAB-641 — Stop-hook diagnostic instrumentation. Added trace-level logging across the entire stop-hook session-id flow. Caught two bugs that had been lurking since v2.3.130 (the cross-session contamination next bullet) and provided the data needed for TAB-642 + TAB-643.
- TAB-642 + TAB-643 — Cross-session contamination fix. The Code-mode interactive hook would fire mid-RL turn and pollute the RL Telegram chat with Code-mode auto-allow toasts. Fixed via TAB-642's blanket
!isDelegateearly-return, then refined by TAB-643's instrumentation and (later) TAB-645's RL-active gate.
Why these matter
Real-life mode is now production-ready as an isolated workflow. The Phase 6 architecture (TAB-629–TAB-633) couldn't fully eliminate Code-mode chrome leakage without TAB-626's deeper isolation. Combined with TAB-640–TAB-643's bug-fix sweep, the system is stable enough for early-access RL users.
What this unblocks
The follow-up wave (v2.3.139–v2.3.141) layers voice + UX polish on top of this isolation. Without TAB-626's clean separation, every UX polish would have had to manually re-validate Boundary B3 / B4 invariants — instead, those are now structural, so polish work focuses on the user-facing surface.
Tests
Two adversarial review rounds applied to the TAB-626 redesign. The Phase 8 review (TAB-635) re-validated the entire RL surface end-to-end after redesign. Production smoke-test fixes from TAB-640 each got dedicated regression coverage. Total tests added: ~85.