chore: update logos to TWN house branding and bump dependencies#16
chore: update logos to TWN house branding and bump dependencies#16yokoszn wants to merge 3 commits into
Conversation
- Replace SVG logos with new 3D isometric house design with TWN branding - Update all package dependencies to latest versions - Add pnpm overrides to fix security vulnerabilities: - tar (>=7.5.7) - esbuild (>=0.25.0) - cross-spawn (>=7.0.5) - undici (>=6.23.0) - @eslint/plugin-kit (>=0.3.4) - tmp (>=0.2.4) https://claude.ai/code/session_01XAvD97p9nnwVyU4CfrXNM5
📝 WalkthroughWalkthroughDependency version bumps across multiple packages, a pnpm overrides section added to root package.json, branding text changed from "Enclosed" to "TWN" in the client, and a new Logo SolidJS component added and integrated into the app layout. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
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. Comment |
- Create Logo component with 3D isometric house SVG design - Replace text-based navbar title with Logo component - Update app title from "Enclosed" to "TWN" in locales - Update index.html meta tags, OG tags, and structured data https://claude.ai/code/session_01XAvD97p9nnwVyU4CfrXNM5
Deploying enclosed-twn with
|
| Latest commit: |
406619b
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://f43ede37.enclosed-twn.pages.dev |
| Branch Preview URL: | https://claude-update-logos-dependen.enclosed-twn.pages.dev |
- Add TWN IT, Learning Platform, Trust Centre links to footer and dropdown - Add About, Privacy, Terms links to footer and dropdown - Update footer text: "Hosted with Cloudflare Pages + KV By TWN" - Replace all GitHub links to point to TWN-Systems/enclosed - Update locale strings for TWN branding - Reorganize dropdown menu with separators https://claude.ai/code/session_01XAvD97p9nnwVyU4CfrXNM5
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Fix all issues with AI agents
In `@packages/app-client/src/locales/en.json`:
- Line 51: Change the JSON value for the "title" key from the imperative noun
phrase "Login to TWN" to the verb form "Log in to TWN." so update the "title"
entry in packages/app-client/src/locales/en.json (the "title" key) to read "Log
in to TWN." ensuring punctuation and capitalization match the suggested copy.
- Around line 26-45: Multiple locale JSON files are missing the new translation
keys introduced in en.json for footer and navbar.settings (keys like
footer.about, footer.hosted-by, footer.learning-platform, footer.privacy,
footer.report-issue, footer.terms, footer.trust-centre, footer.twn-it and
navbar.settings.about, navbar.settings.learning-platform,
navbar.settings.privacy, navbar.settings.terms, navbar.settings.trust-centre,
navbar.settings.twn-it); update every non-English locale file (ar, de, es, fr,
hu, id, it, nl, pl, pt-BR, pt, ru, tr, vi, zh-CN, zh-TW) to include these keys
under the same JSON nesting and provide appropriate translations (or temporarily
copy the en.json values as placeholders) so the UI strings are present for all
locales.
🧹 Nitpick comments (1)
packages/app-client/src/modules/ui/layouts/app.layout.tsx (1)
249-257: Use router'sAcomponent for internal navigation.The internal routes (
/about,/privacy,/terms) useas="a"which renders a standard anchor tag, causing full page reloads. The Navbar dropdown (lines 188, 193, 198) correctly usesas={A}for the same routes—this should be consistent throughout for client-side navigation.♻️ Proposed fix to use router component
- <Button variant="link" as="a" href="/about" class="p-0 text-muted-foreground underline hover:text-primary transition font-normal h-auto"> + <Button variant="link" as={A} href="/about" class="p-0 text-muted-foreground underline hover:text-primary transition font-normal h-auto"> {t('footer.about')} </Button> - <Button variant="link" as="a" href="/privacy" class="p-0 text-muted-foreground underline hover:text-primary transition font-normal h-auto"> + <Button variant="link" as={A} href="/privacy" class="p-0 text-muted-foreground underline hover:text-primary transition font-normal h-auto"> {t('footer.privacy')} </Button> - <Button variant="link" as="a" href="/terms" class="p-0 text-muted-foreground underline hover:text-primary transition font-normal h-auto"> + <Button variant="link" as={A} href="/terms" class="p-0 text-muted-foreground underline hover:text-primary transition font-normal h-auto"> {t('footer.terms')} </Button>
| "twn-it": "TWN IT", | ||
| "learning-platform": "Learning Platform", | ||
| "trust-centre": "Trust Centre", | ||
| "about": "About", | ||
| "privacy": "Privacy", | ||
| "terms": "Terms", | ||
| "report-bug": "Report Issue", | ||
| "logout": "Logout", | ||
| "contribute-to-i18n": "Contribute to i18n" | ||
| } | ||
| }, | ||
| "footer": { | ||
| "crafted-by": "Crafted by", | ||
| "hosted-by": "Hosted with Cloudflare Pages + KV By TWN", | ||
| "twn-it": "TWN IT", | ||
| "learning-platform": "Learning Platform", | ||
| "trust-centre": "Trust Centre", | ||
| "about": "About", | ||
| "privacy": "Privacy", | ||
| "terms": "Terms", | ||
| "report-issue": "Report Issue", |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
LOCALE_DIR="packages/app-client/src/locales"
python - <<'PY'
import json, os, glob
dir_path = "packages/app-client/src/locales"
en_path = os.path.join(dir_path, "en.json")
def flatten(obj, prefix=""):
keys = set()
if isinstance(obj, dict):
for k, v in obj.items():
new = f"{prefix}.{k}" if prefix else k
keys.add(new)
keys |= flatten(v, new)
elif isinstance(obj, list):
keys.add(prefix)
return keys
with open(en_path, encoding="utf-8") as f:
en = json.load(f)
en_keys = flatten(en)
missing_any = False
for path in sorted(glob.glob(os.path.join(dir_path, "*.json"))):
if os.path.basename(path) == "en.json":
continue
with open(path, encoding="utf-8") as f:
other = json.load(f)
other_keys = flatten(other)
missing = sorted(en_keys - other_keys)
if missing:
missing_any = True
print(f"{path} missing {len(missing)} keys:")
for k in missing[:50]:
print(" -", k)
if len(missing) > 50:
print(" ...")
if not missing_any:
print("All locale files contain the en.json keys.")
PYRepository: TWN-Systems/enclosed
Length of output: 11089
All locale files except en.json are missing the new footer and navbar.settings keys.
Every other locale file (ar, de, es, fr, hu, id, it, nl, pl, pt-BR, pt, ru, tr, vi, zh-CN, zh-TW) is missing the new translation keys you've added to en.json at lines 26-45. Specifically, all are missing:
footer.about,footer.hosted-by,footer.learning-platform,footer.privacy,footer.report-issue,footer.terms,footer.trust-centre,footer.twn-itnavbar.settings.about,navbar.settings.learning-platform,navbar.settings.privacy,navbar.settings.terms,navbar.settings.trust-centre,navbar.settings.twn-it
Update all locale JSON files to include these keys and their translations to prevent untranslated UI strings for non-English users.
🤖 Prompt for AI Agents
In `@packages/app-client/src/locales/en.json` around lines 26 - 45, Multiple
locale JSON files are missing the new translation keys introduced in en.json for
footer and navbar.settings (keys like footer.about, footer.hosted-by,
footer.learning-platform, footer.privacy, footer.report-issue, footer.terms,
footer.trust-centre, footer.twn-it and navbar.settings.about,
navbar.settings.learning-platform, navbar.settings.privacy,
navbar.settings.terms, navbar.settings.trust-centre, navbar.settings.twn-it);
update every non-English locale file (ar, de, es, fr, hu, id, it, nl, pl, pt-BR,
pt, ru, tr, vi, zh-CN, zh-TW) to include these keys under the same JSON nesting
and provide appropriate translations (or temporarily copy the en.json values as
placeholders) so the UI strings are present for all locales.
| "login": { | ||
| "title": "Login to Enclosed", | ||
| "description": "This is a private instance of Enclosed. Enter your credentials to be able to create notes.", | ||
| "title": "Login to TWN", |
There was a problem hiding this comment.
Prefer verb form: “Log in to TWN.”
Minor copy fix for grammatical correctness in the title.
✏️ Suggested copy tweak
- "title": "Login to TWN",
+ "title": "Log in to TWN",📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "title": "Login to TWN", | |
| "title": "Log in to TWN", |
🤖 Prompt for AI Agents
In `@packages/app-client/src/locales/en.json` at line 51, Change the JSON value
for the "title" key from the imperative noun phrase "Login to TWN" to the verb
form "Log in to TWN." so update the "title" entry in
packages/app-client/src/locales/en.json (the "title" key) to read "Log in to
TWN." ensuring punctuation and capitalization match the suggested copy.
https://claude.ai/code/session_01XAvD97p9nnwVyU4CfrXNM5
Summary by CodeRabbit
New Features
Chores
✏️ Tip: You can customize this high-level summary in your review settings.