fix(session-export): preserve streamed browser downloads
This commit is contained in:
@@ -11,7 +11,7 @@ Web Session-log download control over the host-streamed ZIP endpoint owned by `d
|
||||
| `/export` | Record a human-command lifecycle; the submitting browser receives the local execution acknowledgment and downloads `GET /api/session.export?sessionId=<id>&includeDescendants=true`. |
|
||||
| `/export <path>` | Return an error. Browser downloads choose their destination through the browser's ordinary download behavior. |
|
||||
|
||||
The command is mounted only by the Web bundle. The local `command/executed` acknowledgment triggers the slash download only after a successful `/export` result in the browser that submitted it; other tabs still render the durable command row without repeating the browser side effect. The Header button calls the same controller directly, so both entry paths share in-flight collapsing, cancellation on plugin disposal, HTTP error handling, browser save behavior, and the same Modal.
|
||||
The command is mounted only by the Web bundle. The local `command/executed` acknowledgment triggers the slash download only after a successful `/export` result in the browser that submitted it; other tabs still render the durable command row without repeating the browser side effect. The Header button calls the same controller directly. Both entry paths issue a `HEAD` preflight, then hand the GET URL to the browser download manager without buffering the ZIP in JavaScript; they share in-flight collapsing, cancellation of the preflight on plugin disposal, preparation-error handling, browser save behavior, and the same Modal.
|
||||
|
||||
The Host download endpoint flushes a live root Session before `readRaw`, so a slash-triggered ZIP includes the `command/run` and `command/done` pair whose acknowledgment started the download. Cold persisted Sessions require no flush.
|
||||
|
||||
@@ -46,3 +46,4 @@ None. The log-only command lifecycle and browser download do not change the deri
|
||||
|
||||
- The download endpoint requires a persistence backend with a per-Session raw artifact. The shipped JSONL backend supports plaintext and zstd artifacts; SQLite export is not included in this change.
|
||||
- This is a browser download, not a Host-path writer. The browser chooses the local destination; no Host path or native folder action is returned.
|
||||
- The preflight reports failures found before ZIP streaming starts. A descendant or attachment failure after the browser accepts the GET is reported by the browser download manager, not by the modal.
|
||||
|
||||
Reference in New Issue
Block a user