Terminal based IDE & text editor: easy, powerful and fast
This report summarizes scanner evidence for sinelaw/fresh, a Rust project with 9,155 GitHub stars. SynthScan examined 1,112,560 lines of code across 1906 source files, recording 6205 pattern matches distributed across 20 syntactic categories. The legacy adjusted pattern signal is 6.6 (Moderate pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 5609 finding(s).
Are imports declared and package/API names verified? 105 finding(s).
Are wrappers, guards, and repeated structures necessary? 650 finding(s).
Which changes need focused human review? 6205 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 6205 distinct pattern matches across 20 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Cargo.toml | 101 | # | COMMENT |
| LOW | Cargo.toml | 121 | # on device" on a machine with 29GB free. | COMMENT |
| LOW | Cargo.toml | 141 | COMMENT | |
| LOW | Cargo.toml | 161 | # cargo build --profile min-size --no-default-features --features runtime | COMMENT |
| LOW | Cargo.toml | 241 | # allocation came from instead of just a mangled symbol. | COMMENT |
| LOW | clippy.toml | 1 | # Tokio's `Handle` is `Clone + 'static` and keeps nothing alive, so "only | COMMENT |
| LOW | crates/fresh-ui/tests/golden.rs | 1 | //! Golden functional tests: drive the demo application through a scripted | COMMENT |
| LOW | crates/fresh-ui/tests/layout.rs | 581 | COMMENT | |
| LOW | crates/fresh-ui/tests/layout.rs | 1421 | /// A wrapping box with no children has no lines and no size, rather than one | COMMENT |
| LOW | crates/fresh-ui/tests/persistence.rs | 1 | //! Scoped persistence: what a document switch does to element state. | COMMENT |
| LOW | crates/fresh-ui/tests/persistence.rs | 61 | self.values.borrow_mut().insert(key.into(), value); | COMMENT |
| LOW | crates/fresh-ui/tests/persistence.rs | 161 | COMMENT | |
| LOW | crates/fresh-ui/tests/focus.rs | 561 | assert_eq!(ui.focused(), Some(ui.at(&[0]).unwrap())); | COMMENT |
| LOW | crates/fresh-ui/tests/focus.rs | 721 | /// may never *rest* there. `focus_scope` reads it as the former when it builds | COMMENT |
| LOW | crates/fresh-ui/tests/focus.rs | 841 | /// then is the layer's modality, not the fallback's choice. | COMMENT |
| LOW | crates/fresh-ui/tests/focus.rs | 901 | /// | COMMENT |
| LOW | crates/fresh-ui/tests/focus.rs | 1321 | assert_eq!( | COMMENT |
| LOW | crates/fresh-ui/tests/conformance.rs | 901 | })) | COMMENT |
| LOW | crates/fresh-ui/tests/conformance.rs | 1401 | /// | COMMENT |
| LOW | crates/fresh-ui/tests/conformance.rs | 1521 | "a press on the track below the thumb still jumps toward it" | COMMENT |
| LOW | crates/fresh-ui/tests/conformance.rs | 1581 | "a Focus layer hands back what its chain did not act on" | COMMENT |
| LOW | crates/fresh-ui/tests/conformance.rs | 1641 | /// its next frame. So between the dismissal and that frame, the element is | COMMENT |
| LOW | crates/fresh-ui/tests/conformance.rs | 1781 | /// **Flex contributes nothing but its floor to an intrinsic measure** (L15). | COMMENT |
| LOW | crates/fresh-ui/tests/conformance.rs | 1861 | ]) | COMMENT |
| LOW | crates/fresh-ui/tests/conformance.rs | 1941 | ); | COMMENT |
| LOW | crates/fresh-ui/tests/conformance.rs | 2101 | let (_, first) = ui.text_rows(&run).expect("some run"); | COMMENT |
| LOW | crates/fresh-ui/tests/conformance.rs | 2341 | assert_eq!(cap.w, 3, "the cap is the width the window asked for"); | COMMENT |
| LOW | crates/fresh-ui/tests/widgets.rs | 1761 | let id = ui | COMMENT |
| LOW | crates/fresh-ui/tests/widgets.rs | 1821 | (moved.y, moved.h), | COMMENT |
| LOW | crates/fresh-ui/tests/desc.rs | 81 | assert_eq!(node_type(&h).0, ElemType::Host); | COMMENT |
| LOW | crates/fresh-ui/tests/support/screen.rs | 1 | //! A reference backend: fold a display list into a grid of characters. | COMMENT |
| LOW | crates/fresh-ui/tests/support/mod.rs | 1 | //! Shared scaffolding for the integration tests and the example binaries. | COMMENT |
| LOW | crates/fresh-ui/tests/support/demo/mod.rs | 1 | //! A complete application built on the library, and the harness that drives it. | COMMENT |
| LOW | crates/fresh-ui/tests/support/demo/view.rs | 41 | } | COMMENT |
| LOW | crates/fresh-ui/tests/support/demo/view.rs | 261 | // One row down: past the entry field, onto the list's own | COMMENT |
| LOW | crates/fresh-ui/examples/interactive.rs | 1 | //! The demo application, driven live in a real terminal. | COMMENT |
| LOW | crates/fresh-ui/examples/interactive.rs | 141 | /// The host's click-run tracker. | COMMENT |
| LOW | crates/fresh-ui/src/ambient.rs | 1 | //! Ambient values: data that reaches a subtree without passing through every | COMMENT |
| LOW | crates/fresh-ui/src/ambient.rs | 101 | pub value: Rc<dyn Any>, | COMMENT |
| LOW | crates/fresh-ui/src/ambient.rs | 161 | /// A document boundary: one node that both **provides** | COMMENT |
| LOW | crates/fresh-ui/src/element.rs | 61 | /// rebuild when the value changes. | COMMENT |
| LOW | crates/fresh-ui/src/element.rs | 221 | // --------------------------------------------------------------------------- | COMMENT |
| LOW | crates/fresh-ui/src/element.rs | 541 | if let (Desc::Shared(a), Desc::Shared(b)) = (&self.arena[id].desc.desc, &new.desc) { | COMMENT |
| LOW | crates/fresh-ui/src/element.rs | 721 | COMMENT | |
| LOW | crates/fresh-ui/src/lib.rs | 1 | //! A retained reconciling UI tree. | COMMENT |
| LOW | crates/fresh-ui/src/services.rs | 81 | COMMENT | |
| LOW | crates/fresh-ui/src/services.rs | 121 | /// that shows none. **In the unit the offset counts**, which `band` is | COMMENT |
| LOW | crates/fresh-ui/src/services.rs | 201 | /// that is. | COMMENT |
| LOW | crates/fresh-ui/src/event.rs | 1 | //! Events, and the controls a handler has over them. | COMMENT |
| LOW | crates/fresh-ui/src/event.rs | 161 | /// | COMMENT |
| LOW | crates/fresh-ui/src/event.rs | 281 | /// Which axis `delta` moves along. `Vertical` for everything else. | COMMENT |
| LOW | crates/fresh-ui/src/event.rs | 301 | /// | COMMENT |
| LOW | crates/fresh-ui/src/event.rs | 381 | /// Capture the pointer for a **drag and drop**: everything | COMMENT |
| LOW | crates/fresh-ui/src/hit.rs | 1 | //! Hit-testing and propagation. | COMMENT |
| LOW | crates/fresh-ui/src/hit.rs | 81 | /// **A drag outlives its captor.** The thing dragged can scroll out of a | COMMENT |
| LOW | crates/fresh-ui/src/hit.rs | 121 | } | COMMENT |
| LOW | crates/fresh-ui/src/hit.rs | 181 | clicks, | COMMENT |
| LOW | crates/fresh-ui/src/hit.rs | 201 | // A left click outside a menu is spent closing it — that is | COMMENT |
| LOW | crates/fresh-ui/src/hit.rs | 221 | // directly — click to jump, then drag to follow. The only | COMMENT |
| LOW | crates/fresh-ui/src/hit.rs | 341 | out, | COMMENT |
| 4835 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | crates/fresh-ui/tests/paint.rs | 823 | // ── clipping ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-ui/tests/conformance.rs | 2170 | // ── a window that scrolls across ──────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-core/src/file_uri.rs | 222 | // ── Basic functionality ────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-core/src/file_uri.rs | 280 | // ── Percent-encoding edge cases ───────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-core/src/file_uri.rs | 366 | // ── Unicode ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-core/src/file_uri.rs | 405 | // ── lsp_types::Uri compatibility ──────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-core/src/file_uri.rs | 431 | // ── file_uri_to_path edge cases ───────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-core/src/file_uri.rs | 605 | // ── Windows verbatim (\\?\) path handling ───────────────── | COMMENT |
| MEDIUM | crates/fresh-core/src/file_uri.rs | 752 | // ── Property tests ────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-core/src/api.rs | 13 | //! ─────────── ──────────────────── | COMMENT |
| MEDIUM | crates/fresh-core/src/api.rs | 3215 | /// ╭─ Label ──────────────────╮ | COMMENT |
| MEDIUM | crates/fresh-core/src/api.rs | 3217 | /// ╰──────────────────────────╯ | COMMENT |
| MEDIUM | crates/fresh-core/src/api.rs | 7607 | // ── Tests for FromJs / IntoJs impls ──────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-core/src/api.rs | 9101 | // ── PluginApi dispatch / mutation tests ──────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-plugin-runtime/src/api_docs.rs | 849 | // ── prompts ────── | COMMENT |
| MEDIUM | crates/fresh-plugin-runtime/src/ts_export.rs | 686 | // ── lifecycle ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-plugin-runtime/src/ts_export.rs | 715 | // ── buffer lifecycle ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-plugin-runtime/src/ts_export.rs | 720 | // ── file I/O ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-plugin-runtime/src/ts_export.rs | 743 | // ── text edits ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-plugin-runtime/src/ts_export.rs | 777 | // ── cursor & viewport ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-plugin-runtime/src/ts_export.rs | 797 | // ── rendering ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-plugin-runtime/src/ts_export.rs | 863 | // ── commands ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-plugin-runtime/src/ts_export.rs | 877 | // ── prompts ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-plugin-runtime/src/ts_export.rs | 894 | // ── mouse ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-plugin-runtime/src/ts_export.rs | 899 | // ── LSP ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-plugin-runtime/src/ts_export.rs | 954 | // ── UI events ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-plugin-runtime/src/ts_export.rs | 969 | // ── terminals ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-plugin-runtime/src/ts_export.rs | 981 | // ── file watching ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-plugin-runtime/src/ts_export.rs | 990 | // ── windows ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-plugin-runtime/src/ts_export.rs | 1032 | // ── widget runtime ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …es/fresh-plugin-runtime/src/backend/quickjs_backend.rs | 882 | // ─── Helpers for the defineConfigX methods ──────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/asm-lsp.ts | 135 | // ── .asm-lsp.toml config offer ────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/agent_discovery.ts | 705 | // ── Wiring ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/live_grep.ts | 138 | // ── Scopes (Universal Search) ───────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/live_grep.ts | 194 | // ── Search modes ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/live_grep.ts | 288 | // ── Registry ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/live_grep.ts | 570 | // ── Built-in providers ────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/live_grep.ts | 785 | // ── Wiring ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/orchestrator.ts | 1350 | // ── Workspace names: manual rename + terminal-tracking auto-name ───────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/orchestrator.ts | 1465 | // ── The placeholder page ───────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/orchestrator.ts | 2361 | // ── Pending placeholder row presentation (single source of truth) ───────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/orchestrator.ts | 2469 | // ╭──────────────────────────────╮ | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/orchestrator.ts | 2472 | // ╰──────────────────────────────╯ | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/orchestrator.ts | 3872 | // ╭────────────────────────────────────╮ | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/orchestrator.ts | 3875 | // ╰────────────────────────────────────╯ | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/orchestrator.ts | 7078 | // ── A row being dragged ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/orchestrator.ts | 10165 | // ── The form's Project control ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/orchestrator.ts | 11689 | // ── Checks ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/orchestrator.ts | 11793 | // ── Browse… ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/orchestrator.ts | 11856 | // ── Clone (§4.15) ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/orchestrator.ts | 11909 | // ── Save ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/orchestrator.ts | 13684 | // ── The launch form's layout ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/orchestrator.ts | 13721 | // `PROMPT ─────…` — a section's name and a rule to the right edge. The rule | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/orchestrator.ts | 16497 | // ── organising the dock ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/orchestrator.ts | 16531 | // ── lifecycle ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/orchestrator.ts | 16553 | // ── the archive ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/orchestrator.ts | 16574 | // ── dock view state ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/orchestrator.ts | 18995 | // ── Explain State popup ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/git_grep.ts | 16 | // ── Case sensitivity ────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/dashboard.ts | 4 | // ═════════════════════════════════════════════════════════════════════ | COMMENT |
| 385 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | crates/fresh-editor/tests/focused_bug_test.rs | 77 | // Step 1: Enter | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/focused_bug_test.rs | 87 | // Step 2: Type "a0" | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/focused_bug_test.rs | 95 | // Step 3: Left | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/focused_bug_test.rs | 103 | // Step 4: Home | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/focused_bug_test.rs | 111 | // Step 5: Type "b" | COMMENT |
| LOW | …fresh-editor/tests/undo_redo_marker_roundtrip_tests.rs | 633 | // Step 1: Insert "XX" at 1 → "aXXbcdef" | COMMENT |
| LOW | …fresh-editor/tests/undo_redo_marker_roundtrip_tests.rs | 645 | // Step 2: Delete "de" at 5..7 → "aXXbcf" | COMMENT |
| LOW⚡ | …esh-editor/tests/semantic/migrated_marker_roundtrip.rs | 381 | // Step 1: type 'X' at cursor → "Xaa\nbb" | COMMENT |
| LOW⚡ | …esh-editor/tests/semantic/migrated_marker_roundtrip.rs | 382 | // Step 2: MoveLineDown of line 1 → "bb\nXaa" | COMMENT |
| LOW⚡ | …esh-editor/tests/semantic/migrated_marker_roundtrip.rs | 400 | // Step 1: type 'X' → "Xaa\nbb" | COMMENT |
| LOW⚡ | …esh-editor/tests/semantic/migrated_marker_roundtrip.rs | 409 | // Step 2: MoveLineDown → "bb\nXaa" | COMMENT |
| LOW⚡ | …resh-editor/tests/semantic/migrated_undo_save_point.rs | 138 | // Step 1: default empty buffer. | COMMENT |
| LOW⚡ | …resh-editor/tests/semantic/migrated_undo_save_point.rs | 141 | // Step 2: type "hello". | COMMENT |
| LOW⚡ | …resh-editor/tests/semantic/migrated_undo_save_point.rs | 145 | // Step 3: Save As to a fresh path inside the temp project. | COMMENT |
| LOW⚡ | …resh-editor/tests/semantic/migrated_undo_save_point.rs | 150 | // Step 4: type more text past the save point. | COMMENT |
| LOW⚡ | …resh-editor/tests/semantic/migrated_undo_save_point.rs | 154 | // Step 5: Undo back to the save point. | COMMENT |
| LOW⚡ | …resh-editor/tests/semantic/migrated_undo_save_point.rs | 185 | // Step 1: start empty. | COMMENT |
| LOW⚡ | …resh-editor/tests/semantic/migrated_undo_save_point.rs | 187 | // Step 2: type "hello" — 5 InsertChar events. | COMMENT |
| LOW⚡ | …resh-editor/tests/semantic/migrated_undo_save_point.rs | 190 | // Step 3: Save As. | COMMENT |
| LOW⚡ | …resh-editor/tests/semantic/migrated_undo_save_point.rs | 202 | // Step 4: type " world" past the save point. | COMMENT |
| LOW⚡ | …resh-editor/tests/semantic/migrated_undo_save_point.rs | 206 | // Step 5: Undo all the way back to empty (cap at 20 Undos — | COMMENT |
| LOW | crates/fresh-editor/tests/semantic/migrated_macros.rs | 72 | // Step 1: open register prompt. Step 2 (events): type | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/e2e/markdown_compose.rs | 209 | // Step 1: buffer edit. The plugin sees lines_changed on its thread | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/e2e/markdown_compose.rs | 216 | // Step 2: semantic wait for the post-edit transient to clear. | COMMENT |
| LOW | …esh-editor/tests/e2e/issue_1574_wrapped_down_scroll.rs | 514 | // Step 1: navigate to the end of paragraph one ("... data as UTF-8."). | COMMENT |
| LOW | …esh-editor/tests/e2e/issue_1574_wrapped_down_scroll.rs | 526 | // Step 2: one Down — cursor should be on the empty separator line. | COMMENT |
| LOW | …esh-editor/tests/e2e/issue_1574_wrapped_down_scroll.rs | 546 | // Step 3: Ctrl+Up until the cursor is on the last visible row AND | COMMENT |
| LOW | …esh-editor/tests/e2e/issue_1574_wrapped_down_scroll.rs | 617 | // Step 4: THE TEST — press Down once and inspect the cursor's row. | COMMENT |
| LOW | …esh-editor/tests/e2e/issue_1574_wrapped_down_scroll.rs | 684 | // Step 1: navigate to end of paragraph one, then Down to the empty | COMMENT |
| LOW | …esh-editor/tests/e2e/issue_1574_wrapped_down_scroll.rs | 714 | // Step 2: Ctrl+Down pushes the viewport forward, moving the cursor's | COMMENT |
| LOW | …esh-editor/tests/e2e/issue_1574_wrapped_down_scroll.rs | 796 | // Step 3: press Up once. The cursor should move to paragraph one's | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/e2e/lsp_toggle_desync.rs | 212 | // Step 1: Open the test file (triggers didOpen) | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/e2e/lsp_toggle_desync.rs | 222 | // Step 2: Type some text (triggers didChange) | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/e2e/lsp_toggle_desync.rs | 231 | // Step 3: Toggle LSP OFF (Alt+T) | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/e2e/lsp_toggle_desync.rs | 241 | // Step 4: Edit while LSP is disabled - type more text | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/e2e/lsp_toggle_desync.rs | 245 | // Step 5: Toggle LSP back ON (Alt+T) | COMMENT |
| LOW | crates/fresh-editor/tests/e2e/tab_drag.rs | 882 | // Step 1: drag the first tab to the right edge to create a new split. | COMMENT |
| LOW | crates/fresh-editor/tests/e2e/tab_drag.rs | 907 | // Step 2: identify the new (right) split and pick a tab in the | COMMENT |
| LOW | crates/fresh-editor/tests/e2e/tab_drag.rs | 956 | // Step 3: drag the other tab onto the new split's tab bar. | COMMENT |
| LOW | crates/fresh-editor/tests/e2e/tab_drag.rs | 972 | // Step 4: type a character. Without the fix, this panics in | COMMENT |
| LOW⚡ | …es/fresh-editor/tests/e2e/undo_bulk_edit_after_save.rs | 63 | // Step 1: Type some text to create buffers in the buffers vec | COMMENT |
| LOW⚡ | …es/fresh-editor/tests/e2e/undo_bulk_edit_after_save.rs | 68 | // Step 2: Toggle comment on the current line -> creates a BulkEdit event | COMMENT |
| LOW⚡ | …es/fresh-editor/tests/e2e/undo_bulk_edit_after_save.rs | 91 | // Step 4: Type more text after save. This creates a new Added(1) buffer | COMMENT |
| LOW⚡ | …es/fresh-editor/tests/e2e/undo_bulk_edit_after_save.rs | 99 | // Step 5: Undo everything back past the BulkEdit. | COMMENT |
| LOW⚡ | …es/fresh-editor/tests/e2e/undo_bulk_edit_after_save.rs | 152 | // Step 2: Indent selection (Tab) -> creates a BulkEdit | COMMENT |
| LOW⚡ | …es/fresh-editor/tests/e2e/undo_bulk_edit_after_save.rs | 156 | // Step 3: Save | COMMENT |
| LOW⚡ | …es/fresh-editor/tests/e2e/undo_bulk_edit_after_save.rs | 162 | // Step 4: Type after save (creates new buffers after consolidation) | COMMENT |
| LOW⚡ | …es/fresh-editor/tests/e2e/undo_bulk_edit_after_save.rs | 167 | // Step 5: Undo everything | COMMENT |
| LOW⚡ | …es/fresh-editor/tests/e2e/undo_bulk_edit_after_save.rs | 211 | // Step 1: Toggle comment (BulkEdit) | COMMENT |
| LOW⚡ | …es/fresh-editor/tests/e2e/undo_bulk_edit_after_save.rs | 220 | // Step 2: Save -> consolidate_after_save() replaces buffers | COMMENT |
| LOW⚡ | …es/fresh-editor/tests/e2e/undo_bulk_edit_after_save.rs | 226 | // Step 3: Undo -> should restore original content | COMMENT |
| LOW⚡ | …es/fresh-editor/tests/e2e/undo_bulk_edit_after_save.rs | 259 | // Step 1: Move line down (Alt+Down) - this is a BulkEdit | COMMENT |
| LOW⚡ | …es/fresh-editor/tests/e2e/undo_bulk_edit_after_save.rs | 269 | // Step 2: Save | COMMENT |
| LOW⚡ | …es/fresh-editor/tests/e2e/undo_bulk_edit_after_save.rs | 275 | // Step 3: Undo -> should restore original content | COMMENT |
| LOW | …es/fresh-editor/tests/e2e/undo_bulk_edit_after_save.rs | 79 | // Step 3: Save the file -> consolidate_after_save() replaces self.buffers | COMMENT |
| LOW | …es/fresh-editor/tests/e2e/undo_bulk_edit_after_save.rs | 141 | // Step 1: Select multiple lines | COMMENT |
| LOW⚡ | …s/fresh-editor/tests/e2e/undo_redo_marker_roundtrip.rs | 491 | // Step 1: Type "X" at start → "Xaa\nbb" | COMMENT |
| LOW⚡ | …s/fresh-editor/tests/e2e/undo_redo_marker_roundtrip.rs | 496 | // Step 2: MoveLineDown (BulkEdit) → should swap lines | COMMENT |
| LOW | crates/fresh-editor/tests/e2e/sessions.rs | 56 | // Step 2: createSession / setActiveSession / closeSession lifecycle. | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/e2e/menu_bar.rs | 699 | // Step 1: Menu bar should be visible initially (default) | COMMENT |
| 160 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | crates/fresh-editor/tests/focused_bug_test.rs | 77 | // Step 1: Enter | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/focused_bug_test.rs | 87 | // Step 2: Type "a0" | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/focused_bug_test.rs | 95 | // Step 3: Left | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/focused_bug_test.rs | 103 | // Step 4: Home | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/focused_bug_test.rs | 111 | // Step 5: Type "b" | COMMENT |
| LOW | …fresh-editor/tests/undo_redo_marker_roundtrip_tests.rs | 633 | // Step 1: Insert "XX" at 1 → "aXXbcdef" | COMMENT |
| LOW | …fresh-editor/tests/undo_redo_marker_roundtrip_tests.rs | 645 | // Step 2: Delete "de" at 5..7 → "aXXbcf" | COMMENT |
| LOW⚡ | …esh-editor/tests/semantic/migrated_marker_roundtrip.rs | 381 | // Step 1: type 'X' at cursor → "Xaa\nbb" | COMMENT |
| LOW⚡ | …esh-editor/tests/semantic/migrated_marker_roundtrip.rs | 382 | // Step 2: MoveLineDown of line 1 → "bb\nXaa" | COMMENT |
| LOW⚡ | …esh-editor/tests/semantic/migrated_marker_roundtrip.rs | 400 | // Step 1: type 'X' → "Xaa\nbb" | COMMENT |
| LOW⚡ | …esh-editor/tests/semantic/migrated_marker_roundtrip.rs | 409 | // Step 2: MoveLineDown → "bb\nXaa" | COMMENT |
| LOW⚡ | …resh-editor/tests/semantic/migrated_undo_save_point.rs | 138 | // Step 1: default empty buffer. | COMMENT |
| LOW⚡ | …resh-editor/tests/semantic/migrated_undo_save_point.rs | 141 | // Step 2: type "hello". | COMMENT |
| LOW⚡ | …resh-editor/tests/semantic/migrated_undo_save_point.rs | 145 | // Step 3: Save As to a fresh path inside the temp project. | COMMENT |
| LOW⚡ | …resh-editor/tests/semantic/migrated_undo_save_point.rs | 150 | // Step 4: type more text past the save point. | COMMENT |
| LOW⚡ | …resh-editor/tests/semantic/migrated_undo_save_point.rs | 154 | // Step 5: Undo back to the save point. | COMMENT |
| LOW⚡ | …resh-editor/tests/semantic/migrated_undo_save_point.rs | 185 | // Step 1: start empty. | COMMENT |
| LOW⚡ | …resh-editor/tests/semantic/migrated_undo_save_point.rs | 187 | // Step 2: type "hello" — 5 InsertChar events. | COMMENT |
| LOW⚡ | …resh-editor/tests/semantic/migrated_undo_save_point.rs | 190 | // Step 3: Save As. | COMMENT |
| LOW⚡ | …resh-editor/tests/semantic/migrated_undo_save_point.rs | 202 | // Step 4: type " world" past the save point. | COMMENT |
| LOW⚡ | …resh-editor/tests/semantic/migrated_undo_save_point.rs | 206 | // Step 5: Undo all the way back to empty (cap at 20 Undos — | COMMENT |
| LOW | crates/fresh-editor/tests/semantic/migrated_macros.rs | 72 | // Step 1: open register prompt. Step 2 (events): type | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/e2e/markdown_compose.rs | 209 | // Step 1: buffer edit. The plugin sees lines_changed on its thread | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/e2e/markdown_compose.rs | 216 | // Step 2: semantic wait for the post-edit transient to clear. | COMMENT |
| LOW | …esh-editor/tests/e2e/issue_1574_wrapped_down_scroll.rs | 514 | // Step 1: navigate to the end of paragraph one ("... data as UTF-8."). | COMMENT |
| LOW | …esh-editor/tests/e2e/issue_1574_wrapped_down_scroll.rs | 526 | // Step 2: one Down — cursor should be on the empty separator line. | COMMENT |
| LOW | …esh-editor/tests/e2e/issue_1574_wrapped_down_scroll.rs | 546 | // Step 3: Ctrl+Up until the cursor is on the last visible row AND | COMMENT |
| LOW | …esh-editor/tests/e2e/issue_1574_wrapped_down_scroll.rs | 617 | // Step 4: THE TEST — press Down once and inspect the cursor's row. | COMMENT |
| LOW | …esh-editor/tests/e2e/issue_1574_wrapped_down_scroll.rs | 684 | // Step 1: navigate to end of paragraph one, then Down to the empty | COMMENT |
| LOW | …esh-editor/tests/e2e/issue_1574_wrapped_down_scroll.rs | 714 | // Step 2: Ctrl+Down pushes the viewport forward, moving the cursor's | COMMENT |
| LOW | …esh-editor/tests/e2e/issue_1574_wrapped_down_scroll.rs | 796 | // Step 3: press Up once. The cursor should move to paragraph one's | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/e2e/lsp_toggle_desync.rs | 212 | // Step 1: Open the test file (triggers didOpen) | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/e2e/lsp_toggle_desync.rs | 222 | // Step 2: Type some text (triggers didChange) | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/e2e/lsp_toggle_desync.rs | 231 | // Step 3: Toggle LSP OFF (Alt+T) | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/e2e/lsp_toggle_desync.rs | 241 | // Step 4: Edit while LSP is disabled - type more text | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/e2e/lsp_toggle_desync.rs | 245 | // Step 5: Toggle LSP back ON (Alt+T) | COMMENT |
| LOW | crates/fresh-editor/tests/e2e/tab_drag.rs | 882 | // Step 1: drag the first tab to the right edge to create a new split. | COMMENT |
| LOW | crates/fresh-editor/tests/e2e/tab_drag.rs | 907 | // Step 2: identify the new (right) split and pick a tab in the | COMMENT |
| LOW | crates/fresh-editor/tests/e2e/tab_drag.rs | 956 | // Step 3: drag the other tab onto the new split's tab bar. | COMMENT |
| LOW | crates/fresh-editor/tests/e2e/tab_drag.rs | 972 | // Step 4: type a character. Without the fix, this panics in | COMMENT |
| LOW⚡ | …es/fresh-editor/tests/e2e/undo_bulk_edit_after_save.rs | 63 | // Step 1: Type some text to create buffers in the buffers vec | COMMENT |
| LOW⚡ | …es/fresh-editor/tests/e2e/undo_bulk_edit_after_save.rs | 68 | // Step 2: Toggle comment on the current line -> creates a BulkEdit event | COMMENT |
| LOW⚡ | …es/fresh-editor/tests/e2e/undo_bulk_edit_after_save.rs | 91 | // Step 4: Type more text after save. This creates a new Added(1) buffer | COMMENT |
| LOW⚡ | …es/fresh-editor/tests/e2e/undo_bulk_edit_after_save.rs | 99 | // Step 5: Undo everything back past the BulkEdit. | COMMENT |
| LOW⚡ | …es/fresh-editor/tests/e2e/undo_bulk_edit_after_save.rs | 152 | // Step 2: Indent selection (Tab) -> creates a BulkEdit | COMMENT |
| LOW⚡ | …es/fresh-editor/tests/e2e/undo_bulk_edit_after_save.rs | 156 | // Step 3: Save | COMMENT |
| LOW⚡ | …es/fresh-editor/tests/e2e/undo_bulk_edit_after_save.rs | 162 | // Step 4: Type after save (creates new buffers after consolidation) | COMMENT |
| LOW⚡ | …es/fresh-editor/tests/e2e/undo_bulk_edit_after_save.rs | 167 | // Step 5: Undo everything | COMMENT |
| LOW⚡ | …es/fresh-editor/tests/e2e/undo_bulk_edit_after_save.rs | 211 | // Step 1: Toggle comment (BulkEdit) | COMMENT |
| LOW⚡ | …es/fresh-editor/tests/e2e/undo_bulk_edit_after_save.rs | 220 | // Step 2: Save -> consolidate_after_save() replaces buffers | COMMENT |
| LOW⚡ | …es/fresh-editor/tests/e2e/undo_bulk_edit_after_save.rs | 226 | // Step 3: Undo -> should restore original content | COMMENT |
| LOW⚡ | …es/fresh-editor/tests/e2e/undo_bulk_edit_after_save.rs | 259 | // Step 1: Move line down (Alt+Down) - this is a BulkEdit | COMMENT |
| LOW⚡ | …es/fresh-editor/tests/e2e/undo_bulk_edit_after_save.rs | 269 | // Step 2: Save | COMMENT |
| LOW⚡ | …es/fresh-editor/tests/e2e/undo_bulk_edit_after_save.rs | 275 | // Step 3: Undo -> should restore original content | COMMENT |
| LOW | …es/fresh-editor/tests/e2e/undo_bulk_edit_after_save.rs | 79 | // Step 3: Save the file -> consolidate_after_save() replaces self.buffers | COMMENT |
| LOW | …es/fresh-editor/tests/e2e/undo_bulk_edit_after_save.rs | 141 | // Step 1: Select multiple lines | COMMENT |
| LOW⚡ | …s/fresh-editor/tests/e2e/undo_redo_marker_roundtrip.rs | 491 | // Step 1: Type "X" at start → "Xaa\nbb" | COMMENT |
| LOW⚡ | …s/fresh-editor/tests/e2e/undo_redo_marker_roundtrip.rs | 496 | // Step 2: MoveLineDown (BulkEdit) → should swap lines | COMMENT |
| LOW | crates/fresh-editor/tests/e2e/sessions.rs | 56 | // Step 2: createSession / setActiveSession / closeSession lifecycle. | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/e2e/menu_bar.rs | 699 | // Step 1: Menu bar should be visible initially (default) | COMMENT |
| 157 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | crates/fresh-core/src/api.rs | 1781 | /// Currently we isolate by plugin name, but we may want a more robust approach | COMMENT |
| MEDIUM | crates/fresh-core/src/api.rs | 4421 | /// Used for Typora-style seamless markdown: hiding syntax markers like `**`, `[](url)`, etc. | COMMENT |
| MEDIUM | crates/fresh-editor/Cargo.toml | 15 | # the `web` feature — but its Playwright harness is dev-only. | COMMENT |
| MEDIUM | crates/fresh-editor/Cargo.toml | 329 | # Test harness only (tests/common/harness.rs): a normal-dependency feature | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/git_blame.ts | 712 | // line number rather than the byte position so the jump is robust to | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/k8s-workspace.ts | 268 | // temp file? Keep it robust: apply the file path directly after the | COMMENT |
| MEDIUM | crates/fresh-editor/tests/kube_fake_kubectl.rs | 254 | // the "pod"). Use `sh -c` so it's robust across systems. | COMMENT |
| MEDIUM | crates/fresh-editor/tests/common/harness.rs | 743 | // (issue #1722), but the harness keeps the directory-presence | COMMENT |
| MEDIUM | …h-editor/tests/semantic/migrated_cursor_under_popup.rs | 72 | // at width 80, default config). To keep the assertion robust | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/file_explorer.rs | 1473 | // For a more robust test, we could check the internal state | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/file_explorer.rs | 4277 | // Use single ASCII chars so the assertion is robust against unicode | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/buffer_groups.rs | 161 | // Click in the middle of the marker text to be robust against | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/terminal.rs | 1359 | /// Test that terminal rendering is robust when cursor position equals height | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/terminal.rs | 5090 | /// seamless: every content row of the last live frame reads identically in | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/blog_showcases.rs | 3454 | // wait robust. ------------------------------------------------------- | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/menu_bar.rs | 80 | #[ignore = "F10 keybinding needs investigation - works in real editor but not in test harness"] | COMMENT |
| MEDIUM | …ditor/tests/e2e/syntax_highlighting_embedded_offset.rs | 441 | // 5 keystrokes * ~500 bytes = ~2500 bytes. Definitely under 10KB. | COMMENT |
| MEDIUM | …tes/fresh-editor/tests/e2e/issue_1577_unicode_width.rs | 320 | /// The assertion is narrow and robust: after the editor renders the | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/lsp.rs | 801 | /// Uses a fake LSP server for robust testing | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/lsp.rs | 1456 | /// Uses a fake LSP server for robust testing | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/lsp.rs | 1529 | /// Uses a fake LSP server for robust testing | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/lsp.rs | 1603 | /// Uses a fake LSP server for robust testing | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/lsp.rs | 9355 | // foxtrot. We use Goto Line via the palette instead to be robust | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/orchestrator_dock.rs | 436 | /// (the active session's seamless tab) must land on the session the editor | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/orchestrator_dock.rs | 504 | // session's card must wear the seamless tab. | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/orchestrator_dock.rs | 609 | /// True when `label`'s card wears the "seamless active tab": the dock | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/orchestrator_dock.rs | 640 | /// *seamless tab* — its border merges into the editor by scooping away | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/orchestrator_dock.rs | 644 | /// selection as a bg fill without the heavy border glyphs the seamless | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/orchestrator_dock.rs | 690 | // and the seamless tab moves with it. | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/orchestrator_dock.rs | 1807 | // the marker gutter). Walking to the button by its marker keeps this robust | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/orchestrator_dock.rs | 3104 | // right border is scooped away by the seamless tab, so flushness is | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/orchestrator_dock.rs | 3582 | // for the seamless tab. | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/orchestrator_dock.rs | 4365 | // drawn as a seamless tab with no right border, so the frame | COMMENT |
| MEDIUM | …h-editor/tests/e2e/plugins/review_diff_line_staging.rs | 111 | /// Re-deriving the target every step is what makes this robust to the async, | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/plugins/live_diff.rs | 34 | /// to keep this robust we scan every cell from the start of each row. | COMMENT |
| MEDIUM | …editor/tests/e2e/plugins/plugin_config_registration.rs | 90 | /// and the category name — robust against either layout. | COMMENT |
| MEDIUM | …tor/tests/e2e/plugins/devcontainer_usability_repros.rs | 16 | //! | Medium | Palette popup renders nothing when the layout has many horizontal splits — the prompt accepts the filter | COMMENT |
| MEDIUM | …tor/tests/e2e/plugins/devcontainer_usability_repros.rs | 296 | #[ignore = "harness PTY is too tall to crowd the popup off-screen; needs smaller PTY or popup-bounds accessor to repro"] | COMMENT |
| MEDIUM | crates/fresh-editor/src/app/orchestrator_persistence.rs | 614 | /// them), and a per-workspace stamp is the more robust shape anyway. It | COMMENT |
| MEDIUM | crates/fresh-editor/src/view/conceal.rs | 4 | //! Used for Typora-style "seamless canvas" markdown: hiding syntax markers like `**` | COMMENT |
| MEDIUM | crates/fresh-editor/src/view/shell/widgets.rs | 1490 | // **In the dock, the selected card is the seamless tab.** | COMMENT |
| MEDIUM | crates/fresh-editor/src/view/shell/widgets.rs | 2757 | // everywhere, and in the dock the seamless tab, which is | COMMENT |
| MEDIUM | crates/fresh-editor/src/view/shell/widgets.rs | 3850 | /// **The band never travels.** The two halves of the seamless tab are the | COMMENT |
| MEDIUM | crates/fresh-editor/src/view/shell/widgets.rs | 7299 | /// is the seamless tab instead — see below. | COMMENT |
| MEDIUM | crates/fresh-editor/src/view/shell/widgets.rs | 7314 | /// **In the dock the selected card is the seamless tab** (F.8): its rows | COMMENT |
| MEDIUM | crates/fresh-editor/src/view/file_tree/ignore.rs | 8 | //! Uses the `ignore` crate which provides robust .gitignore parsing | COMMENT |
| MEDIUM⚡ | crates/fresh-editor/src/services/lsp/mod.rs | 4 | //! It supports multiple concurrent language servers, async I/O, and robust | COMMENT |
| MEDIUM | crates/fresh-update/Cargo.toml | 30 | # elevate, so a poisoned endpoint can never reach `sudo`. Never enable in a | COMMENT |
| MEDIUM | …ates/fresh-editor-core/src/primitives/grammar/types.rs | 663 | // syntect's first-line regex, but mapping it explicitly is robust | COMMENT |
| MEDIUM | crates/fresh-editor-core/src/model/encoding.rs | 337 | /// Unlike UTF-8 above, this heuristic is robust to sample truncation: it uses | COMMENT |
| MEDIUM | scripts/check-semantic-test-isolation.sh | 5 | # fresh::test_api and the common test harness. They must NOT reach into | COMMENT |
| MEDIUM | scripts/check-semantic-test-isolation.sh | 12 | # docs/internal/scenario-migration-status.md as the "Direct-harness for | COMMENT |
| MEDIUM | scripts/check-semantic-test-isolation.sh | 23 | # use crate::common::harness::EditorTestHarness; | COMMENT |
| MEDIUM | scripts/check-semantic-test-isolation.sh | 25 | # Any file importing the harness directly is taking the harness-direct | COMMENT |
| MEDIUM | scripts/check-semantic-test-isolation.sh | 43 | # harness-direct pattern doesn't need. | COMMENT |
| MEDIUM | scripts/check-semantic-test-isolation.sh | 53 | # Conditionally-forbidden imports — allowed only in harness-direct | COMMENT |
| MEDIUM | scripts/check-semantic-test-isolation.sh | 76 | # For the harness-only patterns, allow imports in files that themselves | COMMENT |
| MEDIUM | scripts/test-install-failure-modes.sh | 125 | # first, so a broken harness reads as a failure rather than a clean sweep. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | tests/wrap_model/wrap_model/wrap_machine.py | 557 | self._row.push(token) | CODE |
| HIGH⚡ | tests/wrap_model/wrap_model/wrap_machine.py | 561 | self._row.push(token) | CODE |
| HIGH⚡ | tests/wrap_model/wrap_model/wrap_machine.py | 570 | self._row.push(token) | CODE |
| HIGH⚡ | tests/wrap_model/wrap_model/wrap_machine.py | 578 | self._row.push(token) | CODE |
| HIGH⚡ | tests/wrap_model/wrap_model/wrap_machine.py | 585 | self._row.push(token) | CODE |
| HIGH⚡ | tests/wrap_model/wrap_model/wrap_machine.py | 606 | self._row.push( | CODE |
| HIGH⚡ | tests/wrap_model/wrap_model/wrap_machine.py | 614 | self._row.push(token) | CODE |
| HIGH⚡ | tests/wrap_model/wrap_model/wrap_machine.py | 617 | self._row.push(Token.text_tok(raw[seg_start:].decode("utf-8"), src, token.style)) | CODE |
| HIGH⚡ | tests/wrap_model/wrap_model/wrap_machine.py | 629 | self._row.push(token) | CODE |
| HIGH⚡ | tests/wrap_model/wrap_model/wrap_machine.py | 635 | self._row.push(token) | CODE |
| HIGH⚡ | tests/wrap_model/wrap_model/wrap_machine.py | 642 | self._row.push(token) | CODE |
| HIGH | tests/wrap_model/wrap_model/wrap_machine.py | 198 | self._row.push(Token.text_tok(" " * start.line_indent, None)) | CODE |
| HIGH | tests/wrap_model/wrap_model/wrap_machine.py | 270 | self._row.push(Token.brk()) | CODE |
| HIGH | tests/wrap_model/wrap_model/wrap_machine.py | 276 | self._row.push(Token.text_tok(" " * self.line_indent, None)) | CODE |
| HIGH | tests/wrap_model/wrap_model/wrap_machine.py | 290 | self._row.push(token) | CODE |
| HIGH | tests/wrap_model/wrap_model/wrap_machine.py | 310 | self._row.push(token) | CODE |
| HIGH | tests/wrap_model/wrap_model/wrap_machine.py | 322 | self._row.push(token) | CODE |
| HIGH | tests/wrap_model/wrap_model/wrap_machine.py | 354 | self._row.push(token) | CODE |
| HIGH | tests/wrap_model/wrap_model/wrap_machine.py | 449 | self._row.push(Token.text_tok(chunk, src, token.style)) | CODE |
| HIGH | tests/wrap_model/wrap_model/wrap_machine.py | 518 | self._row.push(tok) | CODE |
| HIGH | tests/wrap_model/wrap_model/wrap_machine.py | 654 | self._row.push(Token.text_tok("".join(buf), src, token.style)) | CODE |
| HIGH | tests/wrap_model/wrap_model/wrap_machine.py | 663 | self._row.push(Token.text_tok("".join(buf), src, token.style)) | CODE |
| HIGH | scripts/coverage-html.py | 239 | out.push(`<div class="${cls}" id="L${no}"><span class="no">${no}</span><span class="ct">${c === undefined ? "" : c | CODE |
| HIGH | scripts/coverage-html.py | 253 | for (const no of nos) { const m = hits.get(no) === 0; if (m && !prevMiss) starts.push(no); prevMiss = m; } | CODE |
| HIGH | scripts/coverage-html.py | 254 | let cur = line || 0; | CODE |
| HIGH | scripts/coverage-html.py | 269 | tab = null; viewSrc(m[1], m[2] ? +m[2] : 0); | CODE |
| HIGH | scripts/bump-version.py | 275 | print(f" {step}. Commit changes: {YELLOW}git add Cargo.toml Cargo.lock debian/changelog && git commit -m 'B | CODE |
| HIGH | scripts/bump-version.py | 282 | print(f" {step}. Push: {YELLOW}git push && git push origin v{new_version}{NC}") | CODE |
| HIGH | scripts/ad/rec_dock.py | 16 | python3 rec_dock.py casts/switch.cast && python3 cast2frames.py casts/switch.cast frames/switch.json | STRING |
| HIGH | scripts/ad/rec.py | 305 | f"git reset -q; git checkout -q -- . 2>/dev/null; " | CODE |
| HIGH | scripts/ad/rec.py | 376 | os.system("pkill -9 -f 'target/debug/fresh' 2>/dev/null; pkill -9 -f coding_agent.py 2>/dev/null") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/fresh-editor/plugins/audit_mode.ts | 2529 | function pointSidebarAtCurrentFile(): void { | CODE |
| LOW | crates/fresh-editor/plugins/audit_mode.ts | 2609 | function adoptPanelFocusFromWidget(panel: 'files' | 'comments'): void { | CODE |
| LOW | crates/fresh-editor/plugins/audit_mode.ts | 3788 | function paintLineSelectionOverlay() { | CODE |
| LOW | crates/fresh-editor/plugins/audit_mode.ts | 4276 | function rememberPendingHunkAnchor(hunkId: string | null) { | CODE |
| LOW | crates/fresh-editor/plugins/audit_mode.ts | 4615 | function restoreCursorAfterRebuild() { | CODE |
| LOW | crates/fresh-editor/plugins/audit_mode.ts | 4647 | function refreshViewportDimensions(): boolean { | CODE |
| LOW | crates/fresh-editor/plugins/audit_mode.ts | 4736 | function computeFullFileAlignedDiff(oldContent: string, newContent: string, hunks: Hunk[]): AlignedLine[] { | CODE |
| LOW | crates/fresh-editor/plugins/audit_mode.ts | 8365 | function branchByteOffsetOfFirstCommit(): number { | CODE |
| LOW | crates/fresh-editor/plugins/audit_mode.ts | 8372 | function branchDeclareDetailSyntax(entries: TextPropertyEntry[]): void { | CODE |
| LOW | crates/fresh-editor/plugins/devcontainer.ts | 838 | async function getOrComputeProbedEnv(): Promise<Record<string, string>> { | CODE |
| LOW | crates/fresh-editor/plugins/devcontainer.ts | 1567 | function parseDevcontainerUpOutput(stdout: string): DevcontainerUpResult | null { | CODE |
| LOW | crates/fresh-editor/plugins/devcontainer.ts | 1581 | function buildContainerAuthorityPayload( | CODE |
| LOW | crates/fresh-editor/plugins/devcontainer.ts | 2075 | function closeStaleBuildLogBuffers(cwd: string): void { | CODE |
| LOW | crates/fresh-editor/plugins/devcontainer.ts | 2157 | async function stopContainerIfShutdownActionRequires(): Promise<void> { | CODE |
| LOW | crates/fresh-editor/plugins/agent_discovery.ts | 525 | function openWorkspaceForDiscovered( | CODE |
| LOW | crates/fresh-editor/plugins/pkg.ts | 3161 | function refreshPackageManagerIfOpen(): void { | CODE |
| LOW | crates/fresh-editor/plugins/flash.ts | 238 | function findWordStartMatchesInSplit(view: SplitView): Match[] { | CODE |
| LOW | crates/fresh-editor/plugins/vi_mode.ts | 416 | function getLinewiseReplacementText(deletedText: string): string | null { | CODE |
| LOW | crates/fresh-editor/plugins/vi_mode.ts | 453 | function ensureLinewiseRegisterText(text: string, lineTerminator: string): string { | CODE |
| LOW | crates/fresh-editor/plugins/vi_mode.ts | 527 | function isActiveBufferEditingDisabled(bufferId: number): boolean { | CODE |
| LOW | crates/fresh-editor/plugins/vi_mode.ts | 980 | function computeWordMotionTargetIndex( | CODE |
| LOW | crates/fresh-editor/plugins/vi_mode.ts | 1052 | function paragraphUpMotionTargetIndex(text: string, startIndex: number): number { | CODE |
| LOW | crates/fresh-editor/plugins/vi_mode.ts | 1065 | function paragraphDownMotionTargetIndex(text: string, startIndex: number): { index: number; reachedEof: boolean } { | CODE |
| LOW | crates/fresh-editor/plugins/vi_mode.ts | 1401 | async function placeCursorAtFirstNonBlank(bufferId: number, lineStart: number): Promise<void> { | CODE |
| LOW | crates/fresh-editor/plugins/vi_mode.ts | 1546 | async function handleWordMotionWithOperator(family: WordFamily, kind: WORDMotionKind): Promise<void> { | CODE |
| LOW | crates/fresh-editor/plugins/vi_mode.ts | 1567 | function wordMotionFromRepeatMotion(motion: string): { family: WordFamily; kind: WORDMotionKind } | null { | CODE |
| LOW | crates/fresh-editor/plugins/vi_mode.ts | 1926 | function findSearchTargetUnderCursor(text: string, cursorIndex: number, scanForwardOnMiss: boolean = false): WordSearchT | CODE |
| LOW | crates/fresh-editor/plugins/vi_mode.ts | 2053 | async function executeWordUnderCursorSearch(direction: WordSearchDirection, count: number): Promise<void> { | CODE |
| LOW | crates/fresh-editor/plugins/vi_mode.ts | 3286 | async function selectVisualRangeToTarget(target: number, includeDisplayTarget: boolean = true): Promise<void> { | CODE |
| LOW | crates/fresh-editor/plugins/vi_mode.ts | 4102 | async function enterFindCharOperatorMode(findType: FindCharType): Promise<void> { | CODE |
| LOW | crates/fresh-editor/plugins/orchestrator.ts | 2852 | async function refreshDiscoveredWorktrees(): Promise<void> { | CODE |
| LOW | crates/fresh-editor/plugins/orchestrator.ts | 4615 | function confirmHasUnreachableRemote(ids: number[]): boolean { | CODE |
| LOW | crates/fresh-editor/plugins/orchestrator.ts | 5248 | function syncDockSelectionToActive(): void { | CODE |
| LOW | crates/fresh-editor/plugins/orchestrator.ts | 6550 | function openRenameWorkspaceDialog(id: number): void { | CODE |
| LOW | crates/fresh-editor/plugins/orchestrator.ts | 6713 | function toggleDockFolderExpansion(folderKey: string): void { | CODE |
| LOW | crates/fresh-editor/plugins/orchestrator.ts | 6995 | function openDockContextMenuFromKeyboard(): void { | CODE |
| LOW | crates/fresh-editor/plugins/orchestrator.ts | 7193 | function openMoveToFolderForCurrent(): void { | CODE |
| LOW | crates/fresh-editor/plugins/orchestrator.ts | 7364 | function diveDockSelectionFromClick(fromEdge: "top" | "bottom" | null): void { | CODE |
| LOW | crates/fresh-editor/plugins/orchestrator.ts | 8755 | async function detectDefaultBranchWithFallback( | CODE |
| LOW | crates/fresh-editor/plugins/orchestrator.ts | 9714 | function looksLikeOurRemoteWorktree(s: AgentSession): boolean { | CODE |
| LOW | crates/fresh-editor/plugins/orchestrator.ts | 10691 | function setMachineHostSuggestions(items: string[]): void { | CODE |
| LOW | crates/fresh-editor/plugins/orchestrator.ts | 11348 | function openAddRepositoryFromForm(path: string, machineKey: string | null): void { | CODE |
| LOW | crates/fresh-editor/plugins/orchestrator.ts | 12300 | function resumeRepoDialogAfterMachine(savedKey: string | null): void { | CODE |
| LOW | crates/fresh-editor/plugins/orchestrator.ts | 12739 | function closeMachinesDialogKeepDock(): void { | CODE |
| LOW | crates/fresh-editor/plugins/orchestrator.ts | 13395 | async function probeRemoteProjectDefaults(): Promise<void> { | CODE |
| LOW | crates/fresh-editor/plugins/orchestrator.ts | 14417 | function scheduleProjectPathReprobe(): void { | CODE |
| LOW | crates/fresh-editor/plugins/orchestrator.ts | 14456 | function scheduleCompletionRefresh( | CODE |
| LOW | crates/fresh-editor/plugins/orchestrator.ts | 16152 | async function launchAgentInCurrentWorkspace( | CODE |
| LOW | crates/fresh-editor/plugins/clangd_support.ts | 296 | function onClangdCustomNotification(payload: { | CODE |
| LOW | crates/fresh-editor/plugins/git_log.ts | 1000 | async function deriveFileAndLineFromDiffCursor( | CODE |
| LOW | crates/fresh-editor/plugins/git_log.ts | 1244 | function updateBufferFocusedContext(): void { | CODE |
| LOW | crates/fresh-editor/plugins/merge_conflict.ts | 1169 | function computeResultConflictOffset(conflictIndex: number): number { | CODE |
| LOW | crates/fresh-editor/plugins/merge_conflict.ts | 1792 | function registerMergeModeCommands(): void { | CODE |
| LOW | crates/fresh-editor/plugins/merge_conflict.ts | 1801 | function unregisterMergeModeCommands(): void { | CODE |
| LOW | crates/fresh-editor/plugins/search_replace.ts | 164 | function seedMatchOptionsFromConfig(): void { | CODE |
| LOW | crates/fresh-editor/plugins/theme_editor.ts | 262 | function fieldRefersToStyledColorDef(fieldObj: Record<string, unknown>): boolean { | CODE |
| LOW | crates/fresh-editor/plugins/theme_editor.ts | 1465 | function applySelectionHighlighting(cachedEntries?: TextPropertyEntry[]): void { | CODE |
| LOW | crates/fresh-editor/plugins/theme_editor.ts | 2488 | function getCurrentSelectableIndex(): number { | CODE |
| LOW | crates/fresh-editor/plugins/git_explorer.ts | 152 | async function refreshGitExplorerDecorations() { | CODE |
| LOW | crates/fresh-editor/plugins/env-manager.ts | 129 | function devcontainerConfigPresent(): boolean { | CODE |
| 97 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | crates/fresh-editor/src/services/remote/agent.py | 210 | except OSError: | CODE |
| HIGH | crates/fresh-editor/src/services/remote/agent.py | 407 | except OSError: | CODE |
| HIGH | crates/fresh-editor/src/services/remote/agent.py | 114 | except OSError: | CODE |
| HIGH | crates/fresh-editor/src/services/remote/agent.py | 332 | except OSError: | CODE |
| HIGH | crates/fresh-editor/src/services/remote/agent.py | 194 | except OSError: | CODE |
| HIGH | scripts/serial_lag_diagnose.py | 70 | except Exception: | CODE |
| HIGH | scripts/serial_lag_diagnose.py | 74 | except Exception: | CODE |
| HIGH | scripts/memory-profile.py | 339 | except OSError: | CODE |
| HIGH | scripts/memory-profile.py | 417 | except OSError: | CODE |
| HIGH | scripts/memory-profile.py | 421 | except OSError: | CODE |
| HIGH | scripts/serial_lag_bench.py | 147 | except Exception: | CODE |
| HIGH | scripts/serial_lag_bench.py | 151 | except Exception: | CODE |
| HIGH | scripts/ad/rec.py | 374 | except ProcessLookupError: | CODE |
| HIGH | scripts/ad/waiting_agent.py | 9 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/wrap_model/wrap_model/metrics.py | 22 | CODE | |
| LOW | tests/wrap_model/wrap_model/transforms.py | 17 | CODE | |
| LOW | tests/wrap_model/wrap_model/wrap_machine.py | 25 | CODE | |
| LOW | tests/wrap_model/wrap_model/__init__.py | 20 | CODE | |
| LOW | tests/wrap_model/wrap_model/__init__.py | 20 | CODE | |
| LOW | tests/wrap_model/wrap_model/__init__.py | 20 | CODE | |
| LOW | tests/wrap_model/wrap_model/__init__.py | 21 | CODE | |
| LOW | tests/wrap_model/wrap_model/__init__.py | 21 | CODE | |
| LOW | tests/wrap_model/wrap_model/__init__.py | 21 | CODE | |
| LOW | tests/wrap_model/wrap_model/__init__.py | 21 | CODE | |
| LOW | tests/wrap_model/wrap_model/__init__.py | 21 | CODE | |
| LOW | tests/wrap_model/wrap_model/__init__.py | 21 | CODE | |
| LOW | tests/wrap_model/wrap_model/__init__.py | 21 | CODE | |
| LOW | tests/wrap_model/wrap_model/__init__.py | 21 | CODE | |
| LOW | tests/wrap_model/wrap_model/__init__.py | 31 | CODE | |
| LOW | tests/wrap_model/wrap_model/__init__.py | 31 | CODE | |
| LOW | tests/wrap_model/wrap_model/__init__.py | 31 | CODE | |
| LOW | tests/wrap_model/wrap_model/__init__.py | 32 | CODE | |
| LOW | tests/wrap_model/wrap_model/__init__.py | 32 | CODE | |
| LOW | tests/wrap_model/wrap_model/__init__.py | 33 | CODE | |
| LOW | tests/wrap_model/wrap_model/__init__.py | 33 | CODE | |
| LOW | tests/wrap_model/wrap_model/__init__.py | 34 | CODE | |
| LOW | tests/wrap_model/wrap_model/__init__.py | 34 | CODE | |
| LOW | tests/wrap_model/wrap_model/__init__.py | 34 | CODE | |
| LOW | tests/wrap_model/wrap_model/__init__.py | 35 | CODE | |
| LOW | tests/wrap_model/wrap_model/__init__.py | 35 | CODE | |
| LOW | tests/wrap_model/wrap_model/__init__.py | 35 | CODE | |
| LOW | tests/wrap_model/wrap_model/__init__.py | 35 | CODE | |
| LOW | tests/wrap_model/wrap_model/__init__.py | 36 | CODE | |
| LOW | tests/wrap_model/wrap_model/__init__.py | 36 | CODE | |
| LOW | tests/wrap_model/wrap_model/__init__.py | 36 | CODE | |
| LOW | tests/wrap_model/wrap_model/__init__.py | 36 | CODE | |
| LOW | tests/wrap_model/wrap_model/__init__.py | 36 | CODE | |
| LOW | tests/wrap_model/wrap_model/tokens.py | 8 | CODE | |
| LOW | tests/wrap_model/wrap_model/base_tokens.py | 14 | CODE | |
| LOW | tests/wrap_model/wrap_model/row_layout.py | 13 | CODE | |
| LOW | tests/wrap_model/wrap_model/viewport.py | 21 | CODE | |
| LOW | tests/wrap_model/wrap_model/decorations.py | 17 | CODE | |
| LOW | tests/wrap_model/wrap_model/buffer.py | 17 | CODE | |
| LOW | tests/wrap_model/wrap_model/width.py | 25 | CODE | |
| LOW | tests/wrap_model/wrap_model/editor.py | 23 | CODE | |
| LOW | tests/wrap_model/wrap_model/editor.py | 27 | CODE | |
| LOW | tests/wrap_model/wrap_model/wrap_index.py | 28 | CODE | |
| LOW | tests/wrap_model/tests/test_cursor_reveal_placement.py | 13 | CODE | |
| LOW | tests/wrap_model/tests/conftest.py | 9 | CODE | |
| LOW | tests/wrap_model/tests/test_wrap_index.py | 11 | CODE | |
| LOW | tests/wrap_model/tests/test_lazy_decorations.py | 16 | CODE | |
| LOW | tests/wrap_model/tests/test_complexity.py | 12 | CODE | |
| LOW | tests/wrap_model/tests/test_matrix.py | 20 | CODE | |
| LOW | tests/wrap_model/tests/test_viewport.py | 9 | CODE | |
| LOW | tests/wrap_model/tests/test_wrap_machine.py | 8 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | crates/fresh-editor/scripts/png_to_ansi.py | 44 | print(f"Error: File '{image_path}' not found", file=sys.stderr) | CODE |
| LOW⚡ | crates/fresh-editor/scripts/png_to_ansi.py | 46 | except Exception as e: | CODE |
| MEDIUM⚡ | crates/fresh-editor/scripts/png_to_ansi.py | 47 | print(f"Error: {e}", file=sys.stderr) | CODE |
| MEDIUM | crates/fresh-editor/scripts/generate_ts_types.py | 206 | print(f"Error: {rust_file} not found") | STRING |
| MEDIUM⚡ | crates/fresh-editor/scripts/parse_flamegraph.py | 582 | print(f"Error: File not found: {args.svg_file}", file=sys.stderr) | CODE |
| LOW⚡ | crates/fresh-editor/scripts/parse_flamegraph.py | 584 | except Exception as e: | CODE |
| MEDIUM⚡ | crates/fresh-editor/scripts/parse_flamegraph.py | 585 | print(f"Error reading file: {e}", file=sys.stderr) | CODE |
| LOW | crates/fresh-editor/src/services/remote/agent.py | 597 | except Exception as e: | CODE |
| LOW | crates/fresh-editor/src/services/remote/agent.py | 836 | except Exception as e: | CODE |
| LOW | crates/fresh-editor/src/services/remote/spawner.rs | 1122 | except Exception: | CODE |
| LOW | scripts/verify-release-assets.sh | 56 | except Exception: | CODE |
| LOW | scripts/verify-release-assets.sh | 99 | except Exception: print(0); raise SystemExit | CODE |
| LOW | scripts/rehearse-self-update.sh | 39 | except Exception: | CODE |
| LOW | scripts/serial_lag_diagnose.py | 70 | except Exception: | CODE |
| LOW | scripts/serial_lag_diagnose.py | 74 | except Exception: | CODE |
| MEDIUM | scripts/serial_lag_diagnose.py | 67 | def kill(pid, fd): | CODE |
| MEDIUM | scripts/winget-publish.py | 119 | print(f"Error: Unexpected origin remote: {origin_url}") | CODE |
| MEDIUM | scripts/winget-publish.py | 148 | print(f"Error: Package not found in upstream: {MANIFEST_BASE}") | CODE |
| MEDIUM | scripts/winget-publish.py | 155 | print("Error: No existing versions found") | CODE |
| LOW | scripts/memory-profile.py | 194 | except Exception as exc: # pragma: no cover - child side | CODE |
| LOW | scripts/serial_lag_bench.py | 37 | except Exception as e: | CODE |
| LOW | scripts/serial_lag_bench.py | 147 | except Exception: | CODE |
| LOW | scripts/serial_lag_bench.py | 151 | except Exception: | CODE |
| LOW | scripts/serial_lag_bench.py | 192 | except Exception as e: | CODE |
| LOW | scripts/ad/waiting_agent.py | 9 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | crates/fresh-editor/plugins/devcontainer.ts | 2751 | // The scaffold command is the only palette entry that makes sense | COMMENT |
| MEDIUM | …resh-editor/tests/e2e/markdown_compose_scroll_reach.rs | 797 | // mouse-wheel cases here therefore serve as **guardrails** — they | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/blog_showcases.rs | 2477 | // Commit 1 — initial scaffold (Alice). | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/blog_showcases.rs | 4659 | /// The Orchestrator dock as an agentic-multitasking cockpit: one repository | COMMENT |
| MEDIUM | crates/fresh-editor/src/main.rs | 2450 | // the package: every scaffold writing `plugin.ts` would make them all | COMMENT |
| MEDIUM | crates/fresh-editor/src/main.rs | 6151 | // claim it first and try to scaffold a package called "reload". | COMMENT |
| MEDIUM | crates/fresh-editor/src/app/popup_dialogs.rs | 924 | // No .devcontainer present — offer the scaffold | COMMENT |
| MEDIUM | crates/fresh-editor/src/app/popup_dialogs.rs | 926 | // without dropping to a shell. The scaffold | COMMENT |
| MEDIUM | docs/internal/virtual-space-scoping.md | 178 | ### 4.4 Rendering — `view/ui/split_rendering/orchestration/render_line/` (the risky part) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/fresh-editor/scripts/generate_ts_types.py | 38 | CODE | |
| LOW | crates/fresh-editor/scripts/generate_ts_types.py | 120 | CODE | |
| LOW | crates/fresh-editor/scripts/parse_flamegraph.py | 151 | CODE | |
| LOW | crates/fresh-editor/scripts/parse_flamegraph.py | 304 | CODE | |
| LOW | crates/fresh-editor/scripts/parse_flamegraph.py | 336 | CODE | |
| LOW | crates/fresh-editor/src/services/remote/agent.py | 179 | CODE | |
| LOW | crates/fresh-editor/src/services/remote/agent.py | 284 | CODE | |
| LOW | crates/fresh-editor/src/services/remote/agent.py | 528 | CODE | |
| LOW | crates/fresh-editor/src/services/remote/agent.py | 637 | CODE | |
| LOW | crates/fresh-editor/src/services/remote/agent.py | 717 | CODE | |
| LOW | crates/fresh-editor/src/services/remote/agent.py | 551 | CODE | |
| LOW | tests/wrap_model/wrap_model/transforms.py | 66 | CODE | |
| LOW | tests/wrap_model/wrap_model/wrap_machine.py | 380 | CODE | |
| LOW | tests/wrap_model/wrap_model/wrap_machine.py | 521 | CODE | |
| LOW | tests/wrap_model/wrap_model/base_tokens.py | 37 | CODE | |
| LOW | tests/wrap_model/wrap_model/row_layout.py | 123 | CODE | |
| LOW | tests/wrap_model/wrap_model/width.py | 88 | CODE | |
| LOW | tests/wrap_model/wrap_model/wrap_index.py | 489 | CODE | |
| LOW | tests/wrap_model/wrap_model/wrap_index.py | 559 | CODE | |
| LOW | tests/wrap_model/tests/test_matrix.py | 180 | CODE | |
| LOW | tests/wrap_model/tests/test_matrix.py | 372 | CODE | |
| LOW | tests/wrap_model/tests/test_matrix.py | 407 | CODE | |
| LOW | tests/wrap_model/tests/test_wrap_machine.py | 77 | CODE | |
| LOW | tests/wrap_model/tests/test_wrap_machine.py | 82 | CODE | |
| LOW | scripts/memory-profile.py | 265 | CODE | |
| LOW | scripts/memory-profile.py | 358 | CODE | |
| LOW | scripts/memory-profile.py | 434 | CODE | |
| LOW | scripts/memory-profile.py | 400 | CODE | |
| LOW | scripts/ad/rec.py | 310 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/fresh-editor/tests/e2e/merge_conflict.rs | 18 | .args(["config", "user.email", "test@test.com"]) | CODE |
| LOW | crates/fresh-editor/tests/e2e/merge_conflict.rs | 153 | .args(["config", "user.email", "test@test.com"]) | CODE |
| LOW | crates/fresh-editor/tests/e2e/merge_conflict.rs | 887 | .args(["config", "user.email", "test@test.com"]) | CODE |
| LOW | …resh-editor/tests/e2e/markdown_compose_scroll_reach.rs | 149 | let long = "lorem ipsum dolor sit amet consectetur adipiscing elit \ | CODE |
| LOW | …resh-editor/tests/e2e/markdown_compose_scroll_reach.rs | 149 | let long = "lorem ipsum dolor sit amet consectetur adipiscing elit \ | CODE |
| LOW | crates/fresh-editor/tests/e2e/scrollbar_markers.rs | 21 | .map(|i| format!("line {i:04}: lorem ipsum dolor sit amet")) | CODE |
| LOW | crates/fresh-editor/tests/e2e/scrollbar_markers.rs | 21 | .map(|i| format!("line {i:04}: lorem ipsum dolor sit amet")) | CODE |
| LOW | crates/fresh-editor/tests/e2e/blog_showcases.rs | 2496 | .args(["config", "user.name", "John Doe"]) | CODE |
| LOW | crates/fresh-editor/tests/e2e/blog_showcases.rs | 2549 | .args(["config", "user.name", "John Doe"]) | CODE |
| LOW | …ates/fresh-editor/tests/e2e/search_center_on_scroll.rs | 83 | let long = "lorem ipsum dolor sit amet ".repeat(12); // ~324 cols | CODE |
| LOW | …ates/fresh-editor/tests/e2e/search_center_on_scroll.rs | 83 | let long = "lorem ipsum dolor sit amet ".repeat(12); // ~324 cols | CODE |
| LOW | crates/fresh-editor/tests/e2e/document_model.rs | 17 | Line 3: Lorem ipsum dolor sit amet\n\ | CODE |
| LOW | crates/fresh-editor/tests/e2e/document_model.rs | 17 | Line 3: Lorem ipsum dolor sit amet\n\ | CODE |
| LOW | crates/fresh-editor/tests/e2e/split_tabs.rs | 271 | .args(["config", "user.email", "test@test.com"]) | CODE |
| LOW | crates/fresh-editor/tests/e2e/live_grep.rs | 392 | let long = "lorem ipsum dolor sit amet ".repeat(12); // ~324 chars | CODE |
| LOW | crates/fresh-editor/tests/e2e/live_grep.rs | 392 | let long = "lorem ipsum dolor sit amet ".repeat(12); // ~324 chars | CODE |
| LOW | …h-editor/tests/e2e/issue_1554_scrollbar_theme_color.rs | 14 | .map(|i| format!("line {i:04}: lorem ipsum dolor sit amet")) | CODE |
| LOW | …h-editor/tests/e2e/issue_1554_scrollbar_theme_color.rs | 14 | .map(|i| format!("line {i:04}: lorem ipsum dolor sit amet")) | CODE |
| LOW | crates/fresh-editor/tests/e2e/plugins/git.rs | 3013 | repo.create_file("test.txt", "placeholder"); | CODE |
| LOW | crates/fresh-editor/tests/e2e/plugins/git.rs | 3066 | repo.create_file("test.txt", "placeholder"); | CODE |
| LOW | crates/fresh-editor/tests/e2e/plugins/git.rs | 3130 | repo.create_file("test.txt", "placeholder"); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | crates/fresh-editor/src/app/terminal.rs | 271 | .with_user_shell_override(self.resources.config.terminal.shell.as_ref()) | CODE |
| CRITICAL | crates/fresh-editor/src/app/terminal.rs | 690 | let rulers = self.resources.config.editor.rulers.clone(); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | crates/fresh-gui/resources/macos/create-app-bundle.sh | 2 | # Create a macOS .app bundle for Fresh editor (GUI mode). | COMMENT |
| MEDIUM | crates/fresh-editor/scripts/parse_flamegraph.py | 214 | # Create a lookup by y level | COMMENT |
| MEDIUM | .github/workflows/release.yml | 353 | # Create the tarball | COMMENT |
| MEDIUM | .github/workflows/release.yml | 487 | # Create a stable source tarball (GitHub's auto-generated archives are not stable) | COMMENT |
| MEDIUM | .github/workflows/release.yml | 792 | # Create the tarball | COMMENT |
| MEDIUM | .github/workflows/release-npm.yml | 231 | # Create the tarball | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/fresh-editor/tests/common/fake_lsp.rs | 1041 | # Check if we have a stored result_id for this URI | COMMENT |
| LOW | …editor/tests/e2e/lsp_publish_diagnostics_capability.rs | 81 | # Check if client advertises publishDiagnostics capability | COMMENT |
| LOW | crates/fresh-editor/scripts/stress_test.sh | 38 | # Check if another test already failed | COMMENT |
| LOW | crates/fresh-editor/scripts/stress_test.sh | 71 | # Check if another test already failed | COMMENT |
| LOW | crates/fresh-editor/scripts/parse_flamegraph.py | 240 | # Check if candidate contains our frame (x range overlaps and candidate is wider or equal) | COMMENT |
| LOW | crates/fresh-editor/scripts/parse_flamegraph.py | 322 | # Check if this stack is a prefix of any other stack | COMMENT |
| LOW | crates/fresh-editor/scripts/parse_flamegraph.py | 326 | # Check if stack_tuple is a prefix of other | COMMENT |
| LOW | .github/workflows/release.yml | 43 | # Check if prerelease (contains -, like 0.1.0-beta.1) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/fresh-gui/resources/macos/create-app-bundle.sh | 4 | # Usage: | COMMENT |
| LOW | crates/fresh-editor/scripts/record-demo.sh | 5 | # Usage: | COMMENT |
| LOW | scripts/generate-theme-diff.sh | 10 | # Usage: | COMMENT |
| LOW | scripts/install.sh | 4 | # Usage: | COMMENT |
| LOW | scripts/update-showcases.sh | 6 | # Usage: | COMMENT |
| LOW | scripts/repro_plugin_hang.sh | 18 | # Usage: | COMMENT |
| LOW | scripts/generate-theme-screenshots.sh | 6 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/wrap_model/wrap_model/__init__.py | 38 | __all__ = [ | CODE |
| LOW | tests/wrap_model/wrap_model/viewport.py | 81 | def set_top_row(self, row: int) -> None: | CODE |
| LOW | tests/wrap_model/wrap_model/editor.py | 127 | def set_geometry(self, rule: WrapRule) -> None: | CODE |
| LOW | tests/wrap_model/wrap_model/editor.py | 456 | __all__ = [ | CODE |
| LOW | scripts/bump-version.py | 81 | def update_cargo_toml(cargo_toml_path: Path, current_version: str, new_version: str) -> None: | CODE |
| LOW | scripts/bump-version.py | 121 | def update_cargo_lock() -> None: | CODE |
| LOW | scripts/bump-version.py | 129 | def update_debian_changelog(repo_root: Path) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/fresh-editor/scripts/parse_flamegraph.py | 96 | CODE | |
| LOW | scripts/memory-profile.py | 265 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/fresh-editor/src/services/remote/agent.py | 808 | def handle_request(line): | CODE |