Skip to content

Commit 9248bd0

Browse files
authored
Merge pull request #93 from beNative/codex/prepare-new-release-for-github
docs: capture 0.25.8 release changes
2 parents 7e52988 + 9ef0981 commit 9248bd0

File tree

7 files changed

+51
-23
lines changed

7 files changed

+51
-23
lines changed

CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,20 @@ All notable changes to this project will be documented in this file.
66

77
- _No unreleased changes._
88

9+
## [0.25.8]
10+
11+
### Changed
12+
- **Repository Card Stability:** Smoothed out repository refreshes so cards keep a consistent height while statuses update, eliminating layout jumps when new data arrives.
13+
- **Debug Log Ergonomics:** Rebuilt the debug log panel with proper text selection, Shift/Ctrl multi-select, and copy-formatting controls so incident responders can capture exactly the log lines they need.
14+
- **Auto-Update Messaging:** Trimmed the "update failed" toast copy to a concise summary that links to the debug log when upstream errors include unusually large payloads.
15+
16+
### Fixed
17+
- **GitHub Auto-Update Fallbacks:** Patched the `electron-updater` GitHub provider to retry via the REST API (with authenticated request headers and structured logging) whenever the legacy HTML endpoint returns 406 responses. This closes the loop on update checks that previously stalled during GitHub API hardening.
18+
- **Windows Clone Execution:** Stopped spawning the Setup & Clone process through a Windows shell so Git/SVN executables with spaces in their path run reliably, while still logging the exact command for troubleshooting.
19+
20+
### Documentation
21+
- Documented the repository card layout stabilization, debug log selection tooling, auto-update hardening, and Setup & Clone reliability fixes for maintainers preparing the 0.25.8 release.
22+
923
## [0.25.7]
1024

1125
### Changed

FUNCTIONAL_MANUAL.md

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,14 @@ Each card gives you an at-a-glance overview of a repository:
6464
- **Build Health:** The status of the last build (`Healthy`, `Failing`, `Unknown`).
6565
- **Last Updated:** The timestamp of the last automation, neatly aligned on the right.
6666
- **Latest Release (Git only):** If a GitHub PAT is configured in settings, this shows the version tag of the latest GitHub release and its status (e.g., `Published`, `Draft`, `Pre-release`).
67+
- **Stable Layout:** Repository cards keep a steady height while they refresh, so buttons no longer jump or resize as new status data streams in.
6768

6869
### Card Actions
6970

7071
Each card has a set of action buttons at the bottom:
7172

7273
- **Setup & Clone / Clone Repo:** When the local working copy is missing, the card automatically surfaces guided buttons. **Setup & Clone** opens a folder picker so you can select where to place the checkout, then immediately kicks off the clone/checkout. If a path is already stored but empty, a single **Clone Repo** button runs the clone directly. Progress for both flows streams into the log panel.
74+
- On Windows, Setup & Clone now launches Git or SVN directly (instead of routing through `cmd.exe`), so executable paths containing spaces run without failing mid-clone.
7375
- **Task Buttons:** Any task marked with "Show on dashboard" will appear as its own button for one-click execution.
7476
- **Pinned Launch Buttons:** Launch configurations flagged to "Show on dashboard" appear alongside task buttons with a lightning icon for one-click app launches.
7577
- **More Tasks (Play Icon):** If there are more tasks available, this button opens a modal to select any of the repository's tasks to run.
@@ -169,6 +171,15 @@ When you run a task or choose to view logs, a panel will appear at the bottom of
169171
- **Cancel Running Tasks:** Each active task tab exposes a **Cancel Task** button that signals the Electron main process to terminate the underlying child process, allowing you to stop a runaway script without closing the application.
170172
- **Closing:** You can close the entire panel at once by clicking the 'X' icon in the top-right of the panel.
171173

174+
### Debug Log Panel
175+
176+
The status bar includes a **bug icon** that opens the Debug Log Panel. This view captures structured logs from both the renderer and the Electron main process, making triage far easier during incidents.
177+
178+
- **Selection & Copying:** Click entries to select them, use `Shift` for ranges, or `Ctrl/Cmd` to multi-select individual lines. A new copy button exports the selection with optional timestamp/level/data fields, preserving on-screen ordering.
179+
- **Search & Filter:** Continue filtering by log level or keyword—highlighted matches respect the new selection flow, so you can refine the list before copying.
180+
- **Accessibility:** Keyboard navigation mirrors the mouse interactions, and the panel respects native text selection so you can drag to copy snippets directly.
181+
- **Export:** The existing "Download Logs" action still emits a structured file, complementing the richer clipboard workflow.
182+
172183
## 5. Global Settings View
173184

174185
Click the **cog icon** in the menu bar to access global settings.
@@ -178,7 +189,8 @@ Click the **cog icon** in the menu bar to access global settings.
178189
- **Icon Set:** Select from the available icon sets to customize the application's iconography. Feather is the default for a clean and consistent look.
179190
- **GUI Scale:** Adjust the overall size of the application from 50% to 200% for better readability.
180191
- **Behavior:**
181-
- **GitHub Personal Access Token:** A secure field to store your GitHub Personal Access Token (PAT). This token is required for features that interact with the GitHub API, such as fetching release information. A copy button is provided for convenience. A link is provided to help you create a token with the necessary permissions. For full functionality, including managing draft releases, create a fine-grained token with "Read & write" access to repository "Contents".
192+
- **GitHub Personal Access Token:** A secure field to store your GitHub Personal Access Token (PAT). This token is required for features that interact with the GitHub API, such as fetching release information. A copy button is provided for convenience. A link is provided to help you create a token with the necessary permissions. For full functionality, including managing draft releases, create a fine-grained token with "Read & write" access to repository "Contents".
193+
- The auto-updater now reuses this PAT for REST API fallback requests when GitHub's HTML release feed returns HTTP 406, so providing the token keeps update checks flowing.
182194
- **Open Web Links In:** Choose whether to open web links in your system's default browser, or force them to open in Chrome or Firefox.
183195
- **Enable Notifications:** Toggle on/off the toast notifications.
184196
- **Enable Simulation Mode:** This is a critical safety feature.
@@ -204,6 +216,6 @@ For advanced users, the settings view includes a **"JSON Config"** tab. This sec
204216
- **Export Settings:** Click the "Export Settings" button to save your current configuration into a compressed `.zip` archive. This is useful for creating backups or sharing your setup.
205217
- **Import Settings:** Click the "Import Settings" button. You can select a `.zip` archive (created via the export feature) or a raw `.json` file to restore a configuration. This will overwrite your current settings and restart the application.
206218

207-
### Documentation Status for 0.25.7
219+
### Documentation Status for 0.25.8
208220

209-
- Re-reviewed the functional guidance and confirmed it, together with the README, Technical Manual, and keyboard shortcut specification, remains accurate for version `0.25.7`.
221+
- Captured the debug log selection workflow, repository card layout stabilization, Windows Setup & Clone reliability, and GitHub updater fallback behavior introduced in version `0.25.8`.

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ This application provides a simple, powerful dashboard to manage and automate th
88
- **Centralized Dashboard:** View the status, branch, and build health of all your repositories in one place.
99
- **Customizable Dashboard Categories:** Organize your repositories into collapsible sections with **dual-theme (light/dark) color styling**, a library of predefined themes, full drag-and-drop support (for both repositories and categories), and alternative up/down reorder buttons.
1010
- **Multi-VCS Support:** Manage both Git and Subversion (SVN) repositories seamlessly.
11-
- **Guided Repository Setup:** Built-in **Setup & Clone** and **Clone Repo** actions help you create or repair local working copies directly from each repository card, streaming progress into the integrated log panel.
11+
- **Guided Repository Setup:** Built-in **Setup & Clone** and **Clone Repo** actions help you create or repair local working copies directly from each repository card, streaming progress into the integrated log panel. On Windows the clone flow now launches Git/SVN executables directly (instead of through a shell), so paths containing spaces no longer break the automation.
1212
- **Repository-Specific Tasks:** Create custom, multi-step automation scripts (e.g., pull/update, install, build) for each repository.
1313
- **Project Intelligence:** Automatically detects project types (Node.js, Python, Go, Rust, Java/Maven, .NET, Delphi, Lazarus, Docker) and provides one-click buttons to generate common, pre-configured tasks.
1414
- **Advanced Task Steps:** A rich library of specific, pre-built steps for different ecosystems—including Go, Rust, Java/Maven, and .NET—**now organized into logical categories in the UI for easy discovery**, simplifies creating complex workflows.
@@ -25,8 +25,8 @@ This application provides a simple, powerful dashboard to manage and automate th
2525
- **Commit History:** View the commit history for any Git or SVN repository, with **a stable, non-flickering UI**, search, and load-on-demand.
2626
- **Tabbed & Integrated Log Panel:** Monitor the output of every command in a detailed, resizable, and tabbed log panel that integrates smoothly into the main view.
2727
- **Automatic Task Log Archiving:** The full console output for every task run is automatically saved to a timestamped log file in a configurable directory for historical reference.
28-
- **Advanced Debugging:** A powerful debug console with log filtering and a save-to-file feature (now including logs from the main process) for in-depth troubleshooting.
29-
- **Reliable Auto-Updates:** Get notified with a clear banner when a new version is ready and install it with a single click.
28+
- **Advanced Debugging:** A powerful debug console with log filtering, multi-select & copy tooling, and a save-to-file feature (now including logs from the main process) for in-depth troubleshooting.
29+
- **Reliable Auto-Updates:** Get notified with a clear banner when a new version is ready and install it with a single click. When GitHub's HTML release feed returns HTTP 406 responses, the updater automatically retries against the REST API using your configured PAT so checks keep working.
3030
- **Easy Configuration:** Add new repositories and configure them through a simple, unified form.
3131
- **Persistent UI State:** The application remembers your dashboard layout, including the collapsed state of categories, between sessions.
3232
- **Persistent & Safe Configuration:** All your settings and repository configurations are stored safely in a persistent location, ensuring they are never lost during application updates.
@@ -74,9 +74,9 @@ Follow this checklist when preparing a new minor or patch release:
7474
**Release Type** selector to the intended state (Full Release for GA builds, Draft or Pre-release as needed). Paste the freshly
7575
written changelog entry into the release body so the GitHub notes exactly match the repository history, then publish.
7676

77-
### Documentation Status for 0.25.7
77+
### Documentation Status for 0.25.8
7878

79-
- Re-validated the task execution guidance and confirmed the remainder of this README, the manuals, and the keyboard shortcut reference still reflect the current experience for version `0.25.7`.
79+
- Documented the debug log selection workflow, repository card layout stabilization, auto-update REST fallback, and Windows Setup & Clone reliability improvements delivered in version `0.25.8`.
8080

8181
---
8282
_For developer information, including how to run this project in development mode or build it from source, please see the **Technical Manual** tab in the Info Hub._

TECHNICAL_MANUAL.md

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,9 @@ The application uses a custom frameless window to achieve a modern, VSCode-like
3838
- **VCS Commands:** Executes real Git/SVN commands for advanced features like checking status, fetching commit history (now for SVN as well), and managing branches.
3939
- **Executable Path Management:** Handles IPC calls for file pickers, auto-detection, and testing of user-configured executable paths.
4040
- **External Links:** Handles requests from the renderer to open web links in the user-specified browser.
41-
- **GitHub API:** Fetches release information for a repository using a user-provided Personal Access Token.
42-
- **Settings I/O:** Manages the import and export of settings files using the `jszip` library.
41+
- **GitHub API:** Fetches release information for a repository using a user-provided Personal Access Token.
42+
- **Auto-Update Fallbacks:** Installs a GitHub provider patch that retries via the REST API with authenticated headers when the legacy HTML endpoint returns HTTP 406 responses, and emits structured diagnostics for release engineering.
43+
- **Settings I/O:** Manages the import and export of settings files using the `jszip` library.
4344

4445
### Renderer Process
4546

@@ -96,22 +97,23 @@ Use this process when shipping a new minor update or bugfix:
9697
5. **Build Installers:** Run `npm run pack`. The command produces platform installers in the `release/` directory. Perform a quick smoke test of the generated artifacts before distribution.
9798
6. **Publish on GitHub:** Draft a new release on GitHub, attach the installers from the `release/` folder, verify the tag/version details, and explicitly set the **Release Type** selector to match your intent (Full Release for GA builds or Draft/Pre-release when staging). Paste the current changelog entry into the notes so the GitHub release matches the repository history, then publish.
9899

99-
### Documentation Status for 0.25.7
100+
### Documentation Status for 0.25.8
100101

101-
- Reconfirmed the main process responsibilities, auto-update notes, and cross-referenced manuals remain technically accurate for version `0.25.7`.
102+
- Recorded the GitHub updater REST fallback patch, debug log tooling upgrades, and related documentation cross-links required for version `0.25.8`.
102103
## 7. Automatic Updates
103104

104105
The application is configured to automatically check for updates on startup using the `electron-updater` library.
105106

106107
- **Update Source:** It checks for new releases published on the project's GitHub Releases page. The behavior is controlled by the "Check for Pre-Releases" setting.
107108
- **Process:**
108109
1. On startup, the Main Process (`electron/main.ts`) reads the user's settings to determine whether to allow pre-releases and prepares authenticated GitHub API headers when a PAT is available.
109-
2. The `autoUpdater` is configured accordingly and checks for updates while also caching the list of assets published for each version.
110-
3. As downloads complete, the main process validates the installer filename against the GitHub release assets (including platform-specific suffixes like `ia32` vs. `x64`). Failed validations are logged with structured context and prevent installation.
111-
4. Throughout the lifecycle it emits `update-status-change` IPC messages so the renderer can surface toast notifications and the condensed update icon in the header.
112-
5. When the `update-downloaded` event is received, the Renderer Process (`App.tsx`) sets a state variable to display the `UpdateBanner` component.
113-
6. When the user clicks the "Restart & Install" button on the banner, the Renderer calls `window.electronAPI.restartAndInstallUpdate()`.
114-
7. This triggers an IPC event (`restart-and-install-update`) which causes the Main Process to call `autoUpdater.quitAndInstall()`, which handles the update process reliably.
110+
2. The application now patches `electron-updater`'s GitHub provider so the initial lookup runs against the REST API. If that request fails to return a tag, the legacy HTML scraping path is attempted, and any 406 responses automatically trigger a REST retry with structured telemetry.
111+
3. The `autoUpdater` is configured accordingly and checks for updates while also caching the list of assets published for each version.
112+
4. As downloads complete, the main process validates the installer filename against the GitHub release assets (including platform-specific suffixes like `ia32` vs. `x64`). Failed validations are logged with structured context and prevent installation.
113+
5. Throughout the lifecycle it emits `update-status-change` IPC messages so the renderer can surface toast notifications and the condensed update icon in the header. Error toasts now summarize long GitHub responses and nudge engineers toward the debug log for full context.
114+
6. When the `update-downloaded` event is received, the Renderer Process (`App.tsx`) sets a state variable to display the `UpdateBanner` component.
115+
7. When the user clicks the "Restart & Install" button on the banner, the Renderer calls `window.electronAPI.restartAndInstallUpdate()`.
116+
8. This triggers an IPC event (`restart-and-install-update`) which causes the Main Process to call `autoUpdater.quitAndInstall()`, which handles the update process reliably.
115117
- **Publishing a New Version:** To publish a new release, a developer with repository access must:
116118
1. Ensure the `version` in `package.json` is incremented.
117119
2. Create a `GH_TOKEN` (GitHub Personal Access Token) with `repo` scopes and make it available as an environment variable.

docs/keyboard-shortcut-editor.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,6 @@ The catalog defines the canonical list of actions and their defaults.
7171
## Future Hooks
7272
- The structure supports hooking into a runtime shortcut registry (e.g., via a dedicated context) by indexing `settings.keyboardShortcuts.bindings`. Any consumer can reuse `shortcutKey` and the catalog to register listeners or show active shortcut hints. The state object is already versioned (`version: 1`) to accommodate future schema migrations.【F:keyboardShortcuts.ts†L285-L313】【F:types.ts†L23-L49】
7373

74-
## Documentation Status for 0.25.7
75-
- Re-validated that the shortcut editor architecture, UI flows, and persistence notes above still reflect the current implementation for version `0.25.7`. No technical adjustments were required beyond recording this confirmation for the release audit trail.
74+
## Documentation Status for 0.25.8
75+
- Re-validated that the shortcut editor architecture, UI flows, and persistence notes above still reflect the current implementation for version `0.25.8`. No technical adjustments were required beyond recording this confirmation for the release audit trail.
7676

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "git-automation-dashboard",
3-
"version": "0.25.7",
3+
"version": "0.25.8",
44
"description": "A dashboard to manage and automate the workflow for a set of Git repositories.",
55
"main": "dist/main.js",
66
"author": "Tim Sinaeve <tim.sinaeve@gmail.com>",

0 commit comments

Comments
 (0)