Companion to the automated tests/test_cli_export_e2e.py suite. Run this once
per release branch (or whenever scripts/export.py, app.py, or the
workspace-scan service modules are touched) on each supported platform.
Mark each row pass/fail and attach short notes for any unexpected output.
| Item | Value |
|---|---|
| OS / version | |
| Python version | python3 --version |
| Repo SHA | git rev-parse HEAD |
WORKSPACE_PATH |
(env var, if overridden) |
| Cursor data layout | default ~/.config/Cursor/User/workspaceStorage or override |
- Exits 0
- Usage block lists
--since {all,last},--out,--no-zip,--no-composer,--base-dir,--exclude-rules - No stack trace, no deprecation warning
python scripts/export.py --out ./export- Exits 0
- Final stdout line:
Exported N chat(s) to ./export/cursor-export-YYYY-MM-DD.zip - Archive opens with
unzip -land contains at least one.mdentry - Each
.mdinside the archive starts with a----fenced YAML frontmatter containinglog_id,title,workspace,created_at,updated_at
python scripts/export.py --out ./export --no-zip- Exits 0
-
./export/manifest.jsonlexists and is non-empty - Each manifest line is valid JSON with
log_id,path,updated_at - At least one
.mdfile is written under./export/<date>/... - Frontmatter fields as in §2
python scripts/export.py --out ./export --no-zip --since last(run after §3)
- Exits 0
- If no new chats: stdout prints
No conversations found since last export. - Existing
.mdfiles in./exportretain their previous mtimes (not rewritten) - After producing a new chat in Cursor, re-running picks it up and writes only the new file
python app.py- Process stays running for at least 30 s without crash
-
curl -sI http://127.0.0.1:3000/returnsHTTP/1.1 200 OK(orHTTP/1.0 200 OKunder some dev-server configurations) - Home page lists at least one workspace card (assuming real Cursor data)
- No
Exception/Tracebackin server log
Open http://127.0.0.1:3000/ in a browser.
- Workspace list renders without console errors
- Clicking a workspace card opens the workspace view
- Within a workspace, opening a chat renders its bubbles
- Markdown export button on a chat downloads a
.mdwhose frontmatter matches §2 - PDF export button on a chat downloads a
.pdfthat opens cleanly
| Reviewer | Platform | Date | Result |
|---|---|---|---|