July 24, 2026
Prepared by Diana Bozhyk
A rare daytime Russian ballistic missile strike hit a defense industry exhibition just outside Kyiv on Friday, killing at least 10 people and wounding around 100 in an attack Russia’s own defense ministry openly claimed. Ukrainian drones reached St. Petersburg for one of the first times in the war, setting fire to Wildberries warehouses in Vladimir Putin’s hometown as part of a strike campaign that has now hit ten of the retailer’s facilities in a single week. And in Sloviansk, Russian bombs struck the same city three times in under a day, damaging Latvia’s honorary consulate and prompting the European Union to summon Russia’s ambassador.
THE DAY’S RECKONING
At 11:20 in the morning, air raid sirens started ringing over Kyiv — an hour most Ukrainians have learned to associate with breakfast, not missiles. Within minutes, explosions were rolling through the Bucha district on the capital’s edge, where representatives of Ukraine’s defense industry had gathered for an exhibition whose location, organizers insist, was never made public. By afternoon, the toll stood at 10 dead and about 100 wounded, among them a woman named Valentyna Savitska, a communications officer whose husband learned of her death from social media before anyone called him directly. Nine hundred miles northeast, in a city Vladimir Putin calls home, Ukrainian drones found something they’d rarely reached before: warehouses belonging to Wildberries, Russia’s answer to Amazon, now burning in St. Petersburg itself. And in Sloviansk, Donetsk Oblast, Russian bombs hit the same city for the third time in under 24 hours, this time catching a foreign consulate in the blast radius. Three different cities, three different kinds of fire — and by nightfall, Zelensky was warning that Russia had readied missiles for another massive strike within 48 hours.

First responders at the site of a Russian missile strike in Kyiv Oblast. (State Emergency Service of Ukraine / Telegram)
TEN KILLED AT AN ARMS EXHIBITION
The missile that hit Kyiv Oblast on Friday morning did something Russian strikes rarely do: it arrived in daylight, and it found a target Moscow was eager to claim credit for. Russia’s Defense Ministry said openly that it had deliberately struck an exhibition displaying Ukrainian and foreign-made drones, describing the weapons on display as tools used against Russian civilian targets. Ukrainian officials confirmed a ballistic missile hit a private training ground in Bucha Raion where defense industry representatives had gathered; Prosecutor General Ruslan Kravchenko put the toll at 10 dead and roughly 100 wounded, and opened two criminal investigations — one into a possible war crime, another into whether organizers had properly weighed the risk of holding such an event so close to the capital.
The location, organizers insisted, was never publicly disclosed; invitations circulated only through closed industry channels, and the registration link itself didn’t reveal the venue. That didn’t stop sharp criticism from Ukrainian military commentators, some of whom compared the strike directly to Russia’s August 2023 missile attack on a military technology exhibition at the Chernihiv Drama Theater. “I take it August 2023 in Chernihiv didn’t teach anyone anything? Who is going to be held responsible for this?” one widely followed monitoring channel asked. Among the dead was Valentyna Savitska, a colonel and communications official with Ukraine’s State Security Administration; her husband, Ihor Solovey, learned of her death and posted his grief online before official channels caught up. “Inhumans killed my beloved girl,” he wrote.
A THIRD STRIKE ON SLOVIANSK IN UNDER A DAY
Sloviansk absorbed three separate Russian strikes within a single day — an unusual concentration even for a front-line city that residents are still being urged to evacuate. The morning attack came first: two air-dropped glide bombs killed at least five people and wounded 15, including a 15-year-old boy, damaging 11 apartment buildings and several shops, according to regional governor Vadym Filashkin, who renewed his call for the roughly 42,000 civilians still living in the city to leave. A second, related wave brought the day’s toll higher still — Ukraine’s State Emergency Service later confirmed a third massive strike within 24 hours, wounding 16 more people, including a child.

A burnt-out car destroyed as a result of a Russian glide bomb attack.
What made the day different was where the bombs landed. One of the strikes damaged the Honorary Consulate of Latvia, prompting the EU’s top diplomat, Kaja Kallas, to call it a deliberate attack on civilians rather than an accident and announce that Brussels would summon Russia’s envoy over it. “The strike on Latvia’s Honorary Consulate in Sloviansk underscores Moscow’s utter disregard for international law,” Kallas said, adding that she would propose fresh sanctions targeting Russia’s military-industrial complex. Ukraine’s Prosecutor General’s Office opened a formal war crimes investigation into the attack. Russian forces are now within 10 miles of Sloviansk’s center, according to Ukrainian mapping trackers — a city hit three times in a day is also a city getting harder to defend.
TWO MORE STRIKES BEFORE DARK: KIROV AND SUMY’S POST OFFICE
Ukraine’s own long-range strikes landed hard the same day. A Ukrainian Flamingo cruise missile — a weapon built around a warhead exceeding 1,000 kilograms, generally reserved for the hardest targets — struck the Avitek defense plant in Kirov, nearly 500 miles northeast of Moscow, killing six workers and wounding 26. The factory, part of Russia’s Almaz-Antey conglomerate, manufactures interceptor components for Tor and Osa air defense systems, along with other aircraft parts; Zelensky confirmed the strike directly, calling the plant a supplier for the missiles and aircraft Russia uses against Ukrainian cities.

A Ukrainian Flamingo cruise missile purportedly launched at a military factory in the Russian city of Kirov, on the early morning. (Denys Shtilerman / X)
Russia’s own attacks kept landing too. A jet-powered Russian drone struck a post office in Sumy early Saturday, killing two people — a 49-year-old man among them, with the second victim’s identity still being confirmed at the time of reporting. A separate overnight strike wounded a man in Zaporizhzhia. Elsewhere, a Russian drone destroyed the locomotive of a passenger train in Dnipropetrovsk Oblast after railway monitoring crews detected the threat in time to evacuate everyone aboard — the latest in a string of strikes on Ukraine’s rail network that have, so far, mostly failed to catch passengers still on the tracks.
WILDBERRIES: THE WAREHOUSE WAR REACHES ST. PETERSBURG
For most of the war, St. Petersburg has been a city Ukrainian strikes couldn’t easily touch — 680 miles from the border, ringed by some of Russia’s densest air defenses, and the hometown of Vladimir Putin himself. That changed this week. Drones hit two separate Wildberries logistics centers in the city, in the Shushary district and at the Utkina Zavod park south of the city, alongside a third facility in occupied Simferopol, Crimea, and a fourth in Tver. Wildberries confirmed the St. Petersburg and Simferopol strikes and said it had suspended operations at both St. Petersburg sites; roughly 50 flights were delayed at the city’s Pulkovo Airport amid the response.
It’s the fifth consecutive day Wildberries facilities have come under attack, and Ukraine’s Unmanned Systems Forces commander, Robert “Magyar” Brovdi, now puts the week’s total at 10 warehouses struck across Russia and occupied Crimea, with roughly 170 billion rubles — about $2.2 billion — in estimated damage. Some of that pressure appears to be personal: Russian Presidential Administration officials Anton Vaino and Alexei Gromov reportedly hold financial stakes in the company, meaning the strikes are landing, however indirectly, on people close to Putin himself. On Russian social media, small sellers who depend on Wildberries to store and ship their goods posted tearful videos describing ruin. “First the Ukrainians killed my husband. Then the bank deceived me. Today, everything I had left burned in the warehouses,” one woman said. “What else is there?”

Cars drive along the road as smoke rises above residential buildings from a warehouse for a Russian e-commerce giant near Saint Petersburg after being hit by Ukrainian drones early. (AFP via Getty Images)
A FRIENDLY-FIRE KILL: RUSSIA’S OWN AIR DEFENSE DOWNS ITS OWN JET
In a story that surfaced only this week, Ukrainian investigators say a combined human-intelligence and cyber operation helped trick Russia’s own air defenses into shooting down one of Russia’s own aircraft. Ukrainian investigative group InformNapalm reported that vulnerabilities identified through the operation caused a Russian BARS-Moscow air defense unit — a formation drawing on Russia’s Combat Army Reserve — to shoot down a Russian Su-37 fighter jet near Lutsino, Moscow Oblast, on July 23. Moscow has not commented publicly on the loss.
It’s a small story next to a missile strike that killed 10 people, but it points at something larger: air defense systems built in a hurry, staffed with reservists, and increasingly asked to defend against threats their operators can’t reliably distinguish from their own aircraft, are prone to exactly this kind of failure. Every jet Russia loses to its own confusion is one fewer aircraft available for the war Russia is actually trying to fight.
TANKS FAIL AGAIN AT DOBROPILLYA
Ukrainian forces confirmed new details this week about a Russian mechanized assault near Dobropillya on July 22 that Ukrainian units had already begun repelling — footage published by Ukraine’s State Border Guard Service, since deleted from the agency’s own website, showed Ukrainian forces destroying nine tanks, two armored fighting vehicles, and three Grad rocket launcher systems during the attack. Follow-up footage this week showed further Russian tanks and a Grad system destroyed near Novotoretske and Shakhove, southeast and east of Dobropillya respectively — the same area where Russian forces attempted, and largely lost, a rare full mechanized push rather than the small infiltrating groups that have defined most of the fighting here.
Near Pokrovsk, the pattern looked different but the outcome was similar. A Ukrainian brigade spokesperson said Ukrainian intelligence detected a Russian troop concentration before it could launch an assault and struck it with rocket artillery first; the same spokesperson said Russian forces have taken to shooting down Ukrainian resupply drones specifically to steal the food and ammunition they’re carrying, and that some Russian commanders are abandoning radio contact with their own assault units once they come under Ukrainian drone fire — a small but telling sign of how thin coordination has become on that stretch of the line.
THE REST OF THE LINE, AND A DRONE OVER ROMANIA
Elsewhere, the front line barely moved. Russian forces pushed without success in northern Sumy Oblast, north and northeast of Kharkiv City, and in the Hulyaipole and western Zaporizhzhia directions, with Ukrainian counterattacks holding in most sectors. In Zolochiv, northwest of Kharkiv City, Russian forces carried out a “double-tap” drone strike on an ambulance responding to an earlier attack, wounding the driver and a paramedic — a tactic that specifically punishes the act of helping. Crimea’s power grid absorbed another 17 Ukrainian strikes on electrical substations over two days, part of the same rolling campaign that has made blackouts routine across the peninsula, while Ukrainian forces separately struck a radar station and a fuel depot at two occupied Crimean airfields.
The war’s edges reached beyond Ukraine’s own borders too. A Romanian F-16 shot down an unidentified drone over an uninhabited stretch of southeastern Romania — officials said it resembled a Shahed or Geran-2 variant, though its origin remains under investigation — while, separately, an explosion damaged a Liberian-flagged coal carrier, the Christiana B, in Romanian waters as it approached Ukraine with cargo from Virginia. Romanian authorities suspect either a naval mine or a maritime drone; no one has claimed responsibility for either incident, but neither is the kind of coincidence NATO’s eastern members can easily shrug off.
MOSCOW’S MONEY MATH
Russia’s Central Bank cut its key interest rate for the fifth time this year, from 14.25 to 14 percent — one of its smallest reductions in months — while insisting the fuel crisis squeezing the country is temporary. Bank chief Elvira Nabiullina acknowledged that rising fuel prices are pushing up the cost of other goods too, but said the bank still expects Russian companies to restore production capacity by the end of the year. The bank’s own numbers tell a less comfortable story: it now projects 2026 inflation at 6 to 7 percent, up from earlier estimates, and cut its growth forecast for the year to somewhere between zero and 1 percent.
Independent indicators paint an even rougher picture. The cost of a basic monthly food basket in Russia has risen nearly 8 percent since January, and the bank’s own inflation figures likely understate the real pressure households are feeling. Cutting interest rates while inflation climbs is an unusual combination — one that suggests the Kremlin is choosing to keep credit cheap for its defense industry even at the cost of letting prices run hotter than officials are willing to admit out loud.
THE GRAIN CORRIDOR’S SLOW COLLAPSE
Ukraine’s Black Sea grain corridor hasn’t been formally closed, but it’s being strangled all the same. Freight rates for shipping grain out of Ukrainian ports have doubled in a week, from roughly $24 to $47 per metric ton, as shipowners grow unwilling to risk vessels in Ukrainian waters. “Many shipowners are no longer authorizing their vessels to enter Ukrainian ports because of security risks,” said Oleh Khomenko, head of the Ukrainian Agribusiness Club, describing a slowdown rather than a formal closure — ships already in port keep loading, but new arrivals have all but stopped.
The numbers behind that caution are stark: Ukraine’s Odesa Regional Prosecutor’s Office says Russia struck 28 civilian vessels in the Greater Odesa area between June 20 and July 20 alone, killing 21 people and wounding 34. Agricultural exports generated $22 billion for Ukraine last year: a sector already strained by Iranian shipping disruptions in the Persian Gulf earlier this year is now absorbing a second, deliberate blow, this one aimed directly at the ports themselves. Alternative routes by road, rail, and the Danube River exist, but Ukrainian officials say none of them can match the volume or cost efficiency of the sea corridor Russia is now working to close in all but name.
BRUSSELS FINALLY AGREES: THE 21ST SANCTIONS PACKAGE
After weeks of internal disputes, EU ambassadors reached agreement on the bloc’s 21st sanctions package targeting Russia, covering energy, financial services, cryptocurrency, and trade. Among its central measures, the EU agreed to freeze the existing $44.10-per-barrel price cap on Russian oil for a full year, preventing the ceiling from automatically climbing alongside global oil prices as it otherwise would. Several member states forced Brussels to scale back parts of the original proposal before agreeing, a familiar pattern for a sanctions process that requires unanimous consent from all 27 governments.
The timing wasn’t purely coincidental: EU foreign policy chief Kaja Kallas linked the package directly to the same day’s strike on Sloviansk, framing additional sanctions on Russia’s military-industrial complex as a direct response. Separately, a Kyiv-based energy think tank announced plans to campaign against a German-approved nuclear fuel venture linking French firm Framatome with Rosatom, Russia’s state nuclear company — a reminder that even as Brussels tightens sanctions with one hand, individual EU governments keep approving Russian-linked projects with the other.
ZELENSKY WARNS OF A BIGGER STRIKE, AND A BIGGER MOBILIZATION
Hours after the Kyiv Oblast strike, Zelensky delivered a warning that made an already grim day feel unfinished. “We know from our intelligence and our partners that the Russians have readied missiles for a new massive attack on Ukraine,” he said, adding that it could come within 48 hours. He paired that warning with another: Ukrainian intelligence has “clear information” that Russia is preparing a significant mobilization wave for autumn, even as Russian losses continue outpacing recruitment. Ukraine’s General Staff separately reported that Russia has lost approximately 1,436,100 troops since the February 2022 invasion began — a running total that keeps climbing even as Moscow struggles to replace it.
Zelensky called air defense the single area where allies could make the most immediate difference, urging partners to accelerate existing agreements rather than negotiate new ones. It’s a familiar ask by now, repeated after nearly every major strike, and it will likely be repeated again if the 48-hour warning proves accurate.
ZELENSKY TALKS DRONES AND DIPLOMACY WITH LOOMER
In an interview with US influencer Laura Loomer — the same Trump ally who reversed her pro-Kremlin views during a Kyiv visit days earlier — Zelensky offered new detail on Ukraine’s long-range drone program, saying its range will jump from roughly 1,860 miles today to about 2,500 miles by year’s end, and as far as 6,200 miles within two years. He traced the diplomatic thaw with Washington back to a brief one-on-one meeting with Trump at the Vatican in April 2025. “It was a short meeting, but in 15 to 20 minutes we changed our relationship,” Zelensky said, describing it as the moment Trump began trusting his account of the war over competing narratives.
Zelensky also used the interview to restate his central priority in blunt terms: a ceasefire now beats years of continued fighting, even if fighting could eventually produce a larger battlefield win. “If tomorrow we can achieve a ceasefire, it will be better than to fight for 10-20 years to win and lose our people,” he said, adding that no one in Ukraine has abandoned the goal of winning outright — only that the human cost of getting there has to factor into the calculation. He confirmed a Washington visit is being arranged for late July, tied to Senator Lindsey Graham’s funeral, with a Trump meeting expected alongside it.
FEDOROV STILL WAITING, PROTESTERS RETURN
Protesters returned to Kyiv’s streets after a three-day pause, still demanding Mykhailo Fedorov’s reinstatement as defense minister even after Zelensky met their other major demand by removing Oleksandr Syrskyi as commander-in-chief. Turnout was noticeably smaller than the previous week, though organizers, led by veteran Dmytro Koziatynskyi, say the campaign will continue indefinitely. Fedorov himself hasn’t wavered: he confirmed again that he’ll accept nothing but his old job, rejecting an offer that reportedly included the post of deputy prime minister for military innovation. “There are only three positions in the country that, alongside the troops on the battlefield, shape the course of the war,” he repeated.
Zelensky has offered no explanation for the original dismissal beyond citing an unspecified conflict between Fedorov and Syrskyi — a conflict that, with Syrskyi now gone, no longer has an obvious second party. Whether smaller crowds mean the pressure is fading, or simply that people are running out of Fridays to give up, is a question the numbers alone can’t answer yet.

People gather to demand the reappointment of Mykhailo Fedorov as defense minister near the President’s Office building. (Tim Zadorozhnyy / The Kyiv Independent)
RUSSIA’S AGENTS IN KYIV: 76 HIJACKED STARLINK TERMINALS
Ukraine’s Security Service said it had identified and shut down a Russian recruitment operation that used Telegram to hire unemployed residents of Kyiv, offering payment in exchange for access to their Starlink satellite internet terminals. Investigators say Russian intelligence used the compromised terminals to help guide missile and drone strikes — turning ordinary residential internet connections into targeting infrastructure without their owners necessarily understanding what they’d agreed to. Seventy-six terminals were identified as compromised before the network was disrupted.
It’s a small, quiet story next to a day that included a missile strike on an arms show and warehouses burning in Putin’s hometown, but it points at the same pattern running through nearly everything else in this war: distance no longer offers the protection it used to, for either side, and the front line increasingly runs through ordinary apartments as much as it does through trenches.
WHAT FRIDAY COST, AND WHAT IT CONFIRMED
By the time Friday turned into Saturday, Ukraine had buried people who came to look at drones and lost people who ran a post office. Russia had lost a warehouse fortune in a city its own president calls home, and possibly a fighter jet to its own confused air defenses. Both countries spent the day proving the same thing in opposite directions: that nowhere either side considers safe actually is. Zelensky’s 48-hour warning hung over the night that followed, a reminder that Friday’s toll was very likely not Friday’s last word.
A PRAYER FOR UKRAINE
1. For Valentyna, and Every Family Learning Through a Screen
Lord, a wife and mother was killed at an event meant to strengthen her country’s defense, and her husband learned of her death before anyone could tell him in person. Hold every family this week who found out through a phone rather than a familiar voice. Comfort them in a grief made harder by how suddenly, and how publicly, it arrived.
2. For the Fifteen-Year-Old Boy of Sloviansk
Father, a teenage boy was wounded when bombs fell on his city for the first of three times in a single day. You know what it costs a child to grow up measuring distance to the front line in kilometers rather than years. Protect him as he heals, and protect the roughly 42,000 people still choosing, for whatever reason, to call this dangerous city home.
3. For the Six Workers of Kirov, Far From Any Front
Lord of every nation, six workers in a factory eight hundred kilometers from the fighting went to their jobs on an ordinary morning and did not leave them, and twenty-six more carry injuries home tonight. War reached them anyway, however the missile that found them was justified by either side. Receive them, and comfort their families, who now grieve a loss their government will likely never fully explain to them.
4. For the Rescuers Struck Twice in Kharkiv Oblast
Lord of the brave, an ambulance driver and a paramedic were wounded responding to one attack, only to be struck by a second aimed squarely at the people who came to help. Protect every rescuer still willing to drive toward danger rather than away from it, in Zolochiv and in every town like it. Let their courage outlast the tactics built specifically to punish it, and let them heal fully from what today cost them.
5. For a Country Waiting on a 48-Hour Warning
God of peace, tonight an entire country goes to sleep knowing a bigger strike may already be on its way, unable to do anything but wait, watch the sky, and keep a phone charged by the bed. Be with every family checking air raid apps instead of resting, and with every parent deciding whether to wake a sleeping child and move them to a hallway. Steady the nerves of a nation that has had to learn this particular kind of waiting far too many times already.
In Your mercy, in Your justice, in Your time — bring this war to its end, and let the ending be worthy of what Ukraine has endured.