Skip to content
This repository was archived by the owner on Dec 18, 2025. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
eedd9eb
Fix performance issues: batch grid updates, fix String.Replace bug, o…
Copilot Dec 6, 2025
1f4989d
Merge branch 'PeterStrick:master' into master
mta1124-1629472 Dec 6, 2025
4bc1946
Add deprecation notice to README
mta1124-1629472 Dec 6, 2025
cc3d46f
Refactor duplicated code with shared DialogHelper and ThemeHelper cla…
Copilot Dec 6, 2025
755152d
Improve auto-load logic for RDDL_Build combo box
mta1124-1629472 Dec 6, 2025
a425592
Initial plan
Copilot Dec 6, 2025
b705b7c
Migrate from Telerik to WinForms - Remove all Telerik dependencies
Copilot Dec 6, 2025
e3e42f1
Address code review comment - fix incomplete comment
Copilot Dec 6, 2025
b8b7ce4
Merge pull request #3 from mta1124-1629472/copilot/migrate-from-teler…
mta1124-1629472 Dec 6, 2025
9ba04ae
Refactor tooltip handling in ScannerUI
mta1124-1629472 Dec 6, 2025
6466fa3
Add dark mode support and improve UI/UX across forms
mta1124-1629472 Dec 6, 2025
4b60d98
Initial plan
Copilot Dec 6, 2025
bf9f43c
Add WPF scaffold project for .NET 8 migration with MVVM, themes, and …
Copilot Dec 6, 2025
bad352a
Add error handling to MainWindow_Loaded async event handler
Copilot Dec 6, 2025
5b0b733
Merge pull request #4 from mta1124-1629472/copilot/add-wpf-scaffold-net8
mta1124-1629472 Dec 6, 2025
ab011a8
Add AnyCPU build configurations to project and solution
mta1124-1629472 Dec 6, 2025
62fc2e1
Bump actions/checkout from 4 to 6
dependabot[bot] Dec 6, 2025
b919ce2
Bump github/codeql-action from 3 to 4
dependabot[bot] Dec 6, 2025
3fe6a60
Merge pull request #7 from mta1124-1629472/dependabot/github_actions/…
mta1124-1629472 Dec 6, 2025
e5d65e3
Merge pull request #8 from mta1124-1629472/dependabot/github_actions/…
mta1124-1629472 Dec 6, 2025
47c4640
Initial plan
Copilot Dec 6, 2025
bd90de0
Implement GitHub-hosted feed client with ETag caching and offline fal…
Copilot Dec 6, 2025
412f2dc
Address code review feedback: split FeatureEntry into separate file, …
Copilot Dec 6, 2025
f812f19
Initial plan
Copilot Dec 6, 2025
3a3a7aa
Upgrade WPF project to .NET 9 with Fluent theme and ThemeMode support
Copilot Dec 6, 2025
55a3516
Add .NET Core 3.1 runtime to security scan workflow
mta1124-1629472 Dec 6, 2025
e8eae15
Merge pull request #13 from mta1124-1629472/copilot/upgrade-wpf-app-t…
mta1124-1629472 Dec 6, 2025
2206625
Merge pull request #12 from mta1124-1629472/copilot/implement-feature…
mta1124-1629472 Dec 6, 2025
22d1d14
Initial plan
Copilot Dec 6, 2025
aacaf35
Add WPF UI publish flow, GitHub Actions workflow, and feature feed do…
Copilot Dec 6, 2025
23d1395
Fix code review issues: TryGetProperty usage and extract executable c…
Copilot Dec 6, 2025
cfaa4e8
Initial plan
Copilot Dec 6, 2025
b30f819
Implement ViVe integration in FeatureService using RtlFeatureManager
Copilot Dec 6, 2025
86175b0
Merge pull request #14 from mta1124-1629472/copilot/add-wpf-ui-publis…
mta1124-1629472 Dec 6, 2025
53f5eef
Address code review feedback: constants, error handling, and docs
Copilot Dec 6, 2025
9dc480f
Enhance security codescan workflow: merge SARIF results into a single…
mta1124-1629472 Dec 6, 2025
4422392
Add project dependencies for ViVeTool-GUI.Wpf and remove redundant bu…
mta1124-1629472 Dec 6, 2025
bb6ec5e
Merge pull request #15 from mta1124-1629472/copilot/implement-vive-in…
mta1124-1629472 Dec 6, 2025
b996471
Initial plan
Copilot Dec 6, 2025
740124f
Wire FeatureService.LastErrorMessage to UI and add MSBuild target to …
Copilot Dec 6, 2025
443fe12
Merge pull request #16 from mta1124-1629472/copilot/wire-feature-serv…
mta1124-1629472 Dec 6, 2025
7c7a657
Update Debug|x64 mappings to Debug|Any CPU in solution
mta1124-1629472 Dec 6, 2025
0755775
Initial plan
Copilot Dec 6, 2025
2ac7a3d
Integrate Feature Scanner into WPF app with mach2-based backend
Copilot Dec 6, 2025
014cd09
Address code review feedback: fix dead code, improve portability, ref…
Copilot Dec 6, 2025
9e838a9
Merge pull request #17 from mta1124-1629472/copilot/add-feature-scann…
mta1124-1629472 Dec 6, 2025
01087b4
Initial plan
Copilot Dec 6, 2025
f4ed5cc
Implement WPF Feature Scanner improvements: auto-detect symchk.exe, a…
Copilot Dec 6, 2025
2a55e01
Initial plan
Copilot Dec 6, 2025
8663369
Merge pull request #18 from mta1124-1629472/copilot/improve-feature-s…
mta1124-1629472 Dec 6, 2025
8c2dcd1
Add Microsoft symbol server (/s srv*) to symchk arguments in Download…
Copilot Dec 6, 2025
e94c7ab
Initial plan
Copilot Dec 6, 2025
52d008c
Merge branch 'master' into copilot/update-feature-scanner-symbols
mta1124-1629472 Dec 6, 2025
18c5702
Merge pull request #19 from mta1124-1629472/copilot/update-feature-sc…
mta1124-1629472 Dec 6, 2025
0e68957
Implement Feature Scanner and error handling improvements
Copilot Dec 6, 2025
0fb77b4
Merge pull request #20 from mta1124-1629472/copilot/improve-feature-s…
mta1124-1629472 Dec 6, 2025
9633450
Update target framework and add app-level settings
mta1124-1629472 Dec 6, 2025
4d9bec1
Initial plan
Copilot Dec 6, 2025
22a46ff
Fix tooltip icon using vector Path and fix symchk arguments mismatch
Copilot Dec 6, 2025
6f069f4
Merge pull request #21 from mta1124-1629472/copilot/update-tooltip-ic…
mta1124-1629472 Dec 6, 2025
057e954
Initial plan
Copilot Dec 6, 2025
f6f1e00
Implement default fast scanning behavior for WPF Feature Scanner
Copilot Dec 6, 2025
c7edd5b
Merge pull request #22 from mta1124-1629472/copilot/implement-fast-sc…
mta1124-1629472 Dec 6, 2025
1dda6f0
Add admin check, decouple feed loading from feature queries, and show…
Copilot Dec 6, 2025
dc0b4cf
Address code review feedback: use constants and case-insensitive matc…
Copilot Dec 6, 2025
da9b7f5
Initial plan
Copilot Dec 6, 2025
125da70
Add resilience for build dropdown population
Copilot Dec 6, 2025
0bc067a
Address code review feedback: improve error message and use consisten…
Copilot Dec 6, 2025
234ac82
Initial plan
Copilot Dec 6, 2025
8ab236e
Merge pull request #24 from mta1124-1629472/copilot/implement-resilie…
mta1124-1629472 Dec 6, 2025
56b2800
Set User-Agent to include app name/version and update AutoUpdater URL…
Copilot Dec 6, 2025
0ac8b11
Address code review feedback: extract User-Agent to shared property a…
Copilot Dec 6, 2025
41d5255
Extract GitHub repo owner to constant and improve exception handling …
Copilot Dec 6, 2025
f55596f
Add AnyCPU support and refactor feature parsing logic
mta1124-1629472 Dec 6, 2025
1ee6d8a
Add AnyCPU configs and refactor feature processing logic
mta1124-1629472 Dec 6, 2025
d78cb18
Merge pull request #25 from mta1124-1629472/copilot/update-user-agent…
mta1124-1629472 Dec 6, 2025
564f4f3
Initial plan
Copilot Dec 6, 2025
ff56ba6
Implement feed-first feature loading with build selection and local f…
Copilot Dec 6, 2025
faec19c
Fix async/await issues and add Feature Scanner auto-load integration
Copilot Dec 6, 2025
3b90806
Merge pull request #26 from mta1124-1629472/copilot/implement-feed-fi…
mta1124-1629472 Dec 6, 2025
62b4d29
Improve error handling and feature management logic
mta1124-1629472 Dec 6, 2025
2613f2a
Enhance issue templates and documentation for better user guidance an…
mta1124-1629472 Dec 6, 2025
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
46 changes: 44 additions & 2 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,43 @@
---
name: Bug report
about: Create a report to help us improve
title: "Bug: [short description]"
labels: bug
---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:

1. Go to '...'
2. Click on '...'
3. See error

**Expected behavior**
What you expected to happen.

**Screenshots/Logs**
If applicable, add screenshots and relevant logs (attach files or inline snippets).

**Environment**

- OS: (e.g., Windows 10)
- Version: (release or commit)
- Build configuration: Debug/Release

**Severity**

- [ ] Low
- [ ] Medium
- [ ] High

**Checklist**

- [ ] I reproduced this with the latest `master` branch
- [ ] I included logs and reproduction steps

---
name: Bug report
about: Create a report to help us improve
Expand All @@ -12,6 +52,7 @@ A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:

1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
Expand All @@ -24,5 +65,6 @@ A clear and concise description of what you expected to happen.
If applicable, add screenshots to help explain your problem.

**Desktop (please complete the following information):**
- Windows Build:
- ViVeTool-GUI Version:

- Windows Build:
- ViVeTool-GUI Version:
26 changes: 26 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,29 @@
---
name: Feature request
about: Suggest an idea for this project
title: "Feature: [short description]"
labels: enhancement
---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is.

**Describe the solution you'd like**
Describe the preferred solution and why it helps.

**Alternatives considered**
List other solutions or features you considered.

**Acceptance criteria**

- Clear description of when this is done
- Backwards compatibility notes

**Checklist**

- [ ] I discussed this in an issue or RFC
- [ ] I can provide tests or a prototype

---
name: Feature request
about: Suggest an idea for this project
Expand Down
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/general_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: General request
about: General question, documentation change, or other non-bug/feature request
title: "Request: [short description]"
labels: question
---

**Summary**
Describe the request or question.

**Context**
Why is this change needed? Who will benefit?

**Proposed resolution**
What would satisfy this request?

**Checklist**

- [ ] I searched existing issues
- [ ] I included sufficient context and examples
30 changes: 30 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<!-- Provide a short description of the change and the motivation. -->

## Description

What does this change do? Include references to related issues.

## Type of change

- Bug fix
- New feature
- Documentation update
- Other

## Testing & Checklist

- [ ] `dotnet build` passes for `ViVeTool-GUI.Wpf`
- [ ] Manual WPF smoke test completed (start app, open main UI, exercise primary flows)
- [ ] Updated/added unit tests (if applicable)
- [ ] Docs updated (README / CONTRIBUTING / SECURITY)
- [ ] CI green

## How to test

Provide steps to reproduce and test the change locally.

## Screenshots (if applicable)

## Notes

Add any additional notes for reviewers.
40 changes: 40 additions & 0 deletions .github/SECURITY_REPORT_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
Subject: [SECURITY] <short title> — ViVeTool-GUI

Hello maintainers,

I would like to report a potential security vulnerability in ViVeTool-GUI.

Summary:

- A short summary of the issue and affected components.

Affected versions:

- e.g., commit hash / tag / version / branch

Steps to reproduce (minimal and safe):

1. ...
2. ...

Impact:

- Describe the impact (data exposure, privilege escalation, crash, etc.)

Mitigation suggestions (if any):

- Short guidance or mitigation ideas.

Contact & disclosure preferences:

- Preferred contact method: Use GitHub Security Advisory (<https://github.com/PeterStrick/ViVeTool-GUI/security/advisories>) for private reports. No direct email is provided.
- Disclosure timeline or embargo request (if any)

Attachments:

- Logs, PoC (only if necessary — sensitive information should be shared securely)

Thank you — please acknowledge receipt.

Regards,
<reporter name>
157 changes: 157 additions & 0 deletions .github/workflows/publish-feature-list.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
name: Publish Feature List

on:
workflow_dispatch:
inputs:
build:
description: 'Windows build number'
required: true
type: string
artifact_url:
description: 'URL to download the artifact from'
required: false
type: string
artifact_path:
description: 'Path to the artifact in the repository'
required: false
type: string
format:
description: 'Output format (csv or json)'
required: true
default: 'csv'
type: choice
options:
- csv
- json

permissions:
contents: write
pull-requests: write

jobs:
publish:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
token: ${{ secrets.FEED_PUBLISH_TOKEN || github.token }}
fetch-depth: 0

- name: Validate inputs
run: |
if [ -z "${{ inputs.build }}" ]; then
echo "Error: Build number is required"
exit 1
fi

if [ -z "${{ inputs.artifact_url }}" ] && [ -z "${{ inputs.artifact_path }}" ]; then
echo "Error: Either artifact_url or artifact_path must be provided"
exit 1
fi

echo "Build: ${{ inputs.build }}"
echo "Format: ${{ inputs.format }}"
echo "Artifact URL: ${{ inputs.artifact_url }}"
echo "Artifact Path: ${{ inputs.artifact_path }}"

- name: Create features directory
run: |
mkdir -p features/${{ inputs.build }}

- name: Download artifact from URL
if: ${{ inputs.artifact_url != '' }}
run: |
curl -L -o features/${{ inputs.build }}/features.${{ inputs.format }} "${{ inputs.artifact_url }}"
echo "Downloaded artifact from URL to features/${{ inputs.build }}/features.${{ inputs.format }}"

- name: Copy artifact from path
if: ${{ inputs.artifact_path != '' && inputs.artifact_url == '' }}
run: |
if [ -f "${{ inputs.artifact_path }}" ]; then
cp "${{ inputs.artifact_path }}" features/${{ inputs.build }}/features.${{ inputs.format }}
echo "Copied artifact from path to features/${{ inputs.build }}/features.${{ inputs.format }}"
else
echo "Error: Artifact file not found at ${{ inputs.artifact_path }}"
exit 1
fi

- name: Verify artifact
run: |
if [ ! -f "features/${{ inputs.build }}/features.${{ inputs.format }}" ]; then
echo "Error: Feature file was not created"
exit 1
fi
echo "Feature file created successfully:"
ls -la features/${{ inputs.build }}/
echo "File contents preview (first 10 lines):"
head -10 features/${{ inputs.build }}/features.${{ inputs.format }}

- name: Update latest.json
run: |
# Create or update latest.json
LATEST_FILE="latest.json"
BUILD="${{ inputs.build }}"
TIMESTAMP=$(date -u +"%Y-%m-%dT%H:%M:%SZ")

if [ -f "$LATEST_FILE" ]; then
# Read existing builds and add new one if not already present
EXISTING_BUILDS=$(jq -r '.builds // []' "$LATEST_FILE")
HAS_BUILD=$(echo "$EXISTING_BUILDS" | jq --arg b "$BUILD" 'map(select(. == $b)) | length')

if [ "$HAS_BUILD" = "0" ]; then
# Add new build to the list
jq --arg b "$BUILD" --arg t "$TIMESTAMP" '.builds = (.builds + [$b] | sort | reverse) | .latestBuild = $b | .lastUpdated = $t' "$LATEST_FILE" > tmp.json && mv tmp.json "$LATEST_FILE"
else
# Just update latestBuild if this is a newer build
jq --arg b "$BUILD" --arg t "$TIMESTAMP" '.latestBuild = $b | .lastUpdated = $t' "$LATEST_FILE" > tmp.json && mv tmp.json "$LATEST_FILE"
fi
else
# Create new latest.json
echo "{\"latestBuild\": \"$BUILD\", \"builds\": [\"$BUILD\"], \"lastUpdated\": \"$TIMESTAMP\"}" | jq '.' > "$LATEST_FILE"
fi

echo "Updated latest.json:"
cat "$LATEST_FILE"

- name: Check for changes
id: check_changes
run: |
git add .
if git diff --staged --quiet; then
echo "No changes to commit"
echo "has_changes=false" >> $GITHUB_OUTPUT
else
echo "Changes detected"
echo "has_changes=true" >> $GITHUB_OUTPUT
fi

- name: Commit and push changes
if: steps.check_changes.outputs.has_changes == 'true'
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"

git commit -m "Add feature list for build ${{ inputs.build }}"

# Try to push directly to main
if git push origin main; then
echo "Successfully pushed to main branch"
else
# If direct push fails, create a PR branch
BRANCH_NAME="feed/update-${{ inputs.build }}-$(date +%s)"
git checkout -b "$BRANCH_NAME"
git push origin "$BRANCH_NAME"
echo "Created branch $BRANCH_NAME for PR"
echo "Please create a pull request to merge the changes"
fi

- name: Summary
run: |
echo "## Feature List Published" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "- **Build:** ${{ inputs.build }}" >> $GITHUB_STEP_SUMMARY
echo "- **Format:** ${{ inputs.format }}" >> $GITHUB_STEP_SUMMARY
echo "- **Location:** features/${{ inputs.build }}/features.${{ inputs.format }}" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "The feature list has been added to the repository." >> $GITHUB_STEP_SUMMARY
30 changes: 26 additions & 4 deletions .github/workflows/securitycodescan.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,21 +19,43 @@ jobs:
if: ${{ github.actor != 'dependabot[bot]' }}
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- uses: nuget/setup-nuget@323ab0502cd38fdc493335025a96c8fdb0edc71f
- uses: microsoft/[email protected]


- name: Install .NET Core 3.1 runtime
uses: actions/setup-dotnet@v3
with:
dotnet-version: '3.1.x'

- name: Set up projects for analysis
uses: security-code-scan/security-code-scan-add-action@2439fb4aaeda4ad590a7c8bde327d159d03875fd

- name: Restore dependencies
- name: Restore dependencies
run: nuget restore

- name: Build
run: msbuild

- name: Convert sarif for uploading to GitHub
uses: security-code-scan/security-code-scan-results-action@cdb3d5e639054395e45bf401cba8688fcaf7a687
with:
sarif_directory: ${{ runner.temp }}/scs-sarif

- name: Merge sarif results into single file
shell: pwsh
run: |
$sarifDir = Join-Path $env:RUNNER_TEMP "scs-sarif"
if (!(Test-Path $sarifDir)) { throw "SARIF directory not found: $sarifDir" }

$sarifFiles = Get-ChildItem -Path $sarifDir -Filter *.sarif | Select-Object -ExpandProperty FullName
if (-not $sarifFiles) { throw "No SARIF files produced for upload." }

$output = Join-Path $sarifDir "merged.sarif"
& "$env:USERPROFILE/.dotnet/tools/sarif" merge $sarifFiles --output $output --merge-runs

- name: Upload sarif
uses: github/codeql-action/upload-sarif@v3
uses: github/codeql-action/upload-sarif@v4
with:
sarif_file: ${{ runner.temp }}/scs-sarif/merged.sarif
category: securitycodescan
Loading