Skip to content

v2.3.0 — Navigation & Quick Actions - #7

Merged
bubblegump30 merged 1 commit into
mainfrom
release/v2.3.0-navigation
Oct 9, 2026
Merged

bubblegump30 merged 1 commit into
mainfrom
release/v2.3.0-navigation

Conversation

@bubblegump30

Copy link
Copy Markdown
Owner

The existing search selected one predefined match and offered no quick-access memory. Ctrl+K now opens a searchable command palette for PowerTools centers and existing Windows tool launchers. Results support arrow/Home/End selection, Enter, mouse selection, and Alt+P pin/unpin. The dashboard shows up to 12 persistent pins and eight deduplicated recent tools. F1 opens a shortcut guide with a clear-recents control; Dashboard/Settings shortcuts leave text entry alone.

Navigation preferences store validated allowlisted tool IDs locally, recover from corrupt data, and tolerate failed writes. Tool launchers use the existing bridge and do not execute system changes. Existing modal focus containment and updater trust controls remain intact.

Validation passed: syntax; navigation preference/search tests; dialog focus tests; update verification; transaction/rollback; publisher policy for v2.2.0, v2.2.1 and v2.3.0; whitespace checks. Actual-page DOM smoke checks passed for Ctrl+K, filtering, pin storage, empty results, Enter navigation, recents, clearing history, help and typing-safe shortcuts. These DOM checks are not pixel-layout or native Windows acceptance. Windows launches, high-DPI visuals, installer/portable packaging and upgrade acceptance remain pending, so this PR is draft.

Version: 2.3.0. Additive local preference key pt.navigation.v1; no migration of existing configuration. README retains v2.2.0 as the published Stable release. Release notes/changelog mark v2.3.0 unreleased. Manual signed publication workflow is prepared with existing safeguards; no release has been published.

@bubblegump30
bubblegump30 marked this pull request as ready for review October 9, 2026 01:23
@bubblegump30
bubblegump30 merged commit 4faaf0a into main Oct 9, 2026
2 checks passed
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-09T01:27:40.159534Z dca26e8 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: dca26e8b30

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/navigation.js
Comment on lines +18 to +21
['taskmanager','Task Manager'], ['resmon','Resource Monitor'], ['devicemanager','Device Manager'], ['eventviewer','Event Viewer'],
['services','Services'], ['diskmanagement','Disk Management'], ['computermanagement','Computer Management'], ['controlpanel','Control Panel'],
['poweroptions','Power Options'], ['networkconnections','Network Connections'], ['updates','Windows Update'], ['defender','Windows Security'],
['firewall','Windows Firewall'], ['bitlocker','BitLocker Settings'], ['startup','Startup Apps'], ['storage','Windows Storage Settings'], ['apps','Windows Installed Apps']

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Include all existing launchers and search aliases

The new catalog replaces the previous global-search map but omits supported entries and aliases. For example, system:open still supports registry, systeminfo, uac, network, advancednetwork, and about, while searches such as “registry”, “UAC”, “secure boot”, “public IP”, and “system context” previously navigated to the relevant center and now return no matches. Add the existing launchers and preserve the former center keywords so the command palette does not regress established searches.

Useful? React with 👍 / 👎.

Comment thread src/renderer.js
Comment on lines +1857 to +1860
async function runNavigation(id) {
const item = navigation.byId.get(id); if (!item) return;
closeModal();
if (item.kind === 'center') navigate(item.target);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Move focus after navigating away from the invoking view

When the palette is opened while focus is inside one center and the user selects a different center, closeModal() first restores focus to the invoking control and navigate() then hides that control's entire .view. The active element therefore remains inside hidden content, making keyboard focus appear lost; defer focus restoration for center navigation or explicitly focus the active sidebar item or destination heading after switching views.

Useful? React with 👍 / 👎.

- name: Require explicit Stable confirmation
shell: pwsh
run: |
if ('${{ inputs.confirmation }}' -ne 'PUBLISH-v2.3.0') {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Pass the confirmation through an environment variable

The workflow-dispatch value is interpolated directly into PowerShell source before parsing, so a dispatcher can include a quote and additional PowerShell statements instead of merely failing the equality check. Because this runs before checkout, injected code can persist environment/PATH changes or files under the runner temp directory and poison the later Windows build whose artifacts are subsequently manifested, signed, and published without requiring access to the signing key. Bind the expression to a step environment variable and compare $env:... so the input is treated only as data.

Useful? React with 👍 / 👎.

Comment thread src/renderer.js
Comment on lines +1861 to +1863
else if (item.kind === 'tool') {
try { const result = await api.openSystem(item.target); if (!result?.ok) { toast('Tool could not open',result.error || item.label); return; } recordNavigation(id); }
catch (error) { toast('Tool could not open',String(error?.message || error)); }

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Reuse the normal post-launch handling for quick actions

When a Windows tool is opened from the command palette or the new pinned/recent controls, this direct api.openSystem path bypasses openWindows(), which provides the success toast and calls refreshActivity(). The main process records the launch, but the dashboard's Recent Activity remains stale until the user manually refreshes or performs another action, and these launchers provide no success feedback; route successful quick-action launches through the existing wrapper or perform the same post-launch updates here.

Useful? React with 👍 / 👎.

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.

1 participant