Skip to content

feat(tui): add secure session copy and export - #38

Merged
ZhiXiao-Lin merged 1 commit into
mainfrom
recovery/session-copy-export
Jul 19, 2026
Merged

ZhiXiao-Lin merged 1 commit into
mainfrom
recovery/session-copy-export

Conversation

@ZhiXiao-Lin

Copy link
Copy Markdown
Contributor

Summary

  • add /copy for the latest assistant source Markdown and /copy transcript for the semantic session
  • add /export [path] for atomic, private, no-clobber Markdown snapshots inside the workspace
  • preserve visible messages, tool evidence, and delegated results while excluding private reasoning and transient terminal chrome
  • report verified native clipboard delivery separately from bounded OSC 52 requests

Safety

  • explicit export paths must be workspace-relative and have an existing in-workspace parent
  • parent symlinks that escape the workspace are rejected
  • writes use a temporary file, persist_noclobber, file sync, directory sync, and Unix mode 0600
  • existing targets are never overwritten
  • OSC 52 payloads are capped at 64,000 UTF-8 bytes without splitting a character

Validation

  • cargo fmt --all --check
  • cargo check --all-targets --locked --offline
  • cargo clippy --all-targets --locked --offline -- -D warnings
  • cargo test --all-targets --locked --offline (1,468 main TUI tests passed, 4 ignored; all integration targets passed)

Recovered narrowly from snapshot ded6c8ff54c86637d5050900fa7a8a01ca9df0bb; concurrent terminal, rewind, task, permission, and Use work is intentionally excluded.

@ZhiXiao-Lin
ZhiXiao-Lin merged commit 8559d40 into main Jul 19, 2026
3 checks passed
@ZhiXiao-Lin

Copy link
Copy Markdown
Contributor Author

Integrated through #40 at merge commit c252583e413f70a4cb265012d776f9d050b94de5. The consolidated v0.9.7 branch contains this PR's latest head 0763f93847b1c8a586cdbfe6f2edaada09711aef and passed Linux, macOS, and Windows CI.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant