Skip to content

Add sidebar recents removal affordance#1090

Merged
SoundBlaster merged 6 commits into
mainfrom
codex/follow-instructions-in-start.md
Mar 12, 2026
Merged

Add sidebar recents removal affordance#1090
SoundBlaster merged 6 commits into
mainfrom
codex/follow-instructions-in-start.md

Conversation

@SoundBlaster

Copy link
Copy Markdown
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
Copy Markdown

🔍 SwiftLint Code Quality Report

No violations found! Code quality check passed.

@github-actions

Copy link
Copy Markdown

📊 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

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

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.

Comment thread todo.md
---

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

Copilot AI Dec 12, 2025

Copy link

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.
SoundBlaster and others added 5 commits January 26, 2026 23:55
Prevent WindowSessionController from triggering redundant document
opens by introducing registerRecent() method that adds files to the
recents list without re-opening them. Add objectWillChange forwarding
from RecentsService to ensure UI updates when recents change.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Replace readarray with bash 3.2-compatible array building and remove
deprecated --path flag from SwiftLint commands to support newer versions.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@SoundBlaster SoundBlaster merged commit e121fae into main Mar 12, 2026
2 checks passed
@SoundBlaster SoundBlaster deleted the codex/follow-instructions-in-start.md branch March 12, 2026 20:32
@SoundBlaster SoundBlaster restored the codex/follow-instructions-in-start.md branch March 12, 2026 20:34
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