diff --git a/CHANGELOG.md b/CHANGELOG.md index b64d95292..fd23c6312 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,9 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) ## [Unreleased] +* fix(server): a starting server no longer unlinks and re-binds a session socket that a live server still owns — it probes the path first and refuses to start when someone is listening, even if that server is too busy to answer a health probe; only missing, stale or non-socket paths are cleaned up. A server already running a session likewise rejects a second new-session request instead of re-initializing over live state +* fix(chrome): the chrome a client had visible is parked when that client detaches, so a server with nobody attached stops refreshing the cross-session list once a second; attaching re-activates it and rebuilds the list on the spot +* perf(plugins): `get_session_list` no longer feeds its result back into Screen — a plugin-initiated read used to trigger a `SessionUpdate` broadcast to every plugin (including the caller), a self-sustaining loop whose cost grew with the square of the live session count * feat(input): `Cmd+K` / `Super+k` opens the existing `❯_ Quick cmd` mini-console in every mode including LOCK; the keybind messages the active compact-bar so keyboard and click share one runner, geometry and pane-title contract, with matching Alacritty CSI-u translation and help ## [0.47.3] - 2026-08-06 diff --git a/default-plugins/session-manager/src/main.rs b/default-plugins/session-manager/src/main.rs index 0f7528249..fbb476a26 100644 --- a/default-plugins/session-manager/src/main.rs +++ b/default-plugins/session-manager/src/main.rs @@ -1857,16 +1857,11 @@ impl State { } } fn handle_session_rail_key(&mut self, key: KeyWithModifier) -> bool { + // Bare arrows are deliberately NOT handled here. Session switching by + // arrow lives only in the ^T tab-mode keybinds (vc_rail_nav pipe) and + // the always-on Super chords; a focused rail consuming raw arrows made + // LOCK mode switch sessions, since LOCK routes keys to the focused pane. match key.bare_key { - BareKey::Down if key.has_no_modifiers() => { - // Operator contract: arrow = immediate switch, no Enter confirm. - self.switch_session_relative(1); - true - }, - BareKey::Up if key.has_no_modifiers() => { - self.switch_session_relative(-1); - true - }, BareKey::Enter if key.has_no_modifiers() => { self.handle_session_rail_selection(); true @@ -3287,6 +3282,18 @@ mod rail_tests { } } + /// Product key-contract v3: bare arrows switch sessions ONLY through the + /// ^T tab-mode keybinds (vc_rail_nav pipe). A focused rail pane must not + /// consume them — LOCK routes raw keys to the focused pane, so a rail + /// arrow handler becomes a hidden mode-proof session switcher. + #[test] + fn rail_ignores_bare_arrow_keys() { + let mut state = State::default(); + state.sessions.session_ui_infos = vec![session("solo", true)]; + assert!(!state.handle_session_rail_key(KeyWithModifier::new(BareKey::Up))); + assert!(!state.handle_session_rail_key(KeyWithModifier::new(BareKey::Down))); + } + fn session_launched_at(name: &str, is_current_session: bool, secs: u64) -> SessionUiInfo { SessionUiInfo { creation_time: Duration::from_secs(secs), diff --git a/docs/VC_FRAME_OPERATOR_SURFACE.md b/docs/VC_FRAME_OPERATOR_SURFACE.md index c63fd12d4..a24b34d38 100644 --- a/docs/VC_FRAME_OPERATOR_SURFACE.md +++ b/docs/VC_FRAME_OPERATOR_SURFACE.md @@ -56,7 +56,12 @@ once from the session snapshot it already owns and sends a small scalar message only to the status-bar plugin/client pairs viewing active tabs. When a client switches tabs, the server sends an exact plugin/client deactivation signal to the status bar it left; sampling does not rely on the tab-global `Visible` -event, which cannot distinguish multiple clients in one session. Per-tab +event, which cannot distinguish multiple clients in one session. A client that +detaches is covered by the same transition: the chrome it had visible is parked +as the client leaves, so a server with nobody attached holds no chrome that +keeps polling for cross-session state. Attaching re-activates that chrome +through the ordinary active-target path, and the session list it shows is +rebuilt on the spot. Per-tab status bars never subscribe to the full cross-session `SessionUpdate`, and unrelated `CustomMessage` consumers are not awakened. Host resource sampling also runs only in active status-bar instances, and clipboard timers cannot @@ -72,6 +77,27 @@ resolve to that built-in plugin. An unrelated `file:` or remote plugin is not treated as the built-in status bar merely because its filename looks similar; custom replacements must implement and wire their own sampling lifecycle. +## Session Socket Ownership + +A session name maps to one socket file, and exactly one live server may own it. +A starting server probes that path before binding: if a process is listening +there — even one too busy to answer a health probe — the newcomer refuses to +start and says so in the log instead of unlinking the file and binding over it. +Only a path that nothing is listening on (missing, stale after a crash, or not +a socket at all) is cleaned up and re-bound. + +The rule exists because stealing a socket does not stop the previous server: it +keeps running, unreachable, with zero clients, and nothing ever reaps it. A +server that already runs a session also rejects a second new-session request +rather than re-initializing over live state; the caller sees the refusal and +can attach to the existing session instead. + +The probe is a Unix-only mechanism, because only there is the session path a +socket that a second server can unlink and rebind. Off Unix the path is a +marker file and the listener is a named pipe whose name the OS refuses to hand +out twice, so the bind itself already decides ownership — the marker is written +only after it succeeds. + ## Key Contract The shipped defaults promise one navigation language — one modifier per diff --git a/scripts/triage-runtime-e2e.py b/scripts/triage-runtime-e2e.py index 02d013ff3..b00874207 100755 --- a/scripts/triage-runtime-e2e.py +++ b/scripts/triage-runtime-e2e.py @@ -746,6 +746,11 @@ def isolated_env( # Set both spellings so even a compatibility path cannot fall back # to an inherited operator socket. "VC_FRAME_SOCKET_DIR": str(socket_root), + # Keep fixture servers as real descendants of the interrupted + # triage process. The fail-closed cleanup can then pin every exact + # PID through its stopped parent instead of trusting reparented + # daemon PIDs. + "VC_FRAME_SERVER_FOREGROUND": "1", "ZELLIJ_SOCKET_DIR": str(socket_root), "VIBECRAFTED_CONTROL_PLANE": str(control_plane), } @@ -878,6 +883,10 @@ def namespace_preflight( socket_root == namespace_root / "sockets", f"{key} escaped the fixture namespace: {socket_root}", ) + require( + env.get("VC_FRAME_SERVER_FOREGROUND") == "1", + "isolated runtime must keep server processes in the owned tree", + ) for key in ISOLATION_PATH_KEYS: resolved = pathlib.Path(env[key]).resolve() require( @@ -1820,6 +1829,45 @@ def validate_owned_process_group_leader( ) +def is_isolated_foreground_server_member( + process: subprocess.Popen[bytes], + member: dict[str, object], + leader: dict[str, object] | None, +) -> bool: + """Prove a reparented fixture server still belongs to the fresh session.""" + if ( + getattr(process, "vc_frame_server_foreground", None) != "1" + or int(member.get("ppid", -1)) != 1 + or leader is None + ): + return False + socket_root_value = getattr(process, "vc_frame_socket_root", None) + owned_binary = getattr(process, "vc_frame_owned_binary", None) + if not isinstance(socket_root_value, str) or not isinstance(owned_binary, str): + return False + try: + member_args = shlex.split(str(member.get("command", ""))) + leader_args = shlex.split(str(leader.get("command", ""))) + except ValueError: + return False + if ( + not member_args + or not leader_args + or member_args[0] != leader_args[0] + or pathlib.Path(member_args[0]).resolve() != pathlib.Path(owned_binary).resolve() + ): + return False + server_paths = server_argument_paths(str(member.get("command", ""))) + if len(server_paths) != 1: + return False + try: + server_path = server_paths[0].resolve() + socket_root = pathlib.Path(socket_root_value).resolve() + except OSError: + return False + return server_path.is_relative_to(socket_root) + + def annotate_owned_process_group_depths( process: subprocess.Popen[bytes], members: list[dict[str, object]], @@ -1835,6 +1883,13 @@ def annotate_owned_process_group_depths( by_pid[pid] = member invalid: list[dict[str, object]] = [] + leader = by_pid.get(process.pid) + detached_roots = { + int(member["pid"]) + for member in annotated + if int(member.get("pid", -1)) != process.pid + and is_isolated_foreground_server_member(process, member, leader) + } for member in annotated: pid = int(member.get("pid", -1)) if pid in duplicate_pids: @@ -1846,13 +1901,24 @@ def annotate_owned_process_group_depths( member["depth"] = 0 member["ancestry"] = [process.pid] continue + if pid in detached_roots: + member["depth"] = 1 + member["ancestry"] = [pid, 1] + member["detached_owned"] = True + member["ownership_proof"] = "isolated_foreground_server" + continue ancestry = [pid] visited: set[int] = set() cursor = pid depth: int | None = None topology_error: str | None = None + detached_ancestor: int | None = None while cursor != process.pid: + if cursor in detached_roots: + detached_ancestor = cursor + depth = len(ancestry) + break if cursor in visited: topology_error = f"cycle through pid {cursor}" break @@ -1880,6 +1946,11 @@ def annotate_owned_process_group_depths( member["depth"] = depth member["ancestry"] = ancestry + if detached_ancestor is not None: + member["detached_owned_subtree"] = True + member["ownership_proof"] = ( + f"descendant_of_isolated_foreground_server:{detached_ancestor}" + ) if topology_error is not None: member["topology_error"] = topology_error if "Z" not in str(member.get("state", "")): @@ -1903,7 +1974,6 @@ def validated_owned_process_group_members( members, topology_invalid = annotate_owned_process_group_depths( process, members ) - observations.append(members) leader = next( (member for member in members if int(member["pid"]) == process.pid), None, @@ -1930,6 +2000,38 @@ def validated_owned_process_group_members( is not None and "Z" in str(parent.get("state", "")) ] + detached_foreign_uid_members = [ + member + for member in members + if member.get("detached_owned_subtree") is True + and int(member.get("uid", -1)) != expected_uid + and "Z" not in str(member.get("state", "")) + ] + unsignalable_pids = { + int(member["pid"]) for member in detached_foreign_uid_members + } + for member in members: + ancestry = member.get("ancestry") + if member.get("detached_owned_subtree") is True and isinstance( + ancestry, list + ): + if any( + isinstance(pid, int) and pid in unsignalable_pids + for pid in ancestry + ): + member["unsignalable_owned_descendant"] = True + member["ownership_proof"] = ( + f"{member.get('ownership_proof')}+foreign_uid_evidence_only" + ) + sid_ambiguous_members = [ + member + for member in sid_ambiguous_members + if member.get("unsignalable_owned_descendant") is not True + ] + sid_ambiguous_pids = { + int(member["pid"]) for member in sid_ambiguous_members + } + observations.append(members) ambiguous_members = list( { int(member["pid"]): member @@ -1938,13 +2040,17 @@ def validated_owned_process_group_members( *unstable_parent_members, *topology_invalid, ] + if member.get("unsignalable_owned_descendant") is not True }.values() ) invalid_members = [ member for member in members if int(member.get("pgid", -1)) != process.pid - or int(member.get("uid", -1)) != expected_uid + or ( + int(member.get("uid", -1)) != expected_uid + and member.get("detached_owned_subtree") is not True + ) or ( member.get("sid") != process.pid and int(member.get("pid", -1)) not in sid_ambiguous_pids @@ -2098,6 +2204,7 @@ def wait_for_owned_member_quiescence( deadline: float, expected_stopped_parent: int | None, terminal: bool, + allow_disappearance: bool = False, ) -> None: """Observe a signalled PID only while its immediate parent stays stopped.""" last_members: list[dict[str, object]] = [] @@ -2112,6 +2219,8 @@ def wait_for_owned_member_quiescence( None, ) if member is None: + if allow_disappearance: + return parent = ( next( ( @@ -2213,6 +2322,7 @@ def stop_owned_process_group( for member in last_members if "T" not in str(member.get("state", "")) and "Z" not in str(member.get("state", "")) + and member.get("unsignalable_owned_descendant") is not True ] if not running: signature = tuple( @@ -2223,6 +2333,7 @@ def stop_owned_process_group( member.get("depth"), ) for member in last_members + if member.get("unsignalable_owned_descendant") is not True ) if signature == quiesced_signature: return last_members @@ -2238,6 +2349,7 @@ def stop_owned_process_group( member for member in running if int(member["pid"]) == process.pid + or member.get("detached_owned") is True or ( (parent := members_by_pid.get(int(member.get("ppid", -1)))) is not None @@ -2288,7 +2400,8 @@ def stop_owned_process_group( ) continue - expected_parent = int(target["ppid"]) + detached_owned = target.get("detached_owned") is True + expected_parent = None if detached_owned else int(target["ppid"]) signalled = signal_exact_owned_group_member( process, target_pid, @@ -2308,6 +2421,7 @@ def stop_owned_process_group( deadline=deadline, expected_stopped_parent=expected_parent, terminal=False, + allow_disappearance=detached_owned, ) time.sleep(0.001) raise OwnedProcessGroupRefusal( @@ -2328,6 +2442,7 @@ def continue_owned_process_group( for member in members if "Z" not in str(member.get("state", "")) and "T" not in str(member.get("state", "")) + and member.get("unsignalable_owned_descendant") is not True ] if unstopped: raise OwnedProcessGroupRefusal( @@ -2335,7 +2450,10 @@ def continue_owned_process_group( f"unstopped={unstopped!r}, members={members!r}" ) targets = [ - member for member in members if "Z" not in str(member.get("state", "")) + member + for member in members + if "Z" not in str(member.get("state", "")) + and member.get("unsignalable_owned_descendant") is not True ] targets.sort( key=lambda member: ( @@ -2377,7 +2495,11 @@ def continue_owned_process_group( signal.SIGCONT, deadline=deadline, require_stopped=True, - expected_stopped_parent=int(member["ppid"]), + expected_stopped_parent=( + None + if member.get("detached_owned") is True + else int(member["ppid"]) + ), ) @@ -2395,16 +2517,18 @@ def kill_owned_process_group( member for member in stopped_members if "Z" not in str(member.get("state", "")) + and member.get("unsignalable_owned_descendant") is not True ] targets.sort( key=lambda member: ( -int(member.get("depth", -1)), + member.get("detached_owned") is True, int(member["pid"]), ) ) target_pids = {int(member["pid"]) for member in targets} addressed: set[int] = set() - for member in targets: + for target_index, member in enumerate(targets): member_pid = int(member["pid"]) if member_pid in addressed: raise OwnedProcessGroupRefusal( @@ -2416,6 +2540,7 @@ def kill_owned_process_group( current for current in current_members if "Z" not in str(current.get("state", "")) + and current.get("unsignalable_owned_descendant") is not True and int(current["pid"]) not in target_pids ] if unexpected_live: @@ -2444,7 +2569,8 @@ def kill_owned_process_group( ) process.kill() return - expected_parent = int(member["ppid"]) + detached_owned = member.get("detached_owned") is True + expected_parent = None if detached_owned else int(member["ppid"]) signalled = signal_exact_owned_group_member( process, member_pid, @@ -2455,12 +2581,26 @@ def kill_owned_process_group( ) if not signalled: continue + remaining_nonleaders = [ + candidate + for candidate in targets[target_index + 1 :] + if int(candidate["pid"]) != process.pid + ] + if member.get("detached_owned") is True and not remaining_nonleaders: + # Killing this last detached root intentionally dissolves the + # ancestry proof for its unsignalable evidence-only descendants. + # The exact unreaped Popen leader is still pinned, so terminate it + # now and let the mandatory stable-empty group proof decide whether + # any server residue survived. + process.kill() + return wait_for_owned_member_quiescence( process, member_pid, deadline=deadline, expected_stopped_parent=expected_parent, terminal=True, + allow_disappearance=detached_owned, ) raise OwnedProcessGroupRefusal( f"owned process group {process.pid} lost its leader before exact KILL" @@ -2760,6 +2900,13 @@ def interrupt_process_at_state( stderr=stderr, start_new_session=True, ) + process.vc_frame_server_foreground = env.get( # type: ignore[attr-defined] + "VC_FRAME_SERVER_FOREGROUND" + ) + process.vc_frame_socket_root = env.get( # type: ignore[attr-defined] + "VC_FRAME_SOCKET_DIR" + ) + process.vc_frame_owned_binary = str(binary.resolve()) # type: ignore[attr-defined] try: wait_for_process_stop(process) for slices in range(1, max_slices + 1): diff --git a/security/semgrep/EVIDENCE.md b/security/semgrep/EVIDENCE.md index e3294df5b..80a11d8c4 100644 --- a/security/semgrep/EVIDENCE.md +++ b/security/semgrep/EVIDENCE.md @@ -1,8 +1,8 @@ # Semgrep adjudication evidence Receiver baseline: Semgrep 1.172.0, explicit registry pack `p/rust`, 60 resolved -rules, 57 rules executed over 358 targets, 326 blocking findings and zero scan -errors at `6ba1ab7b`. The exact raw JSON hash is pinned in `baseline.json`; +rules, 57 rules executed over 363 targets, 327 blocking findings and zero scan +errors at `09656c0c`. The exact raw JSON hash is pinned in `baseline.json`; `findings.jsonl` is the checked-in machine-verifiable verdict surface. The gate also hashes Semgrep's normalized resolved rule representation, so a registry rule-body change fails even when rule IDs stay the same. Scanner @@ -85,6 +85,8 @@ temp directory and contain only the current user's terminal dump. `current_exe` starts another internal mode of the already running vc-frame binary. It establishes no identity, trust, privilege or update provenance. +The clinic also resolves the current executable for a read-only mtime and +local process-name drift diagnosis; it neither executes nor authorizes it. The triage transfer-lock tests additionally re-enter the same test executable under fixed test names with only the selected isolated scenario or the lock path and expected lock state. The macOS-only xtask installer test copies its diff --git a/security/semgrep/baseline.json b/security/semgrep/baseline.json index e8eff2654..7bf2a8ad7 100644 --- a/security/semgrep/baseline.json +++ b/security/semgrep/baseline.json @@ -1,7 +1,7 @@ { "schema_version": 1, - "captured_at": "2026-08-04T17:31:51Z", - "repo_sha": "6ba1ab7bcec7a3e5a2c5c6466ef156a598aafd41", + "captured_at": "2026-08-11T21:03:51Z", + "repo_sha": "09656c0c6cfd91252cfe229281e2b12bf7d8435b", "scanner_version": "1.172.0", "config": "p/rust", "config_kind": "explicit_registry_pack", @@ -70,14 +70,14 @@ "skills.command-execution.skill-rust-command-dev-tcp.skill-rust-command-dev-tcp", "skills.command-execution.skill-rust-command-network-tools.skill-rust-command-network-tools" ], - "target_count": 358, - "finding_count": 326, + "target_count": 363, + "finding_count": 327, "finding_counts_by_rule": { "rust.actix.path-traversal.tainted-path.tainted-path": 9, "rust.lang.security.args-os.args-os": 1, - "rust.lang.security.current-exe.current-exe": 12, + "rust.lang.security.current-exe.current-exe": 13, "rust.lang.security.temp-dir.temp-dir": 34, "rust.lang.security.unsafe-usage.unsafe-usage": 270 }, - "raw_results_sha256": "508a49446d03581fa523f582e748282873df1b2df272a854bebd5802c6feed7f" + "raw_results_sha256": "422c956f69fccb40ac787be7299ab9b38fcb19ad3aedbed168b8ada902d30530" } diff --git a/security/semgrep/findings.jsonl b/security/semgrep/findings.jsonl index 2c178317b..edad5e914 100644 --- a/security/semgrep/findings.jsonl +++ b/security/semgrep/findings.jsonl @@ -1,326 +1,327 @@ {"column":19,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","default-plugins/link/src/main.rs"],"fingerprint":"39f76ce6f4bb74784f53e05d7f20f57bcab46fba85d369b4f16d95916be6181432905b1cf4c63ced6355827d84439b2e9bb1519203307650071dcb98b33dd3d9_0","id":"SG-0001","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":506,"owner":"Rust test harness","path":"default-plugins/link/src/main.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} {"column":20,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","default-plugins/strider/src/file_list_view.rs"],"fingerprint":"59025770226c12a15e8c43bea49f4393aa49ac2ff3fa878e3e58ef3c65b8aadd011cdce60f8aedf486b7ec60142c5216a9ad81f8270b0995a6bbcdb30b194ee0_0","id":"SG-0002","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":318,"owner":"Rust test harness","path":"default-plugins/strider/src/file_list_view.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} {"column":20,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","default-plugins/strider/src/main.rs"],"fingerprint":"73a79fec102c14856700fa8df2d3ba6217f79a9d15cdb6e95700d8438031cd56970634047c89603dbf11ab80fc8bcdd92b460de0c1e690cc526914009f0f37df_0","id":"SG-0003","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":281,"owner":"Rust test harness","path":"default-plugins/strider/src/main.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} -{"column":20,"evidence":["security/semgrep/EVIDENCE.md#transfer-lock-descriptor","src/run_triage_cli.rs"],"fingerprint":"6c902f1851ead06091728b45e6a060e439c0e38eaa83fc3f192125c17abed294ce2e55be3f3aa17e5f5bf9ccdfdec3f999670291bc320ca177ffe8eedae8f6e1_0","id":"SG-0004","invariant":"The inherited descriptor is validated as open, marked close-on-exec, matched to the canonical lock path by device and inode, and adopted by exactly one Rust owner.","line":98,"owner":"Triage transfer lock","path":"src/run_triage_cli.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":26,"evidence":["security/semgrep/EVIDENCE.md#current-executable","src/run_triage_cli.rs"],"fingerprint":"76eb61b1dedf6fd92c522899f1384f37364396354aadafe9f809471a35063e13f727b70ed9dd81927e4dd5f129989dceac6b111b4e2bfa5e26a0d845740d4f94_0","id":"SG-0005","invariant":"The resolved current binary receives fixed internal flags plus already-validated configuration paths.","line":338,"owner":"Client process lifecycle","path":"src/run_triage_cli.rs","reason":"current_exe only spawns another mode of the running vc-frame binary; it establishes no trust.","rule":"rust.lang.security.current-exe.current-exe","verdict":"scoped_false_positive"} -{"column":35,"evidence":["security/semgrep/EVIDENCE.md#current-executable","src/run_triage_cli.rs"],"fingerprint":"76eb61b1dedf6fd92c522899f1384f37364396354aadafe9f809471a35063e13f727b70ed9dd81927e4dd5f129989dceac6b111b4e2bfa5e26a0d845740d4f94_1","id":"SG-0006","invariant":"The resolved current binary receives fixed internal flags plus already-validated configuration paths.","line":2237,"owner":"Client process lifecycle","path":"src/run_triage_cli.rs","reason":"current_exe only spawns another mode of the running vc-frame binary; it establishes no trust.","rule":"rust.lang.security.current-exe.current-exe","verdict":"scoped_false_positive"} -{"column":41,"evidence":["security/semgrep/EVIDENCE.md#current-executable","src/run_triage_cli.rs"],"fingerprint":"76eb61b1dedf6fd92c522899f1384f37364396354aadafe9f809471a35063e13f727b70ed9dd81927e4dd5f129989dceac6b111b4e2bfa5e26a0d845740d4f94_2","id":"SG-0007","invariant":"The resolved current binary receives fixed internal flags plus already-validated configuration paths.","line":2296,"owner":"Client process lifecycle","path":"src/run_triage_cli.rs","reason":"current_exe only spawns another mode of the running vc-frame binary; it establishes no trust.","rule":"rust.lang.security.current-exe.current-exe","verdict":"scoped_false_positive"} -{"column":44,"evidence":["security/semgrep/EVIDENCE.md#current-executable","src/run_triage_cli.rs"],"fingerprint":"76eb61b1dedf6fd92c522899f1384f37364396354aadafe9f809471a35063e13f727b70ed9dd81927e4dd5f129989dceac6b111b4e2bfa5e26a0d845740d4f94_3","id":"SG-0008","invariant":"The resolved current binary receives fixed internal flags plus already-validated configuration paths.","line":2310,"owner":"Client process lifecycle","path":"src/run_triage_cli.rs","reason":"current_exe only spawns another mode of the running vc-frame binary; it establishes no trust.","rule":"rust.lang.security.current-exe.current-exe","verdict":"scoped_false_positive"} -{"column":41,"evidence":["security/semgrep/EVIDENCE.md#current-executable","src/run_triage_cli.rs"],"fingerprint":"76eb61b1dedf6fd92c522899f1384f37364396354aadafe9f809471a35063e13f727b70ed9dd81927e4dd5f129989dceac6b111b4e2bfa5e26a0d845740d4f94_4","id":"SG-0009","invariant":"The resolved current binary receives fixed internal flags plus already-validated configuration paths.","line":2341,"owner":"Client process lifecycle","path":"src/run_triage_cli.rs","reason":"current_exe only spawns another mode of the running vc-frame binary; it establishes no trust.","rule":"rust.lang.security.current-exe.current-exe","verdict":"scoped_false_positive"} -{"column":44,"evidence":["security/semgrep/EVIDENCE.md#current-executable","src/run_triage_cli.rs"],"fingerprint":"76eb61b1dedf6fd92c522899f1384f37364396354aadafe9f809471a35063e13f727b70ed9dd81927e4dd5f129989dceac6b111b4e2bfa5e26a0d845740d4f94_5","id":"SG-0010","invariant":"The resolved current binary receives fixed internal flags plus already-validated configuration paths.","line":2355,"owner":"Client process lifecycle","path":"src/run_triage_cli.rs","reason":"current_exe only spawns another mode of the running vc-frame binary; it establishes no trust.","rule":"rust.lang.security.current-exe.current-exe","verdict":"scoped_false_positive"} -{"column":25,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","src/run_triage_cli.rs"],"fingerprint":"47dae781288c73b0bd85c5f04dfa363a58b6ef7c5289e9cb35353306672cd0106770fe0b232c2ca410ee39a3e8edece1cc74dd4f04ad282514d42a1bcb9d4eb3_0","id":"SG-0011","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":2673,"owner":"Rust test harness","path":"src/run_triage_cli.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} -{"column":25,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","src/run_triage_cli.rs"],"fingerprint":"47dae781288c73b0bd85c5f04dfa363a58b6ef7c5289e9cb35353306672cd0106770fe0b232c2ca410ee39a3e8edece1cc74dd4f04ad282514d42a1bcb9d4eb3_1","id":"SG-0012","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":2721,"owner":"Rust test harness","path":"src/run_triage_cli.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} -{"column":29,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","xtask/src/pipelines.rs"],"fingerprint":"88eed7e3a59cdf5959bd7e74e2211ca358869824e8e94b6392fdb51c6268fb581656ac0378da29f5d9a35e97513ab51113778eaf5ff39ce4fdb0070a29073b33_0","id":"SG-0013","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":1256,"owner":"Rust test harness","path":"xtask/src/pipelines.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} -{"column":13,"evidence":["security/semgrep/EVIDENCE.md#current-executable","xtask/src/pipelines.rs"],"fingerprint":"cd2183f84fb155fb87f62b8b770a81cc7a77d846d6243b3a5e6487e8980668e8ac690c6fe442fa765b617d99534fb4d94e145b27db34649b42c4a762ab365b6d_0","id":"SG-0014","invariant":"The executable path remains inside cfg(test), is copied into a process-private test directory, and is never executed with elevated trust.","line":1859,"owner":"Rust test harness","path":"xtask/src/pipelines.rs","reason":"The macOS-only installer test copies its own real Mach-O test executable as local fixture bytes.","rule":"rust.lang.security.current-exe.current-exe","verdict":"scoped_false_positive"} -{"column":32,"evidence":["security/semgrep/EVIDENCE.md#current-executable","zellij-client/src/lib.rs"],"fingerprint":"c87420950484497eb9b425f1f3993dd775cbdfa0ca86acf4c12695080cc455902293b3821d2a63b86f49f57389153a758db42382753e5e348ec3f6bdce71525f_0","id":"SG-0015","invariant":"The resolved current binary receives fixed internal flags plus already-validated configuration paths.","line":261,"owner":"Client process lifecycle","path":"zellij-client/src/lib.rs","reason":"current_exe only spawns another mode of the running vc-frame binary; it establishes no trust.","rule":"rust.lang.security.current-exe.current-exe","verdict":"scoped_false_positive"} -{"column":32,"evidence":["security/semgrep/EVIDENCE.md#current-executable","zellij-client/src/lib.rs"],"fingerprint":"c87420950484497eb9b425f1f3993dd775cbdfa0ca86acf4c12695080cc455902293b3821d2a63b86f49f57389153a758db42382753e5e348ec3f6bdce71525f_1","id":"SG-0016","invariant":"The resolved current binary receives fixed internal flags plus already-validated configuration paths.","line":303,"owner":"Client process lifecycle","path":"zellij-client/src/lib.rs","reason":"current_exe only spawns another mode of the running vc-frame binary; it establishes no trust.","rule":"rust.lang.security.current-exe.current-exe","verdict":"scoped_false_positive"} -{"column":32,"evidence":["security/semgrep/EVIDENCE.md#current-executable","zellij-client/src/lib.rs"],"fingerprint":"c87420950484497eb9b425f1f3993dd775cbdfa0ca86acf4c12695080cc455902293b3821d2a63b86f49f57389153a758db42382753e5e348ec3f6bdce71525f_2","id":"SG-0017","invariant":"The resolved current binary receives fixed internal flags plus already-validated configuration paths.","line":363,"owner":"Client process lifecycle","path":"zellij-client/src/lib.rs","reason":"current_exe only spawns another mode of the running vc-frame binary; it establishes no trust.","rule":"rust.lang.security.current-exe.current-exe","verdict":"scoped_false_positive"} -{"column":32,"evidence":["security/semgrep/EVIDENCE.md#current-executable","zellij-client/src/lib.rs"],"fingerprint":"c87420950484497eb9b425f1f3993dd775cbdfa0ca86acf4c12695080cc455902293b3821d2a63b86f49f57389153a758db42382753e5e348ec3f6bdce71525f_3","id":"SG-0018","invariant":"The resolved current binary receives fixed internal flags plus already-validated configuration paths.","line":391,"owner":"Client process lifecycle","path":"zellij-client/src/lib.rs","reason":"current_exe only spawns another mode of the running vc-frame binary; it establishes no trust.","rule":"rust.lang.security.current-exe.current-exe","verdict":"scoped_false_positive"} -{"column":18,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-client/src/os_input_output_windows.rs"],"fingerprint":"52ce911ce8f90612c71d0c6a47e51730525436de1f1f363a0e3b58552f475fb5186121aa6d5f3e958087da03d3b8f533dd22e6075fd18468862832dd60e8fd62_0","id":"SG-0019","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":106,"owner":"Windows platform I/O","path":"zellij-client/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-client/src/stdin_handler_windows.rs"],"fingerprint":"8518e91bd06482347ee54f4f1f4bdbd24ce69a309c1bb7858da4f0c8c94ddc562222ac501a779825e47b9b9999f4952d0ce8028c51135eda228c390518239db2_0","id":"SG-0020","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":30,"owner":"Windows platform I/O","path":"zellij-client/src/stdin_handler_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":9,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-client/src/stdin_handler_windows.rs"],"fingerprint":"8518e91bd06482347ee54f4f1f4bdbd24ce69a309c1bb7858da4f0c8c94ddc562222ac501a779825e47b9b9999f4952d0ce8028c51135eda228c390518239db2_1","id":"SG-0021","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":78,"owner":"Windows platform I/O","path":"zellij-client/src/stdin_handler_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":15,"evidence":["security/semgrep/EVIDENCE.md#current-executable","zellij-client/src/web_client/mod.rs"],"fingerprint":"d3359c43a06aa4e074f8d62eaeb46106e7d4bc95b81dd9a7e45d46abe01722ee027a8534ecacbe32f15764a019fd53ca478bfab4fad84bd4b20039aff6673141_0","id":"SG-0022","invariant":"The resolved current binary receives fixed internal flags plus already-validated configuration paths.","line":408,"owner":"Client process lifecycle","path":"zellij-client/src/web_client/mod.rs","reason":"current_exe only spawns another mode of the running vc-frame binary; it establishes no trust.","rule":"rust.lang.security.current-exe.current-exe","verdict":"scoped_false_positive"} -{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_0","id":"SG-0023","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":84,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} -{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_1","id":"SG-0024","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":144,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} -{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_2","id":"SG-0025","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":216,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} -{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_3","id":"SG-0026","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":283,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} -{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_4","id":"SG-0027","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":499,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} -{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_5","id":"SG-0028","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":678,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} -{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_6","id":"SG-0029","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":728,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} -{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_7","id":"SG-0030","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":790,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} -{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_8","id":"SG-0031","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":937,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} -{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_9","id":"SG-0032","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":1114,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} -{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_10","id":"SG-0033","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":1262,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} -{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_11","id":"SG-0034","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":1397,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} -{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_12","id":"SG-0035","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":1496,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} -{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_13","id":"SG-0036","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":1673,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} -{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_14","id":"SG-0037","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":1787,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} -{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_15","id":"SG-0038","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":1960,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} -{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_16","id":"SG-0039","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":2144,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} -{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_17","id":"SG-0040","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":2314,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} -{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_18","id":"SG-0041","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":2413,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} -{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_19","id":"SG-0042","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":2500,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} -{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_20","id":"SG-0043","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":2620,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} -{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_21","id":"SG-0044","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":2717,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} -{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_22","id":"SG-0045","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":2800,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} -{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_23","id":"SG-0046","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":2855,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} -{"column":9,"evidence":["security/semgrep/EVIDENCE.md#process-probes","zellij-server/src/lib.rs"],"fingerprint":"b1fc0b3cf8af62bac26937a0171ed3d10d9868e626ed76f45c82465875ad082d0a77c261c3fe56bb8efc7eb93e9a01c7e6766e7a967636a212bf68cbd5473592_0","id":"SG-0047","invariant":"Unix daemonization is isolated to startup before threaded work and every fork outcome is handled.","line":773,"owner":"Server process lifecycle","path":"zellij-server/src/lib.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":21,"evidence":["security/semgrep/EVIDENCE.md#unix-platform-ffi","zellij-server/src/os_input_output_unix.rs"],"fingerprint":"daf3af297c9ec5a5b2e7e9a3054fa76b97856fb047e9f44bbc702afe7fcd40762bc94c54341af565db13d1991b047a08b349cb42fe77a166380d6fac7ddc6d03_0","id":"SG-0048","invariant":"Unsafe blocks are narrow libc/terminal adapters; descriptors and pointers are validated and exposed as safe types.","line":95,"owner":"Unix platform I/O","path":"zellij-server/src/os_input_output_unix.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#unix-platform-ffi","zellij-server/src/os_input_output_unix.rs"],"fingerprint":"daf3af297c9ec5a5b2e7e9a3054fa76b97856fb047e9f44bbc702afe7fcd40762bc94c54341af565db13d1991b047a08b349cb42fe77a166380d6fac7ddc6d03_1","id":"SG-0049","invariant":"Unsafe blocks are narrow libc/terminal adapters; descriptors and pointers are validated and exposed as safe types.","line":129,"owner":"Unix platform I/O","path":"zellij-server/src/os_input_output_unix.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#unix-platform-ffi","zellij-server/src/os_input_output_unix.rs"],"fingerprint":"daf3af297c9ec5a5b2e7e9a3054fa76b97856fb047e9f44bbc702afe7fcd40762bc94c54341af565db13d1991b047a08b349cb42fe77a166380d6fac7ddc6d03_2","id":"SG-0050","invariant":"Unsafe blocks are narrow libc/terminal adapters; descriptors and pointers are validated and exposed as safe types.","line":372,"owner":"Unix platform I/O","path":"zellij-server/src/os_input_output_unix.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":23,"evidence":["security/semgrep/EVIDENCE.md#unix-platform-ffi","zellij-server/src/os_input_output_unix.rs"],"fingerprint":"daf3af297c9ec5a5b2e7e9a3054fa76b97856fb047e9f44bbc702afe7fcd40762bc94c54341af565db13d1991b047a08b349cb42fe77a166380d6fac7ddc6d03_3","id":"SG-0051","invariant":"Unsafe blocks are narrow libc/terminal adapters; descriptors and pointers are validated and exposed as safe types.","line":399,"owner":"Unix platform I/O","path":"zellij-server/src/os_input_output_unix.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":19,"evidence":["security/semgrep/EVIDENCE.md#unix-platform-ffi","zellij-server/src/os_input_output_unix.rs"],"fingerprint":"daf3af297c9ec5a5b2e7e9a3054fa76b97856fb047e9f44bbc702afe7fcd40762bc94c54341af565db13d1991b047a08b349cb42fe77a166380d6fac7ddc6d03_4","id":"SG-0052","invariant":"Unsafe blocks are narrow libc/terminal adapters; descriptors and pointers are validated and exposed as safe types.","line":418,"owner":"Unix platform I/O","path":"zellij-server/src/os_input_output_unix.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":13,"evidence":["security/semgrep/EVIDENCE.md#unix-platform-ffi","zellij-server/src/os_input_output_unix.rs"],"fingerprint":"daf3af297c9ec5a5b2e7e9a3054fa76b97856fb047e9f44bbc702afe7fcd40762bc94c54341af565db13d1991b047a08b349cb42fe77a166380d6fac7ddc6d03_5","id":"SG-0053","invariant":"Unsafe blocks are narrow libc/terminal adapters; descriptors and pointers are validated and exposed as safe types.","line":879,"owner":"Unix platform I/O","path":"zellij-server/src/os_input_output_unix.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":26,"evidence":["security/semgrep/EVIDENCE.md#unix-platform-ffi","zellij-server/src/os_input_output_unix.rs"],"fingerprint":"daf3af297c9ec5a5b2e7e9a3054fa76b97856fb047e9f44bbc702afe7fcd40762bc94c54341af565db13d1991b047a08b349cb42fe77a166380d6fac7ddc6d03_6","id":"SG-0054","invariant":"Unsafe blocks are narrow libc/terminal adapters; descriptors and pointers are validated and exposed as safe types.","line":990,"owner":"Unix platform I/O","path":"zellij-server/src/os_input_output_unix.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":9,"evidence":["security/semgrep/EVIDENCE.md#unix-platform-ffi","zellij-server/src/os_input_output_unix.rs"],"fingerprint":"daf3af297c9ec5a5b2e7e9a3054fa76b97856fb047e9f44bbc702afe7fcd40762bc94c54341af565db13d1991b047a08b349cb42fe77a166380d6fac7ddc6d03_7","id":"SG-0055","invariant":"Unsafe blocks are narrow libc/terminal adapters; descriptors and pointers are validated and exposed as safe types.","line":1008,"owner":"Unix platform I/O","path":"zellij-server/src/os_input_output_unix.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":9,"evidence":["security/semgrep/EVIDENCE.md#unix-platform-ffi","zellij-server/src/os_input_output_unix.rs"],"fingerprint":"daf3af297c9ec5a5b2e7e9a3054fa76b97856fb047e9f44bbc702afe7fcd40762bc94c54341af565db13d1991b047a08b349cb42fe77a166380d6fac7ddc6d03_8","id":"SG-0056","invariant":"Unsafe blocks are narrow libc/terminal adapters; descriptors and pointers are validated and exposed as safe types.","line":1045,"owner":"Unix platform I/O","path":"zellij-server/src/os_input_output_unix.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":19,"evidence":["security/semgrep/EVIDENCE.md#unix-platform-ffi","zellij-server/src/os_input_output_unix.rs"],"fingerprint":"daf3af297c9ec5a5b2e7e9a3054fa76b97856fb047e9f44bbc702afe7fcd40762bc94c54341af565db13d1991b047a08b349cb42fe77a166380d6fac7ddc6d03_9","id":"SG-0057","invariant":"Unsafe blocks are narrow libc/terminal adapters; descriptors and pointers are validated and exposed as safe types.","line":1059,"owner":"Unix platform I/O","path":"zellij-server/src/os_input_output_unix.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":9,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_0","id":"SG-0058","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":68,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":27,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_1","id":"SG-0059","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":100,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":12,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_2","id":"SG-0060","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":106,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":9,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_3","id":"SG-0061","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":110,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":13,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_4","id":"SG-0062","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":117,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":13,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_5","id":"SG-0063","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":180,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":12,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_6","id":"SG-0064","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":212,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":13,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_7","id":"SG-0065","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":223,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":13,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_8","id":"SG-0066","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":226,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":13,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_9","id":"SG-0067","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":229,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":24,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_10","id":"SG-0068","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":284,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":18,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_11","id":"SG-0069","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":389,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":18,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_12","id":"SG-0070","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":405,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":9,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_13","id":"SG-0071","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":417,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":14,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_14","id":"SG-0072","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":437,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_15","id":"SG-0073","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":455,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":8,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_16","id":"SG-0074","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":461,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":8,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_17","id":"SG-0075","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":470,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":9,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_18","id":"SG-0076","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":482,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":34,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_19","id":"SG-0077","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":487,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":39,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_20","id":"SG-0078","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":508,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":14,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_21","id":"SG-0079","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":510,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_22","id":"SG-0080","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":525,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_23","id":"SG-0081","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":535,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":12,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_24","id":"SG-0082","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":596,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":13,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_25","id":"SG-0083","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":597,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":17,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_26","id":"SG-0084","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":608,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":9,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_27","id":"SG-0085","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":619,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":21,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_28","id":"SG-0086","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":629,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":30,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_29","id":"SG-0087","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":758,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":26,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_30","id":"SG-0088","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":787,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":26,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_31","id":"SG-0089","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":818,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":18,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_32","id":"SG-0090","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":843,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":25,"evidence":["security/semgrep/EVIDENCE.md#path-traversal","zellij-server/src/plugins/plugin_loader.rs"],"fingerprint":"d647f9d8f9936be80fe7d44f27fc5f8f8dca37dea71e15520eec66ee7f021024f71ab1c51ef7aef6f93816f54b61aa9381bdb3b6423e81923be5c0a3ea078e54_0","id":"SG-0091","invariant":"The path is a host-selected WASI preopen, not an HTTP parameter.","line":36,"owner":"Plugin filesystem capability","path":"zellij-server/src/plugins/plugin_loader.rs","reason":"The Actix taint rule matched a generic path operation outside an Actix request flow.","rule":"rust.actix.path-traversal.tainted-path.tainted-path","verdict":"scoped_false_positive"} -{"column":13,"evidence":["security/semgrep/EVIDENCE.md#test-only-unsafe","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"060633d99d0466ed8923e22ea91c43c825d863aa68e7fc933e02afddf38ffc28c5eaaced579a027b9ef9f3ef3749982fefb3c7b49b39061e3faa69294b6c5927_0","id":"SG-0092","invariant":"Unsafe environment mutation is test-only, restores prior state, and does not ship in production binaries.","line":390,"owner":"Rust test harness","path":"zellij-server/src/plugins/unit/plugin_tests.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":13,"evidence":["security/semgrep/EVIDENCE.md#test-only-unsafe","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"060633d99d0466ed8923e22ea91c43c825d863aa68e7fc933e02afddf38ffc28c5eaaced579a027b9ef9f3ef3749982fefb3c7b49b39061e3faa69294b6c5927_1","id":"SG-0093","invariant":"Unsafe environment mutation is test-only, restores prior state, and does not ship in production binaries.","line":478,"owner":"Rust test harness","path":"zellij-server/src/plugins/unit/plugin_tests.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":13,"evidence":["security/semgrep/EVIDENCE.md#test-only-unsafe","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"060633d99d0466ed8923e22ea91c43c825d863aa68e7fc933e02afddf38ffc28c5eaaced579a027b9ef9f3ef3749982fefb3c7b49b39061e3faa69294b6c5927_2","id":"SG-0094","invariant":"Unsafe environment mutation is test-only, restores prior state, and does not ship in production binaries.","line":574,"owner":"Rust test harness","path":"zellij-server/src/plugins/unit/plugin_tests.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":13,"evidence":["security/semgrep/EVIDENCE.md#test-only-unsafe","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"060633d99d0466ed8923e22ea91c43c825d863aa68e7fc933e02afddf38ffc28c5eaaced579a027b9ef9f3ef3749982fefb3c7b49b39061e3faa69294b6c5927_3","id":"SG-0095","invariant":"Unsafe environment mutation is test-only, restores prior state, and does not ship in production binaries.","line":670,"owner":"Rust test harness","path":"zellij-server/src/plugins/unit/plugin_tests.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":37,"evidence":["security/semgrep/EVIDENCE.md#path-traversal","zellij-server/src/plugins/watch_filesystem.rs"],"fingerprint":"762af5f57e999ca9e5a3e0272cf8a536a6269709d4a3f18b3229f8cb5023f33bb5cf0525b4293ff7afa3370116373571f0311f01b4516b0d3d4a00d1954255ad_0","id":"SG-0096","invariant":"The hit only converts an authorized host cwd before a local watcher is registered.","line":47,"owner":"Plugin filesystem capability","path":"zellij-server/src/plugins/watch_filesystem.rs","reason":"The Actix taint rule matched a generic path operation outside an Actix request flow.","rule":"rust.actix.path-traversal.tainted-path.tainted-path","verdict":"scoped_false_positive"} -{"column":15,"evidence":["security/semgrep/EVIDENCE.md#process-environment","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"c17076ebe456293ec9c60a89a0dbe0ee9dffb54eed6ca254f62487cc294b9af551ef8a2eb8d19568307fb2a1949d03c504ca8be6390443ad183901969802a756_0","id":"SG-0097","invariant":"Environment mutation is confined to synchronous host-command handling and the explicitly requested variable.","line":3936,"owner":"Plugin host API","path":"zellij-server/src/plugins/zellij_exports.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":24,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-server/src/tab/mod.rs#edit_scrollback"],"fingerprint":"1955a32a03ba838c7b6b14e92daf3cb943bd16a51f21c79ad312af6b60451522cae6895077dccf14966fdad727ba3816f70345ec559d9c30c8be545fea56cc73_0","id":"SG-0098","invariant":"Every editor dump has a new UUID v4 and carries only current-user terminal contents.","line":5328,"owner":"Terminal scrollback","path":"zellij-server/src/tab/mod.rs","reason":"The rule flags temp_dir itself; each scrollback file appends a fresh UUID v4.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} -{"column":24,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-server/src/tab/mod.rs#edit_scrollback"],"fingerprint":"1955a32a03ba838c7b6b14e92daf3cb943bd16a51f21c79ad312af6b60451522cae6895077dccf14966fdad727ba3816f70345ec559d9c30c8be545fea56cc73_1","id":"SG-0099","invariant":"Every editor dump has a new UUID v4 and carries only current-user terminal contents.","line":5355,"owner":"Terminal scrollback","path":"zellij-server/src/tab/mod.rs","reason":"The rule flags temp_dir itself; each scrollback file appends a fresh UUID v4.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} -{"column":28,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-server/src/tab/mod.rs#edit_scrollback"],"fingerprint":"1955a32a03ba838c7b6b14e92daf3cb943bd16a51f21c79ad312af6b60451522cae6895077dccf14966fdad727ba3816f70345ec559d9c30c8be545fea56cc73_2","id":"SG-0100","invariant":"Every editor dump has a new UUID v4 and carries only current-user terminal contents.","line":5381,"owner":"Terminal scrollback","path":"zellij-server/src/tab/mod.rs","reason":"The rule flags temp_dir itself; each scrollback file appends a fresh UUID v4.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} -{"column":28,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-server/src/tab/mod.rs#edit_scrollback"],"fingerprint":"1955a32a03ba838c7b6b14e92daf3cb943bd16a51f21c79ad312af6b60451522cae6895077dccf14966fdad727ba3816f70345ec559d9c30c8be545fea56cc73_3","id":"SG-0101","invariant":"Every editor dump has a new UUID v4 and carries only current-user terminal contents.","line":5405,"owner":"Terminal scrollback","path":"zellij-server/src/tab/mod.rs","reason":"The rule flags temp_dir itself; each scrollback file appends a fresh UUID v4.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_0","id":"SG-0102","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":57,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_1","id":"SG-0103","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":66,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_2","id":"SG-0104","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":76,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_3","id":"SG-0105","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":87,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_4","id":"SG-0106","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":94,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_5","id":"SG-0107","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":103,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_6","id":"SG-0108","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":114,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_7","id":"SG-0109","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":129,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_8","id":"SG-0110","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":148,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_9","id":"SG-0111","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":180,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_10","id":"SG-0112","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":191,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_11","id":"SG-0113","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":210,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_12","id":"SG-0114","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":265,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_13","id":"SG-0115","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":310,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_14","id":"SG-0116","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":346,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_15","id":"SG-0117","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":380,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_16","id":"SG-0118","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":396,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_17","id":"SG-0119","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":417,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_18","id":"SG-0120","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":432,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_19","id":"SG-0121","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":447,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_20","id":"SG-0122","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":464,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_21","id":"SG-0123","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":482,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_22","id":"SG-0124","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":495,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_23","id":"SG-0125","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":510,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_24","id":"SG-0126","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":527,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_25","id":"SG-0127","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":546,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_26","id":"SG-0128","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":562,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_27","id":"SG-0129","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":581,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_28","id":"SG-0130","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":597,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_29","id":"SG-0131","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":614,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_30","id":"SG-0132","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":632,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_31","id":"SG-0133","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":652,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_32","id":"SG-0134","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":669,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_33","id":"SG-0135","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":692,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_34","id":"SG-0136","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":720,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_35","id":"SG-0137","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":748,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_36","id":"SG-0138","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":776,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_37","id":"SG-0139","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":792,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_38","id":"SG-0140","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":805,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_39","id":"SG-0141","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":813,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_40","id":"SG-0142","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":822,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_41","id":"SG-0143","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":836,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_42","id":"SG-0144","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":855,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_43","id":"SG-0145","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":873,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_44","id":"SG-0146","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":881,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_45","id":"SG-0147","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":889,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_46","id":"SG-0148","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":897,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_47","id":"SG-0149","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":906,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_48","id":"SG-0150","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":914,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_49","id":"SG-0151","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":922,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_50","id":"SG-0152","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":930,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_51","id":"SG-0153","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":941,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_52","id":"SG-0154","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":957,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_53","id":"SG-0155","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":972,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_54","id":"SG-0156","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":995,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_55","id":"SG-0157","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1019,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_56","id":"SG-0158","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1036,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_57","id":"SG-0159","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1049,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_58","id":"SG-0160","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1057,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_59","id":"SG-0161","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1070,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_60","id":"SG-0162","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1078,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_61","id":"SG-0163","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1091,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_62","id":"SG-0164","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1099,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_63","id":"SG-0165","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1107,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_64","id":"SG-0166","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1115,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_65","id":"SG-0167","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1123,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_66","id":"SG-0168","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1131,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_67","id":"SG-0169","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1139,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_68","id":"SG-0170","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1147,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_69","id":"SG-0171","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1155,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_70","id":"SG-0172","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1166,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_71","id":"SG-0173","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1174,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_72","id":"SG-0174","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1182,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_73","id":"SG-0175","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1190,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_74","id":"SG-0176","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1198,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_75","id":"SG-0177","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1206,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_76","id":"SG-0178","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1214,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_77","id":"SG-0179","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1222,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_78","id":"SG-0180","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1230,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_79","id":"SG-0181","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1238,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_80","id":"SG-0182","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1246,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_81","id":"SG-0183","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1254,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_82","id":"SG-0184","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1262,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_83","id":"SG-0185","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1270,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_84","id":"SG-0186","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1277,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_85","id":"SG-0187","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1285,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_86","id":"SG-0188","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1293,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_87","id":"SG-0189","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1301,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_88","id":"SG-0190","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1308,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_89","id":"SG-0191","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1316,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_90","id":"SG-0192","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1324,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_91","id":"SG-0193","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1332,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_92","id":"SG-0194","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1340,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_93","id":"SG-0195","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1348,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_94","id":"SG-0196","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1359,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_95","id":"SG-0197","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1366,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_96","id":"SG-0198","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1374,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_97","id":"SG-0199","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1382,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_98","id":"SG-0200","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1398,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_99","id":"SG-0201","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1414,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_100","id":"SG-0202","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1425,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_101","id":"SG-0203","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1436,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_102","id":"SG-0204","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1447,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_103","id":"SG-0205","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1458,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_104","id":"SG-0206","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1469,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_105","id":"SG-0207","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1482,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_106","id":"SG-0208","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1494,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_107","id":"SG-0209","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1512,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_108","id":"SG-0210","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1523,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_109","id":"SG-0211","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1543,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_110","id":"SG-0212","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1561,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_111","id":"SG-0213","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1569,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_112","id":"SG-0214","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1577,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_113","id":"SG-0215","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1585,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_114","id":"SG-0216","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1593,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_115","id":"SG-0217","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1601,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_116","id":"SG-0218","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1619,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_117","id":"SG-0219","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1638,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_118","id":"SG-0220","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1647,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_119","id":"SG-0221","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1656,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_120","id":"SG-0222","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1680,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_121","id":"SG-0223","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1707,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_122","id":"SG-0224","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1733,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_123","id":"SG-0225","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1741,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_124","id":"SG-0226","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1749,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_125","id":"SG-0227","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1760,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_126","id":"SG-0228","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1768,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_127","id":"SG-0229","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1791,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_128","id":"SG-0230","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1800,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_129","id":"SG-0231","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1822,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_130","id":"SG-0232","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1848,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_131","id":"SG-0233","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1856,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_132","id":"SG-0234","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1864,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_133","id":"SG-0235","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1872,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_134","id":"SG-0236","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1880,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_135","id":"SG-0237","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1935,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_136","id":"SG-0238","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1956,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_137","id":"SG-0239","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2019,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_138","id":"SG-0240","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2053,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_139","id":"SG-0241","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2107,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_140","id":"SG-0242","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2171,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_141","id":"SG-0243","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2204,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_142","id":"SG-0244","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2230,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_143","id":"SG-0245","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2238,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_144","id":"SG-0246","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2246,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_145","id":"SG-0247","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2254,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_146","id":"SG-0248","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2262,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_147","id":"SG-0249","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2270,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_148","id":"SG-0250","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2278,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_149","id":"SG-0251","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2286,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_150","id":"SG-0252","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2294,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_151","id":"SG-0253","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2302,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_152","id":"SG-0254","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2310,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_153","id":"SG-0255","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2318,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_154","id":"SG-0256","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2330,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_155","id":"SG-0257","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2348,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_156","id":"SG-0258","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2364,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_157","id":"SG-0259","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2384,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_158","id":"SG-0260","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2405,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_159","id":"SG-0261","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2418,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_160","id":"SG-0262","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2438,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_161","id":"SG-0263","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2454,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_162","id":"SG-0264","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2461,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_163","id":"SG-0265","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2468,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_164","id":"SG-0266","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2475,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_165","id":"SG-0267","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2484,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_166","id":"SG-0268","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2495,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_167","id":"SG-0269","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2507,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_168","id":"SG-0270","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2520,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_169","id":"SG-0271","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2527,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_170","id":"SG-0272","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2534,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_171","id":"SG-0273","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2541,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_172","id":"SG-0274","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2548,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_173","id":"SG-0275","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2555,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_174","id":"SG-0276","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2570,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_175","id":"SG-0277","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2581,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_176","id":"SG-0278","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2588,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_177","id":"SG-0279","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2595,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_178","id":"SG-0280","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2602,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_179","id":"SG-0281","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2609,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_180","id":"SG-0282","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2619,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_181","id":"SG-0283","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2635,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_182","id":"SG-0284","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2650,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_183","id":"SG-0285","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2672,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_184","id":"SG-0286","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2687,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_185","id":"SG-0287","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2701,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_186","id":"SG-0288","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2708,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_187","id":"SG-0289","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2723,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_188","id":"SG-0290","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2769,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_189","id":"SG-0291","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2802,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_190","id":"SG-0292","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2810,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_191","id":"SG-0293","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2818,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_192","id":"SG-0294","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2832,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_193","id":"SG-0295","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2855,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_194","id":"SG-0296","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2888,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_195","id":"SG-0297","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2900,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":26,"evidence":["security/semgrep/EVIDENCE.md#cli-arguments","zellij-utils/src/cli.rs#CliArgs::parse"],"fingerprint":"81692b1a6bf7ade1ede3d20ca569ec43f7296e98485adc7c77399626b65f8b0f51720ed28ac0cb9395cb0a5d77a785133a29c2e2f2c0e981561ccdc8e436b8de_0","id":"SG-0298","invariant":"All arguments flow into typed clap parsing and command validation before execution.","line":102,"owner":"CLI parsing","path":"zellij-utils/src/cli.rs","reason":"args_os is the CLI entrypoint preserving platform arguments for typed clap parsing.","rule":"rust.lang.security.args-os.args-os","verdict":"scoped_false_positive"} -{"column":23,"evidence":["security/semgrep/EVIDENCE.md#path-traversal","zellij-utils/src/consts.rs"],"fingerprint":"46b531fa474d19b29774d87e5dfcca6a6f504aca6a32cefaf551cac267f87896ae2edf6ba3bc229f4c174bcc0a3aad7b9e31d77a217681dad45c363206cac856_0","id":"SG-0299","invariant":"Source and target are fixed legacy/current ProjectDirs owned by the local OS user.","line":196,"owner":"Runtime directories","path":"zellij-utils/src/consts.rs","reason":"The Actix taint rule matched a generic path operation outside an Actix request flow.","rule":"rust.actix.path-traversal.tainted-path.tainted-path","verdict":"scoped_false_positive"} -{"column":36,"evidence":["security/semgrep/EVIDENCE.md#path-traversal","zellij-utils/src/consts.rs"],"fingerprint":"3f19955c060f783b96c4ead9b1a77f8778bb6364b312c113476fcde03b4ce9f856888ef088f294794cff1cb289c306d827cba35442b37f02b651fb3be3308e69_0","id":"SG-0300","invariant":"Source and target are fixed legacy/current ProjectDirs owned by the local OS user.","line":202,"owner":"Runtime directories","path":"zellij-utils/src/consts.rs","reason":"The Actix taint rule matched a generic path operation outside an Actix request flow.","rule":"rust.actix.path-traversal.tainted-path.tainted-path","verdict":"scoped_false_positive"} -{"column":42,"evidence":["security/semgrep/EVIDENCE.md#ipc-libc","zellij-utils/src/ipc/tests/socket_tests.rs"],"fingerprint":"465c27e7d3dc26f67b7594128f19f445660e9c1f80f6dd942e72feeed999f6e9766aa9113a31647fdd6172afdd133066f3abe1a2befd9fb6f653f2f666e5cf55_0","id":"SG-0301","invariant":"OwnedFd owns the socket, sockaddr length is checked, connect is poll-bounded, and flags are restored before return.","line":384,"owner":"IPC transport","path":"zellij-utils/src/consts.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":18,"evidence":["security/semgrep/EVIDENCE.md#ipc-libc","zellij-utils/src/ipc/tests/socket_tests.rs"],"fingerprint":"465c27e7d3dc26f67b7594128f19f445660e9c1f80f6dd942e72feeed999f6e9766aa9113a31647fdd6172afdd133066f3abe1a2befd9fb6f653f2f666e5cf55_1","id":"SG-0302","invariant":"OwnedFd owns the socket, sockaddr length is checked, connect is poll-bounded, and flags are restored before return.","line":405,"owner":"IPC transport","path":"zellij-utils/src/consts.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":14,"evidence":["security/semgrep/EVIDENCE.md#ipc-libc","zellij-utils/src/ipc/tests/socket_tests.rs"],"fingerprint":"465c27e7d3dc26f67b7594128f19f445660e9c1f80f6dd942e72feeed999f6e9766aa9113a31647fdd6172afdd133066f3abe1a2befd9fb6f653f2f666e5cf55_2","id":"SG-0303","invariant":"OwnedFd owns the socket, sockaddr length is checked, connect is poll-bounded, and flags are restored before return.","line":409,"owner":"IPC transport","path":"zellij-utils/src/consts.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":26,"evidence":["security/semgrep/EVIDENCE.md#ipc-libc","zellij-utils/src/ipc/tests/socket_tests.rs"],"fingerprint":"465c27e7d3dc26f67b7594128f19f445660e9c1f80f6dd942e72feeed999f6e9766aa9113a31647fdd6172afdd133066f3abe1a2befd9fb6f653f2f666e5cf55_3","id":"SG-0304","invariant":"OwnedFd owns the socket, sockaddr length is checked, connect is poll-bounded, and flags are restored before return.","line":410,"owner":"IPC transport","path":"zellij-utils/src/consts.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":12,"evidence":["security/semgrep/EVIDENCE.md#ipc-libc","zellij-utils/src/ipc/tests/socket_tests.rs"],"fingerprint":"465c27e7d3dc26f67b7594128f19f445660e9c1f80f6dd942e72feeed999f6e9766aa9113a31647fdd6172afdd133066f3abe1a2befd9fb6f653f2f666e5cf55_4","id":"SG-0305","invariant":"OwnedFd owns the socket, sockaddr length is checked, connect is poll-bounded, and flags are restored before return.","line":412,"owner":"IPC transport","path":"zellij-utils/src/consts.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":26,"evidence":["security/semgrep/EVIDENCE.md#ipc-libc","zellij-utils/src/ipc/tests/socket_tests.rs"],"fingerprint":"465c27e7d3dc26f67b7594128f19f445660e9c1f80f6dd942e72feeed999f6e9766aa9113a31647fdd6172afdd133066f3abe1a2befd9fb6f653f2f666e5cf55_5","id":"SG-0306","invariant":"OwnedFd owns the socket, sockaddr length is checked, connect is poll-bounded, and flags are restored before return.","line":423,"owner":"IPC transport","path":"zellij-utils/src/consts.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":31,"evidence":["security/semgrep/EVIDENCE.md#ipc-libc","zellij-utils/src/ipc/tests/socket_tests.rs"],"fingerprint":"465c27e7d3dc26f67b7594128f19f445660e9c1f80f6dd942e72feeed999f6e9766aa9113a31647fdd6172afdd133066f3abe1a2befd9fb6f653f2f666e5cf55_6","id":"SG-0307","invariant":"OwnedFd owns the socket, sockaddr length is checked, connect is poll-bounded, and flags are restored before return.","line":457,"owner":"IPC transport","path":"zellij-utils/src/consts.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":16,"evidence":["security/semgrep/EVIDENCE.md#ipc-libc","zellij-utils/src/ipc/tests/socket_tests.rs"],"fingerprint":"465c27e7d3dc26f67b7594128f19f445660e9c1f80f6dd942e72feeed999f6e9766aa9113a31647fdd6172afdd133066f3abe1a2befd9fb6f653f2f666e5cf55_7","id":"SG-0308","invariant":"OwnedFd owns the socket, sockaddr length is checked, connect is poll-bounded, and flags are restored before return.","line":474,"owner":"IPC transport","path":"zellij-utils/src/consts.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":8,"evidence":["security/semgrep/EVIDENCE.md#ipc-libc","zellij-utils/src/ipc/tests/socket_tests.rs"],"fingerprint":"465c27e7d3dc26f67b7594128f19f445660e9c1f80f6dd942e72feeed999f6e9766aa9113a31647fdd6172afdd133066f3abe1a2befd9fb6f653f2f666e5cf55_8","id":"SG-0309","invariant":"OwnedFd owns the socket, sockaddr length is checked, connect is poll-bounded, and flags are restored before return.","line":493,"owner":"IPC transport","path":"zellij-utils/src/consts.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#process-environment","zellij-utils/src/envs.rs"],"fingerprint":"90cfa7ce844fa5e8028ae397be3b9db8ff0b8b78e5a840065a478a62de32de3e7a03ca267e63f1e17566edf5a4a519a34e2dd753bdf3e95c91f52ab712dbcc52_0","id":"SG-0310","invariant":"Environment mutation is serialized during process initialization or isolated test cleanup.","line":127,"owner":"Process environment","path":"zellij-utils/src/envs.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":9,"evidence":["security/semgrep/EVIDENCE.md#process-environment","zellij-utils/src/envs.rs"],"fingerprint":"90cfa7ce844fa5e8028ae397be3b9db8ff0b8b78e5a840065a478a62de32de3e7a03ca267e63f1e17566edf5a4a519a34e2dd753bdf3e95c91f52ab712dbcc52_1","id":"SG-0311","invariant":"Environment mutation is serialized during process initialization or isolated test cleanup.","line":143,"owner":"Process environment","path":"zellij-utils/src/envs.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":28,"evidence":["security/semgrep/EVIDENCE.md#path-traversal","zellij-utils/src/input/plugins.rs"],"fingerprint":"d8d9b76c3d0d855c7875b0d8f60f908d7c95f86c54f4eb1ede785442173ecee3835d7071eb4697932a2ce3a3596350c9fa0563df924a79261c45e182d877b03a_0","id":"SG-0312","invariant":"Reading an operator-selected plugin is the explicit plugin capability; builtins resolve from embedded assets first.","line":157,"owner":"Plugin loading","path":"zellij-utils/src/input/plugins.rs","reason":"The Actix taint rule matched a generic path operation outside an Actix request flow.","rule":"rust.actix.path-traversal.tainted-path.tainted-path","verdict":"scoped_false_positive"} -{"column":9,"evidence":["security/semgrep/EVIDENCE.md#test-only-unsafe","zellij-utils/src/input/unit/layout_test.rs"],"fingerprint":"3c7821e25c122dd2c6b0171cc548b7e6dc5d16e591ca980d650dafb0fedc024463dab4cb3ba8af7064f8d3c739c150f0bba6b73ca4a866339d5830b5e6c93353_0","id":"SG-0313","invariant":"Unsafe environment mutation is test-only, restores prior state, and does not ship in production binaries.","line":2516,"owner":"Rust test harness","path":"zellij-utils/src/input/unit/layout_test.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":28,"evidence":["security/semgrep/EVIDENCE.md#test-only-unsafe","zellij-utils/src/input/unit/layout_test.rs"],"fingerprint":"3c7821e25c122dd2c6b0171cc548b7e6dc5d16e591ca980d650dafb0fedc024463dab4cb3ba8af7064f8d3c739c150f0bba6b73ca4a866339d5830b5e6c93353_1","id":"SG-0314","invariant":"Unsafe environment mutation is test-only, restores prior state, and does not ship in production binaries.","line":2523,"owner":"Rust test harness","path":"zellij-utils/src/input/unit/layout_test.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":21,"evidence":["security/semgrep/EVIDENCE.md#test-only-unsafe","zellij-utils/src/input/unit/layout_test.rs"],"fingerprint":"3c7821e25c122dd2c6b0171cc548b7e6dc5d16e591ca980d650dafb0fedc024463dab4cb3ba8af7064f8d3c739c150f0bba6b73ca4a866339d5830b5e6c93353_2","id":"SG-0315","invariant":"Unsafe environment mutation is test-only, restores prior state, and does not ship in production binaries.","line":2525,"owner":"Rust test harness","path":"zellij-utils/src/input/unit/layout_test.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":5,"evidence":["security/semgrep/EVIDENCE.md#test-only-unsafe","zellij-utils/src/input/unit/layout_test.rs"],"fingerprint":"3c7821e25c122dd2c6b0171cc548b7e6dc5d16e591ca980d650dafb0fedc024463dab4cb3ba8af7064f8d3c739c150f0bba6b73ca4a866339d5830b5e6c93353_3","id":"SG-0316","invariant":"Unsafe environment mutation is test-only, restores prior state, and does not ship in production binaries.","line":2535,"owner":"Rust test harness","path":"zellij-utils/src/input/unit/layout_test.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":33,"evidence":["security/semgrep/EVIDENCE.md#path-traversal","zellij-utils/src/ipc/protobuf_conversion.rs"],"fingerprint":"ecc4edae4907b25051dbddf7e12526902896b40f5c5638c00f00212cf0db535ee73672a09f6c9b88fd5270cd1956eb0d723e7c4784a91c183aa75ef2a6ca36d5_0","id":"SG-0317","invariant":"The hit is data-only PathBuf construction; no filesystem operation occurs.","line":3345,"owner":"IPC data model","path":"zellij-utils/src/ipc/protobuf_conversion.rs","reason":"The Actix taint rule matched a generic path operation outside an Actix request flow.","rule":"rust.actix.path-traversal.tainted-path.tainted-path","verdict":"scoped_false_positive"} -{"column":47,"evidence":["security/semgrep/EVIDENCE.md#path-traversal","zellij-utils/src/ipc/protobuf_conversion.rs"],"fingerprint":"efe2f6d779d50ae6d4f9c293d0a47ed4e20fa00676abc411133a3b984e52e482ca3c25e2cc58b44256ba48a41a5deb9a67c81ab5ce255f8c4d71f1d2fee1635c_0","id":"SG-0318","invariant":"The hit is data-only PathBuf construction; no filesystem operation occurs.","line":4276,"owner":"IPC data model","path":"zellij-utils/src/ipc/protobuf_conversion.rs","reason":"The Actix taint rule matched a generic path operation outside an Actix request flow.","rule":"rust.actix.path-traversal.tainted-path.tainted-path","verdict":"scoped_false_positive"} -{"column":17,"evidence":["security/semgrep/EVIDENCE.md#process-probes","zellij-utils/src/sessions.rs"],"fingerprint":"db9103e89f65c322a57e2591d9a4f46c92320ef2c4426efa070ca0a2bd72107c0c0b0c58503d3184326598ebf6e1abdfe58a9fa3b65b445d9217cae8d51fc849_0","id":"SG-0319","invariant":"The libc process probe is read-only and accepts only a PID parsed from a locally owned socket name.","line":221,"owner":"Session discovery","path":"zellij-utils/src/sessions.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":55,"evidence":["security/semgrep/EVIDENCE.md#vendored-termwiz","zellij-utils/src/vendored/termwiz/mod.rs"],"fingerprint":"3617041ddb34b2893096e69e16cc2f6e4a299acc6f522e4028ac7b0e8d7fd809abfb7ba52957262ccb5ced44cee7d38d0fbf8fd10baf4564e846528421b1a01a_0","id":"SG-0320","invariant":"Unsafe accesses decode Windows tagged unions or validated UTF-8 inside the vendored module; callers receive owned safe Rust values.","line":1014,"owner":"Upstream termwiz boundary","path":"zellij-utils/src/vendored/termwiz/input.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":48,"evidence":["security/semgrep/EVIDENCE.md#vendored-termwiz","zellij-utils/src/vendored/termwiz/mod.rs"],"fingerprint":"3617041ddb34b2893096e69e16cc2f6e4a299acc6f522e4028ac7b0e8d7fd809abfb7ba52957262ccb5ced44cee7d38d0fbf8fd10baf4564e846528421b1a01a_1","id":"SG-0321","invariant":"Unsafe accesses decode Windows tagged unions or validated UTF-8 inside the vendored module; callers receive owned safe Rust values.","line":1200,"owner":"Upstream termwiz boundary","path":"zellij-utils/src/vendored/termwiz/input.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":50,"evidence":["security/semgrep/EVIDENCE.md#vendored-termwiz","zellij-utils/src/vendored/termwiz/mod.rs"],"fingerprint":"3617041ddb34b2893096e69e16cc2f6e4a299acc6f522e4028ac7b0e8d7fd809abfb7ba52957262ccb5ced44cee7d38d0fbf8fd10baf4564e846528421b1a01a_2","id":"SG-0322","invariant":"Unsafe accesses decode Windows tagged unions or validated UTF-8 inside the vendored module; callers receive owned safe Rust values.","line":1203,"owner":"Upstream termwiz boundary","path":"zellij-utils/src/vendored/termwiz/input.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":25,"evidence":["security/semgrep/EVIDENCE.md#vendored-termwiz","zellij-utils/src/vendored/termwiz/mod.rs"],"fingerprint":"3617041ddb34b2893096e69e16cc2f6e4a299acc6f522e4028ac7b0e8d7fd809abfb7ba52957262ccb5ced44cee7d38d0fbf8fd10baf4564e846528421b1a01a_3","id":"SG-0323","invariant":"Unsafe accesses decode Windows tagged unions or validated UTF-8 inside the vendored module; callers receive owned safe Rust values.","line":1206,"owner":"Upstream termwiz boundary","path":"zellij-utils/src/vendored/termwiz/input.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":29,"evidence":["security/semgrep/EVIDENCE.md#vendored-termwiz","zellij-utils/src/vendored/termwiz/mod.rs"],"fingerprint":"3617041ddb34b2893096e69e16cc2f6e4a299acc6f522e4028ac7b0e8d7fd809abfb7ba52957262ccb5ced44cee7d38d0fbf8fd10baf4564e846528421b1a01a_4","id":"SG-0324","invariant":"Unsafe accesses decode Windows tagged unions or validated UTF-8 inside the vendored module; callers receive owned safe Rust values.","line":1587,"owner":"Upstream termwiz boundary","path":"zellij-utils/src/vendored/termwiz/input.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} -{"column":32,"evidence":["security/semgrep/EVIDENCE.md#path-traversal","zellij-utils/src/vibecrafted_install.rs"],"fingerprint":"4828a8f32be886a1c1f894a23012c8181a9225042b7cde1c853a2a0bc0bb00f734c011dd6997183c8bfc42ce8195aa36a9d461005d689f73ad33d2aa066b5108_0","id":"SG-0325","invariant":"The source is enumerated from a validated framework root and destination is the current-user layouts directory.","line":396,"owner":"Vibecrafted layout installer","path":"zellij-utils/src/vibecrafted_install.rs","reason":"The Actix taint rule matched a generic path operation outside an Actix request flow.","rule":"rust.actix.path-traversal.tainted-path.tainted-path","verdict":"scoped_false_positive"} -{"column":66,"evidence":["security/semgrep/EVIDENCE.md#path-traversal","zellij-utils/src/web_server_commands.rs"],"fingerprint":"fa7c454a17b1c0aa7fc35de868dcbdd68bef8cbb676e43ba20b4bdb69ff6b61df5359b9ac567b4657749a168258dd7db486017bff5358df7e145296a0e216621_0","id":"SG-0326","invariant":"Socket paths are discovered below the current-user runtime directory and connect probing is bounded.","line":63,"owner":"Local webserver IPC","path":"zellij-utils/src/web_server_commands.rs","reason":"The Actix taint rule matched a generic path operation outside an Actix request flow.","rule":"rust.actix.path-traversal.tainted-path.tainted-path","verdict":"scoped_false_positive"} +{"column":19,"evidence":["security/semgrep/EVIDENCE.md#current-executable","src/clinic.rs"],"fingerprint":"fc52f869477f7fc6a37c86ff25892e4c10b15266cc07263c7ae11fe517b228b1d8cf7d7ed943a158b25515689a00f769d9d413239e40489440941aeb07bd0f4f_0","id":"SG-0004","invariant":"The resolved path is used only for metadata and local process-name comparison; it is never executed or trusted as update provenance.","line":1261,"owner":"Clinic runtime diagnostics","path":"src/clinic.rs","reason":"current_exe is read only to identify the running binary for a local drift diagnosis.","rule":"rust.lang.security.current-exe.current-exe","verdict":"scoped_false_positive"} +{"column":20,"evidence":["security/semgrep/EVIDENCE.md#transfer-lock-descriptor","src/run_triage_cli.rs"],"fingerprint":"6c902f1851ead06091728b45e6a060e439c0e38eaa83fc3f192125c17abed294ce2e55be3f3aa17e5f5bf9ccdfdec3f999670291bc320ca177ffe8eedae8f6e1_0","id":"SG-0005","invariant":"The inherited descriptor is validated as open, marked close-on-exec, matched to the canonical lock path by device and inode, and adopted by exactly one Rust owner.","line":98,"owner":"Triage transfer lock","path":"src/run_triage_cli.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":26,"evidence":["security/semgrep/EVIDENCE.md#current-executable","src/run_triage_cli.rs"],"fingerprint":"76eb61b1dedf6fd92c522899f1384f37364396354aadafe9f809471a35063e13f727b70ed9dd81927e4dd5f129989dceac6b111b4e2bfa5e26a0d845740d4f94_0","id":"SG-0006","invariant":"The resolved current binary receives fixed internal flags plus already-validated configuration paths.","line":340,"owner":"Client process lifecycle","path":"src/run_triage_cli.rs","reason":"current_exe only spawns another mode of the running vc-frame binary; it establishes no trust.","rule":"rust.lang.security.current-exe.current-exe","verdict":"scoped_false_positive"} +{"column":35,"evidence":["security/semgrep/EVIDENCE.md#current-executable","src/run_triage_cli.rs"],"fingerprint":"76eb61b1dedf6fd92c522899f1384f37364396354aadafe9f809471a35063e13f727b70ed9dd81927e4dd5f129989dceac6b111b4e2bfa5e26a0d845740d4f94_1","id":"SG-0007","invariant":"The resolved current binary receives fixed internal flags plus already-validated configuration paths.","line":2247,"owner":"Client process lifecycle","path":"src/run_triage_cli.rs","reason":"current_exe only spawns another mode of the running vc-frame binary; it establishes no trust.","rule":"rust.lang.security.current-exe.current-exe","verdict":"scoped_false_positive"} +{"column":41,"evidence":["security/semgrep/EVIDENCE.md#current-executable","src/run_triage_cli.rs"],"fingerprint":"76eb61b1dedf6fd92c522899f1384f37364396354aadafe9f809471a35063e13f727b70ed9dd81927e4dd5f129989dceac6b111b4e2bfa5e26a0d845740d4f94_2","id":"SG-0008","invariant":"The resolved current binary receives fixed internal flags plus already-validated configuration paths.","line":2306,"owner":"Client process lifecycle","path":"src/run_triage_cli.rs","reason":"current_exe only spawns another mode of the running vc-frame binary; it establishes no trust.","rule":"rust.lang.security.current-exe.current-exe","verdict":"scoped_false_positive"} +{"column":44,"evidence":["security/semgrep/EVIDENCE.md#current-executable","src/run_triage_cli.rs"],"fingerprint":"76eb61b1dedf6fd92c522899f1384f37364396354aadafe9f809471a35063e13f727b70ed9dd81927e4dd5f129989dceac6b111b4e2bfa5e26a0d845740d4f94_3","id":"SG-0009","invariant":"The resolved current binary receives fixed internal flags plus already-validated configuration paths.","line":2320,"owner":"Client process lifecycle","path":"src/run_triage_cli.rs","reason":"current_exe only spawns another mode of the running vc-frame binary; it establishes no trust.","rule":"rust.lang.security.current-exe.current-exe","verdict":"scoped_false_positive"} +{"column":41,"evidence":["security/semgrep/EVIDENCE.md#current-executable","src/run_triage_cli.rs"],"fingerprint":"76eb61b1dedf6fd92c522899f1384f37364396354aadafe9f809471a35063e13f727b70ed9dd81927e4dd5f129989dceac6b111b4e2bfa5e26a0d845740d4f94_4","id":"SG-0010","invariant":"The resolved current binary receives fixed internal flags plus already-validated configuration paths.","line":2351,"owner":"Client process lifecycle","path":"src/run_triage_cli.rs","reason":"current_exe only spawns another mode of the running vc-frame binary; it establishes no trust.","rule":"rust.lang.security.current-exe.current-exe","verdict":"scoped_false_positive"} +{"column":44,"evidence":["security/semgrep/EVIDENCE.md#current-executable","src/run_triage_cli.rs"],"fingerprint":"76eb61b1dedf6fd92c522899f1384f37364396354aadafe9f809471a35063e13f727b70ed9dd81927e4dd5f129989dceac6b111b4e2bfa5e26a0d845740d4f94_5","id":"SG-0011","invariant":"The resolved current binary receives fixed internal flags plus already-validated configuration paths.","line":2365,"owner":"Client process lifecycle","path":"src/run_triage_cli.rs","reason":"current_exe only spawns another mode of the running vc-frame binary; it establishes no trust.","rule":"rust.lang.security.current-exe.current-exe","verdict":"scoped_false_positive"} +{"column":25,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","src/run_triage_cli.rs"],"fingerprint":"47dae781288c73b0bd85c5f04dfa363a58b6ef7c5289e9cb35353306672cd0106770fe0b232c2ca410ee39a3e8edece1cc74dd4f04ad282514d42a1bcb9d4eb3_0","id":"SG-0012","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":2687,"owner":"Rust test harness","path":"src/run_triage_cli.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} +{"column":25,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","src/run_triage_cli.rs"],"fingerprint":"47dae781288c73b0bd85c5f04dfa363a58b6ef7c5289e9cb35353306672cd0106770fe0b232c2ca410ee39a3e8edece1cc74dd4f04ad282514d42a1bcb9d4eb3_1","id":"SG-0013","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":2735,"owner":"Rust test harness","path":"src/run_triage_cli.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} +{"column":29,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","xtask/src/pipelines.rs"],"fingerprint":"88eed7e3a59cdf5959bd7e74e2211ca358869824e8e94b6392fdb51c6268fb581656ac0378da29f5d9a35e97513ab51113778eaf5ff39ce4fdb0070a29073b33_0","id":"SG-0014","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":1256,"owner":"Rust test harness","path":"xtask/src/pipelines.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} +{"column":13,"evidence":["security/semgrep/EVIDENCE.md#current-executable","xtask/src/pipelines.rs"],"fingerprint":"cd2183f84fb155fb87f62b8b770a81cc7a77d846d6243b3a5e6487e8980668e8ac690c6fe442fa765b617d99534fb4d94e145b27db34649b42c4a762ab365b6d_0","id":"SG-0015","invariant":"The executable path remains inside cfg(test), is copied into a process-private test directory, and is never executed with elevated trust.","line":1859,"owner":"Rust test harness","path":"xtask/src/pipelines.rs","reason":"The macOS-only installer test copies its own real Mach-O test executable as local fixture bytes.","rule":"rust.lang.security.current-exe.current-exe","verdict":"scoped_false_positive"} +{"column":32,"evidence":["security/semgrep/EVIDENCE.md#current-executable","zellij-client/src/lib.rs"],"fingerprint":"c87420950484497eb9b425f1f3993dd775cbdfa0ca86acf4c12695080cc455902293b3821d2a63b86f49f57389153a758db42382753e5e348ec3f6bdce71525f_0","id":"SG-0016","invariant":"The resolved current binary receives fixed internal flags plus already-validated configuration paths.","line":261,"owner":"Client process lifecycle","path":"zellij-client/src/lib.rs","reason":"current_exe only spawns another mode of the running vc-frame binary; it establishes no trust.","rule":"rust.lang.security.current-exe.current-exe","verdict":"scoped_false_positive"} +{"column":32,"evidence":["security/semgrep/EVIDENCE.md#current-executable","zellij-client/src/lib.rs"],"fingerprint":"c87420950484497eb9b425f1f3993dd775cbdfa0ca86acf4c12695080cc455902293b3821d2a63b86f49f57389153a758db42382753e5e348ec3f6bdce71525f_1","id":"SG-0017","invariant":"The resolved current binary receives fixed internal flags plus already-validated configuration paths.","line":303,"owner":"Client process lifecycle","path":"zellij-client/src/lib.rs","reason":"current_exe only spawns another mode of the running vc-frame binary; it establishes no trust.","rule":"rust.lang.security.current-exe.current-exe","verdict":"scoped_false_positive"} +{"column":32,"evidence":["security/semgrep/EVIDENCE.md#current-executable","zellij-client/src/lib.rs"],"fingerprint":"c87420950484497eb9b425f1f3993dd775cbdfa0ca86acf4c12695080cc455902293b3821d2a63b86f49f57389153a758db42382753e5e348ec3f6bdce71525f_2","id":"SG-0018","invariant":"The resolved current binary receives fixed internal flags plus already-validated configuration paths.","line":363,"owner":"Client process lifecycle","path":"zellij-client/src/lib.rs","reason":"current_exe only spawns another mode of the running vc-frame binary; it establishes no trust.","rule":"rust.lang.security.current-exe.current-exe","verdict":"scoped_false_positive"} +{"column":32,"evidence":["security/semgrep/EVIDENCE.md#current-executable","zellij-client/src/lib.rs"],"fingerprint":"c87420950484497eb9b425f1f3993dd775cbdfa0ca86acf4c12695080cc455902293b3821d2a63b86f49f57389153a758db42382753e5e348ec3f6bdce71525f_3","id":"SG-0019","invariant":"The resolved current binary receives fixed internal flags plus already-validated configuration paths.","line":391,"owner":"Client process lifecycle","path":"zellij-client/src/lib.rs","reason":"current_exe only spawns another mode of the running vc-frame binary; it establishes no trust.","rule":"rust.lang.security.current-exe.current-exe","verdict":"scoped_false_positive"} +{"column":18,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-client/src/os_input_output_windows.rs"],"fingerprint":"52ce911ce8f90612c71d0c6a47e51730525436de1f1f363a0e3b58552f475fb5186121aa6d5f3e958087da03d3b8f533dd22e6075fd18468862832dd60e8fd62_0","id":"SG-0020","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":106,"owner":"Windows platform I/O","path":"zellij-client/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-client/src/stdin_handler_windows.rs"],"fingerprint":"8518e91bd06482347ee54f4f1f4bdbd24ce69a309c1bb7858da4f0c8c94ddc562222ac501a779825e47b9b9999f4952d0ce8028c51135eda228c390518239db2_0","id":"SG-0021","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":30,"owner":"Windows platform I/O","path":"zellij-client/src/stdin_handler_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":9,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-client/src/stdin_handler_windows.rs"],"fingerprint":"8518e91bd06482347ee54f4f1f4bdbd24ce69a309c1bb7858da4f0c8c94ddc562222ac501a779825e47b9b9999f4952d0ce8028c51135eda228c390518239db2_1","id":"SG-0022","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":78,"owner":"Windows platform I/O","path":"zellij-client/src/stdin_handler_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":15,"evidence":["security/semgrep/EVIDENCE.md#current-executable","zellij-client/src/web_client/mod.rs"],"fingerprint":"d3359c43a06aa4e074f8d62eaeb46106e7d4bc95b81dd9a7e45d46abe01722ee027a8534ecacbe32f15764a019fd53ca478bfab4fad84bd4b20039aff6673141_0","id":"SG-0023","invariant":"The resolved current binary receives fixed internal flags plus already-validated configuration paths.","line":432,"owner":"Client process lifecycle","path":"zellij-client/src/web_client/mod.rs","reason":"current_exe only spawns another mode of the running vc-frame binary; it establishes no trust.","rule":"rust.lang.security.current-exe.current-exe","verdict":"scoped_false_positive"} +{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_0","id":"SG-0024","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":109,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} +{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_1","id":"SG-0025","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":169,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} +{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_2","id":"SG-0026","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":241,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} +{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_3","id":"SG-0027","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":308,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} +{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_4","id":"SG-0028","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":524,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} +{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_5","id":"SG-0029","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":703,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} +{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_6","id":"SG-0030","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":753,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} +{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_7","id":"SG-0031","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":815,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} +{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_8","id":"SG-0032","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":962,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} +{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_9","id":"SG-0033","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":1139,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} +{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_10","id":"SG-0034","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":1287,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} +{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_11","id":"SG-0035","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":1422,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} +{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_12","id":"SG-0036","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":1521,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} +{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_13","id":"SG-0037","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":1698,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} +{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_14","id":"SG-0038","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":1812,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} +{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_15","id":"SG-0039","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":1985,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} +{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_16","id":"SG-0040","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":2169,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} +{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_17","id":"SG-0041","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":2339,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} +{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_18","id":"SG-0042","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":2438,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} +{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_19","id":"SG-0043","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":2525,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} +{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_20","id":"SG-0044","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":2645,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} +{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_21","id":"SG-0045","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":2742,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} +{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_22","id":"SG-0046","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":2825,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} +{"column":32,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-client/src/web_client/unit/web_client_tests.rs"],"fingerprint":"ffb112958ca27f0bc3ba9d43207cffede8313ec15699a99034474e5c9e62f37958247f3566c5b7316282b67afd4a658fa61aec06154ca9179b2882be83c23621_23","id":"SG-0047","invariant":"Test data is process-local, cleaned by the test, and never trusted by production code.","line":2880,"owner":"Rust test harness","path":"zellij-client/src/web_client/unit/web_client_tests.rs","reason":"The hit is inside cfg(test), not a production security boundary.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} +{"column":9,"evidence":["security/semgrep/EVIDENCE.md#process-probes","zellij-server/src/lib.rs"],"fingerprint":"b1fc0b3cf8af62bac26937a0171ed3d10d9868e626ed76f45c82465875ad082d0a77c261c3fe56bb8efc7eb93e9a01c7e6766e7a967636a212bf68cbd5473592_0","id":"SG-0048","invariant":"Unix daemonization is isolated to startup before threaded work and every fork outcome is handled.","line":776,"owner":"Server process lifecycle","path":"zellij-server/src/lib.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":21,"evidence":["security/semgrep/EVIDENCE.md#unix-platform-ffi","zellij-server/src/os_input_output_unix.rs"],"fingerprint":"daf3af297c9ec5a5b2e7e9a3054fa76b97856fb047e9f44bbc702afe7fcd40762bc94c54341af565db13d1991b047a08b349cb42fe77a166380d6fac7ddc6d03_0","id":"SG-0049","invariant":"Unsafe blocks are narrow libc/terminal adapters; descriptors and pointers are validated and exposed as safe types.","line":95,"owner":"Unix platform I/O","path":"zellij-server/src/os_input_output_unix.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#unix-platform-ffi","zellij-server/src/os_input_output_unix.rs"],"fingerprint":"daf3af297c9ec5a5b2e7e9a3054fa76b97856fb047e9f44bbc702afe7fcd40762bc94c54341af565db13d1991b047a08b349cb42fe77a166380d6fac7ddc6d03_1","id":"SG-0050","invariant":"Unsafe blocks are narrow libc/terminal adapters; descriptors and pointers are validated and exposed as safe types.","line":129,"owner":"Unix platform I/O","path":"zellij-server/src/os_input_output_unix.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#unix-platform-ffi","zellij-server/src/os_input_output_unix.rs"],"fingerprint":"daf3af297c9ec5a5b2e7e9a3054fa76b97856fb047e9f44bbc702afe7fcd40762bc94c54341af565db13d1991b047a08b349cb42fe77a166380d6fac7ddc6d03_2","id":"SG-0051","invariant":"Unsafe blocks are narrow libc/terminal adapters; descriptors and pointers are validated and exposed as safe types.","line":376,"owner":"Unix platform I/O","path":"zellij-server/src/os_input_output_unix.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":23,"evidence":["security/semgrep/EVIDENCE.md#unix-platform-ffi","zellij-server/src/os_input_output_unix.rs"],"fingerprint":"daf3af297c9ec5a5b2e7e9a3054fa76b97856fb047e9f44bbc702afe7fcd40762bc94c54341af565db13d1991b047a08b349cb42fe77a166380d6fac7ddc6d03_3","id":"SG-0052","invariant":"Unsafe blocks are narrow libc/terminal adapters; descriptors and pointers are validated and exposed as safe types.","line":403,"owner":"Unix platform I/O","path":"zellij-server/src/os_input_output_unix.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":19,"evidence":["security/semgrep/EVIDENCE.md#unix-platform-ffi","zellij-server/src/os_input_output_unix.rs"],"fingerprint":"daf3af297c9ec5a5b2e7e9a3054fa76b97856fb047e9f44bbc702afe7fcd40762bc94c54341af565db13d1991b047a08b349cb42fe77a166380d6fac7ddc6d03_4","id":"SG-0053","invariant":"Unsafe blocks are narrow libc/terminal adapters; descriptors and pointers are validated and exposed as safe types.","line":422,"owner":"Unix platform I/O","path":"zellij-server/src/os_input_output_unix.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":13,"evidence":["security/semgrep/EVIDENCE.md#unix-platform-ffi","zellij-server/src/os_input_output_unix.rs"],"fingerprint":"daf3af297c9ec5a5b2e7e9a3054fa76b97856fb047e9f44bbc702afe7fcd40762bc94c54341af565db13d1991b047a08b349cb42fe77a166380d6fac7ddc6d03_5","id":"SG-0054","invariant":"Unsafe blocks are narrow libc/terminal adapters; descriptors and pointers are validated and exposed as safe types.","line":877,"owner":"Unix platform I/O","path":"zellij-server/src/os_input_output_unix.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":26,"evidence":["security/semgrep/EVIDENCE.md#unix-platform-ffi","zellij-server/src/os_input_output_unix.rs"],"fingerprint":"daf3af297c9ec5a5b2e7e9a3054fa76b97856fb047e9f44bbc702afe7fcd40762bc94c54341af565db13d1991b047a08b349cb42fe77a166380d6fac7ddc6d03_6","id":"SG-0055","invariant":"Unsafe blocks are narrow libc/terminal adapters; descriptors and pointers are validated and exposed as safe types.","line":1016,"owner":"Unix platform I/O","path":"zellij-server/src/os_input_output_unix.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":9,"evidence":["security/semgrep/EVIDENCE.md#unix-platform-ffi","zellij-server/src/os_input_output_unix.rs"],"fingerprint":"daf3af297c9ec5a5b2e7e9a3054fa76b97856fb047e9f44bbc702afe7fcd40762bc94c54341af565db13d1991b047a08b349cb42fe77a166380d6fac7ddc6d03_7","id":"SG-0056","invariant":"Unsafe blocks are narrow libc/terminal adapters; descriptors and pointers are validated and exposed as safe types.","line":1034,"owner":"Unix platform I/O","path":"zellij-server/src/os_input_output_unix.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":9,"evidence":["security/semgrep/EVIDENCE.md#unix-platform-ffi","zellij-server/src/os_input_output_unix.rs"],"fingerprint":"daf3af297c9ec5a5b2e7e9a3054fa76b97856fb047e9f44bbc702afe7fcd40762bc94c54341af565db13d1991b047a08b349cb42fe77a166380d6fac7ddc6d03_8","id":"SG-0057","invariant":"Unsafe blocks are narrow libc/terminal adapters; descriptors and pointers are validated and exposed as safe types.","line":1071,"owner":"Unix platform I/O","path":"zellij-server/src/os_input_output_unix.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":19,"evidence":["security/semgrep/EVIDENCE.md#unix-platform-ffi","zellij-server/src/os_input_output_unix.rs"],"fingerprint":"daf3af297c9ec5a5b2e7e9a3054fa76b97856fb047e9f44bbc702afe7fcd40762bc94c54341af565db13d1991b047a08b349cb42fe77a166380d6fac7ddc6d03_9","id":"SG-0058","invariant":"Unsafe blocks are narrow libc/terminal adapters; descriptors and pointers are validated and exposed as safe types.","line":1085,"owner":"Unix platform I/O","path":"zellij-server/src/os_input_output_unix.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":9,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_0","id":"SG-0059","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":68,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":27,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_1","id":"SG-0060","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":100,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":12,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_2","id":"SG-0061","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":106,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":9,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_3","id":"SG-0062","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":110,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":13,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_4","id":"SG-0063","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":117,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":13,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_5","id":"SG-0064","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":180,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":12,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_6","id":"SG-0065","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":212,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":13,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_7","id":"SG-0066","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":223,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":13,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_8","id":"SG-0067","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":226,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":13,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_9","id":"SG-0068","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":229,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":24,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_10","id":"SG-0069","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":284,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":18,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_11","id":"SG-0070","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":389,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":18,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_12","id":"SG-0071","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":405,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":9,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_13","id":"SG-0072","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":417,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":14,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_14","id":"SG-0073","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":437,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_15","id":"SG-0074","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":455,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":8,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_16","id":"SG-0075","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":461,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":8,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_17","id":"SG-0076","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":470,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":9,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_18","id":"SG-0077","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":482,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":34,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_19","id":"SG-0078","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":487,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":39,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_20","id":"SG-0079","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":508,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":14,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_21","id":"SG-0080","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":510,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_22","id":"SG-0081","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":525,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_23","id":"SG-0082","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":535,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":12,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_24","id":"SG-0083","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":596,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":13,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_25","id":"SG-0084","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":597,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":17,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_26","id":"SG-0085","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":608,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":9,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_27","id":"SG-0086","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":619,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":21,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_28","id":"SG-0087","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":629,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":30,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_29","id":"SG-0088","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":758,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":26,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_30","id":"SG-0089","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":787,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":26,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_31","id":"SG-0090","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":818,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":18,"evidence":["security/semgrep/EVIDENCE.md#windows-platform-ffi","zellij-server/src/os_input_output_windows.rs"],"fingerprint":"4f8da78378ea82512d10403ae577cc82a37c3082bb81c2c0d1115d7b1715a8acc44d381b30de5e9273ed7dcc435a97ec99c8202b1d2aa7191a85855d38974ea7_32","id":"SG-0091","invariant":"Unsafe blocks are narrow Win32/ConPTY adapters; handles are checked and wrapped before safe code observes them.","line":843,"owner":"Windows platform I/O","path":"zellij-server/src/os_input_output_windows.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":25,"evidence":["security/semgrep/EVIDENCE.md#path-traversal","zellij-server/src/plugins/plugin_loader.rs"],"fingerprint":"d647f9d8f9936be80fe7d44f27fc5f8f8dca37dea71e15520eec66ee7f021024f71ab1c51ef7aef6f93816f54b61aa9381bdb3b6423e81923be5c0a3ea078e54_0","id":"SG-0092","invariant":"The path is a host-selected WASI preopen, not an HTTP parameter.","line":36,"owner":"Plugin filesystem capability","path":"zellij-server/src/plugins/plugin_loader.rs","reason":"The Actix taint rule matched a generic path operation outside an Actix request flow.","rule":"rust.actix.path-traversal.tainted-path.tainted-path","verdict":"scoped_false_positive"} +{"column":13,"evidence":["security/semgrep/EVIDENCE.md#test-only-unsafe","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"060633d99d0466ed8923e22ea91c43c825d863aa68e7fc933e02afddf38ffc28c5eaaced579a027b9ef9f3ef3749982fefb3c7b49b39061e3faa69294b6c5927_0","id":"SG-0093","invariant":"Unsafe environment mutation is test-only, restores prior state, and does not ship in production binaries.","line":431,"owner":"Rust test harness","path":"zellij-server/src/plugins/unit/plugin_tests.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":13,"evidence":["security/semgrep/EVIDENCE.md#test-only-unsafe","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"060633d99d0466ed8923e22ea91c43c825d863aa68e7fc933e02afddf38ffc28c5eaaced579a027b9ef9f3ef3749982fefb3c7b49b39061e3faa69294b6c5927_1","id":"SG-0094","invariant":"Unsafe environment mutation is test-only, restores prior state, and does not ship in production binaries.","line":519,"owner":"Rust test harness","path":"zellij-server/src/plugins/unit/plugin_tests.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":13,"evidence":["security/semgrep/EVIDENCE.md#test-only-unsafe","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"060633d99d0466ed8923e22ea91c43c825d863aa68e7fc933e02afddf38ffc28c5eaaced579a027b9ef9f3ef3749982fefb3c7b49b39061e3faa69294b6c5927_2","id":"SG-0095","invariant":"Unsafe environment mutation is test-only, restores prior state, and does not ship in production binaries.","line":615,"owner":"Rust test harness","path":"zellij-server/src/plugins/unit/plugin_tests.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":13,"evidence":["security/semgrep/EVIDENCE.md#test-only-unsafe","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"060633d99d0466ed8923e22ea91c43c825d863aa68e7fc933e02afddf38ffc28c5eaaced579a027b9ef9f3ef3749982fefb3c7b49b39061e3faa69294b6c5927_3","id":"SG-0096","invariant":"Unsafe environment mutation is test-only, restores prior state, and does not ship in production binaries.","line":711,"owner":"Rust test harness","path":"zellij-server/src/plugins/unit/plugin_tests.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":37,"evidence":["security/semgrep/EVIDENCE.md#path-traversal","zellij-server/src/plugins/watch_filesystem.rs"],"fingerprint":"762af5f57e999ca9e5a3e0272cf8a536a6269709d4a3f18b3229f8cb5023f33bb5cf0525b4293ff7afa3370116373571f0311f01b4516b0d3d4a00d1954255ad_0","id":"SG-0097","invariant":"The hit only converts an authorized host cwd before a local watcher is registered.","line":47,"owner":"Plugin filesystem capability","path":"zellij-server/src/plugins/watch_filesystem.rs","reason":"The Actix taint rule matched a generic path operation outside an Actix request flow.","rule":"rust.actix.path-traversal.tainted-path.tainted-path","verdict":"scoped_false_positive"} +{"column":15,"evidence":["security/semgrep/EVIDENCE.md#process-environment","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"c17076ebe456293ec9c60a89a0dbe0ee9dffb54eed6ca254f62487cc294b9af551ef8a2eb8d19568307fb2a1949d03c504ca8be6390443ad183901969802a756_0","id":"SG-0098","invariant":"Environment mutation is confined to synchronous host-command handling and the explicitly requested variable.","line":3938,"owner":"Plugin host API","path":"zellij-server/src/plugins/zellij_exports.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":24,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-server/src/tab/mod.rs#edit_scrollback"],"fingerprint":"1955a32a03ba838c7b6b14e92daf3cb943bd16a51f21c79ad312af6b60451522cae6895077dccf14966fdad727ba3816f70345ec559d9c30c8be545fea56cc73_0","id":"SG-0099","invariant":"Every editor dump has a new UUID v4 and carries only current-user terminal contents.","line":5507,"owner":"Terminal scrollback","path":"zellij-server/src/tab/mod.rs","reason":"The rule flags temp_dir itself; each scrollback file appends a fresh UUID v4.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} +{"column":24,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-server/src/tab/mod.rs#edit_scrollback"],"fingerprint":"1955a32a03ba838c7b6b14e92daf3cb943bd16a51f21c79ad312af6b60451522cae6895077dccf14966fdad727ba3816f70345ec559d9c30c8be545fea56cc73_1","id":"SG-0100","invariant":"Every editor dump has a new UUID v4 and carries only current-user terminal contents.","line":5534,"owner":"Terminal scrollback","path":"zellij-server/src/tab/mod.rs","reason":"The rule flags temp_dir itself; each scrollback file appends a fresh UUID v4.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} +{"column":28,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-server/src/tab/mod.rs#edit_scrollback"],"fingerprint":"1955a32a03ba838c7b6b14e92daf3cb943bd16a51f21c79ad312af6b60451522cae6895077dccf14966fdad727ba3816f70345ec559d9c30c8be545fea56cc73_2","id":"SG-0101","invariant":"Every editor dump has a new UUID v4 and carries only current-user terminal contents.","line":5560,"owner":"Terminal scrollback","path":"zellij-server/src/tab/mod.rs","reason":"The rule flags temp_dir itself; each scrollback file appends a fresh UUID v4.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} +{"column":28,"evidence":["security/semgrep/EVIDENCE.md#temporary-paths","zellij-server/src/tab/mod.rs#edit_scrollback"],"fingerprint":"1955a32a03ba838c7b6b14e92daf3cb943bd16a51f21c79ad312af6b60451522cae6895077dccf14966fdad727ba3816f70345ec559d9c30c8be545fea56cc73_3","id":"SG-0102","invariant":"Every editor dump has a new UUID v4 and carries only current-user terminal contents.","line":5584,"owner":"Terminal scrollback","path":"zellij-server/src/tab/mod.rs","reason":"The rule flags temp_dir itself; each scrollback file appends a fresh UUID v4.","rule":"rust.lang.security.temp-dir.temp-dir","verdict":"scoped_false_positive"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_0","id":"SG-0103","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":57,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_1","id":"SG-0104","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":66,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_2","id":"SG-0105","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":76,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_3","id":"SG-0106","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":87,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_4","id":"SG-0107","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":94,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_5","id":"SG-0108","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":103,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_6","id":"SG-0109","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":114,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_7","id":"SG-0110","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":129,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_8","id":"SG-0111","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":148,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_9","id":"SG-0112","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":180,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_10","id":"SG-0113","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":191,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_11","id":"SG-0114","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":210,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_12","id":"SG-0115","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":265,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_13","id":"SG-0116","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":310,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_14","id":"SG-0117","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":346,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_15","id":"SG-0118","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":380,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_16","id":"SG-0119","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":396,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_17","id":"SG-0120","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":417,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_18","id":"SG-0121","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":432,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_19","id":"SG-0122","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":447,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_20","id":"SG-0123","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":464,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_21","id":"SG-0124","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":482,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_22","id":"SG-0125","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":495,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_23","id":"SG-0126","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":510,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_24","id":"SG-0127","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":527,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_25","id":"SG-0128","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":546,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_26","id":"SG-0129","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":562,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_27","id":"SG-0130","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":581,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_28","id":"SG-0131","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":597,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_29","id":"SG-0132","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":614,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_30","id":"SG-0133","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":632,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_31","id":"SG-0134","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":652,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_32","id":"SG-0135","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":669,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_33","id":"SG-0136","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":692,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_34","id":"SG-0137","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":720,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_35","id":"SG-0138","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":748,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_36","id":"SG-0139","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":776,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_37","id":"SG-0140","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":792,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_38","id":"SG-0141","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":805,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_39","id":"SG-0142","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":813,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_40","id":"SG-0143","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":822,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_41","id":"SG-0144","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":836,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_42","id":"SG-0145","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":855,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_43","id":"SG-0146","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":873,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_44","id":"SG-0147","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":881,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_45","id":"SG-0148","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":889,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_46","id":"SG-0149","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":897,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_47","id":"SG-0150","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":906,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_48","id":"SG-0151","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":914,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_49","id":"SG-0152","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":922,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_50","id":"SG-0153","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":930,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_51","id":"SG-0154","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":941,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_52","id":"SG-0155","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":957,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_53","id":"SG-0156","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":972,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_54","id":"SG-0157","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":995,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_55","id":"SG-0158","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1019,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_56","id":"SG-0159","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1036,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_57","id":"SG-0160","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1049,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_58","id":"SG-0161","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1057,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_59","id":"SG-0162","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1070,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_60","id":"SG-0163","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1078,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_61","id":"SG-0164","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1091,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_62","id":"SG-0165","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1099,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_63","id":"SG-0166","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1107,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_64","id":"SG-0167","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1115,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_65","id":"SG-0168","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1123,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_66","id":"SG-0169","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1131,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_67","id":"SG-0170","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1139,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_68","id":"SG-0171","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1147,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_69","id":"SG-0172","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1155,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_70","id":"SG-0173","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1166,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_71","id":"SG-0174","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1174,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_72","id":"SG-0175","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1182,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_73","id":"SG-0176","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1190,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_74","id":"SG-0177","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1198,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_75","id":"SG-0178","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1206,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_76","id":"SG-0179","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1214,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_77","id":"SG-0180","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1222,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_78","id":"SG-0181","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1230,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_79","id":"SG-0182","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1238,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_80","id":"SG-0183","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1246,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_81","id":"SG-0184","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1254,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_82","id":"SG-0185","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1262,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_83","id":"SG-0186","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1270,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_84","id":"SG-0187","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1277,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_85","id":"SG-0188","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1285,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_86","id":"SG-0189","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1293,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_87","id":"SG-0190","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1301,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_88","id":"SG-0191","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1308,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_89","id":"SG-0192","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1316,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_90","id":"SG-0193","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1324,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_91","id":"SG-0194","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1332,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_92","id":"SG-0195","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1340,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_93","id":"SG-0196","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1348,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_94","id":"SG-0197","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1359,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_95","id":"SG-0198","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1366,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_96","id":"SG-0199","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1374,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_97","id":"SG-0200","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1382,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_98","id":"SG-0201","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1398,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_99","id":"SG-0202","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1414,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_100","id":"SG-0203","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1425,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_101","id":"SG-0204","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1436,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_102","id":"SG-0205","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1447,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_103","id":"SG-0206","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1458,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_104","id":"SG-0207","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1469,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_105","id":"SG-0208","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1482,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_106","id":"SG-0209","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1494,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_107","id":"SG-0210","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1512,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_108","id":"SG-0211","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1523,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_109","id":"SG-0212","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1543,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_110","id":"SG-0213","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1561,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_111","id":"SG-0214","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1569,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_112","id":"SG-0215","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1577,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_113","id":"SG-0216","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1585,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_114","id":"SG-0217","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1593,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_115","id":"SG-0218","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1601,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_116","id":"SG-0219","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1619,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_117","id":"SG-0220","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1638,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_118","id":"SG-0221","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1647,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_119","id":"SG-0222","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1656,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_120","id":"SG-0223","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1680,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_121","id":"SG-0224","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1707,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_122","id":"SG-0225","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1733,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_123","id":"SG-0226","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1741,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_124","id":"SG-0227","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1749,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_125","id":"SG-0228","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1760,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_126","id":"SG-0229","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1768,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_127","id":"SG-0230","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1791,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_128","id":"SG-0231","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1800,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_129","id":"SG-0232","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1822,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_130","id":"SG-0233","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1848,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_131","id":"SG-0234","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1856,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_132","id":"SG-0235","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1864,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_133","id":"SG-0236","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1872,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_134","id":"SG-0237","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1880,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_135","id":"SG-0238","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1935,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_136","id":"SG-0239","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":1956,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_137","id":"SG-0240","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2019,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_138","id":"SG-0241","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2053,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_139","id":"SG-0242","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2107,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_140","id":"SG-0243","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2171,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_141","id":"SG-0244","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2204,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_142","id":"SG-0245","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2230,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_143","id":"SG-0246","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2238,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_144","id":"SG-0247","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2246,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_145","id":"SG-0248","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2254,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_146","id":"SG-0249","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2262,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_147","id":"SG-0250","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2270,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_148","id":"SG-0251","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2278,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_149","id":"SG-0252","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2286,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_150","id":"SG-0253","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2294,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_151","id":"SG-0254","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2302,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_152","id":"SG-0255","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2310,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_153","id":"SG-0256","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2318,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_154","id":"SG-0257","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2330,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_155","id":"SG-0258","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2348,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_156","id":"SG-0259","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2364,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_157","id":"SG-0260","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2384,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_158","id":"SG-0261","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2405,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_159","id":"SG-0262","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2418,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_160","id":"SG-0263","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2438,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_161","id":"SG-0264","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2454,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_162","id":"SG-0265","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2461,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_163","id":"SG-0266","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2468,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_164","id":"SG-0267","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2475,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_165","id":"SG-0268","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2484,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_166","id":"SG-0269","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2495,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_167","id":"SG-0270","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2507,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_168","id":"SG-0271","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2520,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_169","id":"SG-0272","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2527,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_170","id":"SG-0273","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2534,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_171","id":"SG-0274","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2541,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_172","id":"SG-0275","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2548,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_173","id":"SG-0276","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2555,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_174","id":"SG-0277","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2570,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_175","id":"SG-0278","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2581,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_176","id":"SG-0279","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2588,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_177","id":"SG-0280","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2595,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_178","id":"SG-0281","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2602,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_179","id":"SG-0282","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2609,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_180","id":"SG-0283","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2619,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_181","id":"SG-0284","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2635,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_182","id":"SG-0285","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2650,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_183","id":"SG-0286","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2672,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_184","id":"SG-0287","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2687,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_185","id":"SG-0288","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2701,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_186","id":"SG-0289","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2708,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_187","id":"SG-0290","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2723,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_188","id":"SG-0291","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2767,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_189","id":"SG-0292","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2800,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_190","id":"SG-0293","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2808,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_191","id":"SG-0294","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2816,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_192","id":"SG-0295","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2830,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_193","id":"SG-0296","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2853,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_194","id":"SG-0297","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2886,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#plugin-api-ffi","zellij-server/src/plugins/unit/plugin_tests.rs"],"fingerprint":"048d51457f908ab4a3347f50b235ae93c72ea919f26d848087481d398bc0d706f2355df2904f19f37c873febc0fa259d6e69500421b09fefb8649ed45d8a6676_195","id":"SG-0298","invariant":"Unsafe calls are the wasm host-call boundary; values are serialized before the single host trampoline and no raw host pointer crosses the API.","line":2898,"owner":"Plugin API FFI","path":"zellij-tile/src/shim.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":26,"evidence":["security/semgrep/EVIDENCE.md#cli-arguments","zellij-utils/src/cli.rs#CliArgs::parse"],"fingerprint":"81692b1a6bf7ade1ede3d20ca569ec43f7296e98485adc7c77399626b65f8b0f51720ed28ac0cb9395cb0a5d77a785133a29c2e2f2c0e981561ccdc8e436b8de_0","id":"SG-0299","invariant":"All arguments flow into typed clap parsing and command validation before execution.","line":102,"owner":"CLI parsing","path":"zellij-utils/src/cli.rs","reason":"args_os is the CLI entrypoint preserving platform arguments for typed clap parsing.","rule":"rust.lang.security.args-os.args-os","verdict":"scoped_false_positive"} +{"column":23,"evidence":["security/semgrep/EVIDENCE.md#path-traversal","zellij-utils/src/consts.rs"],"fingerprint":"46b531fa474d19b29774d87e5dfcca6a6f504aca6a32cefaf551cac267f87896ae2edf6ba3bc229f4c174bcc0a3aad7b9e31d77a217681dad45c363206cac856_0","id":"SG-0300","invariant":"Source and target are fixed legacy/current ProjectDirs owned by the local OS user.","line":221,"owner":"Runtime directories","path":"zellij-utils/src/consts.rs","reason":"The Actix taint rule matched a generic path operation outside an Actix request flow.","rule":"rust.actix.path-traversal.tainted-path.tainted-path","verdict":"scoped_false_positive"} +{"column":36,"evidence":["security/semgrep/EVIDENCE.md#path-traversal","zellij-utils/src/consts.rs"],"fingerprint":"3f19955c060f783b96c4ead9b1a77f8778bb6364b312c113476fcde03b4ce9f856888ef088f294794cff1cb289c306d827cba35442b37f02b651fb3be3308e69_0","id":"SG-0301","invariant":"Source and target are fixed legacy/current ProjectDirs owned by the local OS user.","line":227,"owner":"Runtime directories","path":"zellij-utils/src/consts.rs","reason":"The Actix taint rule matched a generic path operation outside an Actix request flow.","rule":"rust.actix.path-traversal.tainted-path.tainted-path","verdict":"scoped_false_positive"} +{"column":42,"evidence":["security/semgrep/EVIDENCE.md#ipc-libc","zellij-utils/src/ipc/tests/socket_tests.rs"],"fingerprint":"465c27e7d3dc26f67b7594128f19f445660e9c1f80f6dd942e72feeed999f6e9766aa9113a31647fdd6172afdd133066f3abe1a2befd9fb6f653f2f666e5cf55_0","id":"SG-0302","invariant":"OwnedFd owns the socket, sockaddr length is checked, connect is poll-bounded, and flags are restored before return.","line":409,"owner":"IPC transport","path":"zellij-utils/src/consts.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":18,"evidence":["security/semgrep/EVIDENCE.md#ipc-libc","zellij-utils/src/ipc/tests/socket_tests.rs"],"fingerprint":"465c27e7d3dc26f67b7594128f19f445660e9c1f80f6dd942e72feeed999f6e9766aa9113a31647fdd6172afdd133066f3abe1a2befd9fb6f653f2f666e5cf55_1","id":"SG-0303","invariant":"OwnedFd owns the socket, sockaddr length is checked, connect is poll-bounded, and flags are restored before return.","line":430,"owner":"IPC transport","path":"zellij-utils/src/consts.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":14,"evidence":["security/semgrep/EVIDENCE.md#ipc-libc","zellij-utils/src/ipc/tests/socket_tests.rs"],"fingerprint":"465c27e7d3dc26f67b7594128f19f445660e9c1f80f6dd942e72feeed999f6e9766aa9113a31647fdd6172afdd133066f3abe1a2befd9fb6f653f2f666e5cf55_2","id":"SG-0304","invariant":"OwnedFd owns the socket, sockaddr length is checked, connect is poll-bounded, and flags are restored before return.","line":434,"owner":"IPC transport","path":"zellij-utils/src/consts.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":26,"evidence":["security/semgrep/EVIDENCE.md#ipc-libc","zellij-utils/src/ipc/tests/socket_tests.rs"],"fingerprint":"465c27e7d3dc26f67b7594128f19f445660e9c1f80f6dd942e72feeed999f6e9766aa9113a31647fdd6172afdd133066f3abe1a2befd9fb6f653f2f666e5cf55_3","id":"SG-0305","invariant":"OwnedFd owns the socket, sockaddr length is checked, connect is poll-bounded, and flags are restored before return.","line":435,"owner":"IPC transport","path":"zellij-utils/src/consts.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":12,"evidence":["security/semgrep/EVIDENCE.md#ipc-libc","zellij-utils/src/ipc/tests/socket_tests.rs"],"fingerprint":"465c27e7d3dc26f67b7594128f19f445660e9c1f80f6dd942e72feeed999f6e9766aa9113a31647fdd6172afdd133066f3abe1a2befd9fb6f653f2f666e5cf55_4","id":"SG-0306","invariant":"OwnedFd owns the socket, sockaddr length is checked, connect is poll-bounded, and flags are restored before return.","line":437,"owner":"IPC transport","path":"zellij-utils/src/consts.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":26,"evidence":["security/semgrep/EVIDENCE.md#ipc-libc","zellij-utils/src/ipc/tests/socket_tests.rs"],"fingerprint":"465c27e7d3dc26f67b7594128f19f445660e9c1f80f6dd942e72feeed999f6e9766aa9113a31647fdd6172afdd133066f3abe1a2befd9fb6f653f2f666e5cf55_5","id":"SG-0307","invariant":"OwnedFd owns the socket, sockaddr length is checked, connect is poll-bounded, and flags are restored before return.","line":448,"owner":"IPC transport","path":"zellij-utils/src/consts.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":31,"evidence":["security/semgrep/EVIDENCE.md#ipc-libc","zellij-utils/src/ipc/tests/socket_tests.rs"],"fingerprint":"465c27e7d3dc26f67b7594128f19f445660e9c1f80f6dd942e72feeed999f6e9766aa9113a31647fdd6172afdd133066f3abe1a2befd9fb6f653f2f666e5cf55_6","id":"SG-0308","invariant":"OwnedFd owns the socket, sockaddr length is checked, connect is poll-bounded, and flags are restored before return.","line":482,"owner":"IPC transport","path":"zellij-utils/src/consts.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":16,"evidence":["security/semgrep/EVIDENCE.md#ipc-libc","zellij-utils/src/ipc/tests/socket_tests.rs"],"fingerprint":"465c27e7d3dc26f67b7594128f19f445660e9c1f80f6dd942e72feeed999f6e9766aa9113a31647fdd6172afdd133066f3abe1a2befd9fb6f653f2f666e5cf55_7","id":"SG-0309","invariant":"OwnedFd owns the socket, sockaddr length is checked, connect is poll-bounded, and flags are restored before return.","line":499,"owner":"IPC transport","path":"zellij-utils/src/consts.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":8,"evidence":["security/semgrep/EVIDENCE.md#ipc-libc","zellij-utils/src/ipc/tests/socket_tests.rs"],"fingerprint":"465c27e7d3dc26f67b7594128f19f445660e9c1f80f6dd942e72feeed999f6e9766aa9113a31647fdd6172afdd133066f3abe1a2befd9fb6f653f2f666e5cf55_8","id":"SG-0310","invariant":"OwnedFd owns the socket, sockaddr length is checked, connect is poll-bounded, and flags are restored before return.","line":518,"owner":"IPC transport","path":"zellij-utils/src/consts.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#process-environment","zellij-utils/src/envs.rs"],"fingerprint":"90cfa7ce844fa5e8028ae397be3b9db8ff0b8b78e5a840065a478a62de32de3e7a03ca267e63f1e17566edf5a4a519a34e2dd753bdf3e95c91f52ab712dbcc52_0","id":"SG-0311","invariant":"Environment mutation is serialized during process initialization or isolated test cleanup.","line":127,"owner":"Process environment","path":"zellij-utils/src/envs.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":9,"evidence":["security/semgrep/EVIDENCE.md#process-environment","zellij-utils/src/envs.rs"],"fingerprint":"90cfa7ce844fa5e8028ae397be3b9db8ff0b8b78e5a840065a478a62de32de3e7a03ca267e63f1e17566edf5a4a519a34e2dd753bdf3e95c91f52ab712dbcc52_1","id":"SG-0312","invariant":"Environment mutation is serialized during process initialization or isolated test cleanup.","line":143,"owner":"Process environment","path":"zellij-utils/src/envs.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":28,"evidence":["security/semgrep/EVIDENCE.md#path-traversal","zellij-utils/src/input/plugins.rs"],"fingerprint":"d8d9b76c3d0d855c7875b0d8f60f908d7c95f86c54f4eb1ede785442173ecee3835d7071eb4697932a2ce3a3596350c9fa0563df924a79261c45e182d877b03a_0","id":"SG-0313","invariant":"Reading an operator-selected plugin is the explicit plugin capability; builtins resolve from embedded assets first.","line":157,"owner":"Plugin loading","path":"zellij-utils/src/input/plugins.rs","reason":"The Actix taint rule matched a generic path operation outside an Actix request flow.","rule":"rust.actix.path-traversal.tainted-path.tainted-path","verdict":"scoped_false_positive"} +{"column":9,"evidence":["security/semgrep/EVIDENCE.md#test-only-unsafe","zellij-utils/src/input/unit/layout_test.rs"],"fingerprint":"3c7821e25c122dd2c6b0171cc548b7e6dc5d16e591ca980d650dafb0fedc024463dab4cb3ba8af7064f8d3c739c150f0bba6b73ca4a866339d5830b5e6c93353_0","id":"SG-0314","invariant":"Unsafe environment mutation is test-only, restores prior state, and does not ship in production binaries.","line":2561,"owner":"Rust test harness","path":"zellij-utils/src/input/unit/layout_test.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":28,"evidence":["security/semgrep/EVIDENCE.md#test-only-unsafe","zellij-utils/src/input/unit/layout_test.rs"],"fingerprint":"3c7821e25c122dd2c6b0171cc548b7e6dc5d16e591ca980d650dafb0fedc024463dab4cb3ba8af7064f8d3c739c150f0bba6b73ca4a866339d5830b5e6c93353_1","id":"SG-0315","invariant":"Unsafe environment mutation is test-only, restores prior state, and does not ship in production binaries.","line":2568,"owner":"Rust test harness","path":"zellij-utils/src/input/unit/layout_test.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":21,"evidence":["security/semgrep/EVIDENCE.md#test-only-unsafe","zellij-utils/src/input/unit/layout_test.rs"],"fingerprint":"3c7821e25c122dd2c6b0171cc548b7e6dc5d16e591ca980d650dafb0fedc024463dab4cb3ba8af7064f8d3c739c150f0bba6b73ca4a866339d5830b5e6c93353_2","id":"SG-0316","invariant":"Unsafe environment mutation is test-only, restores prior state, and does not ship in production binaries.","line":2570,"owner":"Rust test harness","path":"zellij-utils/src/input/unit/layout_test.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":5,"evidence":["security/semgrep/EVIDENCE.md#test-only-unsafe","zellij-utils/src/input/unit/layout_test.rs"],"fingerprint":"3c7821e25c122dd2c6b0171cc548b7e6dc5d16e591ca980d650dafb0fedc024463dab4cb3ba8af7064f8d3c739c150f0bba6b73ca4a866339d5830b5e6c93353_3","id":"SG-0317","invariant":"Unsafe environment mutation is test-only, restores prior state, and does not ship in production binaries.","line":2580,"owner":"Rust test harness","path":"zellij-utils/src/input/unit/layout_test.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":33,"evidence":["security/semgrep/EVIDENCE.md#path-traversal","zellij-utils/src/ipc/protobuf_conversion.rs"],"fingerprint":"ecc4edae4907b25051dbddf7e12526902896b40f5c5638c00f00212cf0db535ee73672a09f6c9b88fd5270cd1956eb0d723e7c4784a91c183aa75ef2a6ca36d5_0","id":"SG-0318","invariant":"The hit is data-only PathBuf construction; no filesystem operation occurs.","line":3360,"owner":"IPC data model","path":"zellij-utils/src/ipc/protobuf_conversion.rs","reason":"The Actix taint rule matched a generic path operation outside an Actix request flow.","rule":"rust.actix.path-traversal.tainted-path.tainted-path","verdict":"scoped_false_positive"} +{"column":47,"evidence":["security/semgrep/EVIDENCE.md#path-traversal","zellij-utils/src/ipc/protobuf_conversion.rs"],"fingerprint":"efe2f6d779d50ae6d4f9c293d0a47ed4e20fa00676abc411133a3b984e52e482ca3c25e2cc58b44256ba48a41a5deb9a67c81ab5ce255f8c4d71f1d2fee1635c_0","id":"SG-0319","invariant":"The hit is data-only PathBuf construction; no filesystem operation occurs.","line":4291,"owner":"IPC data model","path":"zellij-utils/src/ipc/protobuf_conversion.rs","reason":"The Actix taint rule matched a generic path operation outside an Actix request flow.","rule":"rust.actix.path-traversal.tainted-path.tainted-path","verdict":"scoped_false_positive"} +{"column":17,"evidence":["security/semgrep/EVIDENCE.md#process-probes","zellij-utils/src/sessions.rs"],"fingerprint":"db9103e89f65c322a57e2591d9a4f46c92320ef2c4426efa070ca0a2bd72107c0c0b0c58503d3184326598ebf6e1abdfe58a9fa3b65b445d9217cae8d51fc849_0","id":"SG-0320","invariant":"The libc process probe is read-only and accepts only a PID parsed from a locally owned socket name.","line":221,"owner":"Session discovery","path":"zellij-utils/src/sessions.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":55,"evidence":["security/semgrep/EVIDENCE.md#vendored-termwiz","zellij-utils/src/vendored/termwiz/mod.rs"],"fingerprint":"3617041ddb34b2893096e69e16cc2f6e4a299acc6f522e4028ac7b0e8d7fd809abfb7ba52957262ccb5ced44cee7d38d0fbf8fd10baf4564e846528421b1a01a_0","id":"SG-0321","invariant":"Unsafe accesses decode Windows tagged unions or validated UTF-8 inside the vendored module; callers receive owned safe Rust values.","line":1014,"owner":"Upstream termwiz boundary","path":"zellij-utils/src/vendored/termwiz/input.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":48,"evidence":["security/semgrep/EVIDENCE.md#vendored-termwiz","zellij-utils/src/vendored/termwiz/mod.rs"],"fingerprint":"3617041ddb34b2893096e69e16cc2f6e4a299acc6f522e4028ac7b0e8d7fd809abfb7ba52957262ccb5ced44cee7d38d0fbf8fd10baf4564e846528421b1a01a_1","id":"SG-0322","invariant":"Unsafe accesses decode Windows tagged unions or validated UTF-8 inside the vendored module; callers receive owned safe Rust values.","line":1200,"owner":"Upstream termwiz boundary","path":"zellij-utils/src/vendored/termwiz/input.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":50,"evidence":["security/semgrep/EVIDENCE.md#vendored-termwiz","zellij-utils/src/vendored/termwiz/mod.rs"],"fingerprint":"3617041ddb34b2893096e69e16cc2f6e4a299acc6f522e4028ac7b0e8d7fd809abfb7ba52957262ccb5ced44cee7d38d0fbf8fd10baf4564e846528421b1a01a_2","id":"SG-0323","invariant":"Unsafe accesses decode Windows tagged unions or validated UTF-8 inside the vendored module; callers receive owned safe Rust values.","line":1203,"owner":"Upstream termwiz boundary","path":"zellij-utils/src/vendored/termwiz/input.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":25,"evidence":["security/semgrep/EVIDENCE.md#vendored-termwiz","zellij-utils/src/vendored/termwiz/mod.rs"],"fingerprint":"3617041ddb34b2893096e69e16cc2f6e4a299acc6f522e4028ac7b0e8d7fd809abfb7ba52957262ccb5ced44cee7d38d0fbf8fd10baf4564e846528421b1a01a_3","id":"SG-0324","invariant":"Unsafe accesses decode Windows tagged unions or validated UTF-8 inside the vendored module; callers receive owned safe Rust values.","line":1206,"owner":"Upstream termwiz boundary","path":"zellij-utils/src/vendored/termwiz/input.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":29,"evidence":["security/semgrep/EVIDENCE.md#vendored-termwiz","zellij-utils/src/vendored/termwiz/mod.rs"],"fingerprint":"3617041ddb34b2893096e69e16cc2f6e4a299acc6f522e4028ac7b0e8d7fd809abfb7ba52957262ccb5ced44cee7d38d0fbf8fd10baf4564e846528421b1a01a_4","id":"SG-0325","invariant":"Unsafe accesses decode Windows tagged unions or validated UTF-8 inside the vendored module; callers receive owned safe Rust values.","line":1587,"owner":"Upstream termwiz boundary","path":"zellij-utils/src/vendored/termwiz/input.rs","reason":"Required FFI, process-global, or test-only unsafe boundary reviewed in its owner module.","rule":"rust.lang.security.unsafe-usage.unsafe-usage","verdict":"accepted_unsafe_boundary"} +{"column":32,"evidence":["security/semgrep/EVIDENCE.md#path-traversal","zellij-utils/src/vibecrafted_install.rs"],"fingerprint":"4828a8f32be886a1c1f894a23012c8181a9225042b7cde1c853a2a0bc0bb00f734c011dd6997183c8bfc42ce8195aa36a9d461005d689f73ad33d2aa066b5108_0","id":"SG-0326","invariant":"The source is enumerated from a validated framework root and destination is the current-user layouts directory.","line":396,"owner":"Vibecrafted layout installer","path":"zellij-utils/src/vibecrafted_install.rs","reason":"The Actix taint rule matched a generic path operation outside an Actix request flow.","rule":"rust.actix.path-traversal.tainted-path.tainted-path","verdict":"scoped_false_positive"} +{"column":66,"evidence":["security/semgrep/EVIDENCE.md#path-traversal","zellij-utils/src/web_server_commands.rs"],"fingerprint":"fa7c454a17b1c0aa7fc35de868dcbdd68bef8cbb676e43ba20b4bdb69ff6b61df5359b9ac567b4657749a168258dd7db486017bff5358df7e145296a0e216621_0","id":"SG-0327","invariant":"Socket paths are discovered below the current-user runtime directory and connect probing is bounded.","line":63,"owner":"Local webserver IPC","path":"zellij-utils/src/web_server_commands.rs","reason":"The Actix taint rule matched a generic path operation outside an Actix request flow.","rule":"rust.actix.path-traversal.tainted-path.tainted-path","verdict":"scoped_false_positive"} diff --git a/src/run_triage_cli.rs b/src/run_triage_cli.rs index b55bb2dea..9a17e995f 100644 --- a/src/run_triage_cli.rs +++ b/src/run_triage_cli.rs @@ -195,6 +195,8 @@ struct CliTriageIo { const CLI_COMMAND_TIMEOUT: Duration = Duration::from_secs(10); const NEW_TAB_COMMAND_TIMEOUT: Duration = Duration::from_secs(30); const VIEWER_CREATION_RECONCILIATION_TIMEOUT: Duration = Duration::from_secs(30); +const INVENTORY_RETRY_TIMEOUT: Duration = Duration::from_secs(10); +const SESSION_READY_TIMEOUT: Duration = Duration::from_secs(20); fn run_command_with_timeout( executable: &Path, @@ -402,13 +404,13 @@ impl CliTriageIo { } fn tab_inventory(&self, session: &str) -> Result { - retry_json_array_output("vc-frame tab inventory", Duration::from_secs(2), || { + retry_json_array_output("vc-frame tab inventory", INVENTORY_RETRY_TIMEOUT, || { self.run(&["-s", session, "action", "list-tabs", "--json"]) }) } fn pane_inventory(&self, session: &str) -> Result { - retry_json_array_output("vc-frame pane inventory", Duration::from_secs(2), || { + retry_json_array_output("vc-frame pane inventory", INVENTORY_RETRY_TIMEOUT, || { self.run(&[ "-s", session, @@ -423,7 +425,7 @@ impl CliTriageIo { } fn wait_for_session_ready(&self, session: &str) -> Result<(), String> { - let deadline = Instant::now() + Duration::from_secs(5); + let deadline = Instant::now() + SESSION_READY_TIMEOUT; loop { let readiness = self .tab_inventory(session) diff --git a/src/tests/e2e/cases.rs b/src/tests/e2e/cases.rs index 86a5acffa..5159f0e34 100644 --- a/src/tests/e2e/cases.rs +++ b/src/tests/e2e/cases.rs @@ -112,6 +112,7 @@ fn account_for_races_in_snapshot(snapshot: String) -> String { // stay about product layout, not runner load. Segments can appear in any // order or subset (e.g. only MEM|DISK|HEALTH when LIVE is zero/absent). let live_replace = Regex::new(r"LIVE \d+\s*").unwrap(); + let rail_live_replace = Regex::new(r"Live (?:\d+|…)").unwrap(); let cockpit_seg_replace = Regex::new(r"(?:\| )?(?:CPU|MEM|DISK|HDD|HEALTH) [^|\n]*").unwrap(); // Rotating startup tips and the default-mode bottom tip chip row race with // snapshot timing (present/absent, and tip body changes). Strip them so @@ -121,6 +122,10 @@ fn account_for_races_in_snapshot(snapshot: String) -> String { // Scroll-position totals vary with fixture prompt/newline edge cases // (e.g. 1/3 vs 1/4) while still proving scroll mode is active. let scroll_indicator_replace = Regex::new(r"SCROLL:\s*\d+/\d+").unwrap(); + // Shells can repaint the prompt between the echoed `echo $?` command and + // its output. Keep the status line while ignoring whether the input echo + // survived that repaint. + let echo_status_command_replace = Regex::new(r"(?m)^(│\$) echo \$\?(\s+│)$").unwrap(); let snapshot = base_replace.replace_all(&snapshot, "\n").to_string(); let snapshot = base_replace_tmux_mode_1 .replace_all(&snapshot, "\n") @@ -129,6 +134,9 @@ fn account_for_races_in_snapshot(snapshot: String) -> String { .replace_all(&snapshot, "\n") .to_string(); let snapshot = live_replace.replace_all(&snapshot, "").to_string(); + let snapshot = rail_live_replace + .replace_all(&snapshot, "Live …") + .to_string(); let snapshot = cockpit_seg_replace.replace_all(&snapshot, "").to_string(); // Collapse leftover " | " runs and trailing pipes after cockpit strip. let pipe_ws_replace = Regex::new(r"(?: \| )+").unwrap(); @@ -140,6 +148,10 @@ fn account_for_races_in_snapshot(snapshot: String) -> String { let snapshot = scroll_indicator_replace .replace_all(&snapshot, "SCROLL: N/M") .to_string(); + let snapshot = echo_status_command_replace + // Preserve the terminal-grid width while erasing the optional echo. + .replace_all(&snapshot, "$1 $2") + .to_string(); eol_arrow_replace.replace_all(&snapshot, "\n").to_string() } @@ -162,19 +174,23 @@ pub fn starts_with_one_terminal() { name: "Wait for app to load", instruction: |remote_terminal: RemoteTerminal| -> bool { let mut step_is_complete = false; - if remote_terminal.status_bar_appears() && remote_terminal.cursor_position_is(3, 2) + if remote_terminal.status_bar_appears() + && remote_terminal.snapshot_contains("SESSION") + && remote_terminal.cursor_position_is(3, 2) { step_is_complete = true; } step_is_complete }, }); - if runner.test_timed_out && test_attempts > 0 { - test_attempts -= 1; - continue; - } else { - break last_snapshot; + if runner.test_timed_out { + if test_attempts > 0 { + test_attempts -= 1; + continue; + } + panic!("starts_with_one_terminal exhausted all E2E retries"); } + break last_snapshot; }; let last_snapshot = account_for_races_in_snapshot(last_snapshot); @@ -479,7 +495,7 @@ pub fn open_new_tab() { let mut step_is_complete = false; if remote_terminal.cursor_position_is(3, 2) && remote_terminal.snapshot_contains("Tab #2") - && remote_terminal.status_bar_appears() + && remote_terminal.mode_status_bar_appears() { // cursor is in the newly opened second tab step_is_complete = true; @@ -1669,6 +1685,7 @@ pub fn mirrored_sessions() { let mut step_is_complete = false; if remote_terminal.cursor_position_is(63, 2) && remote_terminal.snapshot_contains("┐┌") + && remote_terminal.top_bar_appears() { // cursor is back in the first tab step_is_complete = true; @@ -1682,6 +1699,7 @@ pub fn mirrored_sessions() { let mut step_is_complete = false; if remote_terminal.cursor_position_is(63, 2) && remote_terminal.snapshot_contains("┐┌") + && remote_terminal.top_bar_appears() { // cursor is back in the first tab step_is_complete = true; @@ -2379,15 +2397,15 @@ pub fn send_command_through_the_cli() { name: "Wait for command to run", instruction: |mut remote_terminal: RemoteTerminal| -> bool { let mut step_is_complete = false; - if remote_terminal.snapshot_contains("") - && remote_terminal.cursor_position_is(76, 3) + if remote_terminal.snapshot_contains("foo-1") + && remote_terminal.snapshot_contains(" re-run") { + // The banner reaches the SSH-side parser just before the + // server finishes transitioning the pane back to Held. std::thread::sleep(std::time::Duration::from_millis(100)); - remote_terminal.send_key(&SPACE); // re-run script - here we use SPACE - // instead of the default ENTER because - // sending ENTER over SSH can be a little - // problematic (read: I couldn't get it - // to pass consistently) + // A held command accepts Enter or Space. Use Space in the SSH + // harness because PTY newline translation makes Enter flaky. + remote_terminal.send_key(&SPACE); step_is_complete = true } step_is_complete @@ -2397,8 +2415,8 @@ pub fn send_command_through_the_cli() { name: "Wait for script to run again", instruction: |mut remote_terminal: RemoteTerminal| -> bool { let mut step_is_complete = false; - if remote_terminal.snapshot_contains("") - && remote_terminal.cursor_position_is(76, 4) + if remote_terminal.snapshot_contains("foo-2") + && remote_terminal.snapshot_contains(" re-run") { step_is_complete = true } @@ -2411,8 +2429,8 @@ pub fn send_command_through_the_cli() { name: "Wait for script to run twice", instruction: |remote_terminal: RemoteTerminal| -> bool { let mut step_is_complete = false; - if remote_terminal.snapshot_contains("foo") - && remote_terminal.cursor_position_is(76, 4) + if remote_terminal.snapshot_contains("foo-2") + && remote_terminal.snapshot_contains(" re-run") { step_is_complete = true } @@ -2420,12 +2438,14 @@ pub fn send_command_through_the_cli() { }, }); - if runner.test_timed_out && test_attempts > 0 { - test_attempts -= 1; - continue; - } else { - break last_snapshot; + if runner.test_timed_out { + if test_attempts > 0 { + test_attempts -= 1; + continue; + } + panic!("send_command_through_the_cli exhausted all E2E retries"); } + break last_snapshot; }; let last_snapshot = account_for_races_in_snapshot(last_snapshot); assert_snapshot!(last_snapshot); diff --git a/src/tests/e2e/remote_runner.rs b/src/tests/e2e/remote_runner.rs index 1cd15c892..075ddcc7c 100644 --- a/src/tests/e2e/remote_runner.rs +++ b/src/tests/e2e/remote_runner.rs @@ -504,6 +504,16 @@ impl RemoteTerminal { let snap = self.last_snapshot.lock().unwrap().clone(); chrome_appears_in(&snap) } + pub fn mode_status_bar_appears(&self) -> bool { + let snap = self.last_snapshot.lock().unwrap(); + snap.contains("LOCK") && snap.contains("PANE") && snap.contains("SESSION") + } + pub fn top_bar_appears(&self) -> bool { + let snap = self.last_snapshot.lock().unwrap(); + snap.lines() + .next() + .is_some_and(|line| line.contains("𝚅𝚒𝚋𝚎𝚌𝚛𝚊𝚏𝚝𝚎𝚍.")) + } pub fn ctrl_plus_appears(&self) -> bool { let snap = self.last_snapshot.lock().unwrap().clone(); // Dense chips may drop the superkey prefix; treat mode chrome as enough. @@ -1086,14 +1096,19 @@ impl RemoteRunner { return self.last_snapshot.lock().unwrap().clone(); } let (cursor_x, cursor_y) = *self.cursor_coordinates.lock().unwrap(); + // Evaluate the readiness predicate against the exact frame we will + // return. The reader thread can otherwise replace `last_snapshot` + // between the predicate and the clone, producing a frame that no + // longer satisfies the condition that accepted it. + let snapshot = self.last_snapshot.lock().unwrap().clone(); let remote_terminal = RemoteTerminal { cursor_x, cursor_y, - last_snapshot: self.last_snapshot.clone(), + last_snapshot: Arc::new(Mutex::new(snapshot.clone())), channel: self.channel.clone(), }; if instruction(remote_terminal) { - return self.last_snapshot.lock().unwrap().clone(); + return snapshot; } else { retries_left -= 1; std::thread::sleep(std::time::Duration::from_millis(100)); diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__bracketed_paste.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__bracketed_paste.snap index d85382c96..9aedc613c 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__bracketed_paste.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__bracketed_paste.snap @@ -25,3 +25,4 @@ expression: last_snapshot │ │ │ │ └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ⌃g  LOCK  ⌃p  PANE  ⌃t  TAB  ⌃n  RESIZE  ⌃h  MOVE  ⌃s  SEARCH  ⌃o  SESSION  ... diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__cannot_split_terminals_vertically_when_active_terminal_is_too_small.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__cannot_split_terminals_vertically_when_active_terminal_is_too_small.snap index 6ce98c4a5..cefbd9a22 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__cannot_split_terminals_vertically_when_active_terminal_is_too_small.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__cannot_split_terminals_vertically_when_active_terminal_is_too_small.snap @@ -21,3 +21,4 @@ expression: last_snapshot │ │ │ │ └──────┘ +  ... diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__close_pane.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__close_pane.snap index 0181f276a..17abb6039 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__close_pane.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__close_pane.snap @@ -25,3 +25,4 @@ expression: last_snapshot │ │ │ │ └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ⌃g  LOCK  ⌃p  PANE  ⌃t  TAB  ⌃n  RESIZE  ⌃h  MOVE  ⌃s  SEARCH  ⌃o  SESSION  ... diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__detach_and_attach_session.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__detach_and_attach_session.snap index cf03f56d4..9f7427a2a 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__detach_and_attach_session.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__detach_and_attach_session.snap @@ -2,27 +2,27 @@ source: src/tests/e2e/cases.rs expression: last_snapshot --- - 𝚅𝚒𝚋𝚎𝚌𝚛𝚊𝚏𝚝𝚎𝚍. (e2e-test) ◉ Tab #1 -SESSIONS 1 · e2e-test ┌ Pane #1 ─────────────────────────────────────────────────────────────────────────────────────┐ -01 ◉ e2e-test │$ █ │ - ◉ Tab #1 · terminal │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - f ○ ? · final │ │ - x ○ ? · fail │ │ - n ○ ? · needs └──────────────────────────────────────────────────────────────────────────────────────────────┘ - ... + 𝚅𝚒𝚋𝚎𝚌𝚛𝚊𝚏𝚝𝚎𝚍. ⎮ ▷ N ◉ Start here ○ Shell ✍ Composer · ❯_ Quick cmd +SESSIONS 1 · e2e-test ┌ Start here — map of this workspace ──────────────────────────────────────────────────────────┐ + ● Live … │ Start here — map of this workspace │ +01 ◉ e2e-test │ │ + │ vc-frame 0.47.3 · Vibecrafted operator layout │ + │ You are looking at ONE session (this window). It has a fixed chrome: │ + │ TOP = this session: (name) · mode chip · tabs — ◉ marks where you are │ + │ LEFT = SESSIONS rail — other sessions / agent rooms (click to jump) │ + │ CENTER = this Guide (help). Work happens on the Shell tab. │ + │ BOTTOM = status bar (modes: Ctrl+t TAB, Ctrl+p PANE, Ctrl+o SESSION) │ + │ │ + │ Do this first (60 seconds): │ + │ 1. Open the Shell tab — click "Shell" on the top bar, or: Ctrl+t then 2 │ + │ 2. Read the banner in the shell, then run: vibecrafted start │ + │ 3. Come back here anytime (Ctrl+t then 1) if you get lost. │ + │ │ + │ Learn the chrome (click a topic): │ + │ 1. Left rail = sessions (not tabs) │ + │ 2. Top bar = tabs of this session │ + │ 3. Keyboard + mouse cheat sheet │ + │ 4. What to type on the Shell tab │ + │Help: <↓↑> - Navigate, - Dismiss, - Usage Tips │ + 🅵… · 🆇… · 🅽… └──────────────────────────────────────────────────────────────────────────────────────────────┘ + ⌃g  LOCK  ⌃p  PANE  ⌃t  TAB  ⌃n  RESIZE  ⌃h  MOVE  ⌃s  SEARCH  ⌃o  SESSION  ... BASE diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__focus_pane_with_mouse.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__focus_pane_with_mouse.snap index f69e58dc8..0a5e8565c 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__focus_pane_with_mouse.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__focus_pane_with_mouse.snap @@ -25,4 +25,4 @@ expression: last_snapshot │ ││ │ │ ││ │ └──────────────────────────────────────────────────────────┘└──────────────────────────────────────────────────────────┘ - ... + ⌃g  LOCK  ⌃p  PANE  ⌃t  TAB  ⌃n  RESIZE  ⌃h  MOVE  ⌃s  SEARCH  ⌃o  SESSION  ... BASE diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__load_plugins_in_background_on_startup.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__load_plugins_in_background_on_startup.snap index ea8e4f1cb..4b514870a 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__load_plugins_in_background_on_startup.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__load_plugins_in_background_on_startup.snap @@ -2,27 +2,27 @@ source: src/tests/e2e/cases.rs expression: last_snapshot --- - 𝚅𝚒𝚋𝚎𝚌𝚛𝚊𝚏𝚝𝚎𝚍. (e2e-test) ◉ Tab #1 -SESSIONS 1 · e2e-test ┌ Pane #1 ─────────────────────────────────────────────────────────────────────────────────────┐ -01 ◉ e2e-test │$ █ │ - ◉ Tab #1 · terminal │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - f ○ ? · final │ │ - x ○ ? · fail │ │ - n ○ ? · needs └──────────────────────────────────────────────────────────────────────────────────────────────┘ - Ctrl g  UNLOCK  ... + 𝚅𝚒𝚋𝚎𝚌𝚛𝚊𝚏𝚝𝚎𝚍. ⎮ ⚿ L ◉ Start here ○ Shell ✍ Composer · ❯_ Quick cmd +SESSIONS 1 · e2e-test ┌ Start here — map of this workspace ──────────────────────────────────────────────────────────┐ + ● Live … │ Start here — map of this workspace │ +01 ◉ e2e-test │ │ + │ vc-frame 0.47.3 · Vibecrafted operator layout │ + │ You are looking at ONE session (this window). It has a fixed chrome: │ + │ TOP = this session: (name) · mode chip · tabs — ◉ marks where you are │ + │ LEFT = SESSIONS rail — other sessions / agent rooms (click to jump) │ + │ CENTER = this Guide (help). Work happens on the Shell tab. │ + │ BOTTOM = status bar (modes: Ctrl+t TAB, Ctrl+p PANE, Ctrl+o SESSION) │ + │ │ + │ Do this first (60 seconds): │ + │ 1. Open the Shell tab — click "Shell" on the top bar, or: Ctrl+t then 2 │ + │ 2. Read the banner in the shell, then run: vibecrafted start │ + │ 3. Come back here anytime (Ctrl+t then 1) if you get lost. │ + │ │ + │ Learn the chrome (click a topic): │ + │ 1. Left rail = sessions (not tabs) │ + │ 2. Top bar = tabs of this session │ + │ 3. Keyboard + mouse cheat sheet │ + │ 4. What to type on the Shell tab │ + │Help: <↓↑> - Navigate, - Dismiss, - Usage Tips │ + 🅵… · 🆇… · 🅽… └──────────────────────────────────────────────────────────────────────────────────────────────┘ + ⌃g  UNLOCK  ... LIVE 0 diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__lock_mode.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__lock_mode.snap index fc8155595..690f7b882 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__lock_mode.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__lock_mode.snap @@ -25,4 +25,4 @@ expression: last_snapshot │ │ │ │ └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ - Ctrl g  LOCK  + ⌃g  LOCK  LIVE 1 diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__mirrored_sessions-2.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__mirrored_sessions-2.snap index 4c203a362..95176f98a 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__mirrored_sessions-2.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__mirrored_sessions-2.snap @@ -2,27 +2,27 @@ source: src/tests/e2e/cases.rs expression: second_runner_snapshot --- - 𝚅𝚒𝚋𝚎𝚌𝚛𝚊𝚏𝚝𝚎𝚍. (mirrored_sessions) ◉ Tab #1 -SESSIONS 1 · mirrored_se┌ Pane #1 ─────────────────────────────────────────────────────────────────────────────────────┐ -01 ◉ mirrored_sessions │$ █ │ - ◉ Tab #1 · terminal │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - f ○ ? · final │ │ - x ○ ? · fail │ │ - n ○ ? · needs └──────────────────────────────────────────────────────────────────────────────────────────────┘ - ... + 𝚅𝚒𝚋𝚎𝚌𝚛𝚊𝚏𝚝𝚎𝚍. ⎮ ▷ N ◉ Start here ○ Shell ✍ Composer · ❯_ Quick cmd +SESSIONS 1 · mirrored_se┌ Start here — map of this workspace ──────────────────────────────────────────────────────────┐ + ● Live … │ Start here — map of this workspace │ +01 ◉ mirrored_sessions │ │ + │ vc-frame 0.47.3 · Vibecrafted operator layout │ + │ You are looking at ONE session (this window). It has a fixed chrome: │ + │ TOP = this session: (name) · mode chip · tabs — ◉ marks where you are │ + │ LEFT = SESSIONS rail — other sessions / agent rooms (click to jump) │ + │ CENTER = this Guide (help). Work happens on the Shell tab. │ + │ BOTTOM = status bar (modes: Ctrl+t TAB, Ctrl+p PANE, Ctrl+o SESSION) │ + │ │ + │ Do this first (60 seconds): │ + │ 1. Open the Shell tab — click "Shell" on the top bar, or: Ctrl+t then 2 │ + │ 2. Read the banner in the shell, then run: vibecrafted start │ + │ 3. Come back here anytime (Ctrl+t then 1) if you get lost. │ + │ │ + │ Learn the chrome (click a topic): │ + │ 1. Left rail = sessions (not tabs) │ + │ 2. Top bar = tabs of this session │ + │ 3. Keyboard + mouse cheat sheet │ + │ 4. What to type on the Shell tab │ + │Help: <↓↑> - Navigate, - Dismiss, - Usage Tips │ + 🅵… · 🆇… · 🅽… └──────────────────────────────────────────────────────────────────────────────────────────────┘ + ⌃g  LOCK  ⌃p  PANE  ⌃t  TAB  ⌃n  RESIZE  ⌃h  MOVE  ⌃s  SEARCH  ⌃o  SESSION  ... BASE diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__mirrored_sessions.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__mirrored_sessions.snap index e6d6c5823..230a43c85 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__mirrored_sessions.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__mirrored_sessions.snap @@ -2,10 +2,10 @@ source: src/tests/e2e/cases.rs expression: first_runner_snapshot --- - -SESSIONS 1 · mirrored_se┌ Pane #1 ─────────────────────────────────────────────────────────────────────────────────────┐ -01 ◉ mirrored_sessions │$ █ │ - ◉ Tab #1 · terminal │ │ + 𝚅𝚒𝚋𝚎𝚌𝚛𝚊𝚏𝚝𝚎𝚍. ⎮ ▷ N ◉ Start here ○ Shell ✍ Composer · ❯_ Quick cmd +SESSIONS 1 · mirrored_se┌ Start here — map of this workspace ──────────────────────────────────────────────────────────┐ + ● Live … │ │ +01 ◉ mirrored_sessions │ │ │ │ │ │ │ │ @@ -22,7 +22,7 @@ SESSIONS 1 · mirrored_se┌ Pane #1 ────────────── │ │ │ │ │ │ - f ○ ? · final │ │ - x ○ ? · fail │ │ - n ○ ? · needs └──────────────────────────────────────────────────────────────────────────────────────────────┘ - ... + │ │ + │ │ + 🅵… · 🆇… · 🅽… └──────────────────────────────────────────────────────────────────────────────────────────────┘ + ⌃g  LOCK  ⌃p  PANE  ⌃t  TAB  ⌃n  RESIZE  ⌃h  MOVE  ⌃s  SEARCH  ⌃o  SESSION  ... BASE diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__move_tab_to_left.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__move_tab_to_left.snap index ab9176f51..c3b08749d 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__move_tab_to_left.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__move_tab_to_left.snap @@ -25,3 +25,4 @@ expression: account_for_races_in_snapshot(last_snapshot) │ │ │ │ └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ⌃g  LOCK  ⌃p  PANE  ⌃t  TAB  ⌃n  RESIZE  ⌃h  MOVE  ⌃s  SEARCH  ⌃o  SESSION  ... diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__move_tab_to_left_until_it_wraps_around.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__move_tab_to_left_until_it_wraps_around.snap index ab9176f51..c3b08749d 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__move_tab_to_left_until_it_wraps_around.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__move_tab_to_left_until_it_wraps_around.snap @@ -25,3 +25,4 @@ expression: account_for_races_in_snapshot(last_snapshot) │ │ │ │ └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ⌃g  LOCK  ⌃p  PANE  ⌃t  TAB  ⌃n  RESIZE  ⌃h  MOVE  ⌃s  SEARCH  ⌃o  SESSION  ... diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__move_tab_to_right.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__move_tab_to_right.snap index 0504294ab..d2cf917a5 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__move_tab_to_right.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__move_tab_to_right.snap @@ -25,3 +25,4 @@ expression: account_for_races_in_snapshot(last_snapshot) │ │ │ │ └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ⌃g  LOCK  ⌃p  PANE  ⌃t  TAB  ⌃n  RESIZE  ⌃h  MOVE  ⌃s  SEARCH  ⌃o  SESSION  ... diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__move_tab_to_right_until_it_wraps_around.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__move_tab_to_right_until_it_wraps_around.snap index 684f99b03..fb42d1c3d 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__move_tab_to_right_until_it_wraps_around.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__move_tab_to_right_until_it_wraps_around.snap @@ -25,3 +25,4 @@ expression: account_for_races_in_snapshot(last_snapshot) │ │ │ │ └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ⌃g  LOCK  ⌃p  PANE  ⌃t  TAB  ⌃n  RESIZE  ⌃h  MOVE  ⌃s  SEARCH  ⌃o  SESSION  ... diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__multiple_users_in_different_panes_and_same_tab-2.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__multiple_users_in_different_panes_and_same_tab-2.snap index a5d4bde69..f600d56cd 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__multiple_users_in_different_panes_and_same_tab-2.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__multiple_users_in_different_panes_and_same_tab-2.snap @@ -2,27 +2,27 @@ source: src/tests/e2e/cases.rs expression: second_runner_snapshot --- - 𝚅𝚒𝚋𝚎𝚌𝚛𝚊𝚏𝚝𝚎𝚍. (multiple_users_in_same_pane_and_tab) ◉ Tab #1 [ ] -SESSIONS 1 · multiple_us┌ Pane #1 ─────────────────────────────┤ MY FOCUS AND: ├─────────────────────────────────────┐ -01 ◉ multiple_users_in_s│$ █ │ - ◉ Tab #1 · terminal │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - f ○ ? · final │ │ - x ○ ? · fail │ │ - n ○ ? · needs └──────────────────────────────────────────────────────────────────────────────────────────────┘ - ... + 𝚅𝚒𝚋𝚎𝚌𝚛𝚊𝚏𝚝𝚎𝚍. ⎮ ▷ N ◉ Start here [ ] ○ Shell ✍ Composer · ❯_ Quick cmd +SESSIONS 1 · multiple_us┌ Start here — map of this workspace ──┤ MY FOCUS AND: ├─────────────────────────────────────┐ + ● Live … │ Start here — map of this workspace │ +01 ◉ multiple_users_in_s│ │ + │ vc-frame 0.47.3 · Vibecrafted operator layout │ + │ You are looking at ONE session (this window). It has a fixed chrome: │ + │ TOP = this session: (name) · mode chip · tabs — ◉ marks where you are │ + │ LEFT = SESSIONS rail — other sessions / agent rooms (click to jump) │ + │ CENTER = this Guide (help). Work happens on the Shell tab. │ + │ BOTTOM = status bar (modes: Ctrl+t TAB, Ctrl+p PANE, Ctrl+o SESSION) │ + │ │ + │ Do this first (60 seconds): │ + │ 1. Open the Shell tab — click "Shell" on the top bar, or: Ctrl+t then 2 │ + │ 2. Read the banner in the shell, then run: vibecrafted start │ + │ 3. Come back here anytime (Ctrl+t then 1) if you get lost. │ + │ │ + │ Learn the chrome (click a topic): │ + │ 1. Left rail = sessions (not tabs) │ + │ 2. Top bar = tabs of this session │ + │ 3. Keyboard + mouse cheat sheet │ + │ 4. What to type on the Shell tab │ + │Help: <↓↑> - Navigate, - Dismiss, - Usage Tips │ + 🅵… · 🆇… · 🅽… └──────────────────────────────────────────────────────────────────────────────────────────────┘ + ⌃g  LOCK  ⌃p  PANE  ⌃t  TAB  ⌃n  RESIZE  ⌃h  MOVE  ⌃s  SEARCH  ⌃o  SESSION  ... BASE diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__multiple_users_in_different_panes_and_same_tab.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__multiple_users_in_different_panes_and_same_tab.snap index acdb072e1..a75c76e8c 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__multiple_users_in_different_panes_and_same_tab.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__multiple_users_in_different_panes_and_same_tab.snap @@ -2,10 +2,10 @@ source: src/tests/e2e/cases.rs expression: first_runner_snapshot --- - 𝚅𝚒𝚋𝚎𝚌𝚛𝚊𝚏𝚝𝚎𝚍. (multiple_users_in_same_pane_and_tab) ◉ Tab #1 [ ] -SESSIONS 1 · multiple_us┌ Pane #1 ─────────────────────────────┤ MY FOCUS AND: ├─────────────────────────────────────┐ -01 ◉ multiple_users_in_s│$ █ │ - ◉ Tab #1 · terminal │ │ + 𝚅𝚒𝚋𝚎𝚌𝚛𝚊𝚏𝚝𝚎𝚍. ⎮ ▷ N ◉ Start here [ ] ○ Shell ✍ Composer · ❯_ Quick cmd +SESSIONS 1 · multiple_us┌ Start here — map of this workspace ──┤ MY FOCUS AND: ├─────────────────────────────────────┐ + ● Live … │ │ +01 ◉ multiple_users_in_s│ │ │ │ │ │ │ │ @@ -22,7 +22,7 @@ SESSIONS 1 · multiple_us┌ Pane #1 ────────────── │ │ │ │ │ │ - f ○ ? · final │ │ - x ○ ? · fail │ │ - n ○ ? · needs └──────────────────────────────────────────────────────────────────────────────────────────────┘ - ... + │ │ + │ │ + 🅵… · 🆇… · 🅽… └──────────────────────────────────────────────────────────────────────────────────────────────┘ + ⌃g  LOCK  ⌃p  PANE  ⌃t  TAB  ⌃n  RESIZE  ⌃h  MOVE  ⌃s  SEARCH  ⌃o  SESSION  ... BASE diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__multiple_users_in_different_tabs-2.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__multiple_users_in_different_tabs-2.snap index 8263e2f76..595326442 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__multiple_users_in_different_tabs-2.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__multiple_users_in_different_tabs-2.snap @@ -2,27 +2,27 @@ source: src/tests/e2e/cases.rs expression: second_runner_snapshot --- - 𝚅𝚒𝚋𝚎𝚌𝚛𝚊𝚏𝚝𝚎𝚍. (multiple_users_in_different_tabs) ◉ Tab #1 [ ] -SESSIONS 1 · multiple_us┌ Pane #1 ─────────────────────────────┤ MY FOCUS AND: ├─────────────────────────────────────┐ -01 ◉ multiple_users_in_d│$ █ │ - ◉ Tab #1 · terminal │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - f ○ ? · final │ │ - x ○ ? · fail │ │ - n ○ ? · needs └──────────────────────────────────────────────────────────────────────────────────────────────┘ - ... + 𝚅𝚒𝚋𝚎𝚌𝚛𝚊𝚏𝚝𝚎𝚍. ⎮ ▷ N ◉ Start here [ ] ○ Shell ✍ Composer · ❯_ Quick cmd +SESSIONS 1 · multiple_us┌ Start here — map of this workspace ──┤ MY FOCUS AND: ├─────────────────────────────────────┐ + ● Live … │ Start here — map of this workspace │ +01 ◉ multiple_users_in_d│ │ + │ vc-frame 0.47.3 · Vibecrafted operator layout │ + │ You are looking at ONE session (this window). It has a fixed chrome: │ + │ TOP = this session: (name) · mode chip · tabs — ◉ marks where you are │ + │ LEFT = SESSIONS rail — other sessions / agent rooms (click to jump) │ + │ CENTER = this Guide (help). Work happens on the Shell tab. │ + │ BOTTOM = status bar (modes: Ctrl+t TAB, Ctrl+p PANE, Ctrl+o SESSION) │ + │ │ + │ Do this first (60 seconds): │ + │ 1. Open the Shell tab — click "Shell" on the top bar, or: Ctrl+t then 2 │ + │ 2. Read the banner in the shell, then run: vibecrafted start │ + │ 3. Come back here anytime (Ctrl+t then 1) if you get lost. │ + │ │ + │ Learn the chrome (click a topic): │ + │ 1. Left rail = sessions (not tabs) │ + │ 2. Top bar = tabs of this session │ + │ 3. Keyboard + mouse cheat sheet │ + │ 4. What to type on the Shell tab │ + │Help: <↓↑> - Navigate, - Dismiss, - Usage Tips │ + 🅵… · 🆇… · 🅽… └──────────────────────────────────────────────────────────────────────────────────────────────┘ + ⌃g  LOCK  ⌃p  PANE  ⌃t  TAB  ⌃n  RESIZE  ⌃h  MOVE  ⌃s  SEARCH  ⌃o  SESSION  ... BASE diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__multiple_users_in_different_tabs.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__multiple_users_in_different_tabs.snap index efcaec9c1..c5c9fd41a 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__multiple_users_in_different_tabs.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__multiple_users_in_different_tabs.snap @@ -2,10 +2,10 @@ source: src/tests/e2e/cases.rs expression: first_runner_snapshot --- - 𝚅𝚒𝚋𝚎𝚌𝚛𝚊𝚏𝚝𝚎𝚍. (multiple_users_in_different_tabs) ◉ Tab #1 [ ] -SESSIONS 1 · multiple_us┌ Pane #1 ─────────────────────────────┤ MY FOCUS AND: ├─────────────────────────────────────┐ -01 ◉ multiple_users_in_d│$ █ │ - ◉ Tab #1 · terminal │ │ + 𝚅𝚒𝚋𝚎𝚌𝚛𝚊𝚏𝚝𝚎𝚍. ⎮ ▷ N ◉ Start here [ ] ○ Shell ✍ Composer · ❯_ Quick cmd +SESSIONS 1 · multiple_us┌ Start here — map of this workspace ──┤ MY FOCUS AND: ├─────────────────────────────────────┐ + ● Live … │ │ +01 ◉ multiple_users_in_d│ │ │ │ │ │ │ │ @@ -22,7 +22,7 @@ SESSIONS 1 · multiple_us┌ Pane #1 ────────────── │ │ │ │ │ │ - f ○ ? · final │ │ - x ○ ? · fail │ │ - n ○ ? · needs └──────────────────────────────────────────────────────────────────────────────────────────────┘ - ... + │ │ + │ │ + 🅵… · 🆇… · 🅽… └──────────────────────────────────────────────────────────────────────────────────────────────┘ + ⌃g  LOCK  ⌃p  PANE  ⌃t  TAB  ⌃n  RESIZE  ⌃h  MOVE  ⌃s  SEARCH  ⌃o  SESSION  ... BASE diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__multiple_users_in_same_pane_and_tab-2.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__multiple_users_in_same_pane_and_tab-2.snap index a5d4bde69..f600d56cd 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__multiple_users_in_same_pane_and_tab-2.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__multiple_users_in_same_pane_and_tab-2.snap @@ -2,27 +2,27 @@ source: src/tests/e2e/cases.rs expression: second_runner_snapshot --- - 𝚅𝚒𝚋𝚎𝚌𝚛𝚊𝚏𝚝𝚎𝚍. (multiple_users_in_same_pane_and_tab) ◉ Tab #1 [ ] -SESSIONS 1 · multiple_us┌ Pane #1 ─────────────────────────────┤ MY FOCUS AND: ├─────────────────────────────────────┐ -01 ◉ multiple_users_in_s│$ █ │ - ◉ Tab #1 · terminal │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - f ○ ? · final │ │ - x ○ ? · fail │ │ - n ○ ? · needs └──────────────────────────────────────────────────────────────────────────────────────────────┘ - ... + 𝚅𝚒𝚋𝚎𝚌𝚛𝚊𝚏𝚝𝚎𝚍. ⎮ ▷ N ◉ Start here [ ] ○ Shell ✍ Composer · ❯_ Quick cmd +SESSIONS 1 · multiple_us┌ Start here — map of this workspace ──┤ MY FOCUS AND: ├─────────────────────────────────────┐ + ● Live … │ Start here — map of this workspace │ +01 ◉ multiple_users_in_s│ │ + │ vc-frame 0.47.3 · Vibecrafted operator layout │ + │ You are looking at ONE session (this window). It has a fixed chrome: │ + │ TOP = this session: (name) · mode chip · tabs — ◉ marks where you are │ + │ LEFT = SESSIONS rail — other sessions / agent rooms (click to jump) │ + │ CENTER = this Guide (help). Work happens on the Shell tab. │ + │ BOTTOM = status bar (modes: Ctrl+t TAB, Ctrl+p PANE, Ctrl+o SESSION) │ + │ │ + │ Do this first (60 seconds): │ + │ 1. Open the Shell tab — click "Shell" on the top bar, or: Ctrl+t then 2 │ + │ 2. Read the banner in the shell, then run: vibecrafted start │ + │ 3. Come back here anytime (Ctrl+t then 1) if you get lost. │ + │ │ + │ Learn the chrome (click a topic): │ + │ 1. Left rail = sessions (not tabs) │ + │ 2. Top bar = tabs of this session │ + │ 3. Keyboard + mouse cheat sheet │ + │ 4. What to type on the Shell tab │ + │Help: <↓↑> - Navigate, - Dismiss, - Usage Tips │ + 🅵… · 🆇… · 🅽… └──────────────────────────────────────────────────────────────────────────────────────────────┘ + ⌃g  LOCK  ⌃p  PANE  ⌃t  TAB  ⌃n  RESIZE  ⌃h  MOVE  ⌃s  SEARCH  ⌃o  SESSION  ... BASE diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__multiple_users_in_same_pane_and_tab.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__multiple_users_in_same_pane_and_tab.snap index acdb072e1..a75c76e8c 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__multiple_users_in_same_pane_and_tab.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__multiple_users_in_same_pane_and_tab.snap @@ -2,10 +2,10 @@ source: src/tests/e2e/cases.rs expression: first_runner_snapshot --- - 𝚅𝚒𝚋𝚎𝚌𝚛𝚊𝚏𝚝𝚎𝚍. (multiple_users_in_same_pane_and_tab) ◉ Tab #1 [ ] -SESSIONS 1 · multiple_us┌ Pane #1 ─────────────────────────────┤ MY FOCUS AND: ├─────────────────────────────────────┐ -01 ◉ multiple_users_in_s│$ █ │ - ◉ Tab #1 · terminal │ │ + 𝚅𝚒𝚋𝚎𝚌𝚛𝚊𝚏𝚝𝚎𝚍. ⎮ ▷ N ◉ Start here [ ] ○ Shell ✍ Composer · ❯_ Quick cmd +SESSIONS 1 · multiple_us┌ Start here — map of this workspace ──┤ MY FOCUS AND: ├─────────────────────────────────────┐ + ● Live … │ │ +01 ◉ multiple_users_in_s│ │ │ │ │ │ │ │ @@ -22,7 +22,7 @@ SESSIONS 1 · multiple_us┌ Pane #1 ────────────── │ │ │ │ │ │ - f ○ ? · final │ │ - x ○ ? · fail │ │ - n ○ ? · needs └──────────────────────────────────────────────────────────────────────────────────────────────┘ - ... + │ │ + │ │ + 🅵… · 🆇… · 🅽… └──────────────────────────────────────────────────────────────────────────────────────────────┘ + ⌃g  LOCK  ⌃p  PANE  ⌃t  TAB  ⌃n  RESIZE  ⌃h  MOVE  ⌃s  SEARCH  ⌃o  SESSION  ... BASE diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__open_new_tab.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__open_new_tab.snap index d13809af2..4946f4411 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__open_new_tab.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__open_new_tab.snap @@ -25,3 +25,4 @@ expression: last_snapshot │ │ │ │ └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ⌃g  LOCK  ⌃p  PANE  ⌃t  TAB  ⌃n  RESIZE  ⌃h  MOVE  ⌃s  SEARCH  ⌃o  SESSION  ... diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__override_layout_from_default_to_compact.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__override_layout_from_default_to_compact.snap index f40a559f3..51369e217 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__override_layout_from_default_to_compact.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__override_layout_from_default_to_compact.snap @@ -25,4 +25,4 @@ expression: last_snapshot │ │ │ │ └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ - 𝚅𝚒𝚋𝚎𝚌𝚛𝚊𝚏𝚝𝚎𝚍. │ ▷ N ◉ Tab #1 ✍ Composer · ❯_ Quick cmd + 𝚅𝚒𝚋𝚎𝚌𝚛𝚊𝚏𝚝𝚎𝚍. ⎮ ▷ N ◉ Tab #1 ✍ Composer · ❯_ Quick cmd diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__pin_floating_panes.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__pin_floating_panes.snap index c7841d5b5..6dde661fc 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__pin_floating_panes.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__pin_floating_panes.snap @@ -9,7 +9,7 @@ expression: last_snapshot │line2aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │ │line3aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │ │line4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │ -│line5aaaaaaaaaaaaaaaaaaaaaaaa┌ Pane #2 ──────────────────────────────────────── PIN [+] ┐aaaaaaaaaaaaaaaaaaaaaaaaaaaa │ +│line5aaaaaaaaaaaaaaaaaaaaaaaa┌ Pane #2 ────────────────────────────────────────── PIN ◉ ┐aaaaaaaaaaaaaaaaaaaaaaaaaaaa │ │line6aaaaaaaaaaaaaaaaaaaaaaaa│$ │aaaaaaaaaaaaaaaaaaaaaaaaaaaa │ │line7aaaaaaaaaaaaaaaaaaaaaaaa│ │aaaaaaaaaaaaaaaaaaaaaaaaaaaa │ │line8aaaaaaaaaaaaaaaaaaaaaaaa│ │aaaaaaaaaaaaaaaaaaaaaaaaaaaa │ @@ -25,4 +25,4 @@ expression: last_snapshot │ │ │ │ └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ - Ctrl p  PANE   n  New  ←↓↑→  Move  Ctrl q  Close  ... + ⌃g  LOCK  ⌃p  PANE  ⌃t  TAB  ⌃n  RESIZE  ⌃h  MOVE  ⌃s  SEARCH  ⌃o  SESSION  ... diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__quit_and_resurrect_session.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__quit_and_resurrect_session.snap index f585cd4d3..e69a9b0ef 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__quit_and_resurrect_session.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__quit_and_resurrect_session.snap @@ -2,4 +2,27 @@ source: src/tests/e2e/cases.rs expression: last_snapshot --- -█ + 𝚅𝚒𝚋𝚎𝚌𝚛𝚊𝚏𝚝𝚎𝚍. (e2e-test) ◉ Tab #1 ○ Tab #2 ○ Tab #3 ○ Tab #4 Alt <[]>  STAGGERED  +┌ Pane #1 ─────────────────────────────────────────────────┐┌ Pane #2 ─────────────────────────────────────────────────┐ +│$ ││$ │ +│ ││ │ +│ ││ │ +│ ││ │ +│ ┌ Pane #4 ────────────────────────────────────────── PIN ○ ┐ │ +│ │$ │ │ +│ │ ┌ Pane #6 ────────────────────────────────────────── PIN ○ ┐ │ +│ │ │$ █ │ │ +│ │ │ │ │ +│ │ │ │───────────────────────────┘ +│ │ │ │───────────────────────────┐ +│ │ │ │ │ +│ │ │ │ │ +│ └─│ │ │ +│ │ │ │ +│ └──────────────────────────────────────────────────────────┘ │ +│ ││ │ +│ ││ │ +│ ││ │ +└──────────────────────────────────────────────────────────┘└──────────────────────────────────────────────────────────┘ + ⌃ +g LOCK p PANE t TAB n RESIZE h MOVE s SEARCH o SESSION  ⌥ + <[]>  STAGGERED  + (FLOATING PANES VISIBLE): Press Ctrl p, to hide. diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__quit_and_resurrect_session_with_viewport_serialization.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__quit_and_resurrect_session_with_viewport_serialization.snap index f585cd4d3..e69a9b0ef 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__quit_and_resurrect_session_with_viewport_serialization.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__quit_and_resurrect_session_with_viewport_serialization.snap @@ -2,4 +2,27 @@ source: src/tests/e2e/cases.rs expression: last_snapshot --- -█ + 𝚅𝚒𝚋𝚎𝚌𝚛𝚊𝚏𝚝𝚎𝚍. (e2e-test) ◉ Tab #1 ○ Tab #2 ○ Tab #3 ○ Tab #4 Alt <[]>  STAGGERED  +┌ Pane #1 ─────────────────────────────────────────────────┐┌ Pane #2 ─────────────────────────────────────────────────┐ +│$ ││$ │ +│ ││ │ +│ ││ │ +│ ││ │ +│ ┌ Pane #4 ────────────────────────────────────────── PIN ○ ┐ │ +│ │$ │ │ +│ │ ┌ Pane #6 ────────────────────────────────────────── PIN ○ ┐ │ +│ │ │$ █ │ │ +│ │ │ │ │ +│ │ │ │───────────────────────────┘ +│ │ │ │───────────────────────────┐ +│ │ │ │ │ +│ │ │ │ │ +│ └─│ │ │ +│ │ │ │ +│ └──────────────────────────────────────────────────────────┘ │ +│ ││ │ +│ ││ │ +│ ││ │ +└──────────────────────────────────────────────────────────┘└──────────────────────────────────────────────────────────┘ + ⌃ +g LOCK p PANE t TAB n RESIZE h MOVE s SEARCH o SESSION  ⌥ + <[]>  STAGGERED  + (FLOATING PANES VISIBLE): Press Ctrl p, to hide. diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__resize_pane.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__resize_pane.snap index cc0776801..2f55fb875 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__resize_pane.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__resize_pane.snap @@ -25,4 +25,4 @@ expression: last_snapshot │ ││ │ │ ││ │ └────────────────────────────────────────────────────┘└────────────────────────────────────────────────────────────────┘ - ... + ⌃g  LOCK  ⌃p  PANE  ⌃t  TAB  ⌃n  RESIZE  ⌃h  MOVE  ⌃s  SEARCH  ⌃o  SESSION  ... BASE diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__resize_terminal_window.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__resize_terminal_window.snap index bcf260d06..8309e4208 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__resize_terminal_window.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__resize_terminal_window.snap @@ -25,4 +25,4 @@ expression: last_snapshot │ ││ │ │ ││ │ └────────────────────────────────────────────────┘└────────────────────────────────────────────────┘ - ... + ⌃g  LOCK  ⌃p  PANE  ⌃t  TAB  ⌃n  RESIZE  ⌃h  MOVE  ⌃s  SEARCH  ⌃o  SESSION  BASE diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__scrolling_inside_a_pane.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__scrolling_inside_a_pane.snap index 26a8f8da2..063d274f2 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__scrolling_inside_a_pane.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__scrolling_inside_a_pane.snap @@ -25,4 +25,4 @@ expression: last_snapshot │ ││line20 │ │ ││li█e21 │ └──────────────────────────────────────────────────────────┘└──────────────────────────────────────────────────────────┘ - Ctrl s  SEARCH   s  Search  ↓↑  Scroll  ... + ⌃s  SEARCH   s  Search  ↓↑  Scroll  PgDn|PgUp  Scroll  d|u  Scroll  e  Edit  ENTER  Select  BASE diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__scrolling_inside_a_pane_with_mouse.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__scrolling_inside_a_pane_with_mouse.snap index e72618bad..414240a32 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__scrolling_inside_a_pane_with_mouse.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__scrolling_inside_a_pane_with_mouse.snap @@ -3,26 +3,26 @@ source: src/tests/e2e/cases.rs expression: last_snapshot --- 𝚅𝚒𝚋𝚎𝚌𝚛𝚊𝚏𝚝𝚎𝚍. (e2e-test) ◉ Tab #1 -┌ Pane #1 ─────────────────────────────────────────────────┐┌ Pane #2 ─────────────────────────────────────────────────┐ -│$ ││$ █ │ -│ ││ │ -│ ││ │ -│ ││ │ -│ ││ │ -│ ││ │ -│ ││ │ -│ ││ │ -│ ││ │ -│ ││ │ -│ ││ │ -│ ││ │ -│ ││ │ -│ ││ │ -│ ││ │ -│ ││ │ -│ ││ │ -│ ││ │ -│ ││ │ -│ ││ │ +┌ Pane #1 ─────────────────────────────────────────────────┐┌ Pane #2 ─────────────────────────────────── SCROLL: N/M ┐ +│$ ││$ cat /usr/src/zellij/fixtures/e2e/scrolling_inside_a_pane│ +│ ││line1 │ +│ ││line2 │ +│ ││line3 │ +│ ││line4 │ +│ ││line5 │ +│ ││line6 │ +│ ││line7 │ +│ ││line8 │ +│ ││line9 │ +│ ││line10 │ +│ ││line11 │ +│ ││line12 │ +│ ││line13 │ +│ ││line14 │ +│ ││line15 │ +│ ││line16 │ +│ ││line17 │ +│ ││line18 │ +│ ││li█e19 │ └──────────────────────────────────────────────────────────┘└──────────────────────────────────────────────────────────┘ - ... + ⌃g  LOCK  ⌃p  PANE  ⌃t  TAB  ⌃n  RESIZE  ⌃h  MOVE  ⌃s  SEARCH  ⌃o  SESSION  ... BASE diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__send_blocking_command_through_the_cli.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__send_blocking_command_through_the_cli.snap index 1f94a3044..b9c304ccb 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__send_blocking_command_through_the_cli.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__send_blocking_command_through_the_cli.snap @@ -5,9 +5,10 @@ expression: last_snapshot 𝚅𝚒𝚋𝚎𝚌𝚛𝚊𝚏𝚝𝚎𝚍. (e2e-test) ◉ Tab #1 ┌ Pane #1 ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │$ /usr/src/zellij/zellij run --blocking --floating --close-on-exit -- bash -c 'sleep 2 && exit 42' │ +│terminal_1 │ │$ │ -│$ echo $? │ -│42 │ +│$ │ +│0 │ │$ │ │$ █ │ │ │ @@ -23,5 +24,5 @@ expression: last_snapshot │ │ │ │ │ │ -│ │ └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ⌃g  LOCK  ⌃p  PANE  ⌃t  TAB  ⌃n  RESIZE  ⌃h  MOVE  ⌃s  SEARCH  ⌃o  SESSION  ⌥ +  New Pane  Floating  diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__send_command_through_the_cli.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__send_command_through_the_cli.snap index 94a8dc9f0..3f6df2c8d 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__send_command_through_the_cli.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__send_command_through_the_cli.snap @@ -4,11 +4,11 @@ expression: last_snapshot --- 𝚅𝚒𝚋𝚎𝚌𝚛𝚊𝚏𝚝𝚎𝚍. (e2e-test) ◉ Tab #1 ┌ Pane #1 ────────────────────────────────────────────────────────────────┐┌ /usr/src/zellij/fixtures/append-echo-script.sh ─────────────────────────┐ -│$ /usr/src/zellij/zellij run -s -- "/usr/src/zellij/fixtures/append-echo-││foo │ -│script.sh" ││foo │ -│terminal_1 ││foo │ -│$ ││foo │ -│$ ││█ │ +│$ /usr/src/zellij/zellij run -s -- "/usr/src/zellij/fixtures/append-echo-││foo-1 │ +│script.sh" ││foo-2 │ +│terminal_1 ││█ │ +│$ ││ │ +│$ ││ │ │ ││ │ │ ││ │ │ ││ │ @@ -25,3 +25,4 @@ expression: last_snapshot │ ││ │ │ ││ │ └─────────────────────────────────────────────────────────────────────────┘└ [ EXIT CODE: 0 ] re-run, drop to shell, exit ────┘ + ⌃g  LOCK  ⌃p  PANE  ⌃t  TAB  ⌃n  RESIZE  ⌃h  MOVE  ⌃s  SEARCH  ⌃o  SESSION  ... BASE diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__split_terminals_vertically.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__split_terminals_vertically.snap index e72618bad..9c24cf39b 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__split_terminals_vertically.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__split_terminals_vertically.snap @@ -25,4 +25,4 @@ expression: last_snapshot │ ││ │ │ ││ │ └──────────────────────────────────────────────────────────┘└──────────────────────────────────────────────────────────┘ - ... + ⌃g  LOCK  ⌃p  PANE  ⌃t  TAB  ⌃n  RESIZE  ⌃h  MOVE  ⌃s  SEARCH  ⌃o  SESSION  ... BASE diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__start_without_pane_frames.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__start_without_pane_frames.snap index 2f5eb5656..5ac997b3b 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__start_without_pane_frames.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__start_without_pane_frames.snap @@ -2,27 +2,27 @@ source: src/tests/e2e/cases.rs expression: last_snapshot --- - 𝚅𝚒𝚋𝚎𝚌𝚛𝚊𝚏𝚝𝚎𝚍. (e2e-test) ◉ Tab #1 -SESSIONS 1 · e2e-test │$ █ -01 ◉ e2e-test │ - ◉ Tab #1 · terminal │ - │ - │ - │ - │ - │ - │ - │ - │ - │ - │ - │ - │ - │ - │ - │ - │ - f ○ ? · final │ - x ○ ? · fail │ - n ○ ? · needs │ - ... + 𝚅𝚒𝚋𝚎𝚌𝚛𝚊𝚏𝚝𝚎𝚍. ⎮ ▷ N ◉ Start here ○ Shell ✍ Composer · ❯_ Quick cmd +SESSIONS 1 │ Start here — map of this workspace + ● Live … │ +01 ◉ e2e-test │ vc-frame 0.47.3 · Vibecrafted operator layout + │ You are looking at ONE session (this window). It has a fixed chrome: + │ TOP = this session: (name) · mode chip · tabs — ◉ marks where you are + │ LEFT = SESSIONS rail — other sessions / agent rooms (click to jump) + │ CENTER = this Guide (help). Work happens on the Shell tab. + │ BOTTOM = status bar (modes: Ctrl+t TAB, Ctrl+p PANE, Ctrl+o SESSION) + │ + │ Do this first (60 seconds): + │ 1. Open the Shell tab — click "Shell" on the top bar, or: Ctrl+t then 2 + │ 2. Read the banner in the shell, then run: vibecrafted start + │ 3. Come back here anytime (Ctrl+t then 1) if you get lost. + │ + │ Learn the chrome (click a topic): + │ 1. Left rail = sessions (not tabs) + │ 2. Top bar = tabs of this session + │ 3. Keyboard + mouse cheat sheet + │ 4. What to type on the Shell tab + │ 5. Command Composer (Cmd+E) + │ 6. Look, themes & host terminal + 🅵… · 🆇… · 🅽… │Help: <↓↑> - Navigate, - Dismiss, - Usage Tips + ⌃g  LOCK  ⌃p  PANE  ⌃t  TAB  ⌃n  RESIZE  ⌃h  MOVE  ⌃s  SEARCH  ⌃o  SESSION  ... BASE diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__starts_with_one_terminal.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__starts_with_one_terminal.snap index 0181f276a..17abb6039 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__starts_with_one_terminal.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__starts_with_one_terminal.snap @@ -25,3 +25,4 @@ expression: last_snapshot │ │ │ │ └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ⌃g  LOCK  ⌃p  PANE  ⌃t  TAB  ⌃n  RESIZE  ⌃h  MOVE  ⌃s  SEARCH  ⌃o  SESSION  ... diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__status_bar_loads_custom_keybindings.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__status_bar_loads_custom_keybindings.snap index 5ea2a6497..51682603e 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__status_bar_loads_custom_keybindings.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__status_bar_loads_custom_keybindings.snap @@ -2,27 +2,27 @@ source: src/tests/e2e/cases.rs expression: last_snapshot --- - 𝚅𝚒𝚋𝚎𝚌𝚛𝚊𝚏𝚝𝚎𝚍. (e2e-test) ◉ Tab #1  BASE  -SESSIONS 1 · e2e-test ┌ Pane #1 ─────────────────────────────────────────────────────────────────────────────────────┐ -01 ◉ e2e-test │$ █ │ - ◉ Tab #1 · terminal │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - f ○ ? · final │ │ - x ○ ? · fail │ │ - n ○ ? · needs └──────────────────────────────────────────────────────────────────────────────────────────────┘ - + 𝚅𝚒𝚋𝚎𝚌𝚛𝚊𝚏𝚝𝚎𝚍. ⎮ ▷ N ◉ Start here ○ Shell ✍ Composer · ❯_ Quick cmd +SESSIONS 1 · e2e-test ┌ Start here — map of this workspace ──────────────────────────────────────────────────────────┐ + ● Live … │ Start here — map of this workspace │ +01 ◉ e2e-test │ │ + │ vc-frame 0.47.3 · Vibecrafted operator layout │ + │ You are looking at ONE session (this window). It has a fixed chrome: │ + │ TOP = this session: (name) · mode chip · tabs — ◉ marks where you are │ + │ LEFT = SESSIONS rail — other sessions / agent rooms (click to jump) │ + │ CENTER = this Guide (help). Work happens on the Shell tab. │ + │ BOTTOM = status bar (modes: Ctrl+t TAB, Ctrl+p PANE, Ctrl+o SESSION) │ + │ │ + │ Do this first (60 seconds): │ + │ 1. Open the Shell tab — click "Shell" on the top bar, or: Ctrl+t then 2 │ + │ 2. Read the banner in the shell, then run: vibecrafted start │ + │ 3. Come back here anytime (Ctrl+t then 1) if you get lost. │ + │ │ + │ Learn the chrome (click a topic): │ + │ 1. Left rail = sessions (not tabs) │ + │ 2. Top bar = tabs of this session │ + │ 3. Keyboard + mouse cheat sheet │ + │ 4. What to type on the Shell tab │ + │Help: <↓↑> - Navigate, - Dismiss, - Usage Tips │ + 🅵… · 🆇… · 🅽… └──────────────────────────────────────────────────────────────────────────────────────────────┘ + F1  LOCK  F2  PANE  F3  TAB  F4  RESIZE  F5  MOVE  F6  SEARCH  ⌥F7  SESSION  ⌃F8  QUIT  BASE diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__tmux_mode.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__tmux_mode.snap index e72618bad..9c24cf39b 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__tmux_mode.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__tmux_mode.snap @@ -25,4 +25,4 @@ expression: last_snapshot │ ││ │ │ ││ │ └──────────────────────────────────────────────────────────┘└──────────────────────────────────────────────────────────┘ - ... + ⌃g  LOCK  ⌃p  PANE  ⌃t  TAB  ⌃n  RESIZE  ⌃h  MOVE  ⌃s  SEARCH  ⌃o  SESSION  ... BASE diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__toggle_floating_panes.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__toggle_floating_panes.snap index 8a547eb71..d82cae6a9 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__toggle_floating_panes.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__toggle_floating_panes.snap @@ -9,7 +9,7 @@ expression: last_snapshot │ │ │ │ │ │ -│ ┌ Pane #2 ──────────────────────────────────────── PIN [ ] ┐ │ +│ ┌ Pane #2 ────────────────────────────────────────── PIN ○ ┐ │ │ │$ █ │ │ │ │ │ │ │ │ │ │ @@ -25,3 +25,4 @@ expression: last_snapshot │ │ │ │ └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ⌃g  LOCK  ⌃p  PANE  ⌃t  TAB  ⌃n  RESIZE  ⌃h  MOVE  ⌃s  SEARCH  ⌃o  SESSION  ... BASE diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__toggle_pane_fullscreen.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__toggle_pane_fullscreen.snap index ffd115781..86ab1421a 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__toggle_pane_fullscreen.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__toggle_pane_fullscreen.snap @@ -25,4 +25,4 @@ expression: last_snapshot │ │ │ │ └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ - ... + ⌃g  LOCK  ⌃p  PANE  ⌃t  TAB  ⌃n  RESIZE  ⌃h  MOVE  ⌃s  SEARCH  ⌃o  SESSION  ... BASE diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__typing_exit_closes_pane.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__typing_exit_closes_pane.snap index 0181f276a..17abb6039 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__typing_exit_closes_pane.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__typing_exit_closes_pane.snap @@ -25,3 +25,4 @@ expression: last_snapshot │ │ │ │ └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ⌃g  LOCK  ⌃p  PANE  ⌃t  TAB  ⌃n  RESIZE  ⌃h  MOVE  ⌃s  SEARCH  ⌃o  SESSION  ... diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__undo_rename_pane.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__undo_rename_pane.snap index 0181f276a..17abb6039 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__undo_rename_pane.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__undo_rename_pane.snap @@ -25,3 +25,4 @@ expression: last_snapshot │ │ │ │ └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ⌃g  LOCK  ⌃p  PANE  ⌃t  TAB  ⌃n  RESIZE  ⌃h  MOVE  ⌃s  SEARCH  ⌃o  SESSION  ... diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__undo_rename_tab.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__undo_rename_tab.snap index 0181f276a..17abb6039 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__undo_rename_tab.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__undo_rename_tab.snap @@ -25,3 +25,4 @@ expression: last_snapshot │ │ │ │ └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ⌃g  LOCK  ⌃p  PANE  ⌃t  TAB  ⌃n  RESIZE  ⌃h  MOVE  ⌃s  SEARCH  ⌃o  SESSION  ... diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__use_custom_layout_with_relative_path.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__use_custom_layout_with_relative_path.snap index 3ea127ae4..decd447b6 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__use_custom_layout_with_relative_path.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__use_custom_layout_with_relative_path.snap @@ -2,7 +2,7 @@ source: src/tests/e2e/cases.rs expression: last_snapshot --- - Ctrl +g LOCK p PANE t TAB n RESIZE h MOVE s SEARCH o SESSION  + ⌃ +g LOCK p PANE t TAB n RESIZE h MOVE s SEARCH o SESSION  ┌ Pane #1 ─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │$ █ │ │ │ diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__watcher_client_functionality-2.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__watcher_client_functionality-2.snap index e6654a244..caeddc083 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__watcher_client_functionality-2.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__watcher_client_functionality-2.snap @@ -2,10 +2,10 @@ source: src/tests/e2e/cases.rs expression: watcher_snapshot --- - 𝚅𝚒𝚋𝚎𝚌𝚛𝚊𝚏𝚝𝚎𝚍. (watcher_client_functionality) ◉ shell [ ] -SESSIONS 1 · watcher_cli┌ Pane #1 ─────────────────────────────┤ MY FOCUS AND: ├─────────────────────────────────────┐ -01 ◉ watcher_client_func│$ █ │ - ◉ shell · terminal │ │ + 𝚅𝚒𝚋𝚎𝚌𝚛𝚊𝚏𝚝𝚎𝚍. ⎮ ▷ N ◉ Start here [ ] ○ Shell ✍ Composer · ❯_ Quick cmd +SESSIONS 1 · watcher_cli┌ Start here — map of this workspace ──┤ MY FOCUS AND: ├─────────────────────────────────────┐ + ● Live … │ │ +01 ◉ watcher_client_func│ │ │ │ │ │ │ │ @@ -22,7 +22,7 @@ SESSIONS 1 · watcher_cli┌ Pane #1 ────────────── │ │ │ │ │ │ - f ○ ? · final │ │ - x ○ ? · fail │ │ - n ○ ? · needs └──────────────────────────────────────────────────────────────────────────────────────────────┘ - ... + │ │ + │ │ + 🅵… · 🆇… · 🅽… └──────────────────────────────────────────────────────────────────────────────────────────────┘ + ⌃g  LOCK  ⌃p  PANE  ⌃t  TAB  ⌃n  RESIZE  ⌃h  MOVE  ⌃s  SEARCH  ⌃o  SESSION  ... BASE diff --git a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__watcher_client_functionality.snap b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__watcher_client_functionality.snap index b4890dc1e..83d14bdf6 100644 --- a/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__watcher_client_functionality.snap +++ b/src/tests/e2e/snapshots/vc_frame__tests__e2e__cases__watcher_client_functionality.snap @@ -2,27 +2,27 @@ source: src/tests/e2e/cases.rs expression: main_client_snapshot --- - 𝚅𝚒𝚋𝚎𝚌𝚛𝚊𝚏𝚝𝚎𝚍. (watcher_client_functionality) ◉ shell [ ] -SESSIONS 1 · watcher_cli┌ Pane #1 ─────────────────────────────┤ MY FOCUS AND: ├─────────────────────────────────────┐ -01 ◉ watcher_client_func│$ █ │ - ◉ shell · terminal │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - │ │ - f ○ ? · final │ │ - x ○ ? · fail │ │ - n ○ ? · needs └──────────────────────────────────────────────────────────────────────────────────────────────┘ - ... + 𝚅𝚒𝚋𝚎𝚌𝚛𝚊𝚏𝚝𝚎𝚍. ⎮ ▷ N ◉ Start here [ ] ○ Shell ✍ Composer · ❯_ Quick cmd +SESSIONS 1 · watcher_cli┌ Start here — map of this workspace ──┤ MY FOCUS AND: ├─────────────────────────────────────┐ + ● Live … │ Start here — map of this workspace │ +01 ◉ watcher_client_func│ │ + │ vc-frame 0.47.3 · Vibecrafted operator layout │ + │ You are looking at ONE session (this window). It has a fixed chrome: │ + │ TOP = this session: (name) · mode chip · tabs — ◉ marks where you are │ + │ LEFT = SESSIONS rail — other sessions / agent rooms (click to jump) │ + │ CENTER = this Guide (help). Work happens on the Shell tab. │ + │ BOTTOM = status bar (modes: Ctrl+t TAB, Ctrl+p PANE, Ctrl+o SESSION) │ + │ │ + │ Do this first (60 seconds): │ + │ 1. Open the Shell tab — click "Shell" on the top bar, or: Ctrl+t then 2 │ + │ 2. Read the banner in the shell, then run: vibecrafted start │ + │ 3. Come back here anytime (Ctrl+t then 1) if you get lost. │ + │ │ + │ Learn the chrome (click a topic): │ + │ 1. Left rail = sessions (not tabs) │ + │ 2. Top bar = tabs of this session │ + │ 3. Keyboard + mouse cheat sheet │ + │ 4. What to type on the Shell tab │ + │Help: <↓↑> - Navigate, - Dismiss, - Usage Tips │ + 🅵… · 🆇… · 🅽… └──────────────────────────────────────────────────────────────────────────────────────────────┘ + ⌃g  LOCK  ⌃p  PANE  ⌃t  TAB  ⌃n  RESIZE  ⌃h  MOVE  ⌃s  SEARCH  ⌃o  SESSION  ... BASE diff --git a/src/tests/fixtures/append-echo-script.sh b/src/tests/fixtures/append-echo-script.sh index d6b900cb7..53aeb0153 100755 --- a/src/tests/fixtures/append-echo-script.sh +++ b/src/tests/fixtures/append-echo-script.sh @@ -1,2 +1,8 @@ #!/usr/bin/env bash -echo foo >> /tmp/foo && cat /tmp/foo +state_file="/tmp/vc-frame-e2e/cache/append-echo-script-output" +run_count=1 +if [ -f "$state_file" ]; then + run_count=$(( $(wc -l < "$state_file") + 1 )) +fi +printf 'foo-%s\n' "$run_count" >> "$state_file" +cat "$state_file" diff --git a/tools/semgrep_inventory.py b/tools/semgrep_inventory.py index b0ce18249..e4c459aa5 100755 --- a/tools/semgrep_inventory.py +++ b/tools/semgrep_inventory.py @@ -34,6 +34,7 @@ WEB_CLIENT_TEST_PATH = "zellij-client/src/web_client/unit/web_client_tests.rs" WEB_CLIENT_PARENT_PATH = "zellij-client/src/web_client/mod.rs" CURRENT_EXE_PATHS = { + "src/clinic.rs", "src/run_triage_cli.rs", "xtask/src/pipelines.rs", "zellij-client/src/lib.rs", @@ -216,6 +217,17 @@ def require_current_exe_policy(path: str, lines: list[str], line: int) -> None: if path not in CURRENT_EXE_PATHS: raise InventoryError(f"current-exe finding has no source policy: {path}:{line}") source_line = lines[line - 1].strip() + if path == "src/clinic.rs": + nearby = [candidate.strip() for candidate in lines[line - 1:line + 8]] + if ( + source_line != "let Ok(exe) = std::env::current_exe() else {" + or "let Ok(installed_at) = std::fs::metadata(&exe).and_then(|meta| meta.modified()) else {" + not in nearby + ): + raise InventoryError( + f"clinic current-exe drift probe source shape changed at {path}:{line}" + ) + return if path == "src/run_triage_cli.rs": nearby = [candidate.strip() for candidate in lines[line - 1:line + 8]] production_shape = [ @@ -613,6 +625,14 @@ def adjudicate( ) if rule == "rust.lang.security.current-exe.current-exe": require_current_exe_policy(path, lines, line) + if path == "src/clinic.rs": + return ( + "scoped_false_positive", + "current_exe is read only to identify the running binary for a local drift diagnosis.", + "The resolved path is used only for metadata and local process-name comparison; it is never executed or trusted as update provenance.", + "Clinic runtime diagnostics", + ["security/semgrep/EVIDENCE.md#current-executable", path], + ) if path == XTASK_INSTALL_PATH: return ( "scoped_false_positive", diff --git a/tools/triage_runtime_e2e_test.py b/tools/triage_runtime_e2e_test.py index f328736b6..9420adfd3 100755 --- a/tools/triage_runtime_e2e_test.py +++ b/tools/triage_runtime_e2e_test.py @@ -40,6 +40,13 @@ def completed( class ProvenanceTests(unittest.TestCase): + def test_isolated_env_keeps_server_inside_owned_process_tree(self) -> None: + with tempfile.TemporaryDirectory() as temporary: + root = pathlib.Path(temporary) + env = MODULE.isolated_env(root / "namespace", root / "control-plane") + + self.assertEqual(env["VC_FRAME_SERVER_FOREGROUND"], "1") + def test_makefile_preserves_ci_artifact_root_and_explicit_override(self) -> None: repo_root = MODULE_PATH.parents[1] makefile = repo_root / "Makefile" @@ -1342,6 +1349,101 @@ def test_group_topology_rejects_disconnected_and_cycle_live_without_signal( exact_kill.assert_not_called() process.send_signal.assert_not_called() + def test_group_topology_accepts_only_exact_isolated_foreground_server( + self, + ) -> None: + process = mock.Mock() + process.pid = 9_731 + process.poll.return_value = None + process.vc_frame_server_foreground = "1" + process.vc_frame_socket_root = "/tmp/proof/sockets" + process.vc_frame_owned_binary = "/bin/vc-frame" + leader = { + "pid": process.pid, + "ppid": 1, + "pgid": process.pid, + "uid": 501, + "sid": process.pid, + "sid_errno": None, + "sid_error": None, + "state": "T", + "command": "/bin/vc-frame triage-run --run proof", + } + detached = { + "pid": 9_732, + "ppid": 1, + "pgid": process.pid, + "uid": 501, + "sid": process.pid, + "sid_errno": None, + "sid_error": None, + "state": "T", + "command": ( + "/bin/vc-frame --server " + "'/tmp/proof/sockets/contract_version_2/Needs attention'" + ), + } + detached_child = { + "pid": 9_733, + "ppid": 9_732, + "pgid": process.pid, + "uid": 501, + "sid": process.pid, + "sid_errno": None, + "sid_error": None, + "state": "T", + "command": "/bin/sh -c fixture-child", + } + unsignalable_child = { + **detached_child, + "pid": 9_734, + "uid": 0, + "command": "ps -ao ppid,args", + } + with mock.patch.object( + MODULE.os, "getpgid", return_value=process.pid + ), mock.patch.object( + MODULE.os, "getsid", return_value=process.pid + ), mock.patch.object( + MODULE.os, "geteuid", return_value=501 + ), mock.patch.object( + MODULE, + "process_group_members", + return_value=[leader, detached, detached_child, unsignalable_child], + ): + validated = MODULE.validated_owned_process_group_members(process) + + proven = next(member for member in validated if member["pid"] == 9_732) + self.assertTrue(proven["detached_owned"]) + self.assertEqual(proven["ownership_proof"], "isolated_foreground_server") + self.assertNotIn("topology_error", proven) + child = next(member for member in validated if member["pid"] == 9_733) + self.assertTrue(child["detached_owned_subtree"]) + self.assertEqual(child["depth"], 2) + unsignalable = next( + member for member in validated if member["pid"] == 9_734 + ) + self.assertTrue(unsignalable["unsignalable_owned_descendant"]) + + outside = { + **detached, + "command": "/bin/vc-frame --server /tmp/proof/sockets-neighbor/session", + } + with mock.patch.object( + MODULE.os, "getpgid", return_value=process.pid + ), mock.patch.object( + MODULE.os, "getsid", return_value=process.pid + ), mock.patch.object( + MODULE.os, "geteuid", return_value=501 + ), mock.patch.object( + MODULE, "process_group_members", return_value=[leader, outside] + ), mock.patch.object(MODULE.time, "sleep"): + with self.assertRaisesRegex( + MODULE.OwnedProcessGroupRefusal, + r"persistently ambiguous process group 9731", + ): + MODULE.validated_owned_process_group_members(process) + def test_transient_disconnected_live_member_disappears_without_signal( self, ) -> None: diff --git a/zellij-client/src/lib.rs b/zellij-client/src/lib.rs index dbde51a80..287a483d9 100644 --- a/zellij-client/src/lib.rs +++ b/zellij-client/src/lib.rs @@ -356,8 +356,10 @@ fn check_ipc_pipe_length(ipc_pipe: &Path) { /// Spawn the Zellij server process. /// -/// On Unix the server daemonizes (double-fork) inside start_server(), so -/// the intermediate child exits immediately and `cmd.status()` returns. +/// On Unix the server normally daemonizes (double-fork) inside start_server(), +/// so the intermediate child exits immediately and `cmd.status()` returns. +/// Isolated supervisors can request a directly-owned foreground server; in +/// that mode the child handle is deliberately detached without waiting. #[cfg(not(windows))] pub fn spawn_server(socket_path: &Path, debug: bool) -> io::Result<()> { let mut cmd = Command::new(current_exe()?); @@ -365,6 +367,13 @@ pub fn spawn_server(socket_path: &Path, debug: bool) -> io::Result<()> { if debug { cmd.arg("--debug"); } + if zellij_utils::envs::server_foreground_requested() { + cmd.stdin(std::process::Stdio::null()) + .stdout(std::process::Stdio::null()) + .stderr(std::process::Stdio::null()); + cmd.spawn()?; + return Ok(()); + } let status = cmd.status()?; if status.success() { Ok(()) diff --git a/zellij-server/src/lib.rs b/zellij-server/src/lib.rs index dbcf8a099..bb03e473b 100644 --- a/zellij-server/src/lib.rs +++ b/zellij-server/src/lib.rs @@ -79,6 +79,9 @@ use zellij_utils::{ ipc::{ClientAttributes, ExitReason, ServerToClientMsg}, shared::{default_palette, web_server_base_url}, }; +// Only the Unix startup path probes socket ownership. +#[cfg(unix)] +use zellij_utils::sessions::SocketOwnership; pub type ClientId = u16; @@ -757,11 +760,13 @@ pub fn start_server(mut os_input: Box, socket_path: PathBuf) { // preserve the current umask: read current value by setting to another mode, and then restoring it let current_umask = umask(Mode::all()); umask(current_umask); - daemonize::Daemonize::new() - .working_directory(std::env::current_dir().unwrap()) - .umask(current_umask.bits() as u32) - .start() - .expect("could not daemonize the server process"); + if !zellij_utils::envs::server_foreground_requested() { + daemonize::Daemonize::new() + .working_directory(std::env::current_dir().unwrap()) + .umask(current_umask.bits() as u32) + .start() + .expect("could not daemonize the server process"); + } } #[cfg(windows)] @@ -807,7 +812,39 @@ pub fn start_server(mut os_input: Box, socket_path: PathBuf) { let to_server = to_server.clone(); let socket_path = socket_path.clone(); move || { - drop(std::fs::remove_file(&socket_path)); + // Never take a socket away from a server that is still alive. + // Unlinking and re-binding here leaves the previous process + // running but unreachable: an orphan with zero clients that no + // reaper ever collects, burning CPU until reboot. A stale file + // left by a crashed server stays legal to clean up. + // + // Unix only: elsewhere the path is a marker file and the + // listener is a named pipe whose name the OS refuses to hand + // out twice, so the bind below already decides ownership and + // there is nothing here to take away. + #[cfg(unix)] + match zellij_utils::sessions::probe_socket_ownership(&socket_path) { + SocketOwnership::Vacant => { + drop(std::fs::remove_file(&socket_path)); + }, + SocketOwnership::Live => { + log::error!( + "Refusing to start: another server is alive on {}. \ + Attach to the existing session instead.", + socket_path.display() + ); + std::process::exit(1); + }, + SocketOwnership::Unknown(reason) => { + log::error!( + "Refusing to start: cannot determine whether a server is alive on {} \ + ({}). Not evicting a possibly-live session.", + socket_path.display(), + reason + ); + std::process::exit(1); + }, + } let listener = ipc_bind(&socket_path).unwrap(); // set the sticky bit to avoid the socket file being potentially cleaned up // https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html states that for XDG_RUNTIME_DIR: @@ -951,6 +988,33 @@ pub fn start_server(mut os_input: Box, socket_path: PathBuf) { err_ctx.add_call(ContextType::IPCServer((&instruction).into())); match instruction { ServerInstruction::FirstClientConnected(cli_assets, is_web_client, client_id) => { + if session_data.read().unwrap().is_some() { + // A client that lost the create-session race spawned its + // own server, that server refused to steal this socket and + // exited, and the client landed here instead. Initializing + // again would replace a live session's state wholesale, so + // refuse: the caller retries and finds the session through + // the ordinary attach path. + log::error!( + "Rejecting a new-session request for client {}: this server already runs a session", + client_id + ); + let _ = os_input.send_to_client( + client_id, + ServerToClientMsg::Exit { + exit_reason: ExitReason::Error( + "Session already exists on this server".to_owned(), + ), + }, + ); + // Deliberately no cleanup here. This client's route thread + // is still alive and sends its own `RemoveClient` once the + // connection ends; freeing the id now would hand it to the + // next attach (`SessionState::new_client` always reuses the + // lowest vacant id), and the late cleanup would then + // disconnect that unrelated client instead. + continue; + } let (config, layout) = cli_assets.load_config_and_layout(); let layout_is_welcome_screen = cli_assets.layout == Some(LayoutInfo::BuiltIn("welcome".to_owned())) @@ -1372,22 +1436,27 @@ pub fn start_server(mut os_input: Box, socket_path: PathBuf) { } else { // Handle regular client removal remove_client!(client_id, os_input, session_state, session_data); - session_data - .write() - .unwrap() - .as_ref() - .unwrap() - .senders - .send_to_screen(ScreenInstruction::RemoveClient(client_id)) - .unwrap(); - session_data - .write() + // A connection can end before this server ever initialized + // a session: the socket-ownership probe of a racing server + // connects and drops immediately, and so does any client + // that gives up inside the startup window. There is no + // Screen or plugin thread to notify yet, and unwrapping the + // still-empty `session_data` here would panic the server + // that just won the socket — leaving both racers with + // nothing. + let senders = session_data + .read() .unwrap() .as_ref() - .unwrap() - .senders - .send_to_plugin(PluginInstruction::RemoveClient(client_id)) - .unwrap(); + .map(|session_data| session_data.senders.clone()); + if let Some(senders) = senders { + senders + .send_to_screen(ScreenInstruction::RemoveClient(client_id)) + .unwrap(); + senders + .send_to_plugin(PluginInstruction::RemoveClient(client_id)) + .unwrap(); + } } }, ServerInstruction::SendWebClientsForbidden(client_id) => { diff --git a/zellij-server/src/os_input_output.rs b/zellij-server/src/os_input_output.rs index e48a8ddc5..d11b3d284 100644 --- a/zellij-server/src/os_input_output.rs +++ b/zellij-server/src/os_input_output.rs @@ -655,9 +655,15 @@ impl ServerOsApi for ServerOsInputOutput { run_command: RunCommand, quit_cb: Box, RunCommand) + Send>, ) -> Result<(Box, Option)> { + self.pty_backend + .reserve_terminal_id_for_rerun(terminal_id)?; + let spawn_result = self + .pty_backend + .spawn_terminal(run_command, None, quit_cb, terminal_id); let (async_reader, child_fd) = - self.pty_backend - .spawn_terminal(run_command, None, quit_cb, terminal_id)?; + resolve_reserved_terminal_spawn(terminal_id, spawn_result, |terminal_id| { + self.pty_backend.clear_terminal_id(terminal_id) + })?; Ok((async_reader, Some(child_fd as u32))) } fn clear_terminal_id(&self, terminal_id: u32) -> Result<()> { diff --git a/zellij-server/src/os_input_output_unix.rs b/zellij-server/src/os_input_output_unix.rs index 82176cc0e..a24eefac3 100644 --- a/zellij-server/src/os_input_output_unix.rs +++ b/zellij-server/src/os_input_output_unix.rs @@ -723,6 +723,27 @@ impl UnixPtyBackend { .insert(terminal_id, None); } + pub fn reserve_terminal_id_for_rerun(&self, terminal_id: u32) -> Result<()> { + let mut terminal_registry = self + .terminal_id_to_raw_fd + .lock() + .to_anyhow() + .context("failed to lock terminal registry before rerun")?; + match terminal_registry.get(&terminal_id) { + Some(Some(_)) => { + terminal_registry.insert(terminal_id, None); + Ok(()) + }, + // `start_suspended` reserves the id before the first run. The same + // rerun path activates both that initial reservation and a later + // held command, so an existing reservation is already ready. + Some(None) => Ok(()), + None => Err(anyhow!( + "terminal {terminal_id} cannot be rerun because it is not registered" + )), + } + } + pub fn clear_terminal_id(&self, terminal_id: u32) { self.terminal_id_to_raw_fd .lock() @@ -926,6 +947,34 @@ mod tests { ); } + #[test] + fn rerun_transitions_an_active_terminal_back_to_reserved() { + let backend = UnixPtyBackend::new().expect("backend"); + let terminal_id = 77; + backend + .terminal_id_to_raw_fd + .lock() + .expect("terminal registry") + .insert(terminal_id, Some(123)); + + backend + .reserve_terminal_id_for_rerun(terminal_id) + .expect("active terminal should become a reserved rerun slot"); + + assert!(matches!( + backend + .terminal_id_to_raw_fd + .lock() + .unwrap_or_else(|poisoned| poisoned.into_inner()) + .get(&terminal_id), + Some(None) + )); + + backend + .reserve_terminal_id_for_rerun(terminal_id) + .expect("a start-suspended reservation should remain usable"); + } + /// Verify that `try_write_to_fd` writes as many bytes as the kernel will /// accept in one pass and returns a partial count (not an error) when the /// PTY buffer fills up. diff --git a/zellij-server/src/os_input_output_windows.rs b/zellij-server/src/os_input_output_windows.rs index dc141bc13..32a9c318e 100644 --- a/zellij-server/src/os_input_output_windows.rs +++ b/zellij-server/src/os_input_output_windows.rs @@ -860,6 +860,27 @@ impl WindowsPtyBackend { .insert(terminal_id, None); } + pub fn reserve_terminal_id_for_rerun(&self, terminal_id: u32) -> Result<()> { + let mut terminals = self + .terminals + .lock() + .to_anyhow() + .context("failed to lock terminal registry before rerun")?; + match terminals.get(&terminal_id) { + Some(Some(_)) => { + terminals.insert(terminal_id, None); + Ok(()) + }, + // `start_suspended` reserves the id before the first run. The same + // rerun path activates both that initial reservation and a later + // held command, so an existing reservation is already ready. + Some(None) => Ok(()), + None => Err(anyhow!( + "terminal {terminal_id} cannot be rerun because it is not registered" + )), + } + } + pub fn clear_terminal_id(&self, terminal_id: u32) { self.terminals .lock() diff --git a/zellij-server/src/plugins/pinned_executor.rs b/zellij-server/src/plugins/pinned_executor.rs index 03c159082..4255b2be0 100644 --- a/zellij-server/src/plugins/pinned_executor.rs +++ b/zellij-server/src/plugins/pinned_executor.rs @@ -592,6 +592,11 @@ mod tests { use std::thread; use std::time::Duration; + // The panic hook writes and symbolizes a backtrace before `catch_unwind` + // can invoke the executor callback. Windows serializes that output slowly, + // so concurrent intentional-panic tests can consume each other's timeout. + static PANIC_TEST_LOCK: Mutex<()> = Mutex::new(()); + type TestDependencies = ( ThreadSenders, Arc>, @@ -988,6 +993,7 @@ mod tests { #[test] fn panicking_job_releases_busy_count_and_worker_accepts_next_job() { + let _panic_test_guard = PANIC_TEST_LOCK.lock().unwrap(); let executor = create_test_executor(1); let (panic_tx, panic_rx) = channel(); executor @@ -1055,6 +1061,7 @@ mod tests { #[test] fn panicking_fire_and_forget_unload_retains_executor_assignment_for_retry() { + let _panic_test_guard = PANIC_TEST_LOCK.lock().unwrap(); let executor = create_test_executor(1); executor.register_plugin(43); @@ -1096,6 +1103,7 @@ mod tests { #[test] fn completion_aware_unload_panic_retains_assignment_for_retry() { + let _panic_test_guard = PANIC_TEST_LOCK.lock().unwrap(); let executor = create_test_executor(1); executor.register_plugin(44); diff --git a/zellij-server/src/plugins/unit/snapshots/zellij_server__plugins__plugin_tests__dump_layout_success_plugin_command.snap b/zellij-server/src/plugins/unit/snapshots/zellij_server__plugins__plugin_tests__dump_layout_success_plugin_command.snap index 475583093..7aeefd4ca 100644 --- a/zellij-server/src/plugins/unit/snapshots/zellij_server__plugins__plugin_tests__dump_layout_success_plugin_command.snap +++ b/zellij-server/src/plugins/unit/snapshots/zellij_server__plugins__plugin_tests__dump_layout_success_plugin_command.snap @@ -3,5 +3,5 @@ source: zellij-server/src/plugins/./unit/plugin_tests.rs expression: "format!(\"{:#?}\", plugin_bytes_event)" --- Some( - "Layout dump success: layout {\n\r pane size=1 borderless=true {\n\r plugin location=\"tab-bar\" {\n\r // 🚥 zone: clear the macOS traffic lights in the native window\n\r left_inset \"9\"\n\r }\n\r }\n\r pane split_direction=\"vertical\" {\n\r pane size=24 borderless=true {\n\r plugin location=\"session-manager\" {\n\r rail true\n\r pane_title \"Sessions\"\n\r }\n\r }\n\r pane\n\r }\n\r pane size=1 borderless=true {\n\r plugin location=\"status-bar\"\n\r }\n\r}\n\r", + "Layout dump success: layout {\n\r session_layer {\n\r pane size=1 borderless=true {\n\r plugin location=\"tab-bar\" {\n\r session_canvas true\n\r session_canvas_kind \"compact-bar\"\n\r // 🚥 zone: clear the macOS traffic lights in the native window\n\r left_inset \"6\"\n\r }\n\r }\n\r pane split_direction=\"vertical\" {\n\r pane size=24 borderless=true {\n\r plugin location=\"session-manager\" {\n\r session_canvas true\n\r session_canvas_kind \"session-manager\"\n\r rail true\n\r pane_title \"Sessions\"\n\r }\n\r }\n\r pane { children; }\n\r }\n\r pane size=1 borderless=true {\n\r plugin location=\"status-bar\" {\n\r session_canvas true\n\r session_canvas_kind \"status-bar\"\n\r }\n\r }\n\r }\n\r\n\r default_tab_template {\n\r pane { children; }\n\r }\n\r}\n\r", ) diff --git a/zellij-server/src/plugins/unit/snapshots/zellij_server__plugins__plugin_tests__override_layout_plugin_command.snap b/zellij-server/src/plugins/unit/snapshots/zellij_server__plugins__plugin_tests__override_layout_plugin_command.snap index 111d9d914..d90598c3a 100644 --- a/zellij-server/src/plugins/unit/snapshots/zellij_server__plugins__plugin_tests__override_layout_plugin_command.snap +++ b/zellij-server/src/plugins/unit/snapshots/zellij_server__plugins__plugin_tests__override_layout_plugin_command.snap @@ -52,7 +52,7 @@ Some( configuration: Some( PluginUserConfiguration( { - "left_inset": "9", + "left_inset": "6", }, ), ), diff --git a/zellij-server/src/plugins/zellij_exports.rs b/zellij-server/src/plugins/zellij_exports.rs index 7806062fa..97c8d1038 100644 --- a/zellij-server/src/plugins/zellij_exports.rs +++ b/zellij-server/src/plugins/zellij_exports.rs @@ -4214,13 +4214,13 @@ fn get_session_list(env: &PluginEnv) { &plugin_list, ); - let _ = env - .senders - .send_to_screen(ScreenInstruction::UpdateSessionInfos( - live_sessions_map.clone(), - resurrectable_sessions_map.clone(), - )); - + // Deliberately no `ScreenInstruction::UpdateSessionInfos` here. + // This is a plugin-initiated read: feeding it back to Screen made + // Screen broadcast `SessionUpdate` to every plugin, including the + // caller, which rebuilt its model and asked again on its next + // timer — a self-sustaining loop whose cost is quadratic in the + // number of live sessions. Screen's cache is kept fresh by the + // session-metadata background job, which owns that cadence. let snapshot = SessionListSnapshot { live_sessions: live_sessions_map.into_values().collect(), resurrectable_sessions: resurrectable_sessions_map.into_iter().collect(), diff --git a/zellij-server/src/screen.rs b/zellij-server/src/screen.rs index f145ccde0..4e615c27a 100644 --- a/zellij-server/src/screen.rs +++ b/zellij-server/src/screen.rs @@ -1691,6 +1691,12 @@ pub(crate) struct Screen { pane_render_subscribers: HashMap, plugins_need_ansi_pane_contents: bool, background_plugin_subscriptions: HashMap<(PluginId, ClientId), HashSet>, + /// Chrome plugin/client targets that were told they are visible by the + /// previous transition. Kept so a target can still be parked after the + /// tab (or the whole client) it belonged to is gone — otherwise the last + /// detach leaves both target sets empty and the chrome stays latched + /// visible, refreshing once a second on a server nobody is watching. + last_visible_chrome_targets: BTreeSet, has_clients_flag: Arc, /// Monotonic counter used to tag each forwarded host-terminal query /// with a unique token. 0 is reserved as a sentinel (see @@ -2795,6 +2801,7 @@ impl Screen { pane_render_subscribers: HashMap::new(), plugins_need_ansi_pane_contents: false, background_plugin_subscriptions: HashMap::new(), + last_visible_chrome_targets: BTreeSet::new(), has_clients_flag, next_forward_token: 1, // 0 is reserved as the startup sentinel pending_forwarded_queries: HashMap::new(), @@ -6496,12 +6503,28 @@ impl Screen { &mut self, ) -> (Vec, Vec) { let active_targets = self.active_status_bar_plugin_targets(); - let hidden_targets = self + let mut hidden_targets: BTreeSet = self .all_status_bar_plugin_targets() .difference(&active_targets) .copied() .collect(); - (active_targets.into_iter().collect(), hidden_targets) + // Both target sets are built from `active_tab_ids`, so a client that + // detaches takes its own chrome out of them and would never be told it + // stopped being visible — while its plugin instances outlive it and + // keep refreshing. Park what a departed client leaves behind; targets + // of still-connected clients stay governed by `all - active` above. + let connected_clients: BTreeSet = self.active_tab_ids.keys().copied().collect(); + hidden_targets.extend( + self.last_visible_chrome_targets + .iter() + .filter(|(_, client_id)| !connected_clients.contains(client_id)) + .copied(), + ); + self.last_visible_chrome_targets = active_targets.clone(); + ( + active_targets.into_iter().collect(), + hidden_targets.into_iter().collect(), + ) } fn log_and_report_session_state(&mut self) -> Result<()> { diff --git a/zellij-server/src/unit/screen_tests.rs b/zellij-server/src/unit/screen_tests.rs index 5706cb25a..da62514cd 100644 --- a/zellij-server/src/unit/screen_tests.rs +++ b/zellij-server/src/unit/screen_tests.rs @@ -378,6 +378,57 @@ fn status_bar_target_transition_hides_only_the_client_that_switched_tabs() { ); } +#[test] +fn last_client_detach_parks_the_chrome_it_leaves_behind() { + let mut screen = create_new_screen(Size { cols: 80, rows: 24 }, true, true); + let (to_plugin, _plugin_receiver): ChannelWithContext = + channels::unbounded(); + screen.bus.senders.to_plugin = Some(SenderWithContext::new(to_plugin)); + new_tab_with_status_bar_and_worker(&mut screen, 0, 1, 42, 99); + screen.active_tab_ids = BTreeMap::from([(1, 0)]); + + let (active, hidden) = screen.status_bar_plugin_target_transition(); + assert_eq!(active, vec![(42, 1)]); + assert!(hidden.is_empty()); + + // The last client detaches: Screen::remove_client drops it from + // active_tab_ids, so both target sets collapse to empty. + screen.active_tab_ids.remove(&1); + let (active_after_detach, hidden_after_detach) = screen.status_bar_plugin_target_transition(); + + assert!( + active_after_detach.is_empty(), + "a server with no clients has no visible chrome" + ); + assert_eq!( + hidden_after_detach, + vec![(42, 1)], + "chrome that was visible must be told it no longer is, or it keeps \ + refreshing the session list once a second on a server nobody watches" + ); + + let updates = session_update_events( + vec![fleet_session("working", &[(false, false, false)])], + vec![], + active_after_detach, + hidden_after_detach, + ); + assert!(matches!( + updates.first(), + Some(( + Some(42), + Some(1), + Event::CustomMessage(message, payload), + )) if message == VC_STATUS_BAR_VISIBILITY_MESSAGE && payload == "false" + )); + + let (_, hidden_while_still_detached) = screen.status_bar_plugin_target_transition(); + assert!( + hidden_while_still_detached.is_empty(), + "parking is a transition, not a per-broadcast message" + ); +} + #[test] fn projector_tab_keeps_shared_status_bar_runtime_active() { let mut screen = create_new_screen(Size { cols: 80, rows: 24 }, true, true); diff --git a/zellij-utils/assets/plugins/SHA256SUMS b/zellij-utils/assets/plugins/SHA256SUMS index 1d923ce1d..ee04ef482 100644 --- a/zellij-utils/assets/plugins/SHA256SUMS +++ b/zellij-utils/assets/plugins/SHA256SUMS @@ -6,7 +6,7 @@ e85317f3bbf566fe69dc796179003944178497537fb9fee3f61a3bf622235e00 layout-manager 726e3833656301235729db179884bf71a983993b6d7ed05bbd26c89d0ba9fc31 link.wasm 797089ea4dcba8f54bbc1fe70c36de4ce14c5bb56aa906c1c840facc18a7f644 multiple-select.wasm c1f637d73aad5a44eba5b0c3b891efa4e79c63bc09af0bc4eab8d5a20cad455f plugin-manager.wasm -818d9c6d26d4af9e69b17b77c2697b0d427eb6eabb3afe8e0488d28026b4b309 session-manager.wasm +9752aa6885103fb9e28836d63dc1a7f2e0fb26183ed30aeb786e70b0dbabee4e session-manager.wasm 6edf6dd4d079bb747d8cf19b7b7f99ee62245d1471b2955b9d870fccb1c1b9eb share.wasm 61b7bbdf2bf623534fd48976ed057a0bd60dbf6bda6713050287780d9594b392 status-bar.wasm 980d55d5cd679ddea39e24a6869d810ee40a22111ad3fa830b2d3ece837619af strider.wasm diff --git a/zellij-utils/assets/plugins/session-manager.wasm b/zellij-utils/assets/plugins/session-manager.wasm index d13667284..51f15b4ae 100755 Binary files a/zellij-utils/assets/plugins/session-manager.wasm and b/zellij-utils/assets/plugins/session-manager.wasm differ diff --git a/zellij-utils/src/client_server_contract/mod.rs b/zellij-utils/src/client_server_contract/mod.rs index 6ae77975f..21ec14a29 100644 --- a/zellij-utils/src/client_server_contract/mod.rs +++ b/zellij-utils/src/client_server_contract/mod.rs @@ -22,12 +22,25 @@ mod wire_contract_guard { "bafef87a5b86ae76f9ba26301ac4540f6d65d3a57bc3686a08980c3b2a47f076", ); + fn normalized_source_bytes(source: &[u8]) -> Vec { + let mut normalized = Vec::with_capacity(source.len()); + let mut bytes = source.iter().copied().peekable(); + while let Some(byte) = bytes.next() { + if byte == b'\r' && bytes.peek() == Some(&b'\n') { + continue; + } + normalized.push(byte); + } + normalized + } + #[test] fn wire_contract_changes_require_a_version_bump() { - let current = sha256_hex(include_bytes!(concat!( + let source = normalized_source_bytes(include_bytes!(concat!( env!("CARGO_MANIFEST_DIR"), "/assets/prost_ipc/client_server_contract.rs" ))); + let current = sha256_hex(&source); assert_eq!( (CLIENT_SERVER_CONTRACT_VERSION, current.as_str()), PINNED_CONTRACT, @@ -37,4 +50,12 @@ mod wire_contract_guard { commit — old servers cannot decode new message variants." ); } + + #[test] + fn wire_contract_hash_is_independent_of_checkout_line_endings() { + assert_eq!( + normalized_source_bytes(b"one\r\ntwo\r\nthree\n"), + b"one\ntwo\nthree\n" + ); + } } diff --git a/zellij-utils/src/consts.rs b/zellij-utils/src/consts.rs index ebc8c7ac5..050d8fc46 100644 --- a/zellij-utils/src/consts.rs +++ b/zellij-utils/src/consts.rs @@ -196,11 +196,23 @@ fn migrate_legacy_path(legacy_path: &Path, vc_frame_path: &Path) { } fn copy_path_if_target_absent(source: &Path, target: &Path) -> std::io::Result<()> { - if !source.exists() || target.exists() { + let source_metadata = match std::fs::symlink_metadata(source) { + Ok(metadata) => metadata, + Err(error) if error.kind() == std::io::ErrorKind::NotFound => return Ok(()), + Err(error) => return Err(error), + }; + if target.exists() { return Ok(()); } - if source.is_dir() { + if source_metadata.file_type().is_symlink() { + return Err(std::io::Error::new( + std::io::ErrorKind::InvalidInput, + format!("refusing to migrate symlink {}", source.display()), + )); + } + + if source_metadata.is_dir() { copy_dir_recursively(source, target) } else { if let Some(parent) = target.parent() { @@ -828,6 +840,24 @@ mod tests { ); } + #[cfg(unix)] + #[test] + fn copy_path_if_target_absent_refuses_symlinks() { + use std::os::unix::fs::symlink; + + let tmp_dir = tempfile::tempdir().unwrap(); + let outside = tmp_dir.path().join("outside"); + let source = tmp_dir.path().join("source-link"); + let target = tmp_dir.path().join("target"); + std::fs::create_dir_all(&outside).unwrap(); + std::fs::write(outside.join("secret.txt"), "do not copy").unwrap(); + symlink(&outside, &source).unwrap(); + + let error = copy_path_if_target_absent(&source, &target).unwrap_err(); + assert_eq!(error.kind(), std::io::ErrorKind::InvalidInput); + assert!(!target.exists()); + } + #[cfg(unix)] #[test] fn unix_tmp_dir_uses_vc_frame_namespace() { diff --git a/zellij-utils/src/envs.rs b/zellij-utils/src/envs.rs index d782017dc..edf026473 100644 --- a/zellij-utils/src/envs.rs +++ b/zellij-utils/src/envs.rs @@ -32,10 +32,15 @@ pub fn set_session_name(v: String) { pub const SOCKET_DIR_ENV_KEY: &str = "ZELLIJ_SOCKET_DIR"; pub const VC_FRAME_SOCKET_DIR_ENV_KEY: &str = "VC_FRAME_SOCKET_DIR"; +pub const VC_FRAME_SERVER_FOREGROUND_ENV_KEY: &str = "VC_FRAME_SERVER_FOREGROUND"; pub fn get_socket_dir() -> Result { aliased_var(VC_FRAME_SOCKET_DIR_ENV_KEY, SOCKET_DIR_ENV_KEY) } +pub fn server_foreground_requested() -> bool { + std::env::var(VC_FRAME_SERVER_FOREGROUND_ENV_KEY).as_deref() == Ok("1") +} + pub const PANE_ID_ENV_KEY: &str = "ZELLIJ_PANE_ID"; pub const VC_FRAME_PANE_ID_ENV_KEY: &str = "VC_FRAME_PANE_ID"; pub fn get_pane_id() -> Result { diff --git a/zellij-utils/src/kdl/snapshots/zellij_utils__kdl__bare_config_from_default_assets_to_string.snap b/zellij-utils/src/kdl/snapshots/zellij_utils__kdl__bare_config_from_default_assets_to_string.snap index cccffdffd..f4eecd36b 100644 --- a/zellij-utils/src/kdl/snapshots/zellij_utils__kdl__bare_config_from_default_assets_to_string.snap +++ b/zellij-utils/src/kdl/snapshots/zellij_utils__kdl__bare_config_from_default_assets_to_string.snap @@ -220,6 +220,12 @@ keybinds clear-defaults=true { } } bind "Super right" { GoToNextTab; } + bind "Super k" { + MessagePlugin "compact-bar" { + name "vc_quick_cmd" + floating false + } + } } shared_except "locked" { bind "Ctrl left" { GoToPreviousTab; } diff --git a/zellij-utils/src/kdl/snapshots/zellij_utils__kdl__bare_config_from_default_assets_to_string_with_comments.snap b/zellij-utils/src/kdl/snapshots/zellij_utils__kdl__bare_config_from_default_assets_to_string_with_comments.snap index cc90206a5..ea9215e0b 100644 --- a/zellij-utils/src/kdl/snapshots/zellij_utils__kdl__bare_config_from_default_assets_to_string_with_comments.snap +++ b/zellij-utils/src/kdl/snapshots/zellij_utils__kdl__bare_config_from_default_assets_to_string_with_comments.snap @@ -220,6 +220,12 @@ keybinds clear-defaults=true { } } bind "Super right" { GoToNextTab; } + bind "Super k" { + MessagePlugin "compact-bar" { + name "vc_quick_cmd" + floating false + } + } } shared_except "locked" { bind "Ctrl left" { GoToPreviousTab; } diff --git a/zellij-utils/src/sessions.rs b/zellij-utils/src/sessions.rs index 5dc6e28ce..91339a732 100644 --- a/zellij-utils/src/sessions.rs +++ b/zellij-utils/src/sessions.rs @@ -238,6 +238,67 @@ fn assert_socket(_name: &str) -> bool { true } +/// Whether a session socket path is currently held by a live server. +/// +/// This asks a deliberately different question than [`assert_socket`]: not "is +/// the server behind this socket healthy" but "may this path be unlinked and +/// re-bound". A server that is alive yet too busy to answer a `ConnStatus` +/// probe within the discovery deadline must never lose its own socket — the +/// old process keeps running, unreachable and clientless, and nothing reaps it. +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum SocketOwnership { + /// Nothing is listening: no file at all, or a leftover from a crashed + /// server. Removing it and binding is legal cleanup. + Vacant, + /// A process is listening on this path right now. + Live, + /// The path could not be classified. Treated as occupied by callers, + /// because guessing wrong destroys a running session. + Unknown(String), +} + +/// Deadline for the ownership probe. Longer than `SESSION_PROBE_TIMEOUT` +/// because the answer decides whether another server gets evicted, and the +/// call happens exactly once per server start. +#[cfg(unix)] +pub const SOCKET_OWNERSHIP_PROBE_TIMEOUT: Duration = Duration::from_millis(1000); + +/// On Unix, a successful `connect()` means some process holds the listening +/// end. That is enough: whether it replies to `ConnStatus` in time says +/// something about its health, not about its ownership of the name. +#[cfg(unix)] +pub fn probe_socket_ownership(path: &std::path::Path) -> SocketOwnership { + use crate::consts::ipc_connect_timeout; + match fs::symlink_metadata(path) { + // Nothing is there, or what is there cannot be a listening socket — + // either way nobody can be reached through it. + Err(e) if e.kind() == io::ErrorKind::NotFound => return SocketOwnership::Vacant, + Ok(metadata) if !is_ipc_socket(&metadata.file_type()) => return SocketOwnership::Vacant, + _ => {}, + } + match ipc_connect_timeout(path, SOCKET_OWNERSHIP_PROBE_TIMEOUT) { + Ok(_stream) => SocketOwnership::Live, + Err(e) + if matches!( + e.kind(), + io::ErrorKind::ConnectionRefused | io::ErrorKind::NotFound + ) => + { + SocketOwnership::Vacant + }, + Err(e) => SocketOwnership::Unknown(e.to_string()), + } +} + +// Deliberately no non-Unix implementation. Off Unix the session path is a +// marker file and the listener is a named pipe whose name the OS refuses to +// hand out twice, so `ipc_bind` — which writes the marker only after that bind +// succeeds — already answers the ownership question without a probe. Guessing +// from the marker's PID would be strictly worse: a PID recycled after a crash +// reads as live and strands the session name, while connecting to the pipe to +// check would occupy the target server's accept loop, which pairs every +// accepted stream with a blocking accept on the reply pipe. + #[cfg(all(test, unix))] mod session_probe_timeout_tests { use super::*; @@ -278,6 +339,53 @@ mod session_probe_timeout_tests { server.join().expect("silent server thread"); } + #[test] + fn a_busy_but_listening_socket_still_belongs_to_its_server() { + let dir = tempfile::TempDir::new().expect("tempdir"); + let socket = dir.path().join("busy-session.sock"); + let listener = ListenerOptions::new() + .name(socket.as_path().to_fs_name::().unwrap()) + .create_sync() + .expect("bind busy socket"); + // A server that never answers ConnStatus: `assert_socket` reports it as + // gone, which is exactly the misread that used to cost it its socket. + let server = std::thread::spawn(move || { + let _listener = listener; + std::thread::sleep(Duration::from_millis(500)); + }); + + assert_eq!(probe_socket_ownership(&socket), SocketOwnership::Live); + server.join().expect("busy server thread"); + } + + #[test] + fn a_stale_socket_file_is_vacant() { + let dir = tempfile::TempDir::new().expect("tempdir"); + let socket = dir.path().join("stale-session.sock"); + { + let listener = ListenerOptions::new() + .name(socket.as_path().to_fs_name::().unwrap()) + .create_sync() + .expect("bind stale socket"); + drop(listener); + } + + assert_eq!(probe_socket_ownership(&socket), SocketOwnership::Vacant); + assert_eq!( + probe_socket_ownership(&dir.path().join("never-existed.sock")), + SocketOwnership::Vacant + ); + + // Junk left at a session path must not block that session name + // forever just because connect() reports an unfamiliar error. + let not_a_socket = dir.path().join("not-a-socket"); + std::fs::write(¬_a_socket, b"stale").expect("write junk"); + assert_eq!( + probe_socket_ownership(¬_a_socket), + SocketOwnership::Vacant + ); + } + #[test] fn kill_ack_timer_is_entered_inside_its_runtime() { let dir = tempfile::TempDir::new().expect("tempdir"); diff --git a/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__default_config_with_no_cli_arguments.snap b/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__default_config_with_no_cli_arguments.snap index 947c382dd..aa92cf046 100644 --- a/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__default_config_with_no_cli_arguments.snap +++ b/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__default_config_with_no_cli_arguments.snap @@ -398,6 +398,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -675,6 +704,35 @@ Config { input_mode: Normal, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], }, Resize: { KeyWithModifier { @@ -1238,6 +1296,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -1918,6 +2005,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -2839,6 +2955,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -3554,6 +3699,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -4170,6 +4344,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -4809,6 +5012,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -5417,6 +5649,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -5970,6 +6231,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -6581,6 +6871,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -7381,6 +7700,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -7959,6 +8307,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -8681,6 +9058,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', diff --git a/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_env_vars_override_config_env_vars.snap b/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_env_vars_override_config_env_vars.snap index c47dda98e..566ddcf10 100644 --- a/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_env_vars_override_config_env_vars.snap +++ b/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_env_vars_override_config_env_vars.snap @@ -398,6 +398,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -675,6 +704,35 @@ Config { input_mode: Normal, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], }, Resize: { KeyWithModifier { @@ -1238,6 +1296,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -1918,6 +2005,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -2839,6 +2955,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -3554,6 +3699,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -4170,6 +4344,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -4809,6 +5012,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -5417,6 +5649,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -5970,6 +6231,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -6581,6 +6871,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -7381,6 +7700,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -7959,6 +8307,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -8681,6 +9058,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', diff --git a/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_themes_override_config_themes.snap b/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_themes_override_config_themes.snap index 18fcb30e4..d97cd80e5 100644 --- a/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_themes_override_config_themes.snap +++ b/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_themes_override_config_themes.snap @@ -398,6 +398,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -675,6 +704,35 @@ Config { input_mode: Normal, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], }, Resize: { KeyWithModifier { @@ -1238,6 +1296,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -1918,6 +2005,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -2839,6 +2955,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -3554,6 +3699,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -4170,6 +4344,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -4809,6 +5012,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -5417,6 +5649,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -5970,6 +6231,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -6581,6 +6871,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -7381,6 +7700,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -7959,6 +8307,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -8681,6 +9058,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', diff --git a/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_ui_config_overrides_config_ui_config.snap b/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_ui_config_overrides_config_ui_config.snap index 58dcc96ad..733407ce9 100644 --- a/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_ui_config_overrides_config_ui_config.snap +++ b/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_ui_config_overrides_config_ui_config.snap @@ -398,6 +398,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -675,6 +704,35 @@ Config { input_mode: Normal, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], }, Resize: { KeyWithModifier { @@ -1238,6 +1296,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -1918,6 +2005,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -2839,6 +2955,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -3554,6 +3699,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -4170,6 +4344,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -4809,6 +5012,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -5417,6 +5649,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -5970,6 +6231,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -6581,6 +6871,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -7381,6 +7700,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -7959,6 +8307,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l', @@ -8681,6 +9058,35 @@ Config { direction: Up, }, ], + KeyWithModifier { + bare_key: Char( + 'k', + ), + key_modifiers: { + Super, + }, + }: [ + KeybindPipe { + name: Some( + "vc_quick_cmd", + ), + payload: None, + args: None, + plugin: Some( + "compact-bar", + ), + plugin_id: None, + configuration: None, + launch_new: false, + skip_cache: false, + floating: Some( + false, + ), + in_place: None, + cwd: None, + pane_title: None, + }, + ], KeyWithModifier { bare_key: Char( 'l',