IRFlow Timeline 1.0.10 — ChatGPT Computer History
Published August 14, 2026
IRFlow Timeline 1.0.10 adds ChatGPT Computer History as a new forensic artifact family, and hardens the app for long-running investigations.
A different kind of AI artifact
Everything IRFlow parsed before was conversation data — prompts, responses, tool calls. Computer History is not that. It is an opt-in macOS feature of the ChatGPT desktop app that records an interaction-event stream from the host: app focus changes, clicks, keystrokes, shortcuts, text selections, drags, and the window and URL in view at the time.
It is off by default, requires Memories, is limited to Pro/Business/Enterprise plans, and is unavailable in the EEA, Switzerland, and the UK. It explicitly does not capture screenshots, screen recordings, or audio — everything reaches disk through the macOS Accessibility API, in plain text, unencrypted.
For a responder, that changes the question you can answer. Instead of was this application installed, you can ask what was typed, clicked, selected, and dragged, and in what order.
What IRFlow extracts
Computer History opens in its own tab with a dedicated 54-column schema rather than the conversation-history columns. Notable additions in this release:
- Credential entry is flagged. Typing into a password field is identified as such — which app, which field, at what second. macOS Secure Input Mode blocks the recorder while the field has focus, so the password itself never reaches disk; what you get is a precise time anchor for an authentication event, not the credential.
- File and menu selections are captured. Finder file selections and menu commands carry no selected text, so before this release they landed as rows with an empty payload.
- Cross-app drags record both ends — what was taken, and what it was dropped onto.
- Terminal scrollback is preserved as a command timeline rather than collapsed into a single row.
Detecting what was removed
The feature ships a "clear last 10 minutes / hour / day / all" control, which makes destruction of this evidence a single click. Two checks in 1.0.10 address that:
- Each closed recording segment is reconciled against its own metadata. A shortfall between the declared event count and the records actually present is surfaced as a derived deletion lead.
- Activity summaries the user cleared are recovered read-only from the Codex memories git object store, together with the timestamp of the commit that removed them.
A missing recording bucket is deliberately not treated as tampering on its own. IRFlow cross-checks the event-id chain across the gap: if it runs continuously, the host was idle, and the row says so. The event-id counter restarts at 1 whenever the recorder itself restarts, so that check is only meaningful inside a single run — across a restart the chain proves nothing in either direction, and saying so is the honest answer.
Attribution
A single Mac carries several unrelated identifiers, and conflating them produces wrong attribution. 1.0.10 collects them and labels each one with how strongly it identifies an account rather than a device — the ChatGPT account, the signed-in identity, the recorder and per-app device pseudonyms, and a feature-flag cache whose timestamps extend the presence timeline well beyond the 48-hour event retention. No authentication tokens are stored or exported.
Codex conversation identifiers are decoded to timestamps and joined to the event timeline. Conversations marked deleted are flagged — and the model chosen and the text typed into them are often still present in the activity stream.
Caveats that travel with the evidence
Capture depth varies by application, because everything flows through the accessibility tree. In hardened messaging apps, outbound typing is recorded while inbound message content is not — that is one side of a conversation and must not be presented as a chat log. The split follows the UI toolkit rather than the app category, and it is dramatic: measured on one host, Telegram exposed 144 characters of accessibility text at most, while Slack — an Electron app — exposed over 53,000, message bodies included. Check the tier for the bundle in front of you before characterising either way. Raw events are purged after roughly 48 hours, so collect early. The import notice states these limits so they reach the report rather than getting lost.
Stability
1.0.10 is also a crash-resilience release: worker threads are retired properly instead of accumulating, autosaves are written safely and validated on restore, closing the macOS window hides the workspace rather than tearing it down, and unexpected failures trigger a clean shutdown followed by one controlled restart. Electron is upgraded to 43, and the minimum supported macOS is now 12 (Monterey).