26aa12337a
Rework of salvaged PR #6372 (@ag9920) onto current main: - /save promoted from CLI-only JSON snapshot to a cross-platform session export: `/save [json|md|html] [filename] [redact]` on CLI and every gateway platform (sent as a document via adapter.send_document). - Rendering routes through the existing shared renderers (hermes_cli/session_export.py + session_export_html.py) instead of the PR's new hermes_state formatter — new helpers normalize_save_format / render_session_for_save / default_save_filename are shared by both surfaces. - `redact` arg runs the export through the force-mode secret redaction pass (session_export_md.redact_session_data) before writing. - Gateway handler awaits AsyncSessionDB correctly, sanitizes user-supplied filenames with basename, and lands in gateway/slash_commands.py (the handlers moved out of gateway/run.py since the PR was authored). - /export stays profile export (name collision resolved: session export lives on /save). - Slack 50-slash cap curation: /platform moves to the /hermes-only set to free a native slot for /save (parity test updated rationale comment). - Folds in PR #62268 (@briandevans): None title/model coalescing in the single-session HTML export. Closes #4249. Closes #51200.
2 lines
7 B
Plaintext
2 lines
7 B
Plaintext
ag9920
|