Skip to content

fix(web): unbreak header/footer + serve llms; drop de-AT/fr-CH locales#1682

Merged
yannickmonney merged 2 commits into
mainfrom
fix/web-tailwind-scan-and-llms-artifacts
May 8, 2026
Merged

fix(web): unbreak header/footer + serve llms; drop de-AT/fr-CH locales#1682
yannickmonney merged 2 commits into
mainfrom
fix/web-tailwind-scan-and-llms-artifacts

Conversation

@yannickmonney

@yannickmonney yannickmonney commented May 8, 2026

Copy link
Copy Markdown
Contributor

Bundled change with two independent commits:

1. fix(web) — unbreak header/footer + serve llms artifacts

Two regressions from the @tale/webui split (#1680), plus a footer polish.

  • Header/footer styling was unstyled. The marketing site swapped to the shared SiteHeader / SiteFooter shells from @tale/webui, but services/web/app/globals.css still imported @tale/ui/globals.css. Tailwind v4's @source directive in that sheet only scans packages/ui/src, so utilities used exclusively in packages/webui/src/layout/* (e.g. lg:grid-cols-[1fr_auto_1fr], lg:grid-cols-[minmax(220px,1fr)_repeat(3,minmax(0,1fr))], bg-bg-base, text-fg-muted, border-border-base) never got generated. Switched the import to @tale/webui/globals.css to pick up its @source for the webui package — same pattern services/docs already uses.
  • /llms.txt and /llms-full.txt 404'd in bun dev. The artifact builder wrote into dist/, which only bun server.ts (production) serves. Vite dev serves public/, so dev requests fell through to the SPA index. Mirrored the docs pipeline: write into public/, run the builder before vite build / vite dev, and let vite copy the artifacts into dist/ at build time. .gitignore extended for the new generated paths.
  • Footer didn't link the LLM artifacts. Extended @tale/webui's SiteFooter with sibling llmsFullTxtUrl / llmsFullTxtLabel props and wired both /llms.txt and /llms-full.txt into the marketing footer with new footer.llmsTxtLabel / footer.llmsFullTxtLabel translations (en, de, fr).

2. chore — drop de-AT/fr-CH locales, complete de-CH docs

  • Removes the de-AT and fr-CH locale tracks across every workspace (@tale/webui, services/{platform,docs,web}, packages/ui parity tests, tools/plop) and the agent terminology side-files. Only de-CH plus the canonical de / fr remain.
  • Adds the missing de-CH translation tree under /docs and refreshes related infrastructure: i18n init/locales modules, narrow-bcp47 + resolve-agent-locale, parity tests, README headers, AGENTS docs, and the plop service template.

Test plan

  • oxlint --type-aware clean for @tale/web and @tale/webui (commit 1)
  • tsc --noEmit clean for @tale/web and @tale/webui (commit 1)
  • vitest --run passes for @tale/web (commit 1)
  • oxfmt --check clean for the touched files (commit 1)
  • vite build succeeds; generated CSS contains the previously-missing utilities (grid-cols-[1fr_auto_1fr], minmax(220px,1fr), bg-bg-base, text-fg-muted, border-border-base)
  • curl :3001/llms.txt returns Content-Type: text/plain (vite dev) — was returning the SPA text/html before
  • bun start serves /llms.txt and /llms-full.txt correctly: 200 / text/plain
  • Run bun run check against the merged base before merge
  • Visual smoke check on the deployed marketing site after merge

Pre-PR checklist

  • Ran bun run check (format, lint, typecheck, all tests). Skipped per-commit; should run against the bundled diff before merge.
  • Updated services/platform/messages/{en,de,fr}.json — N/A for both commits (de-CH overlay updated under commit 2).
  • Updated /docs/{en,de,fr}/ for every user-visible change — N/A (commit 2 adds /docs/de-CH/** overlay).
  • Ran bun run --filter @tale/docs lint and bun run --filter @tale/docs test — should run against the merged diff.
  • Updated README.md, README.de.md, README.fr.md — covered by commit 2.

Two bugs introduced by the @tale/webui split (#1680).

1. Header/footer styling was unstyled. The marketing site now imports
   the shared SiteHeader/SiteFooter shells from @tale/webui, but
   services/web/app/globals.css still imported @tale/ui/globals.css —
   so Tailwind's @source directive only scanned packages/ui/src.
   Utilities used exclusively inside packages/webui/src/layout/
   (e.g. lg:grid-cols-[1fr_auto_1fr], lg:grid-cols-[minmax(220px,
   1fr)_repeat(3,minmax(0,1fr))], bg-bg-base, text-fg-muted,
   border-border-base) were never generated. Switching the import to
   @tale/webui/globals.css picks up its @source for the webui package
   and matches what services/docs already does.

2. /llms.txt and /llms-full.txt 404'd in dev. The artifact builder
   wrote into dist/, which only bun server.ts (production) serves.
   Vite dev serves public/, so dev requests fell through to the SPA
   index. Mirror the docs pipeline: write into public/, run the
   builder before vite build/dev, and let vite copy the artifacts
   into dist/ at build time.

Also extends @tale/webui's SiteFooter with a sibling llmsFullTxtUrl /
llmsFullTxtLabel slot so the marketing footer can link both files
side-by-side. Wires those up in services/web with new translations.
Removes the de-AT and fr-CH locale tracks across every workspace
(@tale/webui, services/{platform,docs,web}, packages/ui parity tests,
tools/plop) and the agent terminology side-files; only de-CH and the
canonical de/fr remain.

Adds the missing de-CH translation tree under /docs and refreshes
related infrastructure: i18n init/locales modules, narrow-bcp47 +
resolve-agent-locale, parity tests, README headers, AGENTS docs, and
the plop service template.
@yannickmonney yannickmonney changed the title fix(web): scan @tale/webui in Tailwind, serve llms artifacts in dev fix(web): unbreak header/footer + serve llms; drop de-AT/fr-CH locales May 8, 2026
@coderabbitai

coderabbitai Bot commented May 8, 2026

Copy link
Copy Markdown
Contributor

Warning

Rate limit exceeded

@yannickmonney has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 57 minutes and 50 seconds before requesting another review.

You’ve run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: b51280cc-29a1-454e-9e98-ae58c9f5c46c

📥 Commits

Reviewing files that changed from the base of the PR and between eea7fb7 and f260376.

📒 Files selected for processing (88)
  • .agents/TERMINOLOGY_DE_AT.md
  • .agents/TERMINOLOGY_DE_CH.md
  • .agents/TERMINOLOGY_FR_CH.md
  • .gitignore
  • AGENTS.md
  • README.de.md
  • README.fr.md
  • README.md
  • docs/de-CH/develop/api-reference.md
  • docs/de-CH/develop/contributing-docker.md
  • docs/de-CH/develop/webhooks.md
  • docs/de-CH/platform/admin/branding.md
  • docs/de-CH/platform/admin/governance.md
  • docs/de-CH/platform/admin/members-and-roles.md
  • docs/de-CH/platform/admin/two-factor-authentication.md
  • docs/de-CH/platform/admin/usage-analytics.md
  • docs/de-CH/platform/agents/concepts.md
  • docs/de-CH/platform/agents/create.md
  • docs/de-CH/platform/automations/execution-logs.md
  • docs/de-CH/platform/automations/triggers.md
  • docs/de-CH/platform/chat/attachments.md
  • docs/de-CH/platform/chat/basics.md
  • docs/de-CH/platform/developer/overview.md
  • docs/de-CH/platform/index.md
  • docs/de-CH/platform/integrations/overview.md
  • docs/de-CH/platform/knowledge/crawling.md
  • docs/de-CH/platform/knowledge/structured-data.md
  • docs/de-CH/platform/workspace/canvas.md
  • docs/de-CH/platform/workspace/conversations.md
  • docs/de-CH/platform/workspace/knowledge-base.md
  • docs/de-CH/self-hosted/admin/authentication.md
  • docs/de-CH/self-hosted/configuration/environment-reference.md
  • docs/de-CH/self-hosted/configuration/providers.md
  • docs/de-CH/self-hosted/index.md
  • docs/de-CH/self-hosted/install/linux-server.md
  • docs/de-CH/self-hosted/install/quickstart.md
  • docs/de-CH/self-hosted/operate/container-architecture.md
  • docs/de-CH/self-hosted/operate/observability/operations.md
  • docs/de-CH/self-hosted/operate/observability/troubleshooting.md
  • docs/de-CH/self-hosted/operate/release-notes/format.md
  • docs/de-CH/self-hosted/operate/security/advisories.md
  • docs/de-CH/self-hosted/overview.md
  • docs/de-CH/tutorials/admin/connect-local-provider.md
  • docs/de-CH/tutorials/admin/meeting-transcription.md
  • docs/de-CH/tutorials/admin/office-add-in.md
  • docs/de-CH/tutorials/developer/call-tale-from-a-script.md
  • docs/de-CH/tutorials/developer/trigger-automation-via-webhook.md
  • docs/de-CH/tutorials/editor/first-agent-end-to-end.md
  • docs/de-CH/tutorials/overview.md
  • packages/ui/src/i18n-tests/parity.ts
  • packages/webui/src/i18n/init.ts
  • packages/webui/src/i18n/locales.ts
  • packages/webui/src/layout/site-footer.tsx
  • packages/webui/src/markdown/components/accordion.stories.tsx
  • services/docs/AGENTS.md
  • services/docs/lib/content/loader.ts
  • services/docs/lib/i18n/i18n.ts
  • services/docs/messages/de-AT.json
  • services/docs/messages/de-CH.json
  • services/docs/messages/fr-CH.json
  • services/docs/tests/readme-parity.test.ts
  • services/platform/app/features/chat/components/chat-input.tsx
  • services/platform/convex/agent_tools/delegation/create_delegation_tool.ts
  • services/platform/lib/i18n/i18n.ts
  • services/platform/lib/shared/utils/__tests__/resolve-agent-locale.test.ts
  • services/platform/lib/shared/utils/narrow-bcp47.ts
  • services/platform/lib/shared/utils/resolve-agent-locale.ts
  • services/platform/messages/de-AT.json
  • services/platform/messages/de-CH.json
  • services/platform/messages/fr-CH.json
  • services/web/app/components/layout/site-footer.tsx
  • services/web/app/globals.css
  • services/web/lib/i18n/i18n.ts
  • services/web/lib/i18n/locales.ts
  • services/web/messages/de-AT.json
  • services/web/messages/de-CH.json
  • services/web/messages/de.json
  • services/web/messages/en.json
  • services/web/messages/fr-CH.json
  • services/web/messages/fr.json
  • services/web/package.json
  • services/web/public/robots.txt
  • services/web/scripts/build-llms-artifacts.ts
  • tools/plop/generators/react-service.ts
  • tools/plop/templates/react-service/lib/i18n/i18n.ts.hbs
  • tools/plop/templates/react-service/messages/de-AT.json
  • tools/plop/templates/react-service/messages/de-CH.json
  • tools/plop/templates/react-service/messages/fr-CH.json
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/web-tailwind-scan-and-llms-artifacts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@yannickmonney yannickmonney merged commit 647f5d5 into main May 8, 2026
19 checks passed
@yannickmonney yannickmonney deleted the fix/web-tailwind-scan-and-llms-artifacts branch May 8, 2026 08:34
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.

1 participant