Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions DOCS/AI/ISOViewer/ISOInspector_PRD_TODO.md
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,7 @@ Create a **Swift** library (`ISOInspectorKit`) and a **multiplatform SwiftUI app


### 🚧 In Progress
- [ ] **UI-245 — Adopt SwiftUI `.inspector` API on macOS.** Collapse the macOS `NavigationSplitView` to sidebar + content, move inspector content into `.inspector(isPresented:)` with a single `showInspector` binding (⌘⌥I), and host `InspectorDetailView` (selection details + integrity) there. Selection should flip the inspector display mode without hiding the pane. Remove legacy `NavigationSplitViewVisibility` inspector plumbing on macOS; keep current iPad/iPhone fallbacks intact.
- [ ] **T5.4 — Performance Benchmark (Lenient vs. Strict).** Harness delivery is archived in `DOCS/TASK_ARCHIVE/206_T5_4_Performance_Benchmark_macOS_Run/`, and the Linux baseline metrics live in `Documentation/Performance/2025-11-04-lenient-vs-strict-benchmark.log`. Execute the macOS 1 GiB rerun (`ISOINSPECTOR_BENCHMARK_PAYLOAD_BYTES=1073741824`) per the active checklist in `DOCS/INPROGRESS/next_tasks.md` to close the tolerance gate; the most recent summary and blockers are captured in `DOCS/TASK_ARCHIVE/207_Summary_of_Work_2025-11-04_macOS_Benchmark_Block/`.
- [x] **T6.2 — CLI Corruption Summary Output.** _(Completed — see `DOCS/TASK_ARCHIVE/208_T6_2_CLI_Corruption_Summary_Output/` for the objective, implementation notes, and verification log covering strict vs. tolerant snapshot tests.)_
- [x] **T3.6 — Integrity Summary Tab.** _(Completed — see `DOCS/TASK_ARCHIVE/196_T3_6_Integrity_Summary_Tab/` for the release notes and follow-up checklist.)_
Expand Down
32 changes: 4 additions & 28 deletions DOCS/INPROGRESS/next_tasks.md
Original file line number Diff line number Diff line change
@@ -1,44 +1,20 @@
# Next Tasks Queue

_Last updated: 2025-11-19 (UTC). Maintainers should update this file whenever task priorities change or blockers are resolved._
_Last updated: 2025-12-11 (UTC). Maintainers should update this file whenever task priorities change or blockers are resolved._

## 0. FoundationUI Navigation Architecture (NEW)

> **Note:** Tasks 240, 241, and 242 have been completed and archived to `DOCS/TASK_ARCHIVE/234_Resolved_Tasks_Batch/` (2025-11-19). See ARCHIVE_SUMMARY.md for details.

1. **Task 243 – Reorganize NavigationSplitView: Selection Details & Integrity Summary in Inspector** _(Ready for implementation — `DOCS/INPROGRESS/243_Reorganize_Navigation_SplitView_Inspector_Panel.md`)_
- Move Selection Details content (metadata, corruption, encryption, notes, fields, validation, hex) to third column (Inspector)
- Move Integrity Summary to Inspector panel with toggle button in Box Tree panel header
- Refactor ParseTreeDetailView into sub-components for better composability
- Add toggle UI in Box Tree panel to switch between Selection Details and Integrity Summary views
- Ensure responsive layout across macOS (3 columns), iPad (adaptive), iPhone (compact)
- Implement keyboard shortcuts (⌘⌥I for inspector toggle) and VoiceOver labels
- Create 25-30 unit tests, 10-15 integration tests, 4+ UI snapshot tests
- Effort: ~4.5 days
- Ready: 2025-11-19
_No active items in this queue. Select the next task per `DOCS/COMMANDS/SELECT_NEXT.md`._

---

## 1. Automation & Quality Gates

1. **Task A8 – Test Coverage Gate** ✅ _(Completed — `DOCS/INPROGRESS/A8_Test_Coverage_Gate.md`)_
- `coverage_analysis.py --threshold 0.67` now runs in `.githooks/pre-push` after `swift test --enable-code-coverage` (macOS-only due to SwiftUI dependency) and blocks pushes on coverage failures.
- CI `coverage-gate` job executes the same workflow on macOS runners and publishes logs/reports under `Documentation/Quality/`.
- `todo.md` and the Execution Workplan have been updated to reflect the enforced gate and artifact locations.

2. **Task A10 – Swift Duplication Detection** ✅ _(Completed — `DOCS/INPROGRESS/A10_Swift_Duplication_Detection.md`)_
- `.github/workflows/swift-duplication.yml` runs `scripts/run_swift_duplication_check.sh` (Node 20 + `npx [email protected]`) on PR/main pushes with 30-day artifact retention.
- Thresholds enforced: >1% overall duplication or ≥45-line clones fail the job; report saved as `swift-duplication-report.txt`. Pre-push runs the same gate and writes reports under `Documentation/Quality/`.

## 2. UI Defects & Experience Fixes
## 1. UI Defects & Experience Fixes

1. **Bug #234 – Remove Recent File from Sidebar** _(Ready for implementation — `DOCS/INPROGRESS/234_Remove_Recent_File_From_Sidebar.md`)_
- Add the MRU removal affordance in the sidebar along with analytics/logging hooks described in the spec.
- Ensure recents persistence updates and DocumentSessionController wiring reflect removals immediately.
3. **Bug #235 – Smoke tests blocked by Sendable violations** _(Resolved — `DOCS/INPROGRESS/235_Sendable_SmokeTest_Build_Failure.md`)_
- Strict-concurrency build now passes after sendable annotations and document-loading refactor; smoke filters are green.

## 3. Blocked but High Priority
## 2. Blocked but High Priority

- **Task T5.4 – macOS 1 GiB Lenient-vs-Strict Benchmark** _(Blocked — see `DOCS/TASK_ARCHIVE/207_Summary_of_Work_2025-11-04_macOS_Benchmark_Block/blocked.md`)_
- Hardware requirement: a macOS host (Sonoma/Xcode 16.x) with the 1 GiB benchmark fixture accessible locally; Linux CI cannot execute this run.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
# Task 243: Reorganize NavigationSplitView – Move Selection Details & Integrity Summary to Inspector Panel

**Status**: New (Awaiting Planning & Decomposition)
**Status**: RESOLVED (declined 2025-12-17 — stakeholder prefers current 4-column layout)
**Created**: 2025-11-19 (UTC)
**Session ID**: `claude/reorganize-navigation-split-view-01DgfApqEpedTA17urnmfHFE`

---

> Decision: No implementation required. Stakeholder confirmed the existing layout (sidebar = files, content = box tree, detail = selection details, inspector overlay = integrity report) is acceptable; requested to keep it as-is.

## 📋 FEATURE REQUEST

### Original Task (Russian)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Task 244 – NavigationSplitView Parity with Demo

**Status**: RESOLVED (declined 2025-12-17 — stakeholder wants to retain current layout)

## 🎯 Objective
Refactor the app shell and parse tree experience so the three-column NavigationSplitView matches the clean NavigationSplitViewKit demo layout (no overlaid “frame” under the toolbar, single split view, stable column order, and inspector-only details/integrity).

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Task 245 – Adopt SwiftUI `.inspector` API for ISOInspectorApp

**Status**: RESOLVED (declined 2025-12-17 — stakeholder prefers current inspector approach)

## 🎯 Objective
Replace the custom inspector column plumbing with the native SwiftUI `.inspector` API on macOS, so the inspector behaves like the platform demo: a system-managed pane that can be shown/hidden independently of the main NavigationSplitView (sidebar + content), eliminating nested split views and layout insets.

Expand All @@ -8,6 +10,13 @@ Replace the custom inspector column plumbing with the native SwiftUI `.inspector
- SwiftUI’s `.inspector(isPresented:)` provides a native inspector pane on macOS that avoids layout fights and aligns with the NavigationSplitViewKit demo behavior.
- Goal: Use `.inspector` to host `InspectorDetailView` while keeping the main split for sidebar + content only. The inspector becomes system-managed, and visibility toggles become simple bindings.

## 📌 Status Check (2025-12-17)
- macOS still uses a three-column `NavigationSplitView` (sidebar/content/detail) plus `.inspector` hosting only the integrity summary. The inspector is not the sole host for Selection Details + Integrity.
- `InspectorDetailView` does not exist in the codebase; inspector content is `IntegritySummaryView` only.
- Legacy inspector column state remains (`columnVisibility`, `NavigationSplitViewVisibility` binding). The `showInspector` binding defaults to `false` and only toggles Integrity, not a unified inspector.
- Selection handling (`handleIssueSelected`) does not adjust inspector display mode or ensure the inspector stays visible.
- iOS/iPadOS fallbacks are unaffected (still using the existing layout), but macOS parity with the `.inspector` demo is not met yet.

## ✅ Success Criteria
- macOS: `NavigationSplitView` contains only sidebar (recents) and content (box tree + filters); inspector is shown via `.inspector(isPresented:)`.
- Inspector content is always `InspectorDetailView` (Selection Details / Integrity), not embedded in the main split columns.
Expand Down
20 changes: 20 additions & 0 deletions DOCS/TASK_ARCHIVE/ARCHIVE_SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -1762,3 +1762,23 @@
- **Summary:**
- **Bug/Task #A8_Test_Coverage_Gate:** **Status**: RESOLVED
- **Next steps:** None — all archived items are resolved and ready for verification.

## 100_Declined_Tasks_243_245
- **Archived files:** `243_Reorganize_Navigation_SplitView_Inspector_Panel.md`, `244_NavigationSplitView_Parity_With_Demo.md`, `245_Adopt_SwiftUI_Inspector_API_for_ISOInspectorApp.md`
- **Archived location:** `DOCS/TASK_ARCHIVE/100_Declined_Tasks_243_245/`
- **Archival date:** 2025-12-17
- **Status:** ✅ Declined/Resolved (no implementation needed per stakeholder)
- **Summary:**
- Task 243: Declined; stakeholder prefers existing layout (sidebar, box tree, detail, integrity inspector overlay).
- Task 244: Declined; requested parity refactor not needed with current layout preference.
- Task 245: Declined; adoption of native `.inspector` API deferred/not required.
- **Next steps:** None — tasks closed as not needed.

## 237_Resolved_Tasks_Batch
- **Archived files:** `A10_Swift_Duplication_Detection.md`
- **Archived location:** `DOCS/TASK_ARCHIVE/237_Resolved_Tasks_Batch/`
- **Archival date:** 2025-12-17
- **Status:** ✅ All tasks COMPLETED
- **Summary:**
- Task A10 — Swift Duplication Detection: CI duplication gate and pre-push hook implemented using `jscpd` (Swift-only, ≤1% overall, <45-line clones), with workflow, wrapper script, artifacts, and documentation updates.
- **Next steps:** None — gate is live.