Skip to content

[Feature]: export and import a complete, portable session research package #2016

Description

@shanruoyu

Feedback type

Improvement

What would you like to share?

Problem

The current export experience does not provide a complete, portable record of a research session.

A researcher should be able to export one session as a single package that preserves not only the final response, but also the full evidence and execution trail needed to inspect, reproduce, share, or resume the work elsewhere.

The product should also support one-click import of the same package.

Proposed solution

Add a Export session package action that creates one portable archive for the selected session, and an Import session package action that restores it into Open Science.

The export must include the complete session record:

  • Conversation transcript, including user messages, agent messages, branches, and timestamps
  • Session metadata: project reference, title, model/runtime information, settings, status, and execution timeline
  • Plans, approvals, task/activity history, and execution logs where available
  • All artifacts and immutable artifact versions
  • Artifact provenance: source inputs, producing activity, parameters, code/notebook references, hashes, and verification status
  • Attached files and intermediate outputs used or produced by the session
  • Reviewer findings, reviewer log, corrections, and fix-loop history where available
  • A human-readable summary or README describing the package contents and how to inspect them

The archive should preserve the relationship between conversation turns, activities, artifacts, provenance records, and reviewer findings.

Import behavior

Import should:

  1. Validate the archive structure, manifest version, and file integrity before creating any local records.
  2. Restore the session, transcript, artifacts, provenance, and available logs as a coherent imported session.
  3. Preserve original timestamps, source identifiers, and integrity hashes where possible.
  4. Clearly mark imported content as imported and retain the original package metadata.
  5. Handle conflicts safely, without silently overwriting existing projects, sessions, artifacts, or files.
  6. Explain unsupported or unavailable runtime dependencies rather than attempting to rerun work automatically.
  7. Allow imported sessions to be inspected immediately; continuation or rerun should require explicit user action.

Package requirements

  • Use a documented, versioned archive format.
  • Include a manifest containing package version, session metadata, file inventory, checksums, and compatibility information.
  • Export should be self-contained whenever possible.
  • If an item cannot be included, the manifest and UI must explicitly identify it and explain why.
  • Never include secrets, credentials, API keys, or data excluded by permissions/policy.
  • Preserve provenance even when an external source or runtime is not portable.

Acceptance criteria

  • A user can export a selected session with one action.
  • The export contains the complete transcript, artifacts, intermediate outputs, provenance, and reviewer results available for that session.
  • The export includes a readable manifest and integrity checksums.
  • A user can import the package with one action.
  • Imported content retains its internal relationships and is readable without rerunning the session.
  • Import validates package integrity and provides actionable errors for invalid or incompatible packages.
  • Existing local data is never overwritten without explicit user confirmation.
  • Secrets and credentials are excluded from exports.
  • Missing, excluded, or non-portable items are clearly disclosed.

Additional context

No response

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions