Skip to content

Conversation

@SoundBlaster
Copy link
Owner

Summary

  • add context menu and iOS swipe affordances to remove individual recents from the sidebar
  • expose a controller-level removal API, tighten recents persistence logic, and cover removal with a new unit test
  • update in-progress documentation, state reports, and regenerated todo.md with the latest tasks and summary note

Testing

  • swift test --filter DocumentSessionControllerTests/testRemovingSingleRecentPersistsUpdatedSession

Codex Task

@github-actions
Copy link

🔍 SwiftLint Code Quality Report

No violations found! Code quality check passed.

@github-actions
Copy link

📊 Coverage Gate Results

SUMMARY
================================================================================

Total Source LOC: 5,578
Total Test LOC:   4,962
Overall Test/Code Ratio: 89.0%

Layer                  Source LOC     Test LOC      Ratio
------------------------------------------------------------
Layer 0                        96          142     147.9%
Layer 1                       779          617      79.2%
Layer 2                     1,048          794      75.8%
Layer 3                     2,175        1,448      66.6%
Layer 4                       834        1,442     172.9%
Utilities                     646          519      80.3%

Threshold: 67%
Coverage: 89.0%
Status: ✅ PASS

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds user-facing affordances to remove individual entries from the sidebar's Recent Files list, addressing Bug #234. The implementation includes context menu actions on all platforms and iOS swipe gestures, with comprehensive persistence updates to keep the MRU list synchronized across app sessions.

Key Changes

  • UI Enhancement: Added "Remove from Recents" context menu (all platforms) and swipe actions (iOS) to each sidebar entry for discoverable deletion
  • Controller & Service Updates: Exposed removeRecent(_:) API on DocumentSessionController and optimized RecentsService to conditionally persist only when records actually change
  • Test Coverage: Added unit test verifying removal persistence behavior through the full stack from controller to session snapshots

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
Sources/ISOInspectorApp/AppShellView.swift Added context menu and iOS swipe actions for individual recent file removal
Sources/ISOInspectorApp/State/DocumentSessionController.swift Exposed removeRecent(_:) method with conditional session persistence
Sources/ISOInspectorApp/State/Services/RecentsService.swift Enhanced removeRecent(with:) to return success flag and persist only on actual changes
Tests/ISOInspectorAppTests/DocumentSessionControllerTests.swift Added test verifying removal triggers both recents and session snapshot updates
DOCS/INPROGRESS/234_Remove_Recent_File_From_Sidebar.md Documented implementation details and verification approach
DOCS/INPROGRESS/Summary_of_Work.md Summarized Bug #234 completion with follow-up priorities
DOCS/INPROGRESS/Current_State.md Updated active tasks and marked Bug #234 resolved
DOCS/INPROGRESS/next_tasks.md Reflected Bug #234 resolution and current queue state
todo.md Regenerated automated task tracking report from codebase @todo comments

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

---

## NavigationSplitView Inspector (Task 243)
### Task #10`
Copy link

Copilot AI Dec 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The generated task report contains malformed task IDs with special characters and backticks (e.g., "#10", "#15.", "#15", "#220", "#222", "#222`)", "#231**:", "#232**:", etc.). These appear to be parsing artifacts from @todo comments in code or documentation that include non-alphanumeric characters. The task ID parser should be hardened to extract only valid task identifiers and ignore punctuation that follows the ID.

Suggested change
### Task #10`
### Task #10

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants