# Export Improvements Phase B — Design > **Date:** 2026-02-13 > **Depends on:** Phase A (complete on `feat/export-phase-a`) > **Scope:** B1 (Summary Block), B2 (Custom Step Markers), B3 (Detail Levels), B4 (Editable Preview) --- ## Decisions Made | Question | Decision | |----------|----------| | B1 summary form vs single editable preview | Single editable preview (B4). No separate structured form for summary fields. | | Detail levels | standard/full only. Dropped "summary" level — primary users are engineers, not dispatchers. | | Mid-session editable preview | No. TreeNavigationPage keeps quick one-click copy. Editable preview is SessionDetailPage only. | --- ## 1. Schema Changes Add to `SessionExport` (backend + frontend): ```python include_summary: bool = False detail_level: Literal["standard", "full"] = "standard" ``` No database migration needed — these are export-time options only. --- ## 2. Custom Step Differentiation (B2) Detect custom steps by checking `node_id.startswith("custom-")` in each decision dict. **Markdown:** ```markdown ### Step 5: [CUSTOM] Check Additional Event Logs *Custom step added by engineer* ``` **Text:** ``` 5. [CUSTOM] Check Additional Event Logs ``` **HTML:** ```html CUSTOM ``` **PSA:** ``` 5. [CUSTOM] Check Additional Event Logs -> ... ``` Pure backend change — all 4 generators in `export_service.py`. --- ## 3. Summary Block (B1) When `include_summary=True`, insert a Summary section after metadata, before Evidence/Steps. Auto-populated fields: | Field | Source | |-------|--------| | Issue | Tree name + description | | Impact | `[Edit in preview]` placeholder | | Status | "Resolved" if completed, else "In Progress — paused at step N" | | Resolution | `outcome_notes` if available | | Next Steps | `next_steps` if available | Blank/placeholder fields are editable in the preview modal (B4). Format varies by generator (markdown table, text key-value, HTML styled table, PSA `--- SUMMARY ---` section). The summary block is opt-in (`include_summary=False` default), independent of detail level. --- ## 4. Detail Levels (B3) Two levels: - **standard** (default): Current behavior, except command outputs >5 lines are truncated with `*(full output omitted — N lines)*` - **full**: No truncation. All command outputs, scratchpad, notes rendered completely. Implementation: Helper function `_truncate_command_output(output, max_lines=5)` used in all 4 generators when `detail_level="standard"`. Frontend: Dropdown on SessionDetailPage export controls — "Standard" / "Full Detail". --- ## 5. Editable Preview (B4) Modify `ExportPreviewModal`: - Replace read-only `
` with editable `