Skip to content

docs: brand identity and UX design system from #765 exploration#804

Merged
Aureliolo merged 2 commits intomainfrom
feat/765-design-exploration
Mar 24, 2026
Merged

docs: brand identity and UX design system from #765 exploration#804
Aureliolo merged 2 commits intomainfrom
feat/765-design-exploration

Conversation

@Aureliolo
Copy link
Copy Markdown
Owner

@Aureliolo Aureliolo commented Mar 24, 2026

Summary

  • Add docs/design/brand-and-ux.md documenting the design exploration outcome from feat: design exploration -- brand identity mockup variations #765: Warm Ops direction with semantic state-driven color encoding (green=rising, amber=attention, red=critical)
  • Document theme architecture with 5 independent axes (color palette, density, typography, animation, sidebar mode) -- adding a new color theme is ~50 lines, zero component changes
  • Document the Tailwind v4 CSS cascade layers bug (unlayered resets silently override all utility classes) to prevent recurrence in feat: design tokens and core UI components #775
  • Fix flaky test test_defective_builtin_skipped -- suppress logger to prevent xdist worker crash from 9x logger.exception tracebacks on Windows

Test plan

  • uv run ruff check tests/ passes
  • uv run mypy tests/unit/templates/test_loader.py passes
  • uv run python -m pytest tests/unit/templates/test_loader.py -n auto -- 54 passed (including previously flaky test)
  • Docs render correctly via uv run zensical build

Pre-reviewed: automated checks passed. Agent review skipped -- docs + trivial test fix only.

🤖 Generated with Claude Code

Add docs/design/brand-and-ux.md documenting the design exploration outcome:
- Warm Ops direction with semantic state-driven color encoding
  (green=rising, amber=attention, red=critical, not static brand accent)
- Complete color token inventory and dynamic assignment rules
- Typography (Geist Mono + Geist Sans), density (4 levels),
  animation (5 profiles), sidebar (5 modes) -- all independent user prefs
- Theme architecture: 5 orthogonal axes, ~50-line config per new theme
- Tailwind v4 CSS cascade layers bug documented (unlayered resets
  silently override all utility classes -- must use @layer base)

Update DESIGN_SPEC.md index with new page link.

Fix flaky test: suppress logger in test_defective_builtin_skipped to
prevent xdist worker crash from 9x logger.exception tracebacks on
Windows (gw28 node down).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 24, 2026

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Snapshot Warnings

⚠️: No snapshots were found for the head SHA 21c8333.
Ensure that dependencies are being submitted on PR branches and consider enabling retry-on-snapshot-warnings. See the documentation for more information and troubleshooting advice.

Scanned Files

None

@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the project's documentation by introducing a comprehensive design system for brand identity and user experience. It details the visual philosophy, color system, typography, density, animation, and sidebar configurations, all built on an independent, modular theme architecture. Additionally, it addresses a specific Tailwind CSS implementation detail to prevent future issues and includes a fix for a previously flaky unit test, improving overall stability.

Highlights

  • Design System Documentation: A new document docs/design/brand-and-ux.md was added, detailing the brand identity and UX design system, including the chosen 'Warm Ops' direction with semantic state-driven color encoding.
  • Theme Architecture: The documentation outlines a modular theme architecture with five independent axes: color palette, density, typography, animation, and sidebar mode, emphasizing the ease of adding new themes with minimal code changes.
  • Tailwind CSS v4 Note: A critical implementation note was added regarding a Tailwind v4 CSS cascade layers bug, where unlayered CSS resets can silently override utility classes, providing a solution to prevent recurrence.
  • Flaky Test Fix: The flaky test test_defective_builtin_skipped was fixed by suppressing logger output during its execution, preventing xdist worker crashes on Windows.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 24, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: e4da538c-27ec-43d7-8aae-ab73fdac43ae

📥 Commits

Reviewing files that changed from the base of the PR and between ee3f384 and 21c8333.

📒 Files selected for processing (6)
  • CLAUDE.md
  • README.md
  • docs/design/brand-and-ux.md
  • docs/design/index.md
  • mkdocs.yml
  • tests/unit/templates/test_loader.py
📜 Recent review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Test (Python 3.14)
  • GitHub Check: Analyze (python)
🧰 Additional context used
📓 Path-based instructions (4)
**/*.{yml,yaml}

📄 CodeRabbit inference engine (CLAUDE.md)

YAML config files must be validated with check-yaml pre-commit hook

Files:

  • mkdocs.yml
docs/**/*.md

📄 CodeRabbit inference engine (CLAUDE.md)

Documentation: Markdown in docs/ built with Zensical, config: mkdocs.yml; design spec: docs/design/ (7 pages), architecture: docs/architecture/, roadmap: docs/roadmap/

Files:

  • docs/design/index.md
  • docs/design/brand-and-ux.md
**/*.py

📄 CodeRabbit inference engine (CLAUDE.md)

**/*.py: In Python code, do NOT use from __future__ import annotations — Python 3.14 has PEP 649 native lazy annotations
Use except A, B: syntax (no parentheses) for exception handling in Python 3.14, enforced by ruff with PEP 758
All public functions and classes in Python must have type hints; mypy strict mode is enforced
Use Google-style docstrings on all public classes and functions in Python; enforced by ruff D rules
Create new objects instead of mutating existing ones; for non-Pydantic internal collections, use copy.deepcopy() at construction and wrap with MappingProxyType for read-only enforcement
Use frozen Pydantic models for config/identity; separate mutable-via-copy models using model_copy(update=...) for runtime state that evolves; never mix static config fields with mutable runtime fields in one model
Use Pydantic v2 conventions: @computed_field for derived values instead of storing redundant fields; use NotBlankStr from core.types for all identifier/name fields (including optional and tuple variants) instead of manual whitespace validators
Prefer asyncio.TaskGroup for fan-out/fan-in parallel operations in new Python code (e.g., multiple tool invocations, parallel agent calls); prefer structured concurrency over bare create_task
Keep Python functions under 50 lines and files under 800 lines
Handle errors explicitly in Python; never silently swallow exceptions
Validate at system boundaries in Python (user input, external APIs, config files)
Use Python's line length of 88 characters (enforced by ruff)

Files:

  • tests/unit/templates/test_loader.py
tests/**/*.py

📄 CodeRabbit inference engine (CLAUDE.md)

tests/**/*.py: Mark Python unit tests with @pytest.mark.unit, integration tests with @pytest.mark.integration, e2e tests with @pytest.mark.e2e, and slow tests with @pytest.mark.slow
Python test coverage must be at least 80% (enforced in CI)
Use asyncio_mode = "auto" for async pytest tests in Python; do not add manual @pytest.mark.asyncio markers
Set a global 30-second timeout per Python test (configured in pyproject.toml); do not add per-file pytest.mark.timeout(30) markers; non-default overrides like timeout(60) are allowed
Prefer @pytest.mark.parametrize for testing similar cases in Python
Tests must use test-provider, test-small-001, etc. for provider/model names in Python
Use Hypothesis for property-based testing in Python with @given and @settings decorators; run dev profile with 1000 examples via HYPOTHESIS_PROFILE=dev uv run python -m pytest tests/ -m unit -n auto -k properties
Never skip, dismiss, or ignore flaky Python tests; always fix them fully and fundamentally; for timing-sensitive tests, mock time.monotonic() and asyncio.sleep() instead of widening margins; for indefinite-block tasks, use asyncio.Event().wait() instead of asyncio.sleep(large_number)

Files:

  • tests/unit/templates/test_loader.py
🧠 Learnings (16)
📓 Common learnings
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-24T07:28:56.923Z
Learning: Applies to docs/**/*.md : Documentation: Markdown in `docs/` built with Zensical, config: `mkdocs.yml`; design spec: `docs/design/` (7 pages), architecture: `docs/architecture/`, roadmap: `docs/roadmap/`
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-19T07:12:14.508Z
Learning: Applies to docs/design/*.md : Design spec pages: 7 pages in `docs/design/` — index, agents, organization, communication, engine, memory, operations
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-16T06:24:56.341Z
Learning: Applies to docs/design/**/*.md : Design specification pages in `docs/design/` must be consulted before implementing features (7 pages: index, agents, organization, communication, engine, memory, operations)
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-14T15:43:05.601Z
Learning: Applies to docs/** : Docs source in docs/ (Markdown, built with Zensical); design spec in docs/design/ (7 pages: index, agents, organization, communication, engine, memory, operations)
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-19T07:13:44.964Z
Learning: Always read the relevant `docs/design/` page before implementing any feature or planning any issue — DESIGN_SPEC.md is a pointer file linking to 7 design pages (Agents, Organization, Communication, Engine, Memory, Operations)
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-18T08:23:08.912Z
Learning: When approved deviations occur, update the relevant `docs/design/` page to reflect the new reality.
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-24T07:28:56.923Z
Learning: Always read the relevant `docs/design/` page before implementing any feature or planning any issue; the design spec is the starting point for architecture, data models, and behavior
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-15T18:38:44.202Z
Learning: Always read the relevant `docs/design/` page before implementing any feature or planning any issue. DESIGN_SPEC.md is a pointer file linking to the 7 design pages (index, agents, organization, communication, engine, memory, operations).
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-17T22:08:13.456Z
Learning: Documentation source in `docs/` (Markdown, built with Zensical). Design spec in `docs/design/` (7 pages: index, agents, organization, communication, engine, memory, operations). Architecture in `docs/architecture/` (overview, tech-stack, decision log). Roadmap in `docs/roadmap/`. Security in `docs/security.md`. Licensing in `docs/licensing.md`. Reference in `docs/reference/`. REST API reference in `docs/rest-api.md`. Library reference in `docs/api/` (auto-generated from docstrings). Custom templates in `docs/overrides/`. Config in `mkdocs.yml`.
📚 Learning: 2026-03-19T07:12:14.508Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-19T07:12:14.508Z
Learning: Applies to docs/design/*.md : Design spec pages: 7 pages in `docs/design/` — index, agents, organization, communication, engine, memory, operations

Applied to files:

  • README.md
  • mkdocs.yml
  • CLAUDE.md
  • docs/design/index.md
  • docs/design/brand-and-ux.md
📚 Learning: 2026-03-16T06:24:56.341Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-16T06:24:56.341Z
Learning: Applies to docs/design/**/*.md : Design specification pages in `docs/design/` must be consulted before implementing features (7 pages: index, agents, organization, communication, engine, memory, operations)

Applied to files:

  • README.md
  • mkdocs.yml
  • CLAUDE.md
  • docs/design/index.md
  • docs/design/brand-and-ux.md
📚 Learning: 2026-03-19T07:13:44.964Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-19T07:13:44.964Z
Learning: Always read the relevant `docs/design/` page before implementing any feature or planning any issue — DESIGN_SPEC.md is a pointer file linking to 7 design pages (Agents, Organization, Communication, Engine, Memory, Operations)

Applied to files:

  • README.md
  • mkdocs.yml
  • CLAUDE.md
  • docs/design/index.md
  • docs/design/brand-and-ux.md
📚 Learning: 2026-03-15T18:38:44.202Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-15T18:38:44.202Z
Learning: Always read the relevant `docs/design/` page before implementing any feature or planning any issue. DESIGN_SPEC.md is a pointer file linking to the 7 design pages (index, agents, organization, communication, engine, memory, operations).

Applied to files:

  • README.md
  • mkdocs.yml
  • CLAUDE.md
  • docs/design/index.md
  • docs/design/brand-and-ux.md
📚 Learning: 2026-03-14T15:43:05.601Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-14T15:43:05.601Z
Learning: Applies to docs/** : Docs source in docs/ (Markdown, built with Zensical); design spec in docs/design/ (7 pages: index, agents, organization, communication, engine, memory, operations)

Applied to files:

  • README.md
  • mkdocs.yml
  • CLAUDE.md
  • docs/design/index.md
  • docs/design/brand-and-ux.md
📚 Learning: 2026-03-24T07:28:56.923Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-24T07:28:56.923Z
Learning: Applies to docs/**/*.md : Documentation: Markdown in `docs/` built with Zensical, config: `mkdocs.yml`; design spec: `docs/design/` (7 pages), architecture: `docs/architecture/`, roadmap: `docs/roadmap/`

Applied to files:

  • README.md
  • mkdocs.yml
  • CLAUDE.md
  • docs/design/index.md
  • docs/design/brand-and-ux.md
📚 Learning: 2026-03-17T22:08:13.456Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-17T22:08:13.456Z
Learning: Documentation source in `docs/` (Markdown, built with Zensical). Design spec in `docs/design/` (7 pages: index, agents, organization, communication, engine, memory, operations). Architecture in `docs/architecture/` (overview, tech-stack, decision log). Roadmap in `docs/roadmap/`. Security in `docs/security.md`. Licensing in `docs/licensing.md`. Reference in `docs/reference/`. REST API reference in `docs/rest-api.md`. Library reference in `docs/api/` (auto-generated from docstrings). Custom templates in `docs/overrides/`. Config in `mkdocs.yml`.

Applied to files:

  • README.md
  • mkdocs.yml
  • CLAUDE.md
  • docs/design/index.md
  • docs/design/brand-and-ux.md
📚 Learning: 2026-03-24T07:28:56.923Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-24T07:28:56.923Z
Learning: Always read the relevant `docs/design/` page before implementing any feature or planning any issue; the design spec is the starting point for architecture, data models, and behavior

Applied to files:

  • README.md
  • mkdocs.yml
  • CLAUDE.md
  • docs/design/brand-and-ux.md
📚 Learning: 2026-03-18T08:23:08.912Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-18T08:23:08.912Z
Learning: When approved deviations occur, update the relevant `docs/design/` page to reflect the new reality.

Applied to files:

  • README.md
  • mkdocs.yml
  • CLAUDE.md
  • docs/design/brand-and-ux.md
📚 Learning: 2026-03-24T07:28:56.923Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-24T07:28:56.923Z
Learning: Applies to docs/rest-api.md : REST API reference: `docs/rest-api.md` + `docs/_generated/api-reference.html` (generated by `scripts/export_openapi.py`)

Applied to files:

  • README.md
  • CLAUDE.md
📚 Learning: 2026-03-19T07:12:14.508Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-19T07:12:14.508Z
Learning: Applies to src/synthorg/**/*.py : Package structure: src/synthorg/ organized as: api/ (REST+WebSocket, Litestar), auth/ (auth subpackage), backup/ (scheduled/manual backups), budget/ (cost tracking, CFO), cli/ (superseded by Go CLI), communication/ (message bus, meetings), config/ (YAML loading), core/ (domain models, resilience config), engine/ (orchestration, task state, coordination, approval gates, stagnation detection, context budget, compaction), hr/ (hiring, performance, promotion), memory/ (pluggable backend, Mem0, retrieval, consolidation), persistence/ (operational data, SQLite, settings), observability/ (logging, correlation, sinks), providers/ (LLM abstraction, LiteLLM, auth types, presets, runtime CRUD), settings/ (runtime-editable, typed definitions, encryption, config bridge), security/ (SecOps, rule engine, output scanning, progressive trust, autonomy levels), templates/ (company templates, personalities), tools/ (registry, built-in tools, git, sandbox, code_runner, MCP...

Applied to files:

  • README.md
📚 Learning: 2026-03-24T07:28:56.923Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-24T07:28:56.923Z
Learning: When implementation deviates from the design spec, alert the user and explain why before proceeding; user decides whether to proceed or update the spec

Applied to files:

  • CLAUDE.md
📚 Learning: 2026-03-15T11:48:14.867Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-15T11:48:14.867Z
Learning: When implementation deviates from the spec (better approach found, scope evolved, etc.), alert the user and explain why — user decides whether to proceed or update the spec. Do NOT silently diverge — every deviation needs explicit user approval.

Applied to files:

  • CLAUDE.md
📚 Learning: 2026-03-24T07:28:56.923Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-24T07:28:56.923Z
Learning: Applies to docs/api/**/*.md : Library reference: auto-generated in `docs/api/` via mkdocstrings + Griffe (AST-based); do not manually edit

Applied to files:

  • CLAUDE.md
📚 Learning: 2026-03-17T22:08:13.456Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-17T22:08:13.456Z
Learning: Engine: Agent orchestration, execution loops, parallel execution, task decomposition, routing, task assignment, centralized single-writer task state engine (TaskEngine), task lifecycle, recovery, shutdown, workspace isolation, coordination (multi-agent pipeline: TopologyDispatcher protocol, 4 dispatchers — SAS/centralized/decentralized/context-dependent, wave execution, workspace lifecycle integration, CoordinationSectionConfig company config bridge, build_coordinator factory), coordination error classification, prompt policy validation, checkpoint recovery (checkpoint/, per-turn persistence, heartbeat detection, CheckpointRecoveryStrategy), approval gate (escalation detection, context parking/resume, EscalationInfo/ResumePayload models), stagnation detection (stagnation/, StagnationDetector protocol, ToolRepetitionDetector, dual-signal analysis, corrective prompt injection), agent runtime state (AgentRuntimeState, lightweight per-agent execution status for dashboard queries and recove...

Applied to files:

  • docs/design/index.md
🧬 Code graph analysis (1)
tests/unit/templates/test_loader.py (1)
src/synthorg/templates/loader.py (1)
  • list_templates (102-136)
🔇 Additional comments (7)
tests/unit/templates/test_loader.py (1)

320-332: LGTM! Proper fix for the flaky test.

The fix correctly addresses the root cause by mocking the logger to suppress the traceback output that caused xdist worker crashes on Windows. The added assertion mock_logger.exception.call_count == len(BUILTIN_TEMPLATES) verifies the expected behavior—that logging still occurs once per failed builtin template. This is a fundamental fix rather than a workaround, aligning with the coding guidelines.

README.md (1)

154-154: LGTM! Description accurately reflects the expanded design spec.

The update to include "brand & UX" in the design specification description is consistent with the new design page added in this PR.

mkdocs.yml (1)

113-113: LGTM! Navigation entry is correctly placed and formatted.

The new "Brand Identity & UX" entry follows the same pattern as other design page entries and is appropriately positioned at the end of the Design section.

CLAUDE.md (2)

13-13: LGTM! Design spec page count correctly updated.

The update from 7 to 8 design pages accurately reflects the addition of the new Brand Identity & UX page.


73-73: LGTM! Documentation section page count correctly updated.

Consistent with the design spec section update, this correctly reflects 8 total design pages.

docs/design/index.md (1)

195-201: LGTM! Design index card is well-structured and consistent.

The new Brand Identity & UX card follows the same format as the other design page cards and accurately summarizes the content of the new page.

docs/design/brand-and-ux.md (1)

1-189: LGTM! Comprehensive and well-structured design documentation.

This design page is thorough, professional, and provides clear guidance for implementers. Key strengths:

  • Clear rationale for design decisions (Warm Ops direction, state-driven colors)
  • Comprehensive token specifications with example values
  • Independent theme axes architecture (5 orthogonal preferences)
  • Practical implementation guidance (how to add themes/density/etc.)
  • Critical bug documentation (Tailwind v4 cascade layers)
  • Accessibility requirements clearly stated
  • Full traceability to research/exploration work

The document follows documentation best practices by explaining not just what was chosen, but why and what was rejected.


Walkthrough

Three types of changes were made: documentation, site navigation, and tests. A new design page, “Brand Identity & UX,” was added and linked from the main design spec and MkDocs navigation; README and CLAUDE.md entries were updated to reference the added design page. The new design document defines semantic color tokens, theme axes (color, typography, density, animation, sidebar), typography and density guidance, accessibility notes, and an implementation pattern using a ThemeProvider with CSS custom properties and Tailwind integration. A unit test was adjusted to patch both _load_builtin and the module logger when built-in templates fail.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title directly and clearly summarizes the primary change: adding documentation for a brand identity and UX design system from a design exploration effort.
Description check ✅ Passed The description is well-organized and directly related to the changeset, providing clear context about the documentation additions and test fix.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 40.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


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

@Aureliolo Aureliolo temporarily deployed to cloudflare-preview March 24, 2026 07:53 — with GitHub Actions Inactive
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces comprehensive documentation for the brand identity and UX design system, which is a valuable addition for the project. The new documentation is thorough and well-structured. The PR also includes a fix for a flaky test. I have one suggestion on the new design documentation to improve consistency and user experience.

Comment on lines +116 to +120
| Rail | Always visible, icon + label | 200px | Standard desktop use |
| Collapsible (default) | Expanded by default, can collapse to icon rail. Remembers user preference. | 220px / 56px | Most users -- full nav when needed, compact when focused |
| Hidden | Hamburger toggle, content gets full width | 240px (overlay) | Maximum content area, presentation |
| Persistent | Always expanded with notification badges | 210px | High-interactivity workflows, many nav items |
| Compact | Always visible, icons prominent, text secondary | 56px | Small screens, secondary monitors |
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The specified widths for the different expanded sidebar modes (Rail, Collapsible, Hidden, Persistent) are all different (200px, 220px, 240px, 210px respectively). This inconsistency can lead to jarring layout shifts for the main content when a user switches between these modes. To create a more stable and predictable user experience, consider standardizing on a single width for all expanded sidebar states.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/design/brand-and-ux.md`:
- Around line 132-147: Add explicit language specifiers (e.g., "text") to the
two fenced code blocks shown — the one containing "Color Palette  x  Density  x 
Typography  x  Animation  x  Sidebar Mode" and the block under "ThemeProvider
(React context)"; update the opening fences to start with ```text so
markdownlint MD040 is satisfied and the conceptual diagrams render consistently.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: c8660495-d157-41a4-b625-c878bce34171

📥 Commits

Reviewing files that changed from the base of the PR and between 14d322e and ee3f384.

📒 Files selected for processing (3)
  • docs/DESIGN_SPEC.md
  • docs/design/brand-and-ux.md
  • tests/unit/templates/test_loader.py
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Test (Python 3.14)
  • GitHub Check: Analyze (python)
🧰 Additional context used
📓 Path-based instructions (3)
docs/**/*.md

📄 CodeRabbit inference engine (CLAUDE.md)

Documentation: Markdown in docs/ built with Zensical, config: mkdocs.yml; design spec: docs/design/ (7 pages), architecture: docs/architecture/, roadmap: docs/roadmap/

Files:

  • docs/DESIGN_SPEC.md
  • docs/design/brand-and-ux.md
**/*.py

📄 CodeRabbit inference engine (CLAUDE.md)

**/*.py: In Python code, do NOT use from __future__ import annotations — Python 3.14 has PEP 649 native lazy annotations
Use except A, B: syntax (no parentheses) for exception handling in Python 3.14, enforced by ruff with PEP 758
All public functions and classes in Python must have type hints; mypy strict mode is enforced
Use Google-style docstrings on all public classes and functions in Python; enforced by ruff D rules
Create new objects instead of mutating existing ones; for non-Pydantic internal collections, use copy.deepcopy() at construction and wrap with MappingProxyType for read-only enforcement
Use frozen Pydantic models for config/identity; separate mutable-via-copy models using model_copy(update=...) for runtime state that evolves; never mix static config fields with mutable runtime fields in one model
Use Pydantic v2 conventions: @computed_field for derived values instead of storing redundant fields; use NotBlankStr from core.types for all identifier/name fields (including optional and tuple variants) instead of manual whitespace validators
Prefer asyncio.TaskGroup for fan-out/fan-in parallel operations in new Python code (e.g., multiple tool invocations, parallel agent calls); prefer structured concurrency over bare create_task
Keep Python functions under 50 lines and files under 800 lines
Handle errors explicitly in Python; never silently swallow exceptions
Validate at system boundaries in Python (user input, external APIs, config files)
Use Python's line length of 88 characters (enforced by ruff)

Files:

  • tests/unit/templates/test_loader.py
tests/**/*.py

📄 CodeRabbit inference engine (CLAUDE.md)

tests/**/*.py: Mark Python unit tests with @pytest.mark.unit, integration tests with @pytest.mark.integration, e2e tests with @pytest.mark.e2e, and slow tests with @pytest.mark.slow
Python test coverage must be at least 80% (enforced in CI)
Use asyncio_mode = "auto" for async pytest tests in Python; do not add manual @pytest.mark.asyncio markers
Set a global 30-second timeout per Python test (configured in pyproject.toml); do not add per-file pytest.mark.timeout(30) markers; non-default overrides like timeout(60) are allowed
Prefer @pytest.mark.parametrize for testing similar cases in Python
Tests must use test-provider, test-small-001, etc. for provider/model names in Python
Use Hypothesis for property-based testing in Python with @given and @settings decorators; run dev profile with 1000 examples via HYPOTHESIS_PROFILE=dev uv run python -m pytest tests/ -m unit -n auto -k properties
Never skip, dismiss, or ignore flaky Python tests; always fix them fully and fundamentally; for timing-sensitive tests, mock time.monotonic() and asyncio.sleep() instead of widening margins; for indefinite-block tasks, use asyncio.Event().wait() instead of asyncio.sleep(large_number)

Files:

  • tests/unit/templates/test_loader.py
🧠 Learnings (12)
📓 Common learnings
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-19T07:12:14.508Z
Learning: Applies to docs/design/*.md : Design spec pages: 7 pages in `docs/design/` — index, agents, organization, communication, engine, memory, operations
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-16T06:24:56.341Z
Learning: Applies to docs/design/**/*.md : Design specification pages in `docs/design/` must be consulted before implementing features (7 pages: index, agents, organization, communication, engine, memory, operations)
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-19T07:13:44.964Z
Learning: Always read the relevant `docs/design/` page before implementing any feature or planning any issue — DESIGN_SPEC.md is a pointer file linking to 7 design pages (Agents, Organization, Communication, Engine, Memory, Operations)
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-14T15:43:05.601Z
Learning: Applies to docs/** : Docs source in docs/ (Markdown, built with Zensical); design spec in docs/design/ (7 pages: index, agents, organization, communication, engine, memory, operations)
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-15T18:38:44.202Z
Learning: Always read the relevant `docs/design/` page before implementing any feature or planning any issue. DESIGN_SPEC.md is a pointer file linking to the 7 design pages (index, agents, organization, communication, engine, memory, operations).
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-24T07:28:56.923Z
Learning: Applies to docs/**/*.md : Documentation: Markdown in `docs/` built with Zensical, config: `mkdocs.yml`; design spec: `docs/design/` (7 pages), architecture: `docs/architecture/`, roadmap: `docs/roadmap/`
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-18T08:23:08.912Z
Learning: When approved deviations occur, update the relevant `docs/design/` page to reflect the new reality.
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-24T07:28:56.923Z
Learning: Always read the relevant `docs/design/` page before implementing any feature or planning any issue; the design spec is the starting point for architecture, data models, and behavior
📚 Learning: 2026-03-19T07:12:14.508Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-19T07:12:14.508Z
Learning: Applies to docs/design/*.md : Design spec pages: 7 pages in `docs/design/` — index, agents, organization, communication, engine, memory, operations

Applied to files:

  • docs/DESIGN_SPEC.md
  • docs/design/brand-and-ux.md
📚 Learning: 2026-03-16T06:24:56.341Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-16T06:24:56.341Z
Learning: Applies to docs/design/**/*.md : Design specification pages in `docs/design/` must be consulted before implementing features (7 pages: index, agents, organization, communication, engine, memory, operations)

Applied to files:

  • docs/DESIGN_SPEC.md
  • docs/design/brand-and-ux.md
📚 Learning: 2026-03-24T07:28:56.923Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-24T07:28:56.923Z
Learning: Applies to docs/**/*.md : Documentation: Markdown in `docs/` built with Zensical, config: `mkdocs.yml`; design spec: `docs/design/` (7 pages), architecture: `docs/architecture/`, roadmap: `docs/roadmap/`

Applied to files:

  • docs/DESIGN_SPEC.md
  • docs/design/brand-and-ux.md
📚 Learning: 2026-03-18T08:23:08.912Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-18T08:23:08.912Z
Learning: When approved deviations occur, update the relevant `docs/design/` page to reflect the new reality.

Applied to files:

  • docs/DESIGN_SPEC.md
  • docs/design/brand-and-ux.md
📚 Learning: 2026-03-15T18:38:44.202Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-15T18:38:44.202Z
Learning: Always read the relevant `docs/design/` page before implementing any feature or planning any issue. DESIGN_SPEC.md is a pointer file linking to the 7 design pages (index, agents, organization, communication, engine, memory, operations).

Applied to files:

  • docs/DESIGN_SPEC.md
  • docs/design/brand-and-ux.md
📚 Learning: 2026-03-19T07:13:44.964Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-19T07:13:44.964Z
Learning: Always read the relevant `docs/design/` page before implementing any feature or planning any issue — DESIGN_SPEC.md is a pointer file linking to 7 design pages (Agents, Organization, Communication, Engine, Memory, Operations)

Applied to files:

  • docs/DESIGN_SPEC.md
  • docs/design/brand-and-ux.md
📚 Learning: 2026-03-24T07:28:56.923Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-24T07:28:56.923Z
Learning: Always read the relevant `docs/design/` page before implementing any feature or planning any issue; the design spec is the starting point for architecture, data models, and behavior

Applied to files:

  • docs/DESIGN_SPEC.md
  • docs/design/brand-and-ux.md
📚 Learning: 2026-03-14T15:43:05.601Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-14T15:43:05.601Z
Learning: Applies to docs/** : Docs source in docs/ (Markdown, built with Zensical); design spec in docs/design/ (7 pages: index, agents, organization, communication, engine, memory, operations)

Applied to files:

  • docs/DESIGN_SPEC.md
  • docs/design/brand-and-ux.md
📚 Learning: 2026-03-17T22:08:13.456Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-17T22:08:13.456Z
Learning: Documentation source in `docs/` (Markdown, built with Zensical). Design spec in `docs/design/` (7 pages: index, agents, organization, communication, engine, memory, operations). Architecture in `docs/architecture/` (overview, tech-stack, decision log). Roadmap in `docs/roadmap/`. Security in `docs/security.md`. Licensing in `docs/licensing.md`. Reference in `docs/reference/`. REST API reference in `docs/rest-api.md`. Library reference in `docs/api/` (auto-generated from docstrings). Custom templates in `docs/overrides/`. Config in `mkdocs.yml`.

Applied to files:

  • docs/DESIGN_SPEC.md
  • docs/design/brand-and-ux.md
📚 Learning: 2026-03-17T22:08:13.456Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-17T22:08:13.456Z
Learning: Engine: Agent orchestration, execution loops, parallel execution, task decomposition, routing, task assignment, centralized single-writer task state engine (TaskEngine), task lifecycle, recovery, shutdown, workspace isolation, coordination (multi-agent pipeline: TopologyDispatcher protocol, 4 dispatchers — SAS/centralized/decentralized/context-dependent, wave execution, workspace lifecycle integration, CoordinationSectionConfig company config bridge, build_coordinator factory), coordination error classification, prompt policy validation, checkpoint recovery (checkpoint/, per-turn persistence, heartbeat detection, CheckpointRecoveryStrategy), approval gate (escalation detection, context parking/resume, EscalationInfo/ResumePayload models), stagnation detection (stagnation/, StagnationDetector protocol, ToolRepetitionDetector, dual-signal analysis, corrective prompt injection), agent runtime state (AgentRuntimeState, lightweight per-agent execution status for dashboard queries and recove...

Applied to files:

  • docs/DESIGN_SPEC.md
📚 Learning: 2026-03-19T07:12:14.508Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-19T07:12:14.508Z
Learning: Applies to src/synthorg/engine/**/*.py : Engine package (engine/): agent orchestration, parallel execution, task decomposition, routing, TaskEngine (centralized single-writer), task lifecycle/recovery/shutdown, workspace isolation, coordination (4 dispatchers: SAS/centralized/decentralized/context-dependent, wave execution), approval gates (escalation detection, context parking/resume), stagnation detection (ToolRepetitionDetector, corrective prompt injection), AgentRuntimeState (execution status), context budget management, conversation compaction (oldest-turns summarizer)

Applied to files:

  • docs/DESIGN_SPEC.md
🪛 markdownlint-cli2 (0.21.0)
docs/design/brand-and-ux.md

[warning] 132-132: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 140-140: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🔇 Additional comments (3)
docs/DESIGN_SPEC.md (1)

20-20: LGTM!

The new table entry is consistent with existing rows and properly links to the new design documentation page. The description accurately summarizes the page's content covering visual identity, semantic color system, and theme architecture.

Note: Multiple learnings reference "7 pages" in docs/design/. This PR expands that to 8 pages — consider updating CLAUDE.md or other references that cite the page count if they exist.

tests/unit/templates/test_loader.py (1)

320-331: LGTM!

The fix correctly addresses the flaky test by suppressing logger output that caused xdist worker crashes on Windows. Patching the logger is a valid approach since:

  1. The test's purpose is verifying that defective builtins are skipped without crashing—not testing logging behavior
  2. The core assertion (templates == ()) remains intact
  3. This is a fundamental fix, not a workaround like adding retries or widening timing margins

The parenthesized context manager syntax is clean and readable.

docs/design/brand-and-ux.md (1)

1-187: Excellent design documentation.

This is a well-structured and comprehensive design specification that:

  • Clearly articulates the "Warm Ops" design direction with semantic color encoding rationale
  • Documents all 5 orthogonal theme axes (color, density, typography, animation, sidebar) with actionable extension instructions
  • Captures the critical Tailwind v4 cascade layers gotcha from the design exploration
  • Includes accessibility requirements and WCAG compliance targets
  • References source materials and related issues for traceability

The documentation will serve as a valuable reference for implementers. Based on learnings, this page should now be consulted before implementing any UI/theming features.

@codecov
Copy link
Copy Markdown

codecov bot commented Mar 24, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 92.29%. Comparing base (14d322e) to head (21c8333).
⚠️ Report is 1 commits behind head on main.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #804   +/-   ##
=======================================
  Coverage   92.29%   92.29%           
=======================================
  Files         576      576           
  Lines       29957    29957           
  Branches     2896     2896           
=======================================
  Hits        27650    27650           
  Misses       1824     1824           
  Partials      483      483           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

…mini

- Rewrite brand-and-ux.md Design Direction to be standalone (no "Variation B/D"
  references), add "Why this direction" and "What was rejected" sections
- Update CLAUDE.md design page count from 7 to 8 (two locations)
- Add brand-and-ux.md to mkdocs.yml nav and docs/design/index.md card grid
- Fix mockups-v2/ reference to point to correct branch
- Update README.md design spec description to include brand & UX
- Remove outdated MVP Definition section from design overview
- Standardize sidebar expanded widths to 220px (was 200/210/220)
- Add language specifiers to fenced code blocks (MD040)
- Capture logger mock and assert exception call count in test

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@Aureliolo Aureliolo merged commit 389a9f4 into main Mar 24, 2026
28 checks passed
@Aureliolo Aureliolo deleted the feat/765-design-exploration branch March 24, 2026 08:20
@Aureliolo Aureliolo temporarily deployed to cloudflare-preview March 24, 2026 08:20 — with GitHub Actions Inactive
Aureliolo added a commit that referenced this pull request Mar 30, 2026
🤖 I have created a release *beep* *boop*
---
#MAJOR CHANGES; We got a somewhat working webui :)

##
[0.5.0](v0.4.9...v0.5.0)
(2026-03-30)


### Features

* add analytics trends and budget forecast API endpoints
([#798](#798))
([16b61f5](16b61f5))
* add department policies to default templates
([#852](#852))
([7a41548](7a41548))
* add remaining activity event types (task_started, tool_used,
delegation, cost_incurred)
([#832](#832))
([4252fac](4252fac))
* agent performance, activity, and history API endpoints
([#811](#811))
([9b75c1d](9b75c1d))
* Agent Profiles and Detail pages (biography, career, performance)
([#874](#874))
([62d7880](62d7880))
* app shell, Storybook, and CI/CD pipeline
([#819](#819))
([d4dde90](d4dde90))
* Approvals page with risk grouping, urgency indicators, batch actions
([#889](#889))
([4e9673d](4e9673d))
* Budget Panel page (P&L dashboard, breakdown charts, forecast)
([#890](#890))
([b63b0f1](b63b0f1))
* build infrastructure layer (API client, auth, WebSocket)
([#815](#815))
([9f01d3e](9f01d3e))
* CLI global options infrastructure, UI modes, exit codes, env vars
([#891](#891))
([fef4fc5](fef4fc5))
* CodeMirror editor and theme preferences toggle
([#905](#905),
[#807](#807))
([#909](#909))
([41fbedc](41fbedc))
* Company page (department/agent management)
([#888](#888))
([cfb88b0](cfb88b0))
* comprehensive hint coverage across all CLI commands
([#900](#900))
([937974e](937974e))
* config system extensions, per-command flags for
init/start/stop/status/logs
([#895](#895))
([32f83fe](32f83fe))
* configurable currency system replacing hardcoded USD
([#854](#854))
([b372551](b372551))
* Dashboard page (metric cards, activity feed, budget burn)
([#861](#861))
([7d519d5](7d519d5))
* department health, provider status, and activity feed endpoints
([#818](#818))
([6d5f196](6d5f196))
* design tokens and core UI components
([#833](#833))
([ed887f2](ed887f2))
* extend approval, meeting, and budget API responses
([#834](#834))
([31472bf](31472bf))
* frontend polish -- real-time UX, accessibility, responsive,
performance ([#790](#790),
[#792](#792),
[#791](#791),
[#793](#793))
([#917](#917))
([f04a537](f04a537))
* implement human roles and access control levels
([#856](#856))
([d6d8a06](d6d8a06))
* implement semantic conflict detection in workspace merge
([#860](#860))
([d97283b](d97283b))
* interaction components and animation patterns
([#853](#853))
([82d4b01](82d4b01))
* Login page + first-run bootstrap + Company page
([#789](#789),
[#888](#888))
([#896](#896))
([8758e8d](8758e8d))
* Meetings page with timeline viz, token bars, contribution formatting
([#788](#788))
([#904](#904))
([b207f46](b207f46))
* Messages page with threading, channel badges, sender indicators
([#787](#787))
([#903](#903))
([28293ad](28293ad))
* Org Chart force-directed view and drag-drop reassignment
([#872](#872),
[#873](#873))
([#912](#912))
([a68a938](a68a938))
* Org Chart page (living nodes, status, CRUD, department health)
([#870](#870))
([0acbdae](0acbdae))
* per-command flags for remaining commands, auto-behavior wiring,
help/discoverability
([#897](#897))
([3f7afa2](3f7afa2))
* Providers page with backend rework -- health, CRUD, subscription auth
([#893](#893))
([9f8dd98](9f8dd98))
* scaffold React + Vite + TypeScript + Tailwind project
([#799](#799))
([bd151aa](bd151aa))
* Settings page with search, dependency indicators, grouped rendering
([#784](#784))
([#902](#902))
([a7b9870](a7b9870))
* Setup Wizard rebuild with template comparison, cost estimator, theme
customization ([#879](#879))
([ae8b50b](ae8b50b))
* setup wizard UX -- template filters, card metadata, provider form
reuse ([#910](#910))
([7f04676](7f04676))
* setup wizard UX overhaul -- mode choice, step reorder, provider fixes
([#907](#907))
([ee964c4](ee964c4))
* structured ModelRequirement in template agent configs
([#795](#795))
([7433548](7433548))
* Task Board page (rich Kanban, filtering, dependency viz)
([#871](#871))
([04a19b0](04a19b0))


### Bug Fixes

* align frontend types with backend and debounce WS refetches
([#916](#916))
([134c11b](134c11b))
* auto-cleanup targets newly pulled images instead of old ones
([#884](#884))
([50e6591](50e6591))
* correct wipe backup-skip flow and harden error handling
([#808](#808))
([c05860f](c05860f))
* improve provider setup in wizard, subscription auth, dashboard bugs
([#914](#914))
([87bf8e6](87bf8e6))
* improve update channel detection and add config get command
([#814](#814))
([6b137f0](6b137f0))
* resolve all ESLint warnings, add zero-warnings enforcement
([#899](#899))
([079b46a](079b46a))
* subscription auth uses api_key, base URL optional for cloud providers
([#915](#915))
([f0098dd](f0098dd))


### Refactoring

* semantic analyzer cleanup -- shared filtering, concurrency, extraction
([#908](#908))
([81372bf](81372bf))


### Documentation

* brand identity and UX design system from
[#765](#765) exploration
([#804](#804))
([389a9f4](389a9f4))
* page structure and information architecture for v0.5.0 dashboard
([#809](#809))
([f8d6d4a](f8d6d4a))
* write UX design guidelines with WCAG-verified color system
([#816](#816))
([4a4594e](4a4594e))


### Tests

* add unit tests for agent hooks and page components
([#875](#875))
([#901](#901))
([1d81546](1d81546))


### CI/CD

* bump actions/deploy-pages from 4.0.5 to 5.0.0 in the major group
([#831](#831))
([01c19de](01c19de))
* bump astral-sh/setup-uv from 7.6.0 to 8.0.0 in
/.github/actions/setup-python-uv in the all group
([#920](#920))
([5f6ba54](5f6ba54))
* bump codecov/codecov-action from 5.5.3 to 6.0.0 in the major group
([#868](#868))
([f22a181](f22a181))
* bump github/codeql-action from 4.34.1 to 4.35.0 in the all group
([#883](#883))
([87a4890](87a4890))
* bump sigstore/cosign-installer from 4.1.0 to 4.1.1 in the
minor-and-patch group
([#830](#830))
([7a69050](7a69050))
* bump the all group with 3 updates
([#923](#923))
([ff27c8e](ff27c8e))
* bump wrangler from 4.76.0 to 4.77.0 in /.github in the minor-and-patch
group ([#822](#822))
([07d43eb](07d43eb))
* bump wrangler from 4.77.0 to 4.78.0 in /.github in the all group
([#882](#882))
([f84118d](f84118d))


### Maintenance

* add design system enforcement hook and component inventory
([#846](#846))
([15abc43](15abc43))
* add dev-only auth bypass for frontend testing
([#885](#885))
([6cdcd8a](6cdcd8a))
* add pre-push rebase check hook
([#855](#855))
([b637a04](b637a04))
* backend hardening -- eviction/size-caps and model validation
([#911](#911))
([81253d9](81253d9))
* bump axios from 1.13.6 to 1.14.0 in /web in the all group across 1
directory ([#922](#922))
([b1b0232](b1b0232))
* bump brace-expansion from 5.0.4 to 5.0.5 in /web
([#862](#862))
([ba4a565](ba4a565))
* bump eslint-plugin-react-refresh from 0.4.26 to 0.5.2 in /web
([#801](#801))
([7574bb5](7574bb5))
* bump faker from 40.11.0 to 40.11.1 in the minor-and-patch group
([#803](#803))
([14d322e](14d322e))
* bump https://github.com/astral-sh/ruff-pre-commit from v0.15.7 to
0.15.8 ([#864](#864))
([f52901e](f52901e))
* bump nginxinc/nginx-unprivileged from `6582a34` to `f99cc61` in
/docker/web in the all group
([#919](#919))
([df85e4f](df85e4f))
* bump nginxinc/nginx-unprivileged from `ccbac1a` to `6582a34` in
/docker/web ([#800](#800))
([f4e9450](f4e9450))
* bump node from `44bcbf4` to `71be405` in /docker/sandbox
([#827](#827))
([91bec67](91bec67))
* bump node from `5209bca` to `cf38e1f` in /docker/web
([#863](#863))
([66d6043](66d6043))
* bump picomatch in /site
([#842](#842))
([5f20bcc](5f20bcc))
* bump recharts 2-&gt;3 and @types/node 22-&gt;25 in /web
([#802](#802))
([a908800](a908800))
* Bump requests from 2.32.5 to 2.33.0
([#843](#843))
([41daf69](41daf69))
* bump smol-toml from 1.6.0 to 1.6.1 in /site
([#826](#826))
([3e5dbe4](3e5dbe4))
* bump the all group with 3 updates
([#921](#921))
([7bace0b](7bace0b))
* bump the minor-and-patch group across 1 directory with 2 updates
([#829](#829))
([93e611f](93e611f))
* bump the minor-and-patch group across 1 directory with 3 updates
([#841](#841))
([7010c8e](7010c8e))
* bump the minor-and-patch group across 1 directory with 3 updates
([#869](#869))
([548cee5](548cee5))
* bump the minor-and-patch group in /site with 2 updates
([#865](#865))
([9558101](9558101))
* bump the minor-and-patch group with 2 updates
([#867](#867))
([4830706](4830706))
* consolidate Dependabot groups to 1 PR per ecosystem
([06d2556](06d2556))
* consolidate Dependabot groups to 1 PR per ecosystem
([#881](#881))
([06d2556](06d2556))
* improve worktree skill with full dep sync and status enhancements
([#906](#906))
([772c625](772c625))
* remove Vue remnants and document framework decision
([#851](#851))
([bf2adf6](bf2adf6))
* update web dependencies and fix brace-expansion CVE
([#880](#880))
([a7a0ed6](a7a0ed6))
* upgrade to Storybook 10 and TypeScript 6
([#845](#845))
([52d95f2](52d95f2))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
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