Skip to content

[Feat] Publish sessions to Cloudflare Pages#49

Merged
samzong merged 1 commit into
mainfrom
feat/share-session-pages
Jun 11, 2026
Merged

[Feat] Publish sessions to Cloudflare Pages#49
samzong merged 1 commit into
mainfrom
feat/share-session-pages

Conversation

@samzong

@samzong samzong commented Jun 11, 2026

Copy link
Copy Markdown
Owner

What's changed?

  • Add recall share init for Cloudflare Pages configuration and Wrangler preflight.
  • Add TUI session sharing with a copyable Pages URL.
  • Render single-session HTML pages with collapsed tool events and no local path metadata.
  • Document the share spec.

Why

  • Make a local Recall session easy to share with collaborators through a browser-viewable Pages URL.

Signed-off-by: samzong <samzong.lu@gmail.com>
@samzong samzong merged commit 65018c9 into main Jun 11, 2026
1 check passed

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

Copy link
Copy Markdown

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: 9cb71a6da1

ℹ️ 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 thread src/share.rs
config.share = Some(ShareConfig {
provider: PROVIDER_CLOUDFLARE_PAGES.to_string(),
project_name,
publish_dir: publish_dir.to_string_lossy().to_string(),

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Store share directories as absolute paths

When recall share init is run with a relative --publish-dir or prompt value, this saves that relative path as-is. Later TUI publishes resolve it relative to whatever directory recall is launched from, so running Recall from a different project creates/deploys a different folder; because Pages deploys the whole publish directory, previously shared HTML files can be omitted from the deployment. Resolve/canonicalize the publish directory before saving it.

Useful? React with 👍 / 👎.

Comment thread src/share.rs
let mut text = String::new();
let mut rendered = false;
for line in message.content.lines() {
let sanitized = utils::sanitize_line(line);

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Redact known local paths from shared messages

For sessions whose message text contains command output or prompts with paths such as the session cwd/source file path, the shared HTML still includes those paths because sanitize_line only strips control characters before the text is escaped and rendered. This misses the documented share-page privacy requirement to not show local filesystem paths; at least occurrences of known fields like session.directory and session.source_file_path should be replaced before publishing.

Useful? React with 👍 / 👎.

@samzong samzong deleted the feat/share-session-pages branch June 16, 2026 15:51
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