Terminal based IDE & text editor: easy, powerful and fast
This report presents the forensic synthetic code analysis of sinelaw/fresh, a Rust project with 8,558 GitHub stars. SynthScan v2.0 examined 938,305 lines of code across 1628 source files, recording 4767 pattern matches distributed across 20 syntactic categories. The overall adjusted score of 6.4 places this repository in the Low AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 4767 distinct pattern matches across 20 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Cargo.toml | 81 | [profile.release] | COMMENT |
| LOW | Cargo.toml | 101 | # * strip = true — strips symbols + debuginfo from the final binary. | COMMENT |
| LOW | crates/fresh-ui/Cargo.toml | 21 | # Test and example support only. The library itself still depends on | 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 | 501 | /// and short-circuits above it, leaving it holding the previous frame's | COMMENT |
| LOW | crates/fresh-ui/tests/layout.rs | 721 | .1 | COMMENT |
| LOW | crates/fresh-ui/tests/pointer.rs | 441 | "a bare move after release does not scroll" | COMMENT |
| LOW | crates/fresh-ui/tests/desc.rs | 81 | assert_eq!(node_type(&h).0, ElemType::Host); | 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 | 121 | /// A bordered panel whose content cannot fit, so a bound has something to do. | COMMENT |
| LOW | crates/fresh-ui/tests/support/demo/view.rs | 201 | /// **The point of it is what it does *not* absorb.** The strip spans the whole | 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 | /// | 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/element.rs | 61 | /// rebuild when the value changes. | COMMENT |
| LOW | crates/fresh-ui/src/lib.rs | 1 | //! A retained reconciling UI tree. | 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 | 261 | /// Which press in a run produced this, as the host reported it: `1` for a | COMMENT |
| LOW | crates/fresh-ui/src/hit.rs | 1 | //! Hit-testing and propagation. | COMMENT |
| LOW | crates/fresh-ui/src/hit.rs | 121 | // Dismissal happens for any button; it *claims* only for the | COMMENT |
| LOW | crates/fresh-ui/src/hit.rs | 261 | pub fn hit_test(&self, p: Point) -> Vec<ElementId> { | COMMENT |
| LOW | crates/fresh-ui/src/component.rs | 1 | //! Composition: a component turns props plus state into a description. | COMMENT |
| LOW | crates/fresh-ui/src/desc.rs | 1 | //! Descriptions: the immutable input to reconciliation. | COMMENT |
| LOW | crates/fresh-ui/src/desc.rs | 41 | } | COMMENT |
| LOW | crates/fresh-ui/src/desc.rs | 61 | /// container hands a child is negotiated between them, and the floor is the | COMMENT |
| LOW | crates/fresh-ui/src/desc.rs | 101 | Gesture(GestureProps<M>), | COMMENT |
| LOW | crates/fresh-ui/src/desc.rs | 201 | /// How a run gives up cells it was not given. | COMMENT |
| LOW | crates/fresh-ui/src/desc.rs | 221 | } | COMMENT |
| LOW | crates/fresh-ui/src/desc.rs | 281 | #[derive(Clone, Copy, PartialEq, Eq, Debug, Default)] | COMMENT |
| LOW | crates/fresh-ui/src/desc.rs | 501 | pub place: Place, | COMMENT |
| LOW | crates/fresh-ui/src/desc.rs | 1021 | self.h = Sizing::Flex(n); | COMMENT |
| LOW | crates/fresh-ui/src/behavior/tasks.rs | 1 | //! `Tasks`: async ownership, without the library choosing a runtime. | COMMENT |
| LOW | crates/fresh-ui/src/behavior/anchor.rs | 1 | //! `Anchor`: addressing a mounted surface by handle. | COMMENT |
| LOW | crates/fresh-ui/src/behavior/misc.rs | 121 | COMMENT | |
| LOW | crates/fresh-ui/src/behavior/mod.rs | 1 | //! Reusable stateful concerns, enrolled for ordered teardown. | COMMENT |
| LOW | crates/fresh-ui/src/render/spec.rs | 21 | /// Paint order *is* list order. | COMMENT |
| LOW | crates/fresh-ui/src/render/spec.rs | 121 | /// coordinate, because a million-row list has no cell extent that fits | COMMENT |
| LOW | crates/fresh-ui/src/render/prim.rs | 321 | // Each child's main-axis floor, read once: it is consulted when the | COMMENT |
| LOW | crates/fresh-ui/src/render/layout.rs | 1 | //! The layout pass, over the render tree. | COMMENT |
| LOW | crates/fresh-ui/src/render/object.rs | 1 | //! The third tree: render objects. | COMMENT |
| LOW | crates/fresh-ui/src/render/object.rs | 61 | /// What a container may do to its children while laying itself out. | COMMENT |
| LOW | crates/fresh-ui/src/render/object.rs | 81 | /// Who keeps its size when the container runs out of room: higher yields | COMMENT |
| LOW | crates/fresh-ui/src/render/object.rs | 101 | fn set_offset(&mut self, at: Point); | COMMENT |
| LOW | crates/fresh-ui/src/render/object.rs | 121 | /// The furthest the offset may travel. | COMMENT |
| LOW | crates/fresh-ui/src/render/object.rs | 201 | /// [`clips`](Self::clips) is true: `(x, y)` cells on each side. | COMMENT |
| LOW | crates/fresh-ui/src/focus/intent.rs | 1 | //! Shortcuts to intents to actions. | COMMENT |
| LOW | crates/fresh-ui/src/focus/tree.rs | 1 | //! The focus tree. | COMMENT |
| LOW | crates/fresh-ui/src/widgets/list.rs | 61 | } | COMMENT |
| LOW | crates/fresh-ui/src/widgets/mod.rs | 1 | //! The widget set. | COMMENT |
| LOW | crates/fresh-core/proptest-regressions/file_uri.txt | 1 | # Seeds for failure cases propance has generated in the past. It is | COMMENT |
| LOW | crates/fresh-core/src/display_width.rs | 1 | //! Display width calculation for Unicode text. | COMMENT |
| LOW | crates/fresh-core/src/file_explorer.rs | 41 | #[ts(export)] | COMMENT |
| LOW | crates/fresh-core/src/file_explorer.rs | 61 | /// Optional tooltip shown when hovering the trailing slot. | COMMENT |
| LOW | crates/fresh-core/src/file_explorer.rs | 81 | #[serde(default)] | COMMENT |
| LOW | crates/fresh-core/src/file_uri.rs | 461 | // %2f is lowercase hex for '/', but it appears within a segment (not a separator) | COMMENT |
| LOW | crates/fresh-core/src/config.rs | 21 | #[schemars(extend("x-display-field" = "/enabled"))] | COMMENT |
| LOW | crates/fresh-core/src/command.rs | 1 | use serde::{Deserialize, Serialize}; | COMMENT |
| LOW | crates/fresh-core/src/command.rs | 21 | pub description: String, | COMMENT |
| LOW | crates/fresh-core/src/command.rs | 41 | #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, ts_rs::TS)] | COMMENT |
| 3469 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | crates/fresh-ui/tests/paint.rs | 716 | // ── clipping ─────────────────────────────────────────────────────────────── | 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 | 2658 | /// ╭─ Label ──────────────────╮ | COMMENT |
| MEDIUM | crates/fresh-core/src/api.rs | 2660 | /// ╰──────────────────────────╯ | COMMENT |
| MEDIUM | crates/fresh-core/src/api.rs | 6539 | // ── Tests for FromJs / IntoJs impls ──────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-core/src/api.rs | 7943 | // ── PluginApi dispatch / mutation tests ──────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-plugin-runtime/src/ts_export.rs | 561 | // ── lifecycle ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-plugin-runtime/src/ts_export.rs | 582 | // ── buffer lifecycle ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-plugin-runtime/src/ts_export.rs | 587 | // ── file I/O ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-plugin-runtime/src/ts_export.rs | 610 | // ── text edits ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-plugin-runtime/src/ts_export.rs | 635 | // ── cursor & viewport ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-plugin-runtime/src/ts_export.rs | 653 | // ── rendering ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-plugin-runtime/src/ts_export.rs | 719 | // ── commands ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | crates/fresh-plugin-runtime/src/ts_export.rs | 733 | // ── prompts ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | crates/fresh-plugin-runtime/src/ts_export.rs | 739 | // ── mouse ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | crates/fresh-plugin-runtime/src/ts_export.rs | 744 | // ── LSP ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-plugin-runtime/src/ts_export.rs | 773 | // ── UI events ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | crates/fresh-plugin-runtime/src/ts_export.rs | 787 | // ── PTY terminals (see crates/fresh-core/src/hooks.rs) ─────────────────── | COMMENT |
| MEDIUM⚡ | crates/fresh-plugin-runtime/src/ts_export.rs | 795 | // ── filesystem watching (watchPath plugin API) ──────────────────────────── | COMMENT |
| MEDIUM⚡ | crates/fresh-plugin-runtime/src/ts_export.rs | 803 | // ── editor sessions (Orchestrator; see orchestrator-sessions-design.md) ──────── | COMMENT |
| MEDIUM⚡ | crates/fresh-plugin-runtime/src/ts_export.rs | 808 | // ── widget runtime ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …es/fresh-plugin-runtime/src/backend/quickjs_backend.rs | 820 | // ─── 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/live_grep.ts | 132 | // ── Scopes (Universal Search) ───────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/live_grep.ts | 188 | // ── Search modes ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/live_grep.ts | 260 | // ── Registry ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/live_grep.ts | 431 | // ── Built-in providers ────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/live_grep.ts | 643 | // ── Wiring ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/orchestrator.ts | 1234 | // ── Workspace names: manual rename + terminal-tracking auto-name ───────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/orchestrator.ts | 1503 | // ── Pending placeholder row presentation (single source of truth) ───────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/orchestrator.ts | 1587 | // ╭──────────────────────────────╮ | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/orchestrator.ts | 1590 | // ╰──────────────────────────────╯ | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/orchestrator.ts | 2414 | // ╭────────────────────────────────────╮ | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/orchestrator.ts | 2417 | // ╰────────────────────────────────────╯ | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/orchestrator.ts | 10193 | // ── organising the dock ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/orchestrator.ts | 10227 | // ── lifecycle ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/orchestrator.ts | 10249 | // ── the archive ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/orchestrator.ts | 10270 | // ── dock view state ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/dashboard.ts | 4 | // ═════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/dashboard.ts | 42 | // ═════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/dashboard.ts | 102 | // ── Public section API ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/dashboard.ts | 270 | // ── Internal state ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/dashboard.ts | 309 | // ── Drawing primitives ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/dashboard.ts | 392 | // ── Sections (sentinel / placeholder factories) ──────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/dashboard.ts | 410 | // ── Section registry + DashboardContext factory ──────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/dashboard.ts | 633 | // ── Frame + section renderer ─────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/dashboard.ts | 870 | // ── Paint the buffer ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/dashboard.ts | 1093 | // ── Data fetchers ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/dashboard.ts | 1730 | // ── Lifecycle ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/dashboard.ts | 1922 | // ── Editor event handlers ───────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/lib/fresh.d.ts | 5075 | // ── lifecycle ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/lib/fresh.d.ts | 5099 | // ── buffer lifecycle ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/fresh-editor/plugins/lib/fresh.d.ts | 5109 | // ── file I/O ───────────────────────────────────────────────────────────── | COMMENT |
| 320 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | crates/fresh-editor/tests/focused_bug_test.rs | 78 | // Step 1: Enter | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/focused_bug_test.rs | 88 | // Step 2: Type "a0" | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/focused_bug_test.rs | 96 | // Step 3: Left | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/focused_bug_test.rs | 104 | // Step 4: Home | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/focused_bug_test.rs | 112 | // Step 5: Type "b" | COMMENT |
| LOW | …fresh-editor/tests/undo_redo_marker_roundtrip_tests.rs | 635 | // Step 1: Insert "XX" at 1 → "aXXbcdef" | COMMENT |
| LOW | …fresh-editor/tests/undo_redo_marker_roundtrip_tests.rs | 647 | // 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 | 211 | // Step 1: Open the test file (triggers didOpen) | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/e2e/lsp_toggle_desync.rs | 221 | // Step 2: Type some text (triggers didChange) | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/e2e/lsp_toggle_desync.rs | 230 | // Step 3: Toggle LSP OFF (Alt+T) | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/e2e/lsp_toggle_desync.rs | 240 | // Step 4: Edit while LSP is disabled - type more text | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/e2e/lsp_toggle_desync.rs | 244 | // Step 5: Toggle LSP back ON (Alt+T) | COMMENT |
| LOW | crates/fresh-editor/tests/e2e/tab_drag.rs | 812 | // 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 | 834 | // Step 2: identify the new (right) split and pick a tab in the | COMMENT |
| LOW | crates/fresh-editor/tests/e2e/tab_drag.rs | 880 | // Step 3: drag the other tab onto the new split's tab bar. | COMMENT |
| LOW | crates/fresh-editor/tests/e2e/tab_drag.rs | 893 | // 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 | 672 | // Step 1: Menu bar should be visible initially (default) | COMMENT |
| 172 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | crates/fresh-editor/tests/focused_bug_test.rs | 78 | // Step 1: Enter | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/focused_bug_test.rs | 88 | // Step 2: Type "a0" | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/focused_bug_test.rs | 96 | // Step 3: Left | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/focused_bug_test.rs | 104 | // Step 4: Home | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/focused_bug_test.rs | 112 | // Step 5: Type "b" | COMMENT |
| LOW | …fresh-editor/tests/undo_redo_marker_roundtrip_tests.rs | 635 | // Step 1: Insert "XX" at 1 → "aXXbcdef" | COMMENT |
| LOW | …fresh-editor/tests/undo_redo_marker_roundtrip_tests.rs | 647 | // 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 | 211 | // Step 1: Open the test file (triggers didOpen) | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/e2e/lsp_toggle_desync.rs | 221 | // Step 2: Type some text (triggers didChange) | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/e2e/lsp_toggle_desync.rs | 230 | // Step 3: Toggle LSP OFF (Alt+T) | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/e2e/lsp_toggle_desync.rs | 240 | // Step 4: Edit while LSP is disabled - type more text | COMMENT |
| LOW⚡ | crates/fresh-editor/tests/e2e/lsp_toggle_desync.rs | 244 | // Step 5: Toggle LSP back ON (Alt+T) | COMMENT |
| LOW | crates/fresh-editor/tests/e2e/tab_drag.rs | 812 | // 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 | 834 | // Step 2: identify the new (right) split and pick a tab in the | COMMENT |
| LOW | crates/fresh-editor/tests/e2e/tab_drag.rs | 880 | // Step 3: drag the other tab onto the new split's tab bar. | COMMENT |
| LOW | crates/fresh-editor/tests/e2e/tab_drag.rs | 893 | // 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 | 672 | // Step 1: Menu bar should be visible initially (default) | COMMENT |
| 167 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | crates/fresh-core/src/api.rs | 1653 | /// Currently we isolate by plugin name, but we may want a more robust approach | COMMENT |
| MEDIUM | crates/fresh-core/src/api.rs | 3675 | /// Used for Typora-style seamless markdown: hiding syntax markers like `**`, `[](url)`, etc. | COMMENT |
| MEDIUM | crates/fresh-editor/Cargo.toml | 14 | # the `web` feature — but its Playwright harness is dev-only. | 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 | 585 | // (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 | 1476 | // For a more robust test, we could check the internal state | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/file_explorer.rs | 4312 | // 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 | 1353 | /// Test that terminal rendering is robust when cursor position equals height | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/terminal.rs | 4929 | /// seamless: every content row of the last live frame reads identically in | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/blog_showcases.rs | 3447 | // 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 | 785 | /// Uses a fake LSP server for robust testing | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/lsp.rs | 1438 | /// Uses a fake LSP server for robust testing | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/lsp.rs | 1511 | /// Uses a fake LSP server for robust testing | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/lsp.rs | 1585 | /// Uses a fake LSP server for robust testing | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/lsp.rs | 9320 | // foxtrot. We use Goto Line via the palette instead to be robust | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/orchestrator_dock.rs | 442 | /// (the active session's seamless tab) must land on the session the editor | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/orchestrator_dock.rs | 510 | // session's card must wear the seamless tab. | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/orchestrator_dock.rs | 615 | /// True when `label`'s card wears the "seamless active tab": the dock | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/orchestrator_dock.rs | 646 | /// *seamless tab* — its border merges into the editor by scooping away | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/orchestrator_dock.rs | 650 | /// selection as a bg fill without the heavy border glyphs the seamless | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/orchestrator_dock.rs | 696 | // and the seamless tab moves with it. | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/orchestrator_dock.rs | 1814 | // the marker gutter). Walking to the button by its marker keeps this robust | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/orchestrator_dock.rs | 3046 | // right border is scooped away by the seamless tab, so flushness is | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/orchestrator_dock.rs | 3522 | // for the seamless tab. | COMMENT |
| MEDIUM | crates/fresh-editor/tests/e2e/orchestrator_dock.rs | 4336 | // 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 | 15 | //! | Critical | After Rebuild with malformed `devcontainer.json`, all `Dev Container:` palette commands disappear from | 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 | 207 | #[ignore = "harness shortcuts the post-rebuild editor restart; needs real restart support to repro"] | COMMENT |
| MEDIUM | …tor/tests/e2e/plugins/devcontainer_usability_repros.rs | 309 | #[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/editor_accessors.rs | 470 | /// far more robust — every cached `Arc<dyn FileSystem>`, LSP | COMMENT |
| MEDIUM | crates/fresh-editor/src/app/render.rs | 5401 | // Dock "seamless tab (missing wall)": erase the right-edge divider | COMMENT |
| MEDIUM | crates/fresh-editor/src/app/render.rs | 5743 | /// Paint the dock's "seamless tab (missing wall)" treatment for the | COMMENT |
| MEDIUM | crates/fresh-editor/src/app/widget_runtime.rs | 293 | /// Native-frontend entry point, robust against hit-list drift: resolve | COMMENT |
| MEDIUM | crates/fresh-editor/src/primitives/grammar/types.rs | 624 | // syntect's first-line regex, but mapping it explicitly is robust | COMMENT |
| MEDIUM | crates/fresh-editor/src/model/encoding.rs | 336 | /// Unlike UTF-8 above, this heuristic is robust to sample truncation: it uses | 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/settings/widget_map.rs | 21 | //! **domain-formatted** content — the robust shape: domain code (here, | 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/webui/mod.rs | 1081 | // payload) with the raw index as tiebreaker — robust against the | 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-editor/src/widgets/kinds/tree.rs | 868 | // silently lose that seamless-tab treatment. | COMMENT |
| MEDIUM | crates/fresh-update/Cargo.toml | 30 | # elevate, so a poisoned endpoint can never reach `sudo`. Never enable in a | 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 | 110 | # first, so a broken harness reads as a failure rather than a clean sweep. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/fresh-editor/plugins/audit_mode.ts | 2307 | function pointSidebarAtCurrentFile(): void { | CODE |
| LOW | crates/fresh-editor/plugins/audit_mode.ts | 3501 | function paintLineSelectionOverlay() { | CODE |
| LOW | crates/fresh-editor/plugins/audit_mode.ts | 3986 | function rememberPendingHunkAnchor(hunkId: string | null) { | CODE |
| LOW | crates/fresh-editor/plugins/audit_mode.ts | 4117 | function restoreCursorAfterRebuild() { | CODE |
| LOW | crates/fresh-editor/plugins/audit_mode.ts | 4149 | function refreshViewportDimensions(): boolean { | CODE |
| LOW | crates/fresh-editor/plugins/audit_mode.ts | 4238 | function computeFullFileAlignedDiff(oldContent: string, newContent: string, hunks: Hunk[]): AlignedLine[] { | CODE |
| LOW | crates/fresh-editor/plugins/audit_mode.ts | 7630 | function branchByteOffsetOfFirstCommit(): number { | CODE |
| LOW | crates/fresh-editor/plugins/devcontainer.ts | 837 | async function getOrComputeProbedEnv(): Promise<Record<string, string>> { | CODE |
| LOW | crates/fresh-editor/plugins/devcontainer.ts | 1566 | function parseDevcontainerUpOutput(stdout: string): DevcontainerUpResult | null { | CODE |
| LOW | crates/fresh-editor/plugins/devcontainer.ts | 1580 | function buildContainerAuthorityPayload( | CODE |
| LOW | crates/fresh-editor/plugins/devcontainer.ts | 2074 | function closeStaleBuildLogBuffers(cwd: string): void { | CODE |
| LOW | crates/fresh-editor/plugins/devcontainer.ts | 2156 | async function stopContainerIfShutdownActionRequires(): Promise<void> { | CODE |
| LOW | crates/fresh-editor/plugins/pkg.ts | 3097 | 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 | 292 | function cutCharacterwiseSelection(hasSelectedRange: boolean): boolean { | CODE |
| LOW | crates/fresh-editor/plugins/vi_mode.ts | 302 | function copyCharacterwiseSelection(hasSelectedRange: boolean): boolean { | CODE |
| LOW | crates/fresh-editor/plugins/vi_mode.ts | 364 | async function selectThenCutCharacterwise(action: string, count: number): Promise<boolean> { | CODE |
| LOW | crates/fresh-editor/plugins/vi_mode.ts | 377 | async function selectThenCopyCharacterwise(action: string, count: number): Promise<boolean> { | CODE |
| LOW | crates/fresh-editor/plugins/vi_mode.ts | 390 | function getLinewiseReplacementText(deletedText: string): string | null { | CODE |
| LOW | crates/fresh-editor/plugins/vi_mode.ts | 427 | function ensureLinewiseRegisterText(text: string, lineTerminator: string): string { | CODE |
| LOW | crates/fresh-editor/plugins/vi_mode.ts | 501 | function isActiveBufferEditingDisabled(bufferId: number): boolean { | CODE |
| LOW | crates/fresh-editor/plugins/vi_mode.ts | 815 | function computeWORDMotionTargetIndex(text: string, startIndex: number, kind: WORDMotionKind, count: number): number { | CODE |
| LOW | crates/fresh-editor/plugins/vi_mode.ts | 879 | function paragraphDownMotionTargetIndex(text: string, startIndex: number): { index: number; reachedEof: boolean } { | CODE |
| LOW | crates/fresh-editor/plugins/vi_mode.ts | 893 | async function computeParagraphDownOperatorRange(count: number): Promise<{ start: number; end: number } | null> { | CODE |
| LOW | crates/fresh-editor/plugins/vi_mode.ts | 1017 | async function placeCursorAtFirstNonBlank(bufferId: number, lineStart: number): Promise<void> { | CODE |
| LOW | crates/fresh-editor/plugins/vi_mode.ts | 1208 | function WORDMotionKindFromRepeatMotion(motion: string): WORDMotionKind | null { | CODE |
| LOW | crates/fresh-editor/plugins/vi_mode.ts | 1221 | async function handleWORDMotionWithOperator(kind: WORDMotionKind): Promise<void> { | CODE |
| LOW | crates/fresh-editor/plugins/vi_mode.ts | 1563 | function findSearchTargetUnderCursor(text: string, cursorIndex: number, scanForwardOnMiss: boolean = false): WordSearchT | CODE |
| LOW | crates/fresh-editor/plugins/vi_mode.ts | 1690 | async function executeWordUnderCursorSearch(direction: WordSearchDirection, count: number): Promise<void> { | CODE |
| LOW | crates/fresh-editor/plugins/vi_mode.ts | 2596 | async function selectVisualRangeToTarget(target: number, includeDisplayTarget: boolean = true): Promise<void> { | CODE |
| LOW | crates/fresh-editor/plugins/vi_mode.ts | 3306 | async function enterFindCharOperatorMode(findType: FindCharType): Promise<void> { | CODE |
| LOW | crates/fresh-editor/plugins/orchestrator.ts | 1966 | async function refreshDiscoveredWorktrees(): Promise<void> { | CODE |
| LOW | crates/fresh-editor/plugins/orchestrator.ts | 3691 | function syncDockSelectionToActive(): void { | CODE |
| LOW | crates/fresh-editor/plugins/orchestrator.ts | 4954 | function openRenameWorkspaceDialog(id: number): void { | CODE |
| LOW | crates/fresh-editor/plugins/orchestrator.ts | 5113 | function toggleDockFolderExpansion(folderKey: string): void { | CODE |
| LOW | crates/fresh-editor/plugins/orchestrator.ts | 5320 | function openDockContextMenuFromKeyboard(): void { | CODE |
| LOW | crates/fresh-editor/plugins/orchestrator.ts | 5345 | function openMoveToFolderForCurrent(): void { | CODE |
| LOW | crates/fresh-editor/plugins/orchestrator.ts | 5406 | function closeDockContextMenuAndRestoreDock(): void { | CODE |
| LOW | crates/fresh-editor/plugins/orchestrator.ts | 5478 | function diveDockSelectionFromClick(fromEdge: "top" | "bottom" | null): void { | CODE |
| LOW | crates/fresh-editor/plugins/orchestrator.ts | 7183 | async function detectDefaultBranchWithFallback( | CODE |
| LOW | crates/fresh-editor/plugins/orchestrator.ts | 8419 | function scheduleProjectPathReprobe(): void { | CODE |
| LOW | crates/fresh-editor/plugins/orchestrator.ts | 8445 | function scheduleCompletionRefresh( | CODE |
| LOW | crates/fresh-editor/plugins/orchestrator.ts | 9902 | async function launchAgentInCurrentWorkspace( | CODE |
| LOW | crates/fresh-editor/plugins/orchestrator.ts | 11059 | function completionVisibleForFocused(): boolean { | CODE |
| LOW | crates/fresh-editor/plugins/clangd_support.ts | 296 | function onClangdCustomNotification(payload: { | CODE |
| LOW | crates/fresh-editor/plugins/git_log.ts | 988 | async function deriveFileAndLineFromDiffCursor( | CODE |
| LOW | crates/fresh-editor/plugins/git_log.ts | 1243 | 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 | 1719 | function shouldInterceptForHistory(): boolean { | CODE |
| LOW | crates/fresh-editor/plugins/theme_editor.ts | 260 | function fieldRefersToStyledColorDef(fieldObj: Record<string, unknown>): boolean { | CODE |
| LOW | crates/fresh-editor/plugins/theme_editor.ts | 1433 | function applySelectionHighlighting(cachedEntries?: TextPropertyEntry[]): void { | CODE |
| LOW | crates/fresh-editor/plugins/theme_editor.ts | 2452 | 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 |
| LOW | crates/fresh-editor/plugins/env-manager.ts | 179 | function devcontainerObservationKey(): string { | CODE |
| LOW | crates/fresh-editor/plugins/env-manager.ts | 187 | function writeDevcontainerDeclined(): void { | CODE |
| LOW | crates/fresh-editor/plugins/env-manager.ts | 278 | function onDevcontainerAttachResult(data: ActionPopupResultData): void { | CODE |
| LOW | …tes/fresh-editor/plugins/lib/virtual-buffer-factory.ts | 49 | export function createVirtualBufferFactory(editor: EditorAPI) { | CODE |
| 91 more matches not shown… | ||||
| 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/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 |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | crates/fresh-editor/src/app/terminal.rs | 264 | .with_user_shell_override(self.resources.config.terminal.shell.as_ref()) | CODE |
| CRITICAL | crates/fresh-editor/src/app/terminal.rs | 683 | let rulers = self.resources.config.editor.rulers.clone(); | CODE |
| CRITICAL | crates/fresh-editor/src/app/workspace.rs | 1351 | rulers: self.resources.config.editor.rulers.clone(), | CODE |
| CRITICAL | …tes/fresh-editor/src/view/ui/split_rendering/gutter.rs | 198 | ctx.state.margins.left_config.separator.clone(), | CODE |
| CRITICAL | …/split_rendering/orchestration/render_line/trailing.rs | 216 | ctx.state.margins.left_config.separator.to_string(), | 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 | 525 | except Exception as e: | CODE |
| LOW | crates/fresh-editor/src/services/remote/agent.py | 681 | except Exception as e: | CODE |
| LOW | crates/fresh-editor/src/services/remote/spawner.rs | 1061 | 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 | 113 | print(f"Error: Unexpected origin remote: {origin_url}") | CODE |
| MEDIUM | scripts/winget-publish.py | 142 | print(f"Error: Package not found in upstream: {MANIFEST_BASE}") | CODE |
| MEDIUM | scripts/winget-publish.py | 149 | print("Error: No existing versions found") | 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 |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | crates/fresh-editor/plugins/devcontainer.ts | 2727 | // 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 | 4655 | /// The Orchestrator dock as an agentic-multitasking cockpit: one repository | COMMENT |
| MEDIUM | crates/fresh-editor/src/main.rs | 5453 | // claim it first and try to scaffold a package called "reload". | COMMENT |
| MEDIUM | crates/fresh-editor/src/app/popup_dialogs.rs | 917 | // No .devcontainer present — offer the scaffold | COMMENT |
| MEDIUM | crates/fresh-editor/src/app/popup_dialogs.rs | 919 | // 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 | 173 | CODE | |
| LOW | crates/fresh-editor/src/services/remote/agent.py | 278 | CODE | |
| LOW | crates/fresh-editor/src/services/remote/agent.py | 470 | CODE | |
| LOW | crates/fresh-editor/src/services/remote/agent.py | 565 | CODE | |
| LOW | crates/fresh-editor/src/services/remote/agent.py | 493 | 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/record-asciinema/record.py | 171 | 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 | scripts/record-asciinema/setup-demo.sh | 2 | # Create the demo workspace used by record.py. | COMMENT |
| MEDIUM | .github/workflows/release.yml | 345 | # Create the tarball | COMMENT |
| MEDIUM | .github/workflows/release.yml | 479 | # Create a stable source tarball (GitHub's auto-generated archives are not stable) | COMMENT |
| MEDIUM | .github/workflows/release.yml | 791 | # 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/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 | 305 | let long = "lorem ipsum dolor sit amet ".repeat(12); // ~324 chars | CODE |
| LOW | crates/fresh-editor/tests/e2e/live_grep.rs | 305 | 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 | 2985 | repo.create_file("test.txt", "placeholder"); | CODE |
| LOW | crates/fresh-editor/tests/e2e/plugins/git.rs | 3038 | repo.create_file("test.txt", "placeholder"); | CODE |
| LOW | crates/fresh-editor/tests/e2e/plugins/git.rs | 3102 | repo.create_file("test.txt", "placeholder"); | CODE |
| 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 |
|---|---|---|---|---|
| MEDIUM | crates/fresh-editor/src/server/runner.rs | 89 | /// This is a basic implementation that handles connections and handshakes. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/fresh-editor/scripts/parse_flamegraph.py | 96 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/fresh-editor/src/services/remote/agent.py | 653 | def handle_request(line): | CODE |