This file is the single entry point for how we build and change the browser chat (web_client/). Read it before UI work; then open the linked contracts for detail.
| Document | Role |
|---|---|
web-client-layout-contract.md |
Layout: regions, DOM order, breakpoints (600px, 1099px / 1100px), scroll ownership, sizing. Any shell/grid change must update this file in the same PR. |
web-client-browser-constraints.md |
Content & runtime: vanilla ES modules, no file://, security (escaped model text, iframe sandbox), CORS/tunnels, i18n (ui_strings.js for en / fr / es / pt / hi), tokens, a11y, storage keys. |
installation/mac-quick-tunnel-runbook.md |
Cloudflare Quick Tunnel workflow for Team A → Team B. |
Cursor: edits under web_client/** should follow .cursor/rules/web-client-browser-constraints.mdc (it points here and to the two contracts above).
Bugs and feature requests for this repo go on GitHub Issues:
https://github.com/semanticclimate/chatbot/issues
Use Issues for anything that should be tracked, assigned, or closed with a clear outcome (repro steps, expected vs actual, screenshots). Link PRs to issues when you fix them.
For open-ended design discussion, prefer GitHub Discussions if the org enables it; otherwise an Issue with the discussion label (or plain title prefix) is fine.
- Layout: obey the layout contract; do not reshuffle HEADER / SETTINGS / WORKBENCH / BOOK without updating the doc.
- Copy: no new user-visible English-only literals in chrome code — add keys to
web_client/js/ui_strings.jsfor all five UI languages. - Language / API: chat language persists and is sent as
response_languageonPOST /ask; book HTML in the iframe stays English. - Commits: if you change behaviour visible to testers, note it in the PR description and open or update an Issue when appropriate.