- Remove .dss/data/, .dss/components/, generated stories from tracking
- Update .gitignore to exclude all runtime/generated content
- Keep only reference files (.dss/config/, .dss/core/, .dss/skins/, .dss/themes/, .dss/schema/)
Generated files are now created on /dss-init and not committed.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add verify=False to httpx.AsyncClient in figma_tools.py
- Add verify=False to requests.request in project/figma.py
- Replace .storybook/main.ts with main.cjs (CommonJS) to fix ESM loading error
- Add package.json with Storybook dependencies
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- FigmaTokenSource.extract() returns (TokenCollection, List[Component])
- figma-sync.py was expecting a Dict for component_registry
- Build component registry dict from Component objects
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Same fix as applied to dss/figma/figma_tools.py - the figma-sync.py script
uses dss/ingest/sources/figma.py which has its own aiohttp client.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Move sys.path modification before dss imports in figma-sync.py
- Add missing Dict type hint import
- Add PYTHON variable to dss-init.sh using venv if available
- Update script calls to use $PYTHON instead of python3
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Button.css uses only CSS custom properties, no fallbacks
- Token validator now blocks hardcoded values (strict_mode: true)
- Hook scripts converted from ESM (.js) to CommonJS (.cjs)
- Storybook unified config with HMR disabled for nginx proxy
- Added dss-ui package with Figma-synced components and stories
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Complete implementation of enterprise design system validation:
Phase 1 - @dss/rules npm package:
- CLI with validate and init commands
- 16 rules across 5 categories (colors, spacing, typography, components, a11y)
- dss-ignore support (inline and next-line)
- Break-glass [dss-skip] for emergency merges
- CI workflow templates (Gitea, GitHub, GitLab)
Phase 2 - Metrics dashboard:
- FastAPI metrics API with SQLite storage
- Portfolio-wide metrics aggregation
- Project drill-down with file:line:column violations
- Trend charts and history tracking
Phase 3 - Local analysis cache:
- LocalAnalysisCache for offline-capable validation
- Mode detection (LOCAL/REMOTE/CI)
- Stale cache warnings with recommendations
Phase 4 - Project onboarding:
- dss-init command for project setup
- Creates ds.config.json, .dss/ folder structure
- Updates .gitignore and package.json scripts
- Optional CI workflow setup
Architecture decisions:
- No commit-back: CI uploads to dashboard, not git
- Three-tier: Dashboard (read-only) → CI (authoritative) → Local (advisory)
- Pull-based rules via npm for version control
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add mandatory_utilities section requiring LocalBrowserStrategy for all
browser automation tasks. Never create ad-hoc Playwright scripts.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add dss-api.service to run the API server on port 8000.
Replaces the old design-system-mcp service.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add --host flag to bind to all interfaces
- Add __VITE_ADDITIONAL_SERVER_ALLOWED_HOSTS env var for external domain
- Configure allowedHosts in vite.config.ts
- Remove duplicate vite.config.js (was overriding .ts config)
- Enable IPv4 binding for nginx proxy compatibility
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- DSS runs only in dev mode, no production deployment
- dss.overbits.luz.uy points to dev server
- Removed build step from setup (not needed)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Build production bundle during setup
- Use --legacy-peer-deps for npm install
- Ensures dist/ is ready for deployment
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Conditionally enable VitePWA only in production builds
- Add service worker auto-unregister script to index.html
- Fixes stale content caching issues during development
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Complete rebuild of the admin-ui using Preact + Signals for a lightweight,
reactive framework. Features include:
- Team-centric workdesks (UI, UX, QA, Admin)
- Comprehensive API client with 150+ DSS backend endpoints
- Dark mode with system preference detection
- Keyboard shortcuts and command palette
- AI chat sidebar with Claude integration
- Toast notifications system
- Export/import functionality for project backup
- TypeScript throughout with full type coverage
Bundle size: ~66KB main (21KB gzipped), ~5KB framework overhead
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
If ${workspaceFolder} isn't supported, run:
./scripts/setup-mcp.sh
Generates .mcp.json with absolute paths for current setup.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace hardcoded paths with ${workspaceFolder} variable for
cross-setup compatibility.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Configure dss-claude-plugin as local MCP server with:
- Absolute paths for reliability
- Uses project venv Python
- DSS runtime with boundary enforcement
Restart Claude Code to load the DSS MCP.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Update .mcp.json PYTHONPATH to use project root instead of dss-mvp1
- Fix hardcoded path in dss-mcp-server.py to use relative path
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The Storybook generator now supports Web Components in addition to React:
- Added ComponentType enum (REACT, WEB_COMPONENT)
- Enhanced _parse_component to detect Web Components via HTMLElement/customElements
- Added _parse_web_component to extract attributes from JSDoc and observedAttributes
- Added _generate_csf3_web_component for Web Component story generation
- Updated file patterns to include .js files
- Moved ds-button.js to src/components/ for proper discovery
- Fixed missing requests import in figma.py
The generator now successfully generates Storybook stories for admin-ui's
ds-button Web Component with all variants, sizes, and states.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>