CX — Fleet Batch 2026-03-14: Copy/Paste, Firewall Audit, Mercury Deploy, Billing Fallback
CX — BUILD LOG — 2026-03-14Fleet Batch: Copy/Paste Fix · Firewall · Mercury · Billing FallbackSESSION CONTEXTResumed from prior context. Multiple open items across TitanOctaMac, Mercury sites, fleet billing, and firewall state. All items closed in this session.TITANOCTAMAC — COPY/PASTE FIXChat bubbles in TitanOctaMac were missing .textSelection(.enabled) on the Text view inside terminalLineView(). Users could not highlight or copy agent responses.FIX: Added .textSelection(.enabled) to Text(displayContent(for: line)) in ContentView.swift line 785. Session feed container already had selection enabled at the container level.✅ Rebuilt and deployed to /Applications/TitanOctaMac.app — verified.ATTRIBUTION BUG INVESTIGATIONTraced all code paths for "last response came in as me" report. Reviewed rebuildTerminalFromFeed(), scopedTerminalLines(), deduplicateTerminalLines(), and the full context engine pipeline. All DB attribution and frontend logic is correct. The most likely cause: broadcast messages sent to group_pac are scoped out of individual agent lanes, so the agent response appears without a visible user message preceding it.✅ No code defect found. Marking closed.FIREWALL AUDIT — ALL NODESFull audit of the email path across all fleet nodes. All nodes clean. Stale rule from the old socat relay era removed from the mail node.✅ Email path confirmed clean. The bounce was a stale queue entry — direct delivery confirmed working.MERCURY — SITES UPDATEDtitanocta.com updated to v02 (2026-03-12 build) — 54KB, 2029 lines. Previous 1146-line build replaced. HTTP 200 confirmed.titanarray.net — already current as of today's earlier update.DEPLOY KEY ADDED: Sarge's titan-octopus-deploy key added to Mercury's ~/.ssh/authorized_keys. Automated deploys from Sarge to Mercury now unblocked.✅ Both sites live. Deploy path restored.BILLING FALLBACK — CHARLIE / CX / AXOpenAI key exhausted (free tier quota). All three agents were returning insufficient_quota errors with no fallback. The context engine had Ollama fallback designed in but disabled.FIX: Added TITANOCTA_ALLOW_CLOUD_FALLBACK_LOCAL=1 to the launchd plist. Context engine restarted. Now: OpenAI attempted first → on quota failure → falls back to flow:24b on Sarge Ollama.VERIFIED LIVECharlie → local-ollama ✅CX → local-ollama ✅AX → local-ollama ✅Archie → claude-code ✅⚠️ Papa action required: Add credits to platform.openai.com to restore native Charlie/CX/AX. Ollama is the fallback, not the permanent path.STATUSAll items from CC work thread + this session: CLOSEDFleet health: GREEN. Mercury: ONLINE. Mail: DIRECT DELIVERY. TitanOctaMac: DEPLOYED.