Windsurf
Windsurf is retired. Hansard imports the Cascade history it left on your machine. Some of that history is stored in a format Hansard cannot read, so a downloaded Cascade trajectory is the way to get a full transcript when the local history is incomplete.
Source IDs
Section titled “Source IDs”| Source | Use it for |
|---|---|
windsurf |
Local Cascade transcripts and plans, message files Hansard keeps but cannot read, and downloaded trajectories. |
How the import works
Section titled “How the import works”Hansard can read Windsurf history from four places: transcript hook files that
Windsurf writes to ~/.windsurf/transcripts, a bulk recovery from a running
Windsurf app, downloaded trajectory Markdown files, and local Cascade plan and
protobuf files. Transcript hook records map directly to user, assistant, tool,
result, and context events. Bulk recovery asks the running Windsurf language
server for each trajectory by its ID and saves its progress, so an interrupted
recovery can continue. Recovery only reads, and Hansard never stores Windsurf’s
local sign-in token.
Several of these can describe the same Cascade trajectory. Hansard combines them only when they share the exact trajectory ID. A transcript hook file takes priority over a bulk recovery, which takes priority over readable plan files and protobuf files. The best copy supplies the transcript, and the others can add a title, working directory, timestamps, or the original files. Content that looks similar but has a different ID stays a separate conversation.
Older protobuf message files on disk are kept but not decoded. A readable plan
can therefore appear as a partial placeholder conversation until bulk recovery
or a downloaded trajectory supplies the full transcript. A downloaded
trajectory normally finds its conversation by trajectory ID. When a
placeholder shows a token, --claim with that token replaces exactly that
placeholder. The watcher follows new transcript and plan files, while bulk
recovery and downloaded trajectories are always manual.
Import and keep current
Section titled “Import and keep current”hansard import --source windsurf --since allhansard index rebuildTo recover every readable trajectory, open Windsurf and run:
hansard import windsurf --recover --since allTo import a trajectory you downloaded with Windsurf’s Download trajectory action, pass the Markdown file, or a folder of downloaded files:
hansard import windsurf /home/user/Downloads/cascade-chat-conversation.mdWhen a conversation in the app shows a Windsurf trajectory export needed card, copy the command from the card. It includes the token for that conversation:
hansard import windsurf --claim ws-0123456789abcdef /home/user/Downloads/cascade-chat-conversation.mdWith Automatic source selection, the watcher still includes windsurf
and follows new transcript and plan files. Downloaded trajectories and bulk
recovery always run by hand.
Review the import in the app
Section titled “Review the import in the app”- When the import finishes, open Sessions and selectFilter & sort.
- Set Source to Windsurf and setTime to the window you imported. UseFolder to narrow the list when you use this harness in several projects.
- Select a conversation to check its messages, tool calls, files, commits, model, and token usage.
To keep archiving new sessions from a local harness, openSettings → Imports. Automaticfollows every supported harness installed on this computer.Custom lets you turn individual harnesses on or off. Cloud sources turn on separately under Cloud agents, and ChatGPT, Claude.ai, Gemini, and Gemini Notebook / NotebookLM exports import withImport export…. Each also has its own import command. If a conversation you expect is missing after you reset the filters, run the import command on this page again with --explain-skips where the source supports it.
What Hansard preserves
Section titled “What Hansard preserves”- Transcript hook turns when Windsurf wrote them.
- Readable Cascade plans and matching details.
- Protobuf message files, kept as original files without being decoded.
- Downloaded trajectory Markdown as the full transcript when you import it.
Known limitations
Section titled “Known limitations”-
Legacy recovery requires a compatible running language server. Devin’s release notes removed Cascade in September 2026, although its older Cascade guides remain online. A current Devin installation does not prove that legacy recovery is available.
-
The documented transcript hook keeps at most 100 files and prunes the oldest. A missing transcript folder does not establish that the account has no history.
-
Older local protobuf message files are not decoded.
-
A plan-only conversation is not a complete conversation. A placeholder is not searchable until you import its downloaded trajectory.
-
Downloaded trajectories must be imported by hand.
Refresh an existing archive
Section titled “Refresh an existing archive”hansard import --source windsurf --since allhansard index rebuildIf you download newer versions of trajectories, import them again.