Files
pad/web/src/lib/api
xarmian 02106a19b8 feat(artifact): web UI for playbook/convention export & import (#757)
* feat(artifact): web UI for playbook/convention export & import

Phase 4 of PLAN-1867.
- API client: exportItemArtifact (GET, parses Content-Disposition filename)
  and importArtifact (POST raw text/markdown); ImportArtifactResult type.
- Export buttons: playbook editor header, each playbook card, each convention
  row — client-side .pad.md download.
- Import file-picker entry points on the playbooks list + conventions header;
  surfaces per-warning toasts + a deep link to the created draft item.
Shared browser helpers in lib/utils/artifacts.ts. CONVE-1688/606 compliant.

Implements TASK-1878, TASK-1879, TASK-1880.

Claude-Session: https://claude.ai/code/session_01KmxkPxLksjf1pmrZDpsnTJ

* fix(artifact): web import race + RFC5987 filename parse

Addresses Codex Phase-4 review:
- parseContentDispositionFilename now decodes general filename*=charset'lang'value
  (percent-decoded), not just a UTF-8'' prefix.
- import handlers snapshot workspace/username before the first await, so a
  mid-import workspace switch can't misroute the follow-up get/link/refresh.

Claude-Session: https://claude.ai/code/session_01KmxkPxLksjf1pmrZDpsnTJ
2026-06-22 13:07:22 -04:00
..