The History screen gives you a chronological record of every request Xolo has sent from the active workspace. Each entry shows the HTTP method, full URL, response status code, duration, and timestamp, so you can review recent activity, spot regressions, and replay any past call in the composer with a single tap. History is workspace-scoped — switching workspaces updates the list automatically. An incognito mode lets you suppress recording for sensitive requests without changing any other behaviour.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/JonathanHerSa/xolo-api-hub/llms.txt
Use this file to discover all available pages before exploring further.
History Entries
Every successful send (outside of incognito mode) writes aHistoryEntryEntity to local SQLite storage. The entity records the following fields:
| Field | Description |
|---|---|
id | Auto-incremented entry identifier |
method | HTTP verb (e.g. GET, POST) |
url | The fully-resolved URL that was sent (with variables substituted) |
originalUrl | The raw URL template before variable substitution |
statusCode | HTTP response status code (e.g. 200, 404) |
durationMs | Round-trip request time in milliseconds |
responseBody | The raw response body string |
executedAt | UTC DateTime when the request was dispatched |
workspaceId | The workspace the request belongs to |
recentHistoryStreamProvider, which watches watchRecentHistory(workspaceId) and re-emits whenever a new entry is added or an entry is deleted.
Each history card displays the status code in a colour-coded badge (green for 2xx, red otherwise), the HTTP method label in its method colour, the URL truncated to a single line, the human-readable time (e.g. 14:32 for today, Jun 12 for older entries), and the duration in milliseconds.
Replaying a Request
Tap any history card to load the request into a new composer tab:Tap the history entry
Tapping a
_HistoryItem card triggers _loadHistoryItem, which creates a new tab via tabsProvider.notifier.addTab().Session state is populated
The new tab’s
RequestSessionController is seeded with the entry’s method and originalUrl (the un-substituted template, so variables remain editable).Clearing History
Individual entries can also be removed by swiping a card from right to left. The dismissal reveals a red delete background; releasing completes the deletion via
deleteHistoryEntry(entry). A snackbar with an Undo action appears immediately — tapping it calls restoreHistoryEntry(entry) to reinstate the record.
History is stored locally in SQLite and is not included in cloud sync by default. Clearing history on one device does not affect history on any other device.
Incognito Mode
Enable Incognito Mode from the composer toolbar to send requests without recording them in history. While incognito is active:- Requests are dispatched and responses are shown normally.
- The
RequestControllerreadsref.read(isIncognitoProvider)after every send; if the value istrue, theaddHistoryItem(...)call is skipped entirely. - No entry appears in the History screen.
isIncognitoProvider is a NotifierProvider<BooleanNotifier, bool> that defaults to false. BooleanNotifier exposes set(bool) and toggle() to change the value. The provider is not persisted — incognito mode resets to false each time the app starts.
Saved Requests
Requests bookmarked from the composer are stored asSavedRequestEntity records and displayed in the Saved Requests screen (accessible from the Collections tab). Saving calls createRequest(name, method, url, body, collectionId) on XoloRepository, persisting the full request definition including headers, params, body, auth type, auth data, scripts, and assertions.
From the Saved Requests screen you can:
- Open a saved request by tapping it — a new composer tab is opened and pre-populated with the request’s method, URL, body, and name.
- Delete a saved request via the context menu —
softDeleteRequest(id)marks the record as deleted without immediately purging it from storage. - Move a request to a different collection via drag-and-drop onto a folder card; the drop calls
moveRequest(requestId, collectionId). - Browse unclassified requests — requests saved without a collection land in the Unclassified section at the bottom of the screen.
Workspace Isolation
Both history and saved requests are scoped to the active workspace. TherecentHistoryStreamProvider passes the current activeWorkspaceIdProvider value to watchRecentHistory(workspaceId?):
null as the workspace ID returns history from the global context (no project selected). Switching the active workspace automatically re-subscribes the provider and refreshes the history list.