Skip to content

feat: add shared dialog capture#142

Merged
konard merged 12 commits into
mainfrom
issue-141-f649a07590ac
Jun 25, 2026
Merged

feat: add shared dialog capture#142
konard merged 12 commits into
mainfrom
issue-141-f649a07590ac

Conversation

@konard

@konard konard commented Jun 25, 2026

Copy link
Copy Markdown
Collaborator

Summary

Fixes #141.

  • Adds web-capture shared-dialog <url> and GET /shared-dialog?url=<URL> to both JavaScript and Rust implementations.
  • Decodes ChatGPT share pages from embedded linear_conversation data, omits visually hidden turns, and emits provider/source URL/capture method/conversation id/title/ordered turns/evidence/diagnostics.
  • Returns structured unsupported diagnostics for blocked or unavailable providers, including the Google AI Mode share interstitial case from the issue.
  • Supports json, meta-language, demo-memory, markdown/md, txt/text, and html output formats.
  • Documents the FormalAI shared-dialog contract and adds issue Capture replayable shared-dialog transcripts from AI share URLs #141 fixtures for reproducible parser coverage.

Reproduction and Regression Coverage

  • ChatGPT fixture for https://chatgpt.com/share/6a3825b9-8de4-83ee-9c24-52fd1eb38d24 verifies exactly 4 visible turns from linear_conversation with stable roles/content/evidence.
  • Google AI Mode fixture for https://share.google/aimode/VG0HhpnAXrBkC0QgP verifies an unsupported result with provider_challenge_interstitial diagnostics instead of a fabricated transcript.
  • CLI regression coverage verifies web-capture shared-dialog <url> --format demo-memory -o - writes clean structured stdout even when .lenv is loaded.
  • Node 24.17 process e2e coverage verifies /stream preserves safe identity Content-Length and avoids the CI ERR_STREAM_PREMATURE_CLOSE regression.
  • The shared-dialog Links Notation schema is kept local to web-capture for JS/Rust parity; upstream meta-language currently publishes the latest package as a Rust crate but not as an npm package.

Verification

  • cd js && npm run lint
  • cd js && npm run format:check
  • cd js && npm run check:duplication
  • cd js && CI=true GITHUB_ACTIONS=true npx -y [email protected] --experimental-vm-modules ./node_modules/.bin/jest --runTestsByPath tests/e2e/process.test.js tests/unit/stream.test.js --runInBand --detectOpenHandles
  • cd js && CI=true GITHUB_ACTIONS=true npx -y [email protected] --experimental-vm-modules ./node_modules/.bin/jest --testPathIgnorePatterns="docker.test.js"
  • cd js && npm test -- tests/e2e/docker.test.js
  • cd rust && cargo fmt --all -- --check
  • cd rust && cargo clippy --all-targets --all-features -- -D warnings
  • cd rust && cargo test --all-features --verbose
  • cd rust && cargo test --doc --verbose
  • node scripts/validate-changeset.mjs
  • node scripts/check-publishable-changes.mjs
  • node scripts/check-js-rust-parity.mjs
  • Real ChatGPT smoke: JS and Rust shared-dialog ... --capture api --format json -o - both return status: ok with 4 turns.
  • Current-head CI for 78225bc: JavaScript Checks and Release, Rust Checks and Release, and JS/Rust Parity all passed.

Adding .gitkeep for PR creation (default mode).
This file will be removed when the task is complete.

Issue: #141
@konard konard self-assigned this Jun 25, 2026
@konard konard changed the title [WIP] Capture replayable shared-dialog transcripts from AI share URLs feat: add shared dialog capture Jun 25, 2026
@konard konard marked this pull request as ready for review June 25, 2026 22:42
@konard

konard commented Jun 25, 2026

Copy link
Copy Markdown
Collaborator Author

Working session summary

Implemented and finalized PR 142: #142

Current head is 78225bc on issue-141-f649a07590ac. I fixed the CI-only /stream regression by preserving safe identity Content-Length on streamed responses, which resolves the Node 24.17 ERR_STREAM_PREMATURE_CLOSE failure.

Verified locally:

  • JS lint, format, duplication
  • Node 24.17 focused /stream process e2e + unit test
  • Node 24.17 full non-Docker JS suite
  • Docker e2e

Current-head CI is green for JavaScript, Rust, and JS/Rust parity. PR 142 is now marked ready for review, and the working tree is clean.


This summary was automatically extracted from the AI working session output.

@konard

konard commented Jun 25, 2026

Copy link
Copy Markdown
Collaborator Author

🤖 Solution Draft Log

This log file contains the complete execution trace of the AI solution draft process.

💰 Cost estimation:

  • Model: GPT-5.5
  • Provider: OpenAI
  • Public pricing estimate: $80.327119

📊 Context and tokens usage:

  • 1.9M / 200K (949%) input tokens, 184.9K / 128K (144%) output tokens

Total: (1.9M + 53.0M cached) input tokens, 184.9K output tokens, $80.327119 cost

🤖 Models used:

  • Tool: OpenAI Codex
  • Requested: gpt-5.5
  • Thinking level: max (~31999 tokens)
  • Model: GPT-5.5 (gpt-5.5)

📎 Log file uploaded as Gist (18428KB)


Now working session is ended, feel free to review and add any feedback on the solution draft.

@konard

konard commented Jun 25, 2026

Copy link
Copy Markdown
Collaborator Author

✅ Ready to merge

This pull request is now ready to be merged:

  • All CI checks have passed
  • No merge conflicts
  • No pending changes

Monitored by hive-mind with --auto-restart-until-mergeable flag

@konard konard merged commit 77225a0 into main Jun 25, 2026
19 checks passed
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.

Capture replayable shared-dialog transcripts from AI share URLs

1 participant