Skip to content

feat(console): focus management task sections - #336

Merged
mohanagy merged 2 commits into
developmentfrom
feat/issue-332-console-focused-tabs
Jul 31, 2026
Merged

feat(console): focus management task sections#336
mohanagy merged 2 commits into
developmentfrom
feat/issue-332-console-focused-tabs

Conversation

@mohanagy

@mohanagy mohanagy commented Jul 31, 2026

Copy link
Copy Markdown
Owner

Closes #332

Summary

  • turn Overview, Accounts, Authentication, Client setup, and Audit into real ARIA tab panels so one management task is visible at a time
  • preserve in-page form state while switching sections and store only the non-secret selected section in the URL fragment
  • restore a valid section after reload or reauthentication, with invalid fragments falling back to Overview
  • keep account removal and its explicit confirmation inside the Accounts panel
  • add executable contracts for click and keyboard navigation, draft preservation, hash restoration, and invalid-state recovery

Safety boundaries

Navigation changes only visibility, ARIA state, focus, and the URL fragment. It does not call an API, reset a form, write configuration, or alter redaction, audit, OAuth, containment, subprocess, Windows, or public API behavior.

Validation

  • npm test — 1,822 passed, 33 platform skips
  • npm run test:core — 426 passed, 26 platform skips
  • npm run test:coverage -- --maxWorkers=1 --maxConcurrency=1 — 1,822 passed, 33 platform skips; thresholds passed at 95.67% statements and 91.92% branches
  • npm run lint
  • npm run typecheck
  • npm run build
  • npm run smoke:cli
  • npm run check:pack — 48 files verified
  • npm run test:package — 26 passed
  • focused Console suite — 50 passed
  • changelog contracts — 4 passed

Two earlier full-suite attempts exposed unchanged fixed-window process/cancellation tests under local load. Each exact test passed unchanged in isolation, and the final normal and serialized coverage runs passed without timeout changes.

Summary by CodeRabbit

  • New Features
    • Reorganized the Console into five accessible task sections: Overview, Accounts, Authentication, Client setup, and Audit.
    • Added keyboard navigation using arrow keys, Home, and End.
    • Added URL-based section selection with browser history support.
  • Bug Fixes
    • Restored the previously selected section when reopening or resuming a workspace.
    • Preserved drafts while switching sections without unintentionally saving changes.
  • Documentation
    • Documented the Console navigation updates and confirmed existing security and API behavior remain unchanged.

@coderabbitai

coderabbitai Bot commented Jul 31, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 54 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 53f9056e-ddb0-4831-940d-92f206bda074

📥 Commits

Reviewing files that changed from the base of the PR and between 651c650 and 8a4d5ba.

📒 Files selected for processing (1)
  • tests/console-server.test.ts
📝 Walkthrough

Walkthrough

The Console workspace now uses five focused task panels: Overview, Accounts, Authentication, Client setup, and Audit. Tabs support ARIA state, keyboard navigation, URL-hash restoration, draft preservation, and session-resume initialization. Tests cover these behaviors.

Changes

Console task navigation

Layer / File(s) Summary
Workspace panels and tab structure
src/console/console-assets.ts
The workspace defines five ARIA tabs and tabpanels. Selected and hidden states control panel visibility.
Selection, hash, and keyboard navigation
src/console/console-assets.ts
Navigation handles URL hashes, clicks, arrow/Home/End keys, focus, hash changes, startup, and workspace display.
Navigation regression coverage and changelog
tests/console-server.test.ts, CHANGELOG.md
Tests cover accessibility state, selection, restoration, fallback, draft preservation, and session resume. The changelog records the behavior and preserved guarantees.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Browser
  participant WorkspaceNavigation
  participant WorkspacePanels
  Browser->>WorkspaceNavigation: Click tab or press navigation key
  WorkspaceNavigation->>Browser: Update URL hash and focus tab
  WorkspaceNavigation->>WorkspacePanels: Select one panel and hide others
  Browser->>WorkspaceNavigation: Trigger hashchange or startup
  WorkspaceNavigation->>WorkspacePanels: Restore valid panel selection
Loading

Possibly related PRs

Poem

A rabbit hops through tabs so neat,
Five focused panels, quick and sweet.
Hashes remember where we were,
Drafts stay safe without a stir.
Arrow keys guide each tiny feat.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly describes the console change to focused management sections and focus handling.
Description check ✅ Passed The description covers the change, safety boundaries, validation results, and relevant documentation updates.
Linked Issues check ✅ Passed The implementation and tests address all coding objectives in issue #332, including focused sections, accessibility, state preservation, restoration, and safety boundaries.
Out of Scope Changes check ✅ Passed The changelog, console implementation, and navigation tests are directly related to issue #332 and introduce no unrelated code changes.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/issue-332-console-focused-tabs

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai 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.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@tests/console-server.test.ts`:
- Around line 1617-1619: Update the workspace navigation stub in
exerciseSessionResumeLifecycle to record each
initializeWorkspaceTaskNavigation() invocation, return that count from the
helper, and assert the expected initialization count in the session-resume
lifecycle test. Ensure the assertion verifies navigation initialization still
occurs during reauthentication and hash-based task restoration.
- Around line 134-141: Extend exerciseWorkspaceTaskNavigation to expose each
task tab’s aria-selected and tabindex state, then execute the ArrowLeft path
alongside the existing navigation actions. Update the related assertions to
verify after every task change that exactly one tab is selected and exactly one
is focusable, including the state after left navigation and restoration.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 967758c3-f2c6-49e8-84df-e9218785211f

📥 Commits

Reviewing files that changed from the base of the PR and between 887d114 and 651c650.

📒 Files selected for processing (3)
  • CHANGELOG.md
  • src/console/console-assets.ts
  • tests/console-server.test.ts

Comment thread tests/console-server.test.ts
Comment thread tests/console-server.test.ts Outdated
@mohanagy
mohanagy merged commit ec7696a into development Jul 31, 2026
12 checks passed
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.

[Console] Make management tabs show one focused section

1 participant