Skip to content

Low-priority findings from security review #354

@davidpoblador

Description

@davidpoblador

Context

The architecture & security review identified several low-severity findings. None are urgent, but worth addressing over time.

Code quality

  • Force unwrap in ContentView.swift:448sorted.first! / sorted.last! in cycleWorkstream is safe (guarded by !sorted.isEmpty) but non-obvious. Add a comment or refactor to optional chaining.
  • AppleScript string interpolation in SettingsView.swift:342-346 — CLI installation uses string construction rather than argument arrays. Properly escaped, but worth noting if the scope expands.
  • Silent error suppression — Some try? patterns in GitOperations.run make it impossible to distinguish "tool not found" from "command failed". Consider Result types for richer error context.
  • Large filesProjectSidebar.swift (839 lines) and TerminalContainerView.swift (865 lines) could benefit from sub-component extraction if they continue to grow.

Testing

  • No integration tests — No end-to-end tests for the project creation → workstream → terminal flow.
  • Surface lifecycle tests — Partially covered by BrowserViewTests (TerminalSurfaceCache), but TerminalView event handling and Ghostty surface lifecycle remain untested.

Documentation

  • Document unsandboxed status — The app intentionally runs without sandbox for filesystem/terminal access. This rationale should be in user-facing security documentation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions