Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
07ce25d
feat(transcript): add cross-host document export pipeline
Aug 20, 2026
fffebf2
feat(transcript): wire real VS Code and HTML export consumers
Aug 21, 2026
1077fb9
build(deps): sync transcript workspace dependencies
Aug 21, 2026
c5d8a53
Merge branch 'main' into codex/backup-feat-web-shell-adapter-before-s…
Aug 21, 2026
bff6f3b
fix(transcript): harden export and identity paths
Aug 22, 2026
2eeb635
Merge remote-tracking branch 'upstream/main' into codex/backup-feat-w…
Aug 22, 2026
360ea9a
Merge remote-tracking branch 'upstream/main' into codex/backup-feat-w…
Aug 22, 2026
0c15840
fix(transcript): harden identity and document export
Aug 23, 2026
6b6f98b
Merge branch 'main' into codex/backup-feat-web-shell-adapter-before-s…
Aug 23, 2026
16bdebb
fix(transcript): simplify adapters and preserve segment boundaries
Aug 23, 2026
939da45
fix(transcript): address cross-host review regressions
Aug 23, 2026
d66a44f
fix(transcript): harden export sanitization and user identity
Aug 24, 2026
8eaa97c
Merge branch 'main' into codex/backup-feat-web-shell-adapter-before-s…
Aug 24, 2026
f31dad9
fix(web-shell): restore agent-only group predicate
Aug 24, 2026
62baf8b
refactor(transcript): split HTML export from VS Code migration
Aug 24, 2026
3cf014d
Merge branch 'main' into codex/feat-chat-transcript-mr2a-html-export
Aug 25, 2026
5f9470b
Merge branch 'main' into codex/feat-chat-transcript-mr2a-html-export
Aug 26, 2026
937c45a
fix(web-shell): keep compact agent summaries separate
Aug 26, 2026
992ac5b
Merge branch 'main' into codex/feat-chat-transcript-mr2a-html-export
Aug 27, 2026
9197ab7
fix(core): remove duplicate telemetry test mock
Aug 27, 2026
1bea1dd
refactor(sdk): share todo preview render fallback
Aug 27, 2026
cdb8e95
fix(web-shell): align document subtools with main
Aug 27, 2026
ef5d30f
fix(transcript): address HTML export review findings
Aug 27, 2026
df02ec3
Merge branch 'main' into codex/feat-chat-transcript-mr2a-html-export
Aug 27, 2026
5b024eb
Merge branch 'main' into codex/feat-chat-transcript-mr2a-html-export
Aug 28, 2026
01d319c
Merge branch 'main' into codex/feat-chat-transcript-mr2a-html-export
Aug 28, 2026
00bd936
fix(transcript): address export review findings
Aug 28, 2026
64cc57a
fix(transcript): close export boundary bypasses
Aug 29, 2026
233fa7b
Merge branch 'main' into codex/feat-chat-transcript-mr2a-html-export
Aug 29, 2026
13fde70
Merge branch 'main' into codex/feat-chat-transcript-mr2a-html-export
Aug 29, 2026
1ab5532
Merge branch 'main' into codex/feat-chat-transcript-mr2a-html-export
Aug 30, 2026
44fa755
fix(transcript): close export review findings
Aug 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
*.sh eol=lf
*.bash eol=lf
Makefile eol=lf
packages/vscode-ide-companion/NOTICES.txt linguist-generated=true

# Windows cmd.exe expects batch installers to be checked out with CRLF.
scripts/installation/install-qwen-standalone.bat text eol=crlf
Expand Down
17 changes: 15 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -867,19 +867,32 @@ jobs:

- name: 'Install Playwright Chromium (hosted)'
if: "${{ runner.environment == 'github-hosted' }}"
run: 'npx playwright install --with-deps chromium'
run: |-
node node_modules/playwright/cli.js install --with-deps chromium
nested_cli='node_modules/@playwright/test/node_modules/playwright/cli.js'
if [ -f "${nested_cli}" ]; then
node "${nested_cli}" install chromium
fi

- name: 'Install Playwright Chromium (self-hosted)'
if: "${{ runner.environment == 'self-hosted' }}"
Comment thread
water-in-stone marked this conversation as resolved.
# Self-hosted ECS runners already include system deps; --with-deps can race apt locks.
run: 'npx playwright install chromium'
run: |-
node node_modules/playwright/cli.js install chromium
nested_cli='node_modules/@playwright/test/node_modules/playwright/cli.js'
if [ -f "${nested_cli}" ]; then
node "${nested_cli}" install chromium
fi

- name: 'Choose web-shell Playwright port'
run: |-
port="$(node -e "const net=require('node:net');const server=net.createServer();server.listen(0,'127.0.0.1',()=>{console.log(server.address().port);server.close();});")"
echo "PLAYWRIGHT_PORT=${port}" >> "${GITHUB_ENV}"
echo "Using web-shell Playwright port ${port}"

- name: 'Run transcript document browser gate'
Comment thread
water-in-stone marked this conversation as resolved.
run: 'npx vitest run --root ./integration-tests ./chat-transcript-document.test.ts --retry=0'

- name: 'Run web-shell browser smoke'
run: 'npm run test:e2e:smoke --workspace=packages/web-shell'

Expand Down
16 changes: 12 additions & 4 deletions .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -233,9 +233,9 @@ jobs:
# test:integration:sandbox:docker: that script would rebuild the image
# the step above just built.
if [[ "${{ matrix.sandbox }}" == "sandbox:docker" ]]; then
npx cross-env QWEN_SANDBOX=docker vitest run --root ./integration-tests --exclude '**/interactive/cron-interactive.test.ts' --exclude '**/channel-plugin.test.ts' --shard='${{ matrix.shard }}'
npx cross-env QWEN_SANDBOX=docker vitest run --root ./integration-tests --exclude '**/interactive/cron-interactive.test.ts' --exclude '**/channel-plugin.test.ts' --exclude '**/chat-transcript-document.test.ts' --shard='${{ matrix.shard }}'
else
npm run test:integration:sandbox:none -- --exclude '**/interactive/cron-interactive.test.ts' --exclude '**/channel-plugin.test.ts' --shard='${{ matrix.shard }}'
npm run test:integration:sandbox:none -- --exclude '**/interactive/cron-interactive.test.ts' --exclude '**/channel-plugin.test.ts' --exclude '**/chat-transcript-document.test.ts' --shard='${{ matrix.shard }}'
fi

# The sandbox build retags the same image name every run, so on a
Expand Down Expand Up @@ -304,7 +304,7 @@ jobs:
OPENAI_API_KEY: '${{ secrets.OPENAI_API_KEY }}'
OPENAI_BASE_URL: '${{ secrets.OPENAI_BASE_URL }}'
OPENAI_MODEL: '${{ secrets.OPENAI_MODEL }}'
run: 'npx cross-env VERBOSE=true KEEP_OUTPUT=true QWEN_SANDBOX=false vitest run --root ./integration-tests --exclude "**/interactive/cron-interactive.test.ts" --exclude "**/channel-plugin.test.ts" --shard="${{ matrix.shard }}"'
run: 'npx cross-env VERBOSE=true KEEP_OUTPUT=true QWEN_SANDBOX=false vitest run --root ./integration-tests --exclude "**/interactive/cron-interactive.test.ts" --exclude "**/channel-plugin.test.ts" --exclude "**/chat-transcript-document.test.ts" --shard="${{ matrix.shard }}"'

isolated-nightly:
name: '${{ matrix.label }} (nightly)'
Expand Down Expand Up @@ -393,7 +393,15 @@ jobs:
npm ci --prefer-offline --no-audit --progress=false

- name: 'Install Playwright Chromium'
run: 'npx playwright install --with-deps chromium'
run: |-
node node_modules/playwright/cli.js install --with-deps chromium
nested_cli='node_modules/@playwright/test/node_modules/playwright/cli.js'
if [ -f "${nested_cli}" ]; then
node "${nested_cli}" install chromium
fi

- name: 'Run transcript document browser gate'
run: 'npx vitest run --root ./integration-tests ./chat-transcript-document.test.ts --retry=0'
Comment thread
water-in-stone marked this conversation as resolved.

- name: 'Run web-shell browser regression'
run: 'npm run test:e2e --workspace=packages/web-shell'
Expand Down
227 changes: 130 additions & 97 deletions docs/design/web-shell/chat-transcript-contract-prevalidation.md

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ export default tseslint.config(
ignores: [
'node_modules/*',
'packages/**/dist/**',
'packages/web-templates/src/generated/**',
'integrations/**/dist/**',
'bundle/**',
'package/bundle/**',
Expand Down
Loading
Loading