| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
docs: add documentation site under docs/ Vendor the standalone Nextra (Next.js 16) docs site into the monorepo so the documentation lives alongside the code and deploys from this repo on Vercel (Root Directory = docs). Preserves the prior multi-tenancy engineering note at docs/notes/multi-tenancy.md and drops the redundant nested renovate.json (the root renovate config already governs docs/). | 3 个月前 | |
chore: bundled web, api, locale and docs updates Non-CLI changes carried in this branch alongside the CLI work: - docs/content/cli + self-hosting/maintenance docs - apps/web components, 23 locale files, eslint config and lint tooling - apps/api analytics/storage/email tweaks and tests - web-lint CI workflow | 2 个月前 | |
docs: add documentation site under docs/ Vendor the standalone Nextra (Next.js 16) docs site into the monorepo so the documentation lives alongside the code and deploys from this repo on Vercel (Root Directory = docs). Preserves the prior multi-tenancy engineering note at docs/notes/multi-tenancy.md and drops the redundant nested renovate.json (the root renovate config already governs docs/). | 3 个月前 | |
feat(email): let organizations set the sender display name Transactional mail went out as a hardcoded "LearnHouse <...>". An organization on a white-labelled deployment could not show its own name, and a self-hoster could not rebrand at all. Only the display NAME is configurable. The From address stays mailing.system_email_address, the domain holding the verified SPF/DKIM records — an org-chosen address would fail DKIM alignment on every message and damage a sending reputation shared across tenants. - LEARNHOUSE_SYSTEM_EMAIL_SENDER_NAME sets the deployment default and falls back to the previous name, so an unset install is unchanged. - Per-org override at customization.general.email_sender_name; the org config is a JSON blob, so no migration. - The name is admin-typed text landing in an RFC 5322 header, so sanitize_sender_name() removes control characters and line separators outright rather than replacing them, and formataddr() handles quoting and RFC 2047 so non-Latin names survive instead of being stripped. Sanitizing runs on write and again on read, so a row edited directly in the database cannot reach a header unfiltered. - Org-created and org-deleted mail stay platform-branded, for reasons noted at both call sites. | 27 天前 | |
chore: bundled web, api, locale and docs updates Non-CLI changes carried in this branch alongside the CLI work: - docs/content/cli + self-hosting/maintenance docs - apps/web components, 23 locale files, eslint config and lint tooling - apps/api analytics/storage/email tweaks and tests - web-lint CI workflow | 2 个月前 | |
docs: add documentation site under docs/ Vendor the standalone Nextra (Next.js 16) docs site into the monorepo so the documentation lives alongside the code and deploys from this repo on Vercel (Root Directory = docs). Preserves the prior multi-tenancy engineering note at docs/notes/multi-tenancy.md and drops the redundant nested renovate.json (the root renovate config already governs docs/). | 3 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 3 个月前 | ||
| 2 个月前 | ||
| 3 个月前 | ||
| 27 天前 | ||
| 2 个月前 | ||
| 3 个月前 |