Round-3 real-world feedback:
The lazy-revive retry shipped (the error text now says "Server already burned a one-shot lazy-revive retry"), but it's insufficient under real use — the bridge still went fully cold mid-session and required a manual extension-icon click to recover. The 30s Chrome SW eviction is faster than a human-paced session's gaps between calls.
Fix requested:
implement the proactive keep-alive ping (every ~25s while any fetchproxy-backed MCP has been used in the last N minutes), not just reactive revive. Reactive alone loses the race.
Per CLAUDE.md, extension-core/src/keepalive.ts already registers chrome.alarms firing every 24s. If that's what's currently shipping, this issue is asking either (a) why isn't the alarm firing under real use (debugging needed) or (b) the existing alarm isn't enough and a server-side ping should also fire to bound the round-trip "the SW has heard from this MCP recently" window.
Likely root cause: chrome.alarms is host-side. When the SW is evicted, the alarm fires next time the SW boots — but by then a call is already in flight and racing. A server-initiated ping every 25s (from @fetchproxy/server while the MCP has been used recently) would keep the SW resident as long as the MCP is active, not just for the first 24s after extension load.
Follow-up to #23 (the original ask 1, "SW keepalive heartbeat in the extension").
Round-3 real-world feedback:
Fix requested:
Per CLAUDE.md,
extension-core/src/keepalive.tsalready registerschrome.alarmsfiring every 24s. If that's what's currently shipping, this issue is asking either (a) why isn't the alarm firing under real use (debugging needed) or (b) the existing alarm isn't enough and a server-side ping should also fire to bound the round-trip "the SW has heard from this MCP recently" window.Likely root cause:
chrome.alarmsis host-side. When the SW is evicted, the alarm fires next time the SW boots — but by then a call is already in flight and racing. A server-initiated ping every 25s (from@fetchproxy/serverwhile the MCP has been used recently) would keep the SW resident as long as the MCP is active, not just for the first 24s after extension load.Follow-up to #23 (the original ask 1, "SW keepalive heartbeat in the extension").