2
0

58 Commits

Author SHA1 Message Date
2ad2e41870 fix(ui): hide quick switch buttons for disconnected monitors
All checks were successful
Build / build (push) Successful in 9h0m4s
Build and Release / build (push) Successful in 8h0m20s
Filter quick switch items to only show buttons for monitors that are currently connected. This prevents users from attempting to switch inputs on monitors that are no longer available.
v1.1.8
2026-01-31 08:22:24 -05:00
9220023898 feat(ci): add automated code signing to release workflow
All checks were successful
Build / build (push) Successful in 9h0m8s
Build and Release / build (push) Successful in 8h0m23s
Implement automated code signing using Certum SimplySign with TOTP authentication. Add steps to generate TOTP from otpauth URI, authenticate SimplySign Desktop, verify certificate availability, and sign both application exe and installer using signtool.
v1.1.7
2026-01-30 23:11:41 -05:00
13d44de9f9 Move CLAUDE.md to vault
All checks were successful
Build / build (push) Successful in 9h0m3s
2026-01-30 03:46:29 +00:00
38d950512f Merge branch 'master' of https://git.marketally.com/misc/controlmymonitormanagement
All checks were successful
Build / build (push) Successful in 8h59m59s
2026-01-29 22:41:48 -05:00
148c4ffef2 docs(ci): add comprehensive user guide for Monitor Control
Add 650+ line GUIDE.md covering installation, configuration, and usage of Monitor Control application. Includes step-by-step instructions for adjusting brightness/contrast, switching input sources, managing power states, configuring ports, troubleshooting DDC/CI issues, and technical notes on rate limiting.

Update README.md with improved feature descriptions and link to new user guide.
2026-01-29 22:41:33 -05:00
1c5eda7153 Update gallery caption: Image 2026-01-29 at 10.34.04 PM.jpeg
All checks were successful
Build / build (push) Successful in 8h59m58s
2026-01-30 03:36:45 +00:00
4da6187400 Add gallery image: Image 2026-01-29 at 10.34.04 PM.jpeg
All checks were successful
Build / build (push) Successful in 7h59m59s
2026-01-30 03:36:33 +00:00
c79dd97bbd Update gallery caption: Image 2026-01-29 at 10.34.51 PM.jpeg
All checks were successful
Build / build (push) Successful in 9h0m3s
2026-01-30 03:36:20 +00:00
194d4d1f8b Add gallery image: Image 2026-01-29 at 10.34.51 PM.jpeg
All checks were successful
Build / build (push) Successful in 8h0m3s
2026-01-30 03:36:13 +00:00
404e6f42da refactor(ci): rename DellMonitorControl to MonitorControl
All checks were successful
Build / build (push) Successful in 9h0m26s
Build and Release / build (push) Successful in 8h0m15s
Rename project from DellMonitorControl to MonitorControl to reflect broader monitor compatibility beyond Dell hardware. Update all references in solution file, workflow, and project paths.

Add DDC/CI rate limiting and throttling logic to prevent command failures:
- Minimum 50ms interval between commands to same monitor
- 8-second grace period after system resume before sending commands
- 3-second cooldown after timeout to allow monitor recovery
- Global semaphore to prevent command collisions

Replace old icon with new generic monitor icon (ico and png formats).
v1.1.6
2026-01-29 18:14:58 -05:00
3c6cc15281 Check for updates when tray menu opens
Some checks failed
Build / build (push) Has been cancelled
Build and Release / build (push) Has been cancelled
- Checks for updates in background when user clicks tray icon
- Shows clickable blue banner when update available
- Rate limited to once per hour to avoid spam
- Version 1.1.5

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 02:56:53 -05:00
ce3402f1a9 Add About dialog with version info
Some checks failed
Build / build (push) Has been cancelled
Build and Release / build (push) Has been cancelled
- About button added next to Exit in header
- Shows app name, version, author, and company
- Version 1.1.4

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 02:51:12 -05:00
0e530238f6 Ship ControlMyMonitor.exe alongside instead of embedding
Some checks failed
Build / build (push) Has been cancelled
Build and Release / build (push) Has been cancelled
- Remove embedded resource pattern (dropper behavior triggers AV)
- ControlMyMonitor.exe now copied to output directory as content
- Removes extraction to temp folder at runtime
- Should eliminate Wacatac.H!ml false positive

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 02:47:54 -05:00
fc3ebe14be Add Reset and Detect buttons to Config dialog
Some checks failed
Build / build (push) Has been cancelled
Build and Release / build (push) Has been cancelled
- Reset button: clears custom labels, unhides all ports, removes discovered ports
- Detect button: tries common VCP 60 values to discover available input ports
- Version bumped to 1.1.2

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 02:41:42 -05:00
0c860d19ea Remove batch file creation to reduce AV false positives
Some checks failed
Build and Release / build (push) Has been cancelled
Build / build (push) Has been cancelled
- Refactored all process execution to use direct exe calls
- Added ExecuteExeAsync method for direct process execution
- Removed dynamic .bat file creation that triggered Wacatac detection
- All commands now run ControlMyMonitor.exe directly with arguments

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 02:29:16 -05:00
89c922c265 v1.1.0 - Fix shortcut icons and update publisher
Some checks failed
Build / build (push) Has been cancelled
Build and Release / build (push) Has been cancelled
- Add explicit icon to all shortcuts (Start menu, desktop, startup)
- Include ico file in installer for shortcut icons
- Set installer icon
- Update publisher to MarketAlly

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 02:13:30 -05:00
38f5aa325c Add portable zip to release workflow
Some checks failed
Build and Release / build (push) Has been cancelled
Build / build (push) Has been cancelled
- Create MonitorControl-Portable-{version}.zip alongside installer
- Updated release notes to mention both options
- Portable version useful for users with antivirus false positives

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 02:06:32 -05:00
ac53fbf80e Fix missing input source in dropdown and update metadata
Some checks failed
Build / build (push) Has been cancelled
Build and Release / build (push) Has been cancelled
- Add current input to options if monitor doesn't report it in possible values
- Never hide the currently active input port in config filtering
- Make GetInputSourceName public for reuse
- Update company to MarketAlly, author to David H. Friedel Jr
- Add application icon to exe

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 02:03:11 -05:00
139be6f779 Add debug logging for dropdown selection and power unsupported state
Some checks failed
Build / build (push) Has been cancelled
Build and Release / build (push) Has been cancelled
- Added detailed logging in CreateInputRow to help diagnose dropdown
  selection issues after config label changes
- Power button now shows "Power Unsupported" and is disabled for
  monitors that don't support DDC/CI power control

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-07 12:24:55 -05:00
dfec8c07b5 Show 'Unsupported' in config dialog for monitors without input options
Some checks failed
Build / build (push) Has been cancelled
Build and Release / build (push) Has been cancelled
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-07 12:14:28 -05:00
bd7a58a5fe Fix retry loop - don't retry on timeout
Some checks failed
Build / build (push) Has been cancelled
Build and Release / build (push) Has been cancelled
- Fixed buggy recursive retry logic
- Reduced max retries from 5 to 2
- Don't retry if timeout occurred (empty result)
- Monitor is unresponsive, retrying just wastes time

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-07 12:01:47 -05:00
af8b09cfa2 Fix DDC/CI timeout using Task.WhenAny
Some checks failed
Build / build (push) Has been cancelled
Build and Release / build (push) Has been cancelled
Previous timeout using CancellationToken didn't work because
ReadToEndAsync blocks waiting for process output. Now using
Task.WhenAny with Task.Delay to properly timeout and kill
hung processes after 5 seconds.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-07 11:57:13 -05:00
77e9b0505a Fix csproj encoding issue in workflow
Some checks failed
Build / build (push) Has been cancelled
Build and Release / build (push) Has been cancelled
Use System.IO.File methods with UTF-8 BOM to preserve special characters

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-07 11:52:10 -05:00
526974da24 Add auto-update check and DDC/CI timeout fix
Some checks failed
Build and Release / build (push) Failing after 9h0m41s
Build / build (push) Has been cancelled
- Auto-update checker on startup via Gitea API
- Balloon notification when update available, click to download
- 5-second timeout on DDC/CI commands to prevent hangs
- Simplified version scheme to match release tags
- Workflow auto-updates version in csproj from tag

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-07 11:48:39 -05:00
b7597fd4d0 Test with PowerShell enabled
Some checks failed
Build / build (push) Has been cancelled
2026-01-07 16:34:55 +00:00
260379a330 Test with Git in PATH
Some checks failed
Build / build (push) Failing after 8h0m26s
2026-01-07 16:31:14 +00:00
e189731d24 Test with nvm PATH
Some checks failed
Build / build (push) Failing after 8h0m26s
2026-01-07 16:27:17 +00:00
c6a2b5b22f Test nvm node
Some checks failed
Build / build (push) Failing after 9h0m33s
2026-01-07 16:25:24 +00:00
c394320a3e Trigger build
Some checks failed
Build / build (push) Failing after 9h0m40s
2026-01-07 16:23:06 +00:00
0d810bbf49 Add debug logging with Show Log button
Some checks failed
Build / build (push) Failing after 8h0m9s
Build and Release / build (push) Has been cancelled
- DebugLogger class saves logs to %TEMP%\CMM\debug.log
- Show Log button appears after 3s if loading takes too long
- Log viewer with Copy to Clipboard and Open Log File options
- Detailed logging throughout LoadMonitors for debugging

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-07 09:46:09 -05:00
4039e70d0c Copy to C:\build to avoid path length limits
Some checks failed
Build and Release / build (push) Has been cancelled
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 10:56:07 -05:00
28c6cad153 Add SourceDir to ISS and set TEMP for ISCC
Some checks failed
Build and Release / build (push) Has been cancelled
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 10:52:11 -05:00
dda6bf1002 Try cmd shell with working-directory for ISCC
Some checks failed
Build and Release / build (push) Has been cancelled
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 10:29:56 -05:00
821f119547 Add verbose output to ISCC for debugging
Some checks failed
Build and Release / build (push) Has been cancelled
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 10:05:04 -05:00
a33430faa0 Use Push-Location and Start-Process for ISCC
Some checks failed
Build and Release / build (push) Has been cancelled
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 10:01:45 -05:00
401d717adf Add debug output and create installer dir before ISCC
Some checks failed
Build and Release / build (push) Has been cancelled
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 09:57:48 -05:00
cfac39a838 Fix Inno Setup path issue - use PowerShell Set-Location
Some checks failed
Build and Release / build (push) Has been cancelled
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 08:20:38 -05:00
a408b0fd27 Add debug step to check build output
Some checks failed
Build and Release / build (push) Has been cancelled
2026-01-04 08:16:26 -05:00
4aba0049f5 Use cd instead of working-directory for Inno Setup
Some checks failed
Build and Release / build (push) Has been cancelled
2026-01-04 08:10:17 -05:00
7ad87a1398 Fix Inno Setup paths
Some checks failed
Build and Release / build (push) Has been cancelled
2026-01-04 07:57:27 -05:00
db9930f3b6 Add Inno Setup installer
- Add MonitorControl.iss script
- Installer adds to Start Menu
- Optional: desktop shortcut and startup with Windows
- Update workflow to build installer

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 01:48:10 -05:00
c42b3dc817 Use curl for asset upload 2026-01-04 01:31:03 -05:00
fb9f5a56e0 Use direct API for release creation 2026-01-04 01:18:06 -05:00
488034760c Use powershell instead of pwsh 2026-01-04 01:10:53 -05:00
7a3cb7d634 Use 'windows' label for runner 2026-01-04 01:08:13 -05:00
652bbcb5d6 Fix runner name to windows-runner
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 01:05:43 -05:00
7f4001aaae Use official Gitea release action
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 00:58:55 -05:00
0731d770a1 Add Gitea Actions workflows and remove old Dell logo
- Add build.yaml for CI on push/PR
- Add release.yaml for automated releases on version tags
- Remove unused DellLogo.ico

To create a release, push a tag: git tag v1.0.0 && git push --tags

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 00:56:49 -05:00
ab1b4c7c0e Replace Dell logo with Material Design monitor icon
- Add white monitor icon from Google Material Icons (desktop_windows)
- Works with Windows light/dark mode (white icon auto-inverts)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 00:50:09 -05:00
b4690dc937 Apply dark mode button styles to ConfigWindow
- Add DarkButton and PrimaryButton styles matching MainWindow
- Remove X close button (Cancel/Save buttons close dialog)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 00:31:30 -05:00