Skip to content

feat: publish no-install browser demo - #71

Merged
wolfiesch merged 2 commits into
LycaonLLC:mainfrom
wolfiesch:feat/no-install-demo
Jul 19, 2026
Merged

feat: publish no-install browser demo#71
wolfiesch merged 2 commits into
LycaonLLC:mainfrom
wolfiesch:feat/no-install-demo

Conversation

@wolfiesch

@wolfiesch wolfiesch commented Jul 19, 2026

Copy link
Copy Markdown
Collaborator

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.

  • labels the entire experience as Sample data
  • exposes the attention inbox, session transcript, Agent View, command palette, files/review/terminal panes, transcript search, and a read-only local preview
  • forces the demo build onto deterministic fixtures even when script or query backend configuration is present, while preserving the live desktop runtime
  • keeps every demo document-local URL under /demo/
  • supports desktop and phone-sized layouts
  • deploys the immutable release site first, then the demo from the trusted current source; the demo sync/delete/invalidation remain scoped to /demo

How you verified it

  • mise exec node@24.13.1 -- pnpm check - release consistency, provenance, lint, and workspace typechecks passed
  • mise exec node@24.13.1 -- pnpm test - the repository test suite passed
  • mise 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 passed
  • mise exec node@24.13.1 -- node --test scripts/deploy-demo.test.mjs scripts/deploy-site.test.mjs - deployment source, URL, sync, and invalidation contracts passed
  • mise 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/
  • local browser smoke with a supplied backend query verified Sample data, no injected desktop shell, no live-host copy, and /demo/ resource paths

Checklist

  • pnpm check passes (release contract, provenance, lint, typecheck)
  • pnpm test passes; new behavior has a test that fails without this change
  • Any pasted logs or screenshots are redacted: no secrets, tokens, pairing codes, or private paths
  • Ported code (T3 Code / OMP) follows the provenance rules in THIRD_PARTY_NOTICES.md (not applicable; no ported code)

Screenshots

t4-demo-preview t4-demo-agent-view

@wolfiesch
wolfiesch marked this pull request as ready for review July 19, 2026 10:46
Copilot AI review requested due to automatic review settings July 19, 2026 10:46

Copilot AI 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.

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:demo pipeline (build, scoped S3 sync/delete, and CloudFront invalidation for /demo/*) and updates site deployment to preserve the /demo prefix.
  • 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.

Comment thread apps/web/src/features/agent-view/AgentViewScreen.tsx Outdated
@wolfiesch
wolfiesch force-pushed the feat/no-install-demo branch 3 times, most recently from f74712b to d7410f2 Compare July 19, 2026 12:14
@wolfiesch
wolfiesch force-pushed the feat/no-install-demo branch from d7410f2 to 6306505 Compare July 19, 2026 12:24
@wolfiesch
wolfiesch merged commit f7b86a9 into LycaonLLC:main Jul 19, 2026
4 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.

2 participants