Skip to content

feat: add custom SSO, optimize login UI, and fix non-Latin search - #7

Open
csbde wants to merge 16 commits into
marcoshack:mainfrom
csbde:main
Open

feat: add custom SSO, optimize login UI, and fix non-Latin search#7
csbde wants to merge 16 commits into
marcoshack:mainfrom
csbde:main

Conversation

@csbde

@csbde csbde commented Sep 1, 2026

Copy link
Copy Markdown

Context

This PR introduces a new Custom SSO feature and includes several improvements to the UI, internationalization, and search functionality. It also ensures compatibility when running on standard PostgreSQL.

Changes

  • New Feature: Added Custom SSO authentication support.
  • UI/UX: Optimized the login page layout and added several new color themes.
  • i18n: Improved the accuracy of Chinese language translations.
  • Bug Fix: Resolved the search functionality issue for non-Latin characters.
  • Compatibility: Verified and ensured normal operation when using standard PostgreSQL.

Impact

  • Introduces a new authentication method (Custom SSO).
  • Enhances visual customization and user experience on the login page.
  • Fixes a critical search bug for non-Latin users.
  • No breaking changes to existing PostgreSQL configurations.

Testing

  • Tested Custom SSO login flow successfully.
  • Verified new color themes and login page UI.
  • Checked Chinese translation accuracy across the app.
  • Confirmed search works correctly with non-Latin text.
  • Validated application stability and functionality on standard PostgreSQL.

csbde added 16 commits August 30, 2026 02:04
- Add SSOProvider with OIDC discovery, PKCE, nonce/at_hash validation
- Add encrypted client secret storage via Encryptor
- Add auth_sso_enabled and sso_auto_provision_enabled settings
- Add SSO config fields (issuer, scopes, button_label, disable_pkce, require_verified_email)
- Add SSO button to login page with custom label support from public settings
- Add SSO configuration UI to SystemAuthenticationPage with all OIDC fields
- Add SSO error keys (sso_email_missing, sso_email_unverified, sso_account_not_provisioned)
- Add i18n translations for SSO across all 9 locales
- Add oauthConfigError utility for localized OAuth config error messages
- Add PageHeader, EmptyState, LoadingState reusable components
- Optimize core pages (ProjectList, WorkItemList, etc.)
- Unify dark mode border colors (gray-700 → gray-600)
- Replace unnecessary shadows with borders
- Standardize font hierarchy and spacing
- Improve Chinese typography (line-height, font-size)
- Create Dockerfile.all-in-one bundling API, worker, and frontend
- Add nginx configuration for single-port deployment (port 80)
- Add supervisord configuration to manage all processes
- Add Chinese mirror Dockerfiles (.cn variants) for faster builds
- Update README.md with all-in-one deployment option
- Update MANUAL_INSTALL.md with detailed all-in-one instructions
- Improve Chinese translations in zh.json
- Add docker-compose.all-in-one.yml with taskwondo + nats services
- Remove migration call from worker to prevent concurrent migration conflicts in all-in-one deployment
- Auto-recover dirty migration state in database.Migrate()
- Make pgvector extension optional (migrations 000033-000036)
- Make pgcrypto extension optional (migration 000061)
- Graceful degradation when embeddings table is unavailable
- Change SeedDefaultNamespace failure from fatal to warn on fresh DB
CJK glyphs fill the whole em box, so the 17.6px root font size tuned for
Latin scripts makes Chinese/Japanese/Korean text look oversized and heavy.

- Set <html lang> alongside dir so browsers and CSS can adapt per script
- Scale the root font size down ~9% for zh/ja (7% for ko) via
  --app-font-scale, keeping the user font-size preference intact
- Name local CJK font faces per language instead of generic fallback,
  with emoji fonts ordered before the CJK stack
- Add pg_trgm GIN indexes (migration 000063, optional/guarded) on
  work_items, teams, queues and milestones
- Repository search paths (item list, global FTS, inbox, teams/queues/
  milestones) now OR an escaped ILIKE substring match when the query
  contains CJK characters, which Postgres' whitespace tokenizer cannot
  split into lexemes
- Lower the frontend entity-search floor to a single CJK character via
  meetsSearchFloor, applied to palette, mention, picker and user search
- Add repository helper tests and a Playwright CJK search spec
- Drop shadow-sm from text inputs, selects, and picker triggers so they
  match the borderless ui/Input
- Give work item / queue / watchlist table containers an explicit border
  color: a bare `border` falls back to currentColor under Tailwind v4,
  rendering near-black borders in light mode
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