Duplicate Name Detection: - Warn when saving request with existing name in same project - Show overwrite confirmation dialog with destructive styling - Update existing request on overwrite (preserves ID, updates timestamp) - Request names are unique within projects (but can duplicate across projects) Save Request Improvements: - Clear modified flag (•) when request is saved or overwritten - Pre-fill save dialog with original request name and project - Pre-fill save dialog with tab name for copy tabs - Auto-select text in name field for easy editing Smart Tab Loading: - Switch to existing tab when loading unmodified saved request - Create new tab only when needed (modified or doesn't exist) - Avoid duplicate tabs for same request - Show toast notification when switching to existing tab Copy Tab Management: - Create numbered copies when loading modified request again - Naming: "ReqA (copy)", "ReqA (copy 2)", "ReqA (copy 3)", etc. - Copy tabs are NOT linked to saved request (no saved_request_id) - Copy tabs marked as unsaved (•) to encourage saving with new name - Unique copy names prevent conflicts Tab Response Persistence: - Restore response when switching between tabs - Each tab maintains independent response state - Clear response area when switching to tab without response Project Manager: - Add find_request_by_name() for duplicate detection - Add update_request() for overwriting existing requests - Update request modified_at timestamp on save Files Modified: - src/project_manager.py: Duplicate detection and update methods - src/window.py: Smart tab management and copy handling
Roster
A modern HTTP client for GNOME, built with GTK 4 and libadwaita.
Features
- Send HTTP requests (GET, POST, PUT, DELETE)
- Configure custom headers and request bodies
- View response headers and bodies
- Track request history with persistence
- Beautiful GNOME-native UI
Dependencies
- GTK 4
- libadwaita 1
- Python 3
- HTTPie (http command)
Building
meson setup builddir
meson compile -C builddir
sudo meson install -C builddir
Usage
Roster uses HTTPie as the backend for making HTTP requests. Ensure HTTPie is installed:
pip install httpie
# or on Fedora
sudo dnf install httpie
Then run Roster from your application menu or with the roster command.
Description
Languages
Python
98.6%
Meson
1.4%