feat: publish no-install browser demo - #71
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
This PR publishes a self-contained, no-install browser demo under /demo/ while preserving the immutable release site behavior and keeping demo updates isolated to that prefix.
Changes:
- Adds a dedicated
deploy:demopipeline (build, scoped S3 sync/delete, and CloudFront invalidation for/demo/*) and updates site deployment to preserve the/demoprefix. - Introduces deterministic, fixture-backed UI surfaces for the browser demo (Agent View fixtures + read-only preview workspace) and labels the experience as “Sample data”.
- Updates CI deployment workflow to deploy the immutable release site first, then deploy the demo from the trusted current source checkout.
Reviewed changes
Copilot reviewed 14 out of 14 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| scripts/deploy-site.test.mjs | Updates deployment contract assertions, including exclusions that preserve /demo. |
| scripts/deploy-site.mjs | Excludes demo/* from the root site sync so demo content is preserved. |
| scripts/deploy-demo.test.mjs | Adds tests for the new demo deployment script behavior and scoping. |
| scripts/deploy-demo.mjs | New script to build and deploy the /demo prefix with correct caching and invalidations. |
| package.json | Adds build:demo and deploy:demo; wires demo deployment into tooling tests. |
| apps/web/test/panes-fixtures.test.ts | Adds determinism coverage for the new global Agent View fixture groups. |
| apps/web/src/router.tsx | Switches preview route to a fixture preview when no desktop runtime; injects Agent View fixtures in browser mode. |
| apps/web/src/features/preview/FixturePreviewWorkspace.tsx | New read-only, deterministic “sample” preview surface for browser mode. |
| apps/web/src/features/panes/fixtures.ts | Exposes a shared fixture agent corpus for Agent View fixtures. |
| apps/web/src/features/agent-view/fixtures.ts | New deterministic global Agent View fixture groups derived from existing fixture sessions. |
| apps/web/src/features/agent-view/AgentViewScreen.tsx | Adds fixture inputs + sample-mode behavior (disables cancel, deterministic clock option). |
| apps/web/src/components/SessionScreen.tsx | Enables a preview entrypoint in browser mode by surfacing a fixture preview count. |
| apps/web/src/components/AppShell.tsx | Adds a “Sample data” banner in browser mode. |
| .github/workflows/deploy-site.yml | Deploys site from immutable release source and demo from trusted current source; expands path triggers. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
wolfiesch
force-pushed
the
feat/no-install-demo
branch
3 times, most recently
from
July 19, 2026 12:14
f74712b to
d7410f2
Compare
wolfiesch
force-pushed
the
feat/no-install-demo
branch
from
July 19, 2026 12:24
d7410f2 to
6306505
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this changes
Publishes a self-contained browser demo at
https://t4code.net/demo/so reviewers can explore T4 Code without installing the desktop app or connecting a host.Sample data/demo//demoHow you verified it
mise exec node@24.13.1 -- pnpm check- release consistency, provenance, lint, and workspace typechecks passedmise exec node@24.13.1 -- pnpm test- the repository test suite passedmise exec node@24.13.1 -- pnpm --filter @t4-code/web exec vp test run test/browser-platform.test.ts test/panes-fixtures.test.ts- demo isolation and fixture contracts passedmise exec node@24.13.1 -- node --test scripts/deploy-demo.test.mjs scripts/deploy-site.test.mjs- deployment source, URL, sync, and invalidation contracts passedmise exec node@24.13.1 -- pnpm build:demo && mise exec node@24.13.1 -- node --input-type=module -e 'import { validateDemoBuild } from "./scripts/deploy-demo.mjs"; validateDemoBuild(process.cwd())'- the production demo bundle built with every document-local resource under/demo/Sample data, no injected desktop shell, no live-host copy, and/demo/resource pathsChecklist
pnpm checkpasses (release contract, provenance, lint, typecheck)pnpm testpasses; new behavior has a test that fails without this changeTHIRD_PARTY_NOTICES.md(not applicable; no ported code)Screenshots