Skip to content

feat: Right sidebar, auth system overhaul, save/draft workflow, and code snippet generator#6

Merged
markkr125 merged 13 commits intomainfrom
new-ui-feature
Mar 11, 2026
Merged

feat: Right sidebar, auth system overhaul, save/draft workflow, and code snippet generator#6
markkr125 merged 13 commits intomainfrom
new-ui-feature

Conversation

@markkr125
Copy link
Owner

Summary

Major feature batch adding a right sidebar panel, a complete 14-type auth system with OAuth 2.0 support, save/draft request workflow, and an expanded code snippet generator covering 23 languages.

New Features

Right Sidebar (sidebar)

  • Icon-rail sidebar with flyout panels for Variables and Code Snippets
  • VariablesPanel — read-only view of active environment variables with local override indicators
  • SnippetPanel — inline code snippet generator that live-updates as the request is edited, with language selector and copy-to-clipboard

Auth System (auth, auth_handler.py)

  • FieldSpec-driven architecture supporting all 14 Postman auth types (API Key, Bearer, Basic, Digest, OAuth 1.0, OAuth 2.0, Hawk, AWS Signature, NTLM, Akamai EdgeGrid, ASAP/Atlassian, JWT Bearer, Session Token, Custom)
  • Shared _AuthMixin used by both RequestEditor and FolderEditor with auth inheritance
  • Generic auth_serializer for load/save across all types
  • apply_auth() in auth_handler.py shared by HTTP send and snippet generation
  • Full OAuth 2.0 flow with OAuth2Page (grant-type switching UI) and OAuth2Service (4 grant types: Authorization Code, Client Credentials, Password, Implicit)
  • Hawk "Include payload hash" checkbox matching Postman behavior

Save & Draft Workflow

  • SaveRequestDialog — save draft requests to a collection with folder picker
  • _DraftControllerMixin — draft tab open/save lifecycle management
  • New "+" button popup (NewItemPopup) in collection header for creating requests/collections

Code Snippet Generator (snippet_generator)

  • Expanded from single file to sub-package covering 23 languages across 3 modules:
    • Shell: cURL, HTTP raw, wget, HTTPie, PowerShell
    • Dynamic: Python, JavaScript (fetch/XHR/jQuery), Node.js, Ruby, PHP, Dart
    • Compiled: Go, Rust, C, Swift, Java, Kotlin, C#
  • Auth-aware snippet generation via shared apply_auth() path

UX Improvements

  • Middle-click to close tabs
  • Fixed startup race condition where loading screen could be skipped if collection fetch completed before signal wiring
  • Deprecated QMouseEvent.pos() replaced with event.position().toPoint()

Stats

  • 63 files changed, ~10,978 insertions, ~936 deletions
  • 32 new files (source + tests)
  • Test suite: 1,196 tests passing, lint/format/mypy clean

markkr125 added 13 commits March 7, 2026 23:25
- Add SaveRequestDialog for saving draft requests with a searchable collection tree.
- Introduce _DraftControllerMixin to manage draft request tabs in the main window.
- Update tab_controller to handle draft names and breadcrumb updates for unsaved requests.
- Enhance MainWindow to support opening draft requests and saving them to collections.
- Create tests for the new SaveRequestDialog and draft request functionalities.
- Ensure UI elements are styled appropriately for the new dialog and interactions.
@markkr125 markkr125 merged commit 49c2f99 into main Mar 11, 2026
3 checks passed
@markkr125 markkr125 deleted the new-ui-feature branch March 11, 2026 16:10
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