Skip to content

Developer - #17

Merged
patricktobias86 merged 9 commits into
mainfrom
developer
Sep 16, 2026
Merged

patricktobias86 merged 9 commits into
mainfrom
developer

Conversation

@patricktobias86

Copy link
Copy Markdown
Collaborator

No description provided.

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.

🟡 Changes recommended

Unresolved moderate issues remain in workflow state handling, permission/status refresh, retry diagnostics, and launch configurations.

Get a fresh assessment by requesting another Copilot review.

Pull request overview

Updates the macOS Zoom fixer with improved installation checks, permission guidance, timeout recovery, and developer tooling.

Changes:

  • Adds Zoom availability and camera/microphone checks.
  • Adds reset-timeout recovery and workflow status improvements.
  • Bumps version to 1.7.2 and updates VS Code launch paths.
File summaries
File Description
VERSION Bumps the version to 1.7.2.
Sources/1132Fixer/ContentView.swift Implements workflow, permission, retry, reporting, and UI improvements.
.vscode/launch.json Updates VS Code launch configurations.
Review details

Suppressed comments (6)

.vscode/launch.json:27

  • Updating only the last two entries leaves the first two configurations pointing at ${workspaceFolder:1132-fixer} and target 1132FixerApp, but this package defines only the 1132 Fixer product/1132Fixer target. Those stale entries remain selectable and fail to launch; remove them or migrate them to the current target as part of this configuration update.
            "cwd": "${workspaceFolder:macos}",

Sources/1132Fixer/ContentView.swift:150

  • The new install predicate is used by Start and preflight, but dryRun() still calls fileExists for the same binary at line 436. A non-executable Zoom binary will therefore be reported as Found by Dry Run while Start is disabled, making diagnostics contradict the actual launchability; reuse self.isZoomInstalled in the dry-run check.
    var isZoomInstalled: Bool {
        FileManager.default.isExecutableFile(atPath: zoomBinaryPath)

Sources/1132Fixer/ContentView.swift:520

  • These permission values are read only when runPreflight() runs (on appear or after changing the Zoom location), but Start Zoom can change both statuses in ensureMediaAccessForSandboxedZoom(). After a user grants access, the panel therefore continues to show Not requested or Denied until a later preflight refresh, which makes the new checks stale. Refresh the affected checks after permission requests or when the workflow finishes.
            let cameraStatus = AVCaptureDevice.authorizationStatus(for: .video)
            checks.append(.init(
                id: "camera",
                label: "Camera",
                value: mediaPermissionLabel(cameraStatus),

Sources/1132Fixer/ContentView.swift:1774

  • runTask("Dry Run") still completes with the default .completed state, so this new branch reports a dry run as “Repair completed” and says “Zoom launch completed” even though no repair or launch occurred. Give dry runs a distinct completion state/message, or keep this panel out of the dry-run path.
        case .completed:
            return ("checkmark.circle.fill", "Repair completed", "Zoom launch completed. Review any warning steps above.", .green)

Sources/1132Fixer/ContentView.swift:392

  • This retry path leaves lastRunResults populated with the partial results from the timed-out start. If the retry fails, exported diagnostics and bug reports therefore describe the previous workflow instead of the retry attempt. Clear the old results before starting the retry (and record the retry failure separately if step results are required).
        resetTimedOut = false

Sources/1132Fixer/ContentView.swift:396

  • inferLastActionStatus() only treats the === Start Zoom === log marker as an in-progress action (see lines 734–735), but this new task logs === Retry Reset Zoom Data ===. A bug report captured while this retry is running will inherit the previous status (for example, Error) instead of reporting that the retry is in progress; update the status inference or use a shared running-state marker.
        runTask("Retry Reset Zoom Data", completionState: .resetCompleted) {
  • Files reviewed: 3/3 changed files
  • Comments generated: 2
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread Sources/1132Fixer/ContentView.swift
Comment thread Sources/1132Fixer/ContentView.swift
Updated confirmation dialog text for clarity regarding administrator prompts and password handling.

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@patricktobias86
patricktobias86 removed the request for review from JG2547 September 16, 2026 17:26
Co-authored-by: patricktobias86 <21059973+patricktobias86@users.noreply.github.com>
auto-merge was automatically disabled September 16, 2026 17:29

Head branch was pushed to by a user without write access

Co-authored-by: patricktobias86 <21059973+patricktobias86@users.noreply.github.com>

Copilot AI commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

🟡 Changes recommended

Unresolved moderate issues remain in workflow state handling, permission/status refresh, retry diagnostics, and launch configurations....

Implemented all items from this review thread in commits 05515ba and c072312.

Key fixes included:

  • cleared stale timeout state at task start and improved in-progress status inference for retry/dry run
  • corrected dry-run completion/status behavior and dry-run Zoom install predicate
  • refreshed preflight camera/microphone checks after permission flow/workflow completion
  • cleared stale retry diagnostics and recorded retry failure step results
  • removed stale VS Code launch configs and corrected launch cwd to ${workspaceFolder}
  • bumped VERSION to 1.7.3

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.

🟡 Changes recommended

Two moderate unresolved stale-state issues must be addressed before approval.

Get a fresh assessment by requesting another Copilot review.

Review details

Suppressed comments (1)

Sources/1132Fixer/ContentView.swift:1644

  • This replacement removes the only visible app name and icon from the content view. Since 1132FixerApp hides the title bar and suppresses its title (Sources/1132Fixer/1132FixerApp.swift:24-25), the main window is now just a row of utility controls with no visible 1132 Fixer identification. Retain the branding or add an equivalent accessible title while compacting this panel.
        HStack(spacing: Design.s1) {
            HeaderLinkButton(title: "GitHub", systemImage: "link", destination: repositoryURL)
            HeaderLinkButton(title: "Website", systemImage: "globe", destination: websiteURL)
            HeaderActionButton(
                title: "Report a bug",
                systemImage: "ladybug",
                isDisabled: isReportBugDisabled,
                action: onReportBug
            )
            HeaderActionButton(
                title: "Export Diagnostics",
                systemImage: "square.and.arrow.up",
                isDisabled: false,
                action: onExportDiagnostics
            )
        }
        .panelChrome(padding: Design.s2)
  • Files reviewed: 3/3 changed files
  • Comments generated: 2
  • Review effort level: Lite

Comment thread Sources/1132Fixer/ContentView.swift
Comment thread Sources/1132Fixer/ContentView.swift
@patricktobias86
patricktobias86 merged commit e17c880 into main Sep 16, 2026
1 check passed
@patricktobias86
patricktobias86 deleted the developer branch September 16, 2026 19:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants