Josse-posten

The Gulf truce breaks and the US strikes Iran again; NATO convenes in Ankara as Trump renews his claim on Greenland; and Ukraine leaves no major Russian refinery unstruck — with fuel queues now a daily fact of Russian life.

US–Iran ceasefire collapses: strikes escalate into a Gulf-wide crisis

Tankers and cargo vessels in the Gulf of Oman, along the shipping routes linking the Strait of Hormuz and the Arabian Sea. Photo: AP via Al Jazeera

After Iranian forces struck three commercial vessels in the Strait of Hormuz — which Washington called a “clear violation” of the ceasefire — the US military launched “powerful” strikes on Iranian missile sites and command centres. Iran retaliated against what it claimed were “85 military installations” across Bahrain and Kuwait, sending air-raid sirens across the Gulf, and has since accused the US of itself violating the peace agreement. A separate report finds one US strike hit an Iranian school after commanders bypassed warnings that the targeting intelligence was outdated. The UK and France are deploying a naval mission to the Strait within days, and the US Treasury has revoked Iran’s general license to sell oil without sanctions. Brent crude reversed its recent fall to climb above $76 as shipping risk was raised to “severe”; Saudi Arabia is in active talks with Gulf neighbours to expand overland pipeline capacity and bypass the chokepoint entirely.

At NATO Ankara, Trump renews the Greenland threat — and lifts Turkey’s sanctions

Arriving in Ankara, Donald Trump again demanded that Greenland come under US control, threatening to pull all American forces from Europe if allies resist: “That’s what hurt my relationship with NATO, because Greenland doesn’t help Denmark.” The statement at a summit rather than a rally signals this remains live US policy; Danish PM Mette Frederiksen replied that Denmark is “ready to defend Greenland.” Trump also lifted sanctions on Turkey and praised President Erdoğan, with restored F-35 access reportedly on the table — a major concession to the host nation. Against that backdrop the alliance staged a show of independent firepower: a new £37bn joint missile programme convened by Keir Starmer, billions in further arms deals, and a South Korean call for a “defence industry partnership 2.0.” Canada announced $900M in aid including significant air defence, the Netherlands said it has exhausted its direct capacity, and Ukraine’s foreign minister declared Kyiv no longer seeks outside permission to strike Russian territory. Trump claimed to have spoken with both Putin and Zelensky on July 6, though neither side confirmed it.

“No refinery left unstruck”: Omsk halts as fuel queues spread across Russia

Cars queuing at a Rosneft station in Moscow, June 27, 2026. Photo: Getty via Fortune

Russia’s largest oil refinery, at Omsk, formally suspended operations after Ukraine’s July 5–6 strike knocked out roughly 75% of daily capacity — both CDU units offline, no fuel clearing the St Petersburg exchange, and a new world record for the longest one-way drone strike. Overnight July 7–8, Ukrainian drones hit the Saratov and Nizhnekamsk refineries, three defence-industry facilities near Moscow, the Kremniy El microchip plant in Bryansk and a rocket-fuel plant. Zelensky declared there is now no major Russian refinery Ukraine has not struck; Gazprom stock fell to a 17-year low. The domestic resonance is the real story: across Russia, motorists are waiting 12–18 hours to fill up — one widely shared report featured a mother queuing 18 hours with a baby — the clearest sign yet of the campaign producing daily-life economic pain rather than mere attrition at the front. (Military detail in Ukraine.)

Indicator Value Change
S&P 500 (f) 7,542 −0.12%
Dow 30 (f) 53,027 −0.32%
Nasdaq (f) 29,359 −0.11%
Russell 2000 (f) 2,990 −0.29%
VIX 16.45 +1.98%
Gold 4,136 −0.51%
BTC $62,738 −0.47%
EUR/USD 1.1429 +0.24%
USD/NOK 9.7721 −0.40%
  • Oil above $76 — Hormuz shipping risk raised to “severe” after US–Iran strikes resume; Saudi Arabia in talks to expand an overland bypass pipeline (see leader).
  • Equity futures flat to −0.3%, VIX +2% — a muted risk-off tone despite Gulf escalation; markets appear to be pricing limited Hormuz disruption for now.

World

China’s PLA cyber army directed attacks on ICIJ — Taiwan charges executives

Taiwan’s Ministry of Justice Investigation Bureau conducts a search in the probe. Photo: ICIJ

Taiwan’s Ministry of Justice Investigation Bureau has charged executives at front companies that “acted under the direction of the Chinese Communist Party’s cyber army unit” to target the International Consortium of Investigative Journalists. The campaign used phishing from ICIJ impersonators, fake Chinese whistleblowers, and LinkedIn recruitment offering paid articles — targeting not just ICIJ reporters but Uyghur, Tibetan, Taiwanese and Hong Kong diaspora activists. The charges follow a joint investigation by ICIJ and the University of Toronto’s Citizen Lab; Western intelligence agencies have linked the cover companies to China’s military intelligence services.

US charges Indian crime boss in the assassination of Sikh activist Nijjar

US authorities have charged Lawrence Bishnoi — leader of an Indian criminal network, currently imprisoned in India — with orchestrating the June 2023 killing of Hardeep Singh Nijjar, a prominent Sikh activist shot dead in British Columbia. It is the first time a named individual has been publicly charged over the killing, and a significant escalation in the diplomatic crisis that has strained India–Canada relations to breaking point.

Lawsuit: Trump administration shared Iranian asylum seekers’ details with Tehran

A new lawsuit alleges the Trump administration has disclosed personal information from Iranian asylum applications — potentially names and locations — directly to the Iranian government. If accurate, the breach would expose applicants to persecution, arrest, or reprisals against family inside Iran, weaponising the asylum process against the very people it is meant to protect.

NPR

Twin bombs wound 18 in Damascus during Macron’s visit

Explosions rocked Damascus near the hotel housing Emmanuel Macron on Tuesday, injuring at least 18. The blasts did not disrupt the visit — Macron met Syrian President Ahmed al-Charaa at the presidential palace and visited the Umayyad Mosque — but they underscored the fragility of the post-Assad government’s stability as it tries to project normalcy and attract Western engagement.

Hungary halts state TV, airs an on-screen apology for Orbán-era lies

Hungary’s main state television channel broadcast an on-screen apology for “lying” and then went dark Tuesday, as the new government moves to dismantle the propaganda apparatus built under Viktor Orbán. Public news broadcasts have been suspended as part of a sweeping restructuring of state media — a striking public reckoning with over a decade of state-directed disinformation.

Farage quits as MP amid £5m money-laundering probe

Nigel Farage resigned his seat, triggering a Clacton by-election, after the Guardian revealed he received an undeclared £5m gift now reported to the National Crime Agency over money-laundering concerns. Rivals have pledged to boycott what they call a “stunt” by-election; the only confirmed challenger so far is Count Binface. Farage denies wrongdoing and is expected to win the seat back — but the financial questions are unlikely to disappear. Separately, hours after a French appeals court confirmed her embezzlement conviction and ordered an electronic ankle tag as a condition of running, Marine Le Pen announced she will contest the 2027 presidential election and appeal to France’s highest civil court — a gambit that, if it fails, could end her candidacy before it formally begins.

DOGE Ebola cuts caused “significant” DRC deaths — as three new trials begin

Experts say Musk’s DOGE cuts to USAID Ebola programmes “hindered the response” to the DRC’s current outbreak and caused “significant numbers” of preventable deaths. In parallel, three new clinical trials have begun targeting the specific strain driving the outbreak — a variant with no approved treatment — the first real therapeutic hope for a crisis badly under-resourced since the funding cuts.

Also today

Americas
An ICE officer fatally shot motorist Lorenzo Salgado Araujo during a Houston traffic stop; his son says he was looking to hire day labourers — Guardian · Al Jazeera
Bellingcat geolocated a two-hectare trench-burial site near La Guaira, contradicting Venezuela’s minimised earthquake toll — Bellingcat
Middle East
CCTV caught an Israeli border officer throwing a stun grenade into a Palestinian car during a West Bank raid; police have opened an investigation — Guardian
Detained Gaza surgeon Dr Hussam Abu Safiya was beaten so severely his lawyer could barely recognise him in custody — BBC
Science
A cheap homegrown catnip-oil lotion matched DEET at repelling mosquitoes in a Uganda field trial — Guardian
Briefly
The IOC lifted its neutrality screening of Russian athletes, clearing a path to the 2028 LA Games — NPR
A Pakistan-registered Boeing 737 cargo plane with five crew went missing off Karachi after a navigational fault — Guardian
A nationwide Telstra outage cancelled trains, disabled traffic lights and interrupted triple-zero calls across Victoria — Guardian
Anastasiia Berezovska, wanted over a Monaco bombing, was found dead near Kyiv — BBC

Ukraine

Ukraine besieges Crimea: shadow fleet burned, bridges cut, 18 raions dark

Ukraine struck ten shadow-fleet vessels in the Sea of Azov overnight July 6–7 — eight oil tankers, a cargo ship and a ferry — severing Crimea’s primary seaborne gasoline route. Forces also destroyed railway bridges near Rozdolne and Ichki and hit 44 electrical facilities across occupied Crimea and southern Ukraine over July 1–7, including S-400 positions and major substations. Eighteen raions across Crimea are without power; Kherson Oblast declared a state of emergency; telecoms operators activated emergency roaming ahead of a possible full blackout. ISW assesses Crimea’s air-defence umbrella is degrading and the peninsula is becoming genuinely difficult to operate from.

Russian milbloggers demand a unified air defence as the gaps show

A Su-57 with short-range air-to-air missiles, summer 2026 — scrambled to defend Omsk; the refinery was struck anyway. Photo: Defence Express

Russian military bloggers and commentators publicly demanded on July 6–7 that the Kremlin create a unified air-defence command, warning that fragmented control among the military, Rosgvardia and private business lets Ukraine systematically locate and exploit gaps. One noted “there is no rear in Russia now”; another called the Aerospace Forces a “fifth wheel” in actual air defence. ISW assesses Russia cannot rapidly fill these gaps while competing for the same manpower pool needed at a front where recruitment is falling — making it likely Ukraine can sustain or escalate its deep-strike campaign in the near term.

No Russian advances on any axis; Kostyantynivka fight confirmed by Russia’s own bloggers

Russia launched 271 combat operations over the past day — over 50 on the Pokrovsk front alone — but confirmed zero territorial advances anywhere. In Kostyantynivka, where Russia officially claimed seizure, a Russian milblogger acknowledged Ukrainian forces remain active and forecast the city won’t be cleared until August; Ukraine’s National Guard says Russian troops are staging flag-raising stunts during infiltration attempts. ISW assesses Russian claims of village seizures in Sumy Oblast rely on likely AI-altered footage. A 114th Motorized Rifle Brigade commander was arrested mid-theatre on corruption charges — a pattern the Kremlin uses to mask the real reasons for removing disfavoured commanders.

Investigations

Iran was “the most successful failure in US airpower history”

A Breaking Defense analysis argues the US ran two simultaneous air wars against Iran — a war of destruction (bombing infrastructure) and a war of disruption (keeping the Strait open) — and lost the one that mattered. Air superiority over Tehran was achieved; the Strait was not reopened. Iran’s strategy was asymmetric and cold-eyed: it didn’t need to win the air war, only to make winning it feel not worth it to Washington. The oil blockade became a time-horizon contest the US couldn’t outlast — Iran could endure 90–120 days while US consumers, European governments and Gulf states quietly piled pressure on Washington. The deeper failure was conceptual: a detailed plan for destruction, and no serious plan for disruption.

After Khamenei: a fractured succession, a hardline funeral, a missing heir

Khamenei’s death has opened a legitimacy crisis. The funeral was controlled by the Khamenei household, Mojtaba’s network and the Jalili/Paydari hardline bloc, and was used to hammer the negotiation track with the US — mourners coordinated “revenge” slogans extensively covered by Western media. Mojtaba Khamenei, long considered the power behind the throne, was reported absent and possibly incapacitated, creating a “virtual Supreme Leader” vacuum. Ahmadinejad’s surprise reappearance signalled the return of a political wild card. Analysts read the ceremony as an attempt by hardliners to foreclose space for moderate engagement — another knot in the diplomatic Gordian knot.

Kiel Institute: Russia’s war economy is running out of road

A new Kiel Institute report documents how Russia’s financial buffers have been spent down: the sovereign wealth fund has shrunk from 6.5% to 1.8% of GDP since 2022, the Q1 2026 budget deficit already exceeded the full-year target, and oil/gas revenues fell 45% year-on-year in Q1. The Kremlin compensates via off-budget financing, rapid credit expansion and banking-system pressure — stopgaps, not solutions. More structurally, China now accounts for ~35% of Russia’s total trade and supplies roughly three-quarters of the increase in sanctioned military components since 2022. The analysts argue this dependence is becoming a trap Moscow has no near-term path to escape.

Foreign Affairs: how Europe can get Putin’s attention

Europe’s leaders — Stubb, Macron, Meloni — are right to advocate direct engagement with Moscow, this analysis argues, but must do so from clarity: rearmament continues as long as Russia poses a threat, and any serious conversation requires a Ukraine ceasefire first. Putin is currently focused on Trump, not Europe — a possible miscalculation, since Trump’s leverage over Kyiv is diminishing as the frontline stabilises and even advances. The authors urge Europe to position itself as a third power centre offering an alternative to the binary of Trump dealmaking and permanent war: negotiated risk-reduction rather than capitulation.

Also today

  • Zelensky argued 1,000 drones over Moscow would shift Putin’s calculus; Estonia and the Netherlands signed strategic drone pacts, while Budanov said Ukraine “won’t accept ultimatums from Poland” — Kyiv Post · United24 · Euromaidan: Budanov
  • Israel’s refusal to renew the 1994 Jordan water agreement — 50M m³/year, doubled in 2021, expired unrenewed in 2025 — is being called “a stab in the back,” risking a durable peace treaty — Jerusalem Post
  • War on the Rocks argues cloud regions and data centres are now strategic assets — both targets and force multipliers — and that the US and allies lag adversaries on “digital strategic depth” — War on the Rocks
  • A War on the Rocks digest surfaces growing internal dissent: Ukrainian writers publicly questioning wartime government narratives even while backing the war effort — War on the Rocks

Tech

GitLost: a “Additionally” prefix leaks private GitHub repos via an AI agent

Noma Labs found a critical flaw in GitHub’s Agentic Workflows: an attacker files a public issue with hidden instructions in the body; when the workflow reads it, the AI agent exfiltrates private repository data as a public comment — no credentials needed. The bypass was trivially simple — prepending “Additionally” to the payload caused the model to reframe rather than refuse, defeating GitHub’s guardrails. The root cause is the absence of any trust boundary between system-level directives and untrusted user content, a structural problem that will recur across every code-reading AI agent. It rhymes with the day’s other prompt-injection lesson: on PyPI, Trusted Publishing can still be exploited through org-policy and fork-repository attacks — where “Trusted” in the name is itself the vulnerability, breeding false confidence.

OpenBSD under the microscope: a root UAF, a ROP audit, and a pledge census

A busy week for OpenBSD security research. CVE-2026-57589, a use-after-free through version 7.9, lets local users escalate to root — now in NVD; update. In parallel, two papers examine the platform’s defences: an SSRN analysis formally evaluates OpenBSD’s anti-ROP mitigations — where kernel hardening succeeds and where it doesn’t — while an arXiv measurement study quantifies how widely pledge() and unveil() sandboxing are actually adopted across the base system and ports, giving a ground-truth picture of how much privilege isolation the model really delivers. Elsewhere in the network edge, CERT/CC warns that multiple Tenda firmware versions ship a hard-coded authentication backdoor — not a misconfiguration; patch or replace.

Apple Intelligence now routes requests through Google Cloud

iOS 26/27 introduces AFM Cloud Pro — Apple’s new AI model running on Nvidia Blackwell GPUs hosted in Google Cloud — the first time Private Cloud Compute has extended beyond Apple silicon in Apple’s own datacentres. A new permission popup explicitly states data is sent to Google Cloud. The concern isn’t the individual disclosure but the normalisation: repeated popup exposure trains users to approve reflexively, setting precedent for routing increasingly sensitive Siri requests — calendar, messages, health — to third-party infrastructure.

Google’s AI expansion is now an arithmetically impossible climate commitment

Google’s actual emissions trajectory against its published climate targets — the gap is widening sharply. Chart: Ketan Joshi

Google’s electricity consumption jumped from 31 to 43 TWh in a single year (2024–25), almost entirely driven by generative AI. The analysis shows this growth rate exceeds grid decarbonisation by a wide margin, making Google’s net-zero commitments arithmetically impossible without radical capacity cuts. It also dissects the “efficiency-washing” — citing per-query improvements while suppressing absolute growth — and critiques unverifiable “avoided emissions” accounting. A companion thread runs through the day’s other AI-economics story: GLM 5.2 is priced at ~$4.40/MTok against frontier models at $25/MTok — an 80% cut for reportedly comparable quality, trivially swappable via compatible endpoints — which the author argues threatens to collapse frontier labs’ ~90% inference gross margins as enterprise buyers discover the math.

“Parable” ports Fable 5’s work discipline to Opus as a Claude Code skill set

After running Fable 5 and Opus side by side on real tasks, developer SamBWarren concluded ~90% of the quality gap is procedural, not architectural. The resulting Parable skill applies Fable’s discipline to Opus/Sonnet: a Director/Worker/Coordinator role split (the Director never implements; Workers leave grep-able completion markers), append-only thought files separating reasoning from clean output, ensemble adjudication across multi-agent runs (which caught 6/6 defects vs 4/6 solo in head-to-head tests), and “The Ratchet” — each miss immediately becomes a written rule inserted where it would have prevented the failure. It lands as Anthropic silently extended Fable 5’s promotional access to July 12, with OpenAI’s SOL flagship reportedly imminent and a pricing competition brewing between the two labs.

Cowork comes to mobile and web — while quietly merging into Projects

Cowork across web and mobile surfaces. Image: Anthropic

Anthropic expanded Cowork from desktop-only to mobile (iOS/Android) and claude.ai, with genuine background processing: tasks continue with no device online, and mobile surfaces approval-gate notifications so Claude can ping for a mid-task decision without blocking. The beta rolls out to Max subscribers first, with doubled limits through August 5. Less smoothly, Anthropic also folded the Cowork tab into Projects with no changelog — breaking power-user setups built on the separate interface (per-folder prompt scripts, tuned personalities), and creating sync confusion since the web version only exposes Projects. The merge is arguably sensible; the no-notice execution cost users real work.

Fable 5 spotted hidden malware mid-task — then its own safety filter flagged the warning

A user had Fable 5 checking the Windows Run registry key for test-cleanup residue. Unprompted, Fable flagged a hidden PowerShell persistence entry it found in passing — genuine malware, confirmed by the user. Fable’s own safety filters then triggered on the warning itself, redacting the PowerShell details it had just surfaced. The incident illustrates both the proactive environmental awareness of agentic Claude and the awkward collision between that capability and safety guardrails designed for a different threat model.

TRACE organises LLM agent memory into a B+Tree with sleep-cycle consolidation

TRACE structures conversation history as a hierarchical B+Tree: leaf nodes hold raw message pairs, internal nodes hold LLM-generated summaries of topic branches. Retrieval does cosine similarity across topic summaries — not full messages — pulling relevant branches from multiple threads at once. A background reorganiser consolidates related branches during idle time (guarded by four anti-corruption axioms), analogous to sleep-cycle memory consolidation. It benchmarks at 82.5% on MemoryAgentBench EventQA using gpt-oss-20B, versus flat RAG which suffers temporal blindness and context rot on long sessions. Separately, Claude quietly gained editable “Memory Files” — structured, categorised notes replacing the opaque memory blob.

MIRA: a multiplayer world model runs 4-player Rocket League on one B200

General Intuition, Kyutai and Epic Games released MIRA, a 5B-parameter world model trained on 10,000 hours of synthetic Rocket League gameplay. It runs interactive simulation for four simultaneous players at 20 fps on a single B200 GPU, with a playable online demo live. The pairing of a world-model startup, a research lab and a major game studio is an early sign that interactive world models are being taken seriously as a game-simulation substrate — not just a research curiosity.

Signed integers by default: a PL design case by Odin’s creator

Bill Hall (creator of Odin) argues languages should default to signed integers rather than unsigned, grounding the case in real bugs: unsigned underflow wraps silently, signed/unsigned comparisons produce counter-intuitive results, and most domain values are conceptually signed anyway. A direct, well-argued position from someone who made the explicit choice in Odin and can cite the tradeoffs from experience.

Also today

Dev & systems
Apparent Rust memory “leaks” often trace to allocator fragmentation, not your code — dropping to jemalloc/mimalloc frequently resolves the symptom — pranitha.dev
False-sharing padding should be 128 bytes on Skylake x64, not 64, because Intel’s spatial prefetcher fetches cache lines in pairs — though Ice Lake and M1 show negligible difference — monoid.github.io
Clippy tackles its review backlog with a Bevy-style “review another PR, get priority for yours” incentive model, bot-coordinated — Inside Rust
Languages & runtimes
l, a new runtime for K4/Q/qSQL, operates primitives directly on compressed vectors and auto-selects scalar/SIMD/threaded/GPU paths — a drop-in upgrade for the quant stack — lv1.sh · HN
Waterfall CAD, a declarative Haskell CAD library on OpenCASCADE, now runs entirely in-browser via WASM, exporting STL/STEP/GLB — playground · Lobsters
Gabriel Gonzalez presents mechanized type inference for record concatenation, soundly typing {a} ++ {b} via a Dhall-style constructive approach — Haskell for All
ML training
Subspace-constrained LoRA defeats fine-tuning poisoning structurally — constraining updates to a trusted-adapter subspace holds 62–96% accuracy under label-inversion vs 3–26% for unconstrained LoRA, with no detection step — arXiv
TorchJD replaces loss scalarisation with Jacobian descent for multi-task PyTorch — 25+ algorithms (UPGrad, MGDA, CAGrad) find non-conflicting update directions weighted sums can’t — GitHub
Homelab & policy
A thorough guide to a minimal ZFS NAS from scratch — pools, datasets, snapshots, scrubs, shares — without TrueNAS, Synology or QNAP — neil.computer
New EU rules mandate inward-facing driver-monitoring cameras in every new car; data-retention and law-enforcement-access questions remain unresolved — All About Cookies
Rowboat is an open-source, local-first Claude Desktop alternative that repositions the AI as a configurable “work surface” rather than a chat interface — GitHub
cd ~/repos/josse-posten && claude --resume 44cbd269-bf1d-45e7-b769-5258302badb0