Two-column grid: main content + About sidebar.
Extract clone_url_bar component from old summary_detail.
Add repo stats bar (branches, tags, commits, forks).
Move repo metadata (owner, description, dates) into visible
About sidebar instead of hidden behind Show More toggle.
Auto-load language stats when enabled.
Convert repo_menu from hidden horizontal context bar to sidebar sections.
Add Navigate section with global links (Repos, Activity, Gists, Search,
My Account, PRs, Notifications, Admin). Sidebar now shows for all users
including anonymous.
- Load styleguide.css before style.css so new design tokens are
available app-wide and new styles take precedence
- Load ajax.js after scripts.min.js — provides qs(), onReady(),
onDelegate(), setCookie(), getCookie(), and other vanilla utilities
- Keep jQuery's $ intact via qs() alias to avoid breaking existing code
- Add no-js class to <html> for capability-driven presentation
- Update error_document.mako with same CSS/JS stack
- Guard all session.save() calls with hasattr checks for CookieSession
compatibility (CookieSession auto-saves via response callbacks)
- Guard beaker-specific _set_cookie_expires and _update_cookie_out in
login views
- Defer ldap scope_labels to property to avoid class-level AttributeError
when python-ldap is not installed
- Add vcsserver stub package to allow imports without full vcsserver
- Add rc_license stub for CE edition (no license management)
- New /styleguide endpoint with CSS Grid layout system, design tokens,
and component library (buttons, forms, alerts, cards, tables, etc.)
- custom.js replaces jQuery patterns with native DOM APIs
- Pure CSS with custom properties, no preprocessors, no flexbox
- Capability-driven presentation with progressive enhancement
- Wire styleguide app into middleware includes
- Update CLAUDE.md with UI modernization goals
Replace server-side session backends (redis, file, database, memcached)
with client-side signed cookie sessions. Users will need to
re-authenticate after deploy.
- Rewrite rc_beaker.py to use pyramid.session.SignedCookieSessionFactory
- Gut user_sessions.py to cookie-only stub
- Drop beaker.container from memory_lru_dict.py (pure repoze.lru)
- Migrate ini configs from beaker.session.* to session.* namespace
- Remove beaker==1.13.0 from requirements.txt
- Remove beaker.backends entry points from pyproject.toml
- Preserve backward-compat fallbacks for encryption key resolution