2026-03-10

2026-03-10

  • Renamed “Bugs & Requests” to “Issues”, added Feature Request type
  • Added clickable evidence logs to Top Stories section
  • Simplified issue resolution: 1 mark = resolved (removed 2/2 requirement)
  • Made workspace save failures loud and persistent (status message stays visible)
  • Fixed !restart/restart references in website onboarding text
  • Added snapshot history viewer to Agents tab workspace editor (timeline dots, view historical snapshots from Firebase, restore to editor)
  • Replaced Revert button with snapshot Restore: loads historical version into editor for review before saving
  • Auto-size workspace editor textarea to fit full file content
  • Cached workspace files for instant tab switching with background sync
  • Fixed race condition: stale fetch overwrites display when switching tabs quickly
  • Prefetch all workspace files on page load for instant tab switching
  • Autofocus password input so Enter key works with prefilled passwords
  • Used prefetched file list and content for instant workspace opening
  • Skip redundant history entries in workspace snapshots
  • Fixed horizontal scroll in workspace editor
  • Fixed workspace editor scroll jump, restart messaging, and collapse business ideas section
  • Decentralized workspace snapshots: each Fly server now runs workspace_snapshot.sh in background, pushing workspace files + daily logs to Firebase RTDB every hour
  • Centralized Mac cron (com.mangrove.workspace-snapshot) running as backup via snapshot_workspaces.py
  • Fixed restart button race condition: Fly Machines API stop returns 200 immediately while machine is still shutting down. Added fly_wait_for_state() to poll until machine reaches “stopped” before issuing start.
  • Fixed workspace file loading stuck/hanging: read_file_from_machine() (sync SSH, 15s timeout) was blocking the asyncio event loop inside async def endpoints. Wrapped all blocking subprocess.run calls in asyncio.to_thread().
  • Fixed workspace file loading still slow (17s per file): proxy was trying SSH first (15s timeout) then falling back to local. Swapped to serve local files instantly by default, with ?live=true query param for background refresh from live bot.
  • Deployed proxy fixes twice to mangrove-agent-proxy on Fly.io
  • Reviewed “Thought Virus” paper (arxiv 2603.00131) — subliminal token injection propagating bias through multi-agent chains. Mapped to scenario C008 (Cross-Agent Contagion) for potential experiment.