A year on, Trump's Gaza peace plan in pieces?

A year on, Trump's Gaza peace plan in pieces?

On Oct 10, 2025, Israel began pulling its troops from parts of Gaza as a peace agreement it signed with Hamas went into effect. A year later, it has expanded its occupation to about 70 per cent of the Palestinian territory — one of its many violations of that ceasefire. The 20-point peace plan envisaged by United States President Donald Trump, titled ‘Comprehensive Plan to End Gaza Conflict’, has not just remained stalled; it has been torn apart by Washington’s own ally Israel. At the time, Trump had touted the plan as a breakthrough that would bring “eternal peace” to the Middle East. He later launched his own military campaign alongside Israel in the war against Iran. The initial phase resulted in a ceasefire on Oct 10, 2025 and secured the release of the last remaining captives seized in Hamas’s Oct 7, 2023 attack on Israel, along with freedom for hundreds of Palestinian prisoners and detainees held by Israel. While the October 10 agreement pertained only to the first phase of the peace plan, the roadmap laid out by Trump had offered the world a glimmer of hope for some semblance of calm in the shattered Palestinian territory. Yet a year on, many of the plan’s goals have yet to materialise, including securing an Israeli withdrawal and rebuilding Gaza. Dawn takes a look at which guarantees have been achieved and what remain unfulfilled promises to the Palestinians, and to peace. What was the plan? The first phase of Trump’s 20-point plan included a suspension of all military operations, Israeli withdrawal from part of ‌the enclave, captive and prisoner releases and a surge in aid. While the first phase of the plan remains incomplete due to the large presence of Israeli troops, the US had announced moving on to the second phase in January, which also remains stalled. (function() { var minH = 50; var maxH = 30000; // Capture the specific iframe for this script instance synchronously var scripts = document.getElementsByTagName('script'); var currentScript = document.currentScript || scripts[scripts.length - 1]; var wrapper = currentScript; while (wrapper && (!wrapper.classList || !wrapper.classList.contains('raw-html-embed-wrapper'))) { wrapper = wrapper.parentNode; } if (!wrapper) return; var iframe = wrapper.querySelector('.raw-html-embed'); if (!iframe || iframe._rawHtmlResizerAttached) return; iframe._rawHtmlResizerAttached = true; function setupScrollCoordination(d) { if (iframe._scrollCoordinationAttached) return; iframe._scrollCoordinationAttached = true; // 1. In-page anchors (like href="#app"): scroll both iframe and parent page smoothly d.addEventListener('click', function(e) { var a = e.target.closest && e.target.closest('a[href^="#"]'); if (!a) return; var hash = a.getAttribute('href'); if (!hash || hash === '#') return; var id = decodeURIComponent(hash.slice(1)); var target = d.getElementById(id) || d.querySelector(hash); if (!target) return; e.preventDefault(); target.scrollIntoView({ behavior: 'smooth', block: 'start' }); try { var rect = iframe.getBoundingClientRect(); if (Math.abs(rect.top) > 5) { window.scrollBy({ top: rect.top, behavior: 'smooth' }); } } catch (err) {} }); // 2. Desktop Mouse Wheel / Trackpad coordination d.addEventListener('wheel', function(e) { var rect = iframe.getBoundingClientRect(); var iframeScroll = (d.documentElement.scrollTop || d.body.scrollTop || (iframe.contentWindow && iframe.contentWindow.scrollY) || 0); // If parent header is still visible above iframe, scroll the parent page first if (rect.top > 1 && e.deltaY > 0) { window.scrollBy({ top: e.deltaY, behavior: 'auto' }); e.preventDefault(); return; } // If at top of iframe and rolling wheel up, scroll parent page up if (iframeScroll = maxScroll - 2 && e.deltaY > 0) { window.scrollBy({ top: e.deltaY, behavior: 'auto' }); e.preventDefault(); return; } }, { passive: false }); // 3. Mobile touch coordination (smooth, no frame-by-frame jank) var touchStartY = 0; var isInteractive = false; try { d.addEventListener('touchstart', function(e) { if (e.touches && e.touches.length) { touchStartY = e.touches[0].clientY; isInteractive = !!(e.target.closest && e.target.closest('a, button, input, select, textarea, label, [role="button"]')); } }, { passive: true }); d.addEventListener('touchmove', function(e) { if (isInteractive || !e.touches || !e.touches.length) return; var currentY = e.touches[0].clientY; var diffY = touchStartY - currentY; var rect = iframe.getBoundingClientRect(); // If iframe is not at top yet and user swipes to scroll down, smoothly dock it if (rect.top > 15 && diffY > 10) { window.scrollBy({ top: rect.top, behavior: 'smooth' }); e.preventDefault(); return; } var iframeScroll = (d.documentElement.scrollTop || d.body.scrollTop || (iframe.contentWindow && iframe.contentWindow.scrollY) || 0); // If at top of iframe and pulling down if (diffY < -15 && iframeScroll 15 && iframeScroll >= maxScroll - 5) { window.scrollBy({ top: 150, behavior: 'smooth' }); return; } }, { passive: false }); } catch (e) {} } function updateHeight() { try { var d = iframe.contentDocument || iframe.contentWindow.document; if (!d || !d.body) return; var meta = d.querySelector('meta[name="embed-height"]'); if (meta && meta.content) { iframe.style.height = meta.content; iframe.style.overflow = 'auto'; iframe.removeAttribute('scrolling'); setupScrollCoordination(d); return; } if (d.body.style.height && d.body.style.height.indexOf('%') === -1) { iframe.style.height = d.body.style.height; return; } // Reset height so the iframe can shrink if the window got narrower iframe.style.height = minH + 'px'; var h = Math.max( d.body.scrollHeight, d.body.offsetHeight, d.documentElement.scrollHeight, d.documentElement.offsetHeight ); if (h > 0) { iframe.style.height = Math.min(Math.max(h, minH), maxH) + 'px'; } } catch (err) {} } iframe.addEventListener('load', function() { updateHeight(); try { var d = iframe.contentDocument || iframe.contentWindow.document; if (window.ResizeObserver && d && d.body) { new ResizeObserver(updateHeight).observe(d.body); } } catch (e) {} }); // Fallback in case it's already loaded (e.g. bfcache or fast render) if (iframe.contentDocument && iframe.contentDocument.readyState === 'complete') { updateHeight(); try { if (window.ResizeObserver && iframe.contentDocument && iframe.contentDocument.body) { new ResizeObserver(updateHeight).observe(iframe.contentDocument.body); } } catch (e) {} } })(); How well has the ceasefire held? Barely. The plan aimed to bring a halt to Israeli military operations after a two-year bombing campaign — widely determined to be a genocide — killed over 74,000 Palestinians. However, near-daily attacks have killed more than 1,460 Palestinians, including 300 children, since the ceasefire took effect on Oct 10. Israel attacked the enclave on 337 of the past 365 days, based on a tally compiled by Al Jazeera and reports by AFP and Palestinian Wafa news agency. This leaves only 28 days without reported attacks over the year-long period up to October 9.

Comment