From f11af434cdba454f7a54504c0d3c490da7e2df83 Mon Sep 17 00:00:00 2001 From: Levi Neuwirth Date: Fri, 31 Jul 2026 20:15:32 -0400 Subject: [PATCH] merge: integrate main @ 28f878b; adopt the isolation seam MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The isolation lane (#206) landed with an adoption ratchet, and it caught this branch's brand-new suite on the first run after the merge: these suites construct an editor through the ambient entry points, so they read the developer's real init.lua and write into their real data root: ["discovery_acceptance.rs (1 site(s))"] That is the ratchet working as designed against code written by someone who was not looking at the isolation lane while writing it — which is the case it exists for. `discovery_acceptance` is therefore MIGRATED, not allowlisted: it includes `common/iso.rs` and constructs through `EditorState::new_with_roots(&iso::roots())`. Allowlisting would have put a fresh ambient site into the census the same day the census was built. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01Lv428Fth9LRtffwJSsqH7T --- tests/discovery_acceptance.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/tests/discovery_acceptance.rs b/tests/discovery_acceptance.rs index 7b4d021..3eea579 100644 --- a/tests/discovery_acceptance.rs +++ b/tests/discovery_acceptance.rs @@ -19,6 +19,9 @@ use crossterm::event::{KeyCode, KeyEvent, KeyEventKind, KeyEventState, KeyModifi use pmacs::editor::EditorState; use pmacs::protocol::FrontendId; +#[path = "common/iso.rs"] +mod iso; + fn exec(s: &EditorState, src: &str) { s.lua_host.lua().load(src.to_owned()).exec().unwrap(); } @@ -110,8 +113,16 @@ fn run_from_palette(s: &mut EditorState, command: &str, second: Option<&str>) { } } +/// Constructed with **isolated bootstrap roots**, never ambiently. +/// +/// An integration test is compiled without `cfg(test)`, so a raw +/// `EditorState::new()` reads the developer's real `init.lua` and writes +/// bundled packages into their real data root. The adoption ratchet in +/// `ambient_isolation_acceptance` caught this suite the moment the +/// isolation lane merged — which is the ratchet doing its job against +/// brand-new code, so this file is migrated rather than allowlisted. fn editor() -> EditorState { - EditorState::new() + EditorState::new_with_roots(&iso::roots()) } /// The eleven canonical commands and the argument each needs, if any.