Skip to content

Conversation

@charley-oai
Copy link
Collaborator

@charley-oai charley-oai commented Jan 22, 2026

Note: fork the session used to implement this PR with codex fork 019be7eb-4f0f-7ba3-b0c2-fec2b8790675

Just make sure you have the following in your config.toml:

session_object_storage_url = "az://oaiwhalesong/strawberry-processing/x/ccunningham/"

Summary

Adds a tracer‑bullet implementation for enterprise/self‑hosted session sharing. Introduces session_object_storage_url,
a /share flow, and object‑store backends (HTTP/Azure) so sessions can be uploaded and referenced by session ID.

Screenshot 2026-01-22 at 2 26 51 PM

Demo video: https://drive.google.com/file/d/1NuqRxVea-rHWBB01jVaDnJixSaDIGN1D/view?usp=sharing

What’s Included

  • /share slash command (TUI) with basic prompts (scope + emails placeholder)
  • Upload to object storage using session_object_storage_url
  • Backends for HTTP, and Azure Blob (SAS or Azure CLI auth)
  • Ownership metadata checks to prevent accidental overwrite
  • Remote fork: codex fork <SESSION_ID> will download from object storage when not found locally
  • Config docs/schema updates

Minimal Remaining TODOs (to complete the tracer bullet)

  • Enforce email‑based sharing rules (currently TODO)
  • Improve cwd UI: prompt to change cwd on fork, and auto‑switch when forking from remote
  • Add storage URL validation UX (clearer errors in /share)
  • Expand remote fallback to codex resume <SESSION_ID> if desired

Aspirational Goals Beyond Demoable MVP

  • Add support for S3 or other blob store backends
  • Default OpenAI‑hosted storage for opt‑in users
  • Authorization service for scoped sharing (emails/orgs/teams)
  • Signed/encrypted share links for public buckets
  • Auditing, metadata index, and revocation controls
  • Admin/enterprise policy enforcement + telemetry

@charley-oai
Copy link
Collaborator Author

@codex review this

Copy link
Contributor

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9dce27c094

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

pub chatgpt_base_url: String,

/// Optional base URL for storing shared session rollouts in an object store.
pub session_object_storage_url: Option<String>,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: consider a script path for flexibility

@charley-oai
Copy link
Collaborator Author

@codex review this

Copy link
Contributor

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3465a4c15e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@charley-oai charley-oai force-pushed the shareable-codex-sessions branch from dddf088 to 7e02688 Compare January 25, 2026 08:42
@charley-oai
Copy link
Collaborator Author

@codex review this

Copy link
Contributor

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7e026882b1

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@charley-oai
Copy link
Collaborator Author

@codex review this

Copy link
Contributor

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 11340c8534

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +68 to +71
let target_dir = cargo_target_dir()?;
let filename = format!("{name}{}", env::consts::EXE_SUFFIX);
let candidate = target_dir.join(filename);
let abs = absolutize_from_buck_or_cwd(candidate.clone())?;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Restore on-demand bin build when CARGO_BIN_EXE is missing

This fallback now assumes the binary already exists at <target_dir>/<name>, but cargo test does not build binaries unless --bins/--all-targets is passed (per cargo test --help, “Test all binaries” is explicitly gated behind --bins). In normal Cargo workflows where CARGO_BIN_EXE_* isn’t set, cargo_bin("codex") will now return ResolvedPathDoesNotExist, causing unwraps like core/tests/suite/cli_stream.rs to fail unless the user has pre-built the bin. The previous assert_cmd::Command::cargo_bin fallback built the binary on demand, so this change introduces a regression for Cargo-based test runs.

Useful? React with 👍 / 👎.

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.

3 participants