Create a new Tianji website for Hesychia beta (prod keeps existing id unless we also re-key)
Update Tracker.tsx to pick website ID by build mode / env:
prod build → current (or confirmed) prod website ID
beta build → new beta website ID
Ensure beta builds actually load the tracker (today anything with NODE_ENV=production shares one ID — build:beta uses NODE_ENV=production, so it already loads prod ID; must switch on CRA env file / custom REACT_APP_* / explicit beta flag, not only NODE_ENV)
Prefer env vars e.g. REACT_APP_TIANJI_WEBSITE_ID in .env.production / .env.beta so IDs are not hardcoded only in one place
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Enable beta deploys for
chat_web_app, matchingdta_webapp:master→ auto-deploy betaworkflow_dispatch) → deploy prodToday this is inverted:
deploy-prod.ymlauto-deploys prod after Unit Tests onmasterdeploy-beta.ymlisworkflow_dispatchonlyAlso add Tianji tracking for beta builds: separate Tianji website ID (like
dta_webappprod vs beta), so beta traffic does not pollute prod analytics.Infra half: server-infra#7.
Companion backend:
chat_backendbeta workflow ticket.Current state
npm run build:prod/build:betaalready write/var/www/{prod,beta}.chat.aimloperations/html.env.betapoints API/WS athttps://beta.chatbackend.aimloperations.comTracker.tsxloads Tianji only whenNODE_ENV === 'production'with a single website id (cm7x7m52m03kbddswbswrt17y) — no beta distinctionTarget workflow (mirror
dta_webapp)deploy-beta.ymlpushtomaster(after unit tests)--env betadeploy-prod.ymlworkflow_dispatchonly--env prodRemove auto-prod-on-master (
workflow_run→ prod). Prod = intentional button press.Work
1. Flip Gitea workflows
deploy-beta.yml: on push tomaster→ unit tests →deploy.sh --app chat_web_app --env beta --ref <sha>deploy-prod.yml:workflow_dispatch: {}→ unit tests →deploy.sh --app chat_web_app --env prod --ref <sha>2. Tianji tracking for beta builds
Mirror
dta_webappTracker.tsx:Tracker.tsxto pick website ID by build mode / env:NODE_ENV=productionshares one ID —build:betausesNODE_ENV=production, so it already loads prod ID; must switch on CRA env file / customREACT_APP_*/ explicit beta flag, not onlyNODE_ENV)REACT_APP_TIANJI_WEBSITE_IDin.env.production/.env.betaso IDs are not hardcoded only in one placehttps://tianji.aimloperations.com/tracker.jsCustom events, cookie consent banner, notifications page, and public ToS polish are follow-on tickets.
3. Env sanity
.env.betaREST/WS URLs match NPM beta backend/var/www/beta.chat.aimloperations/htmlvia server-infra deployCoordination
chat_backendbeta workflow + beta CORS/hostsAcceptance criteria
masterdeploys beta onlyworkflow_dispatchbutton (likedta_webapp)data-website-idfrom prodReferences
dta_webapp.gitea/workflows/deploy-beta.yml+deploy-prod.ymldta_webappsrc/components/Tracker.tsx(prod vs beta website IDs)Links
Follow-ons