diff --git a/CHANGELOG.md b/CHANGELOG.md index 977b367..063f3db 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,44 @@ All notable changes to Cortex will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.0.0] โ€” 2026-04-27 + +First production release. Cortex ships 22 widget builders, 180+ tests, a coordinated theme system, real GitHub data integrations, and the `cortex compose` command for one-image profile setups. + +### Added โ€” widgets (22 total) +- ๐Ÿง  **brain-anatomical** โ€” anatomically-accurate neon brain, 200+ Wikimedia paths +- ๐ŸŒ… **synthwave-banner** โ€” 80s retro-futurist hero (4 palettes) +- ๐ŸŒŒ **skill-galaxy** โ€” constellation of skills as named stars (3 backgrounds) +- ๐Ÿ“ก **skill-radar** โ€” polar chart with translucent breathing polygon +- ๐Ÿš‡ **code-roadmap** โ€” metro/subway-style multi-line career map +- ๐ŸŸฉ **activity-heatmap** โ€” 7ร—52 contribution grid with neon glow (4 palettes) +- ๐ŸงŠ **stat-cubes** โ€” isometric 3D blocks with label/value faces +- ๐Ÿ† **achievement-wall** โ€” beveled trophy cabinet with hex medallions +- ๐Ÿงฌ **code-dna** โ€” twin spiral strands with language base-pair rungs +- ๐ŸŒ **skill-globe** โ€” stylized 2D globe with neon contribution pins +- โœจ **particle-cloud** โ€” labelled particles orbiting a glowing core +- ๐ŸŽต **now-playing** โ€” Spotify-style "currently coding in" card +- ๐ŸŽ–๏ธ **badges** โ€” compact skill strip (4 shapes ร— 3 layouts ร— 4 animations) +- Plus original suite: tech-cards, current-focus, yearly-highlights, header-banner, footer-banner, animated-divider, github-icon, about-typing, motto-typing + +### Added โ€” system features +- **`brand.theme`** (outrun ยท sunset ยท midnight ยท minimal ยท cyberpunk ยท rose) โ€” propagates as default colors to every widget. One line changes the whole palette. +- **Reduced-motion accessibility** โ€” `@media (prefers-reduced-motion: reduce)` opt-out injected into 8 builders. +- **Real GitHub data integrations** โ€” `cubes.from_github` and `heatmap.from_github` flags pull live stats / contribution calendar via the GraphQL API. Graceful fallback on missing token or API error. +- **`cortex compose`** CLI โ€” stack any subset of the 22 widgets into a single composite SVG. +- **`cortex.sources` package** โ€” pure-data helpers for auto-population (`stats_cubes_from_github`, `contribution_grid_from_github`, `top_languages_from_github`). + +### Performance +- Heatmap SVG: 51KB โ†’ 45KB (โ€“12%) via `` / `` cell dedup. +- Badges marquee: 23KB โ†’ 12KB (โ€“47%) via `` / `` loop dedup. + +### CI +- New `health-check.yml` โ€” daily build smoke + size-delta tracking, Monday code-debt audit + community signal sweep. +- CI matrix: Python 3.10 / 3.11 / 3.12, ruff lint + format, pytest, ajv JSON Schema validation, README link check. + +### Breaking changes +- None. Fully backward-compatible with v0.x widget configs. + ## [Unreleased] ### Added โ€” Phase B.1 theming surface (foundation for inline directives + web playground) diff --git a/action.yml b/action.yml index a1acbf1..8230892 100644 --- a/action.yml +++ b/action.yml @@ -75,13 +75,20 @@ runs: python-version: "3.12" cache: "pip" - # โ”€โ”€ 2. Install Cortex CLI (the @cortex/cli npm package) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ + # โ”€โ”€ 2. Install Cortex from the action's pinned ref โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ + # Install directly from this repo so the action works without a separate + # PyPI release pipeline. ``github.action_ref`` resolves to the tag the + # user pinned in ``uses: AbdullahBakir97/cortex@v1.0.0`` so they get the + # CLI matching their action version. Falls back to ``main`` if unset. - name: Install Cortex shell: bash + env: + CORTEX_REF: ${{ github.action_ref }} run: | - pip install --no-cache-dir requests==2.32.3 PyYAML==6.0.2 - # In v1, ship as a Python package; later move to compiled binary for speed. - pip install --no-cache-dir cortex-profile==1.0.0 + REF="${CORTEX_REF:-main}" + pip install --no-cache-dir \ + "git+https://github.com/AbdullahBakir97/cortex.git@${REF}#subdirectory=packages/cortex-core" \ + "git+https://github.com/AbdullahBakir97/cortex.git@${REF}#subdirectory=packages/cortex-cli" # โ”€โ”€ 3. Validate the user's cortex.yml โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ - name: Validate config @@ -140,8 +147,6 @@ runs: if git diff --cached --quiet; then echo "No profile changes โ€” skipping commit." else - git commit -m "chore(cortex): refresh profile assets - -Auto-generated by Cortex v1 โ€” see .github/cortex.yml for config." + git commit -m "chore(cortex): refresh profile assets" -m "Auto-generated by Cortex v1 โ€” see .github/cortex.yml for config." git push fi diff --git a/packages/cortex-cli/cortex_cli/__init__.py b/packages/cortex-cli/cortex_cli/__init__.py index d5549e2..4bedf6e 100644 --- a/packages/cortex-cli/cortex_cli/__init__.py +++ b/packages/cortex-cli/cortex_cli/__init__.py @@ -1,3 +1,3 @@ """Cortex CLI โ€” thin command-line wrapper around cortex-core.""" -__version__ = "0.1.0" +__version__ = "1.0.0" diff --git a/packages/cortex-cli/pyproject.toml b/packages/cortex-cli/pyproject.toml index 1d4a43c..e3f39f7 100644 --- a/packages/cortex-cli/pyproject.toml +++ b/packages/cortex-cli/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "cortex-profile" -version = "0.1.0" +version = "1.0.0" description = "Command-line interface for Cortex โ€” turn your GitHub into a cinematic neon brain skill atlas." readme = "README.md" requires-python = ">=3.10" @@ -12,7 +12,7 @@ license = { text = "MIT" } authors = [{ name = "Abdullah Bakir", email = "abdullah.bakir.1997@gmail.com" }] keywords = ["github", "profile", "readme", "svg", "cli", "brain", "neon"] classifiers = [ - "Development Status :: 3 - Alpha", + "Development Status :: 5 - Production/Stable", "Environment :: Console", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.10", diff --git a/packages/cortex-core/cortex/__init__.py b/packages/cortex-core/cortex/__init__.py index 57ba67d..83f3995 100644 --- a/packages/cortex-core/cortex/__init__.py +++ b/packages/cortex-core/cortex/__init__.py @@ -40,7 +40,7 @@ def build_variants(config, output_dir="assets/variants"): # type: ignore[no-unt return _bv(config, output_dir) -__version__ = "0.2.1" +__version__ = "1.0.0" def build_all(config: Config, output_dir: str = "assets") -> dict[str, str]: diff --git a/packages/cortex-core/pyproject.toml b/packages/cortex-core/pyproject.toml index 0c4d4ce..1467930 100644 --- a/packages/cortex-core/pyproject.toml +++ b/packages/cortex-core/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "cortex-core" -version = "0.2.1" +version = "1.0.0" description = "SVG generators, GitHub API clients, and marker rewriting for the Cortex profile system." readme = "README.md" requires-python = ">=3.10" @@ -12,7 +12,7 @@ license = { text = "MIT" } authors = [{ name = "Abdullah Bakir", email = "abdullah.bakir.1997@gmail.com" }] keywords = ["github", "profile", "readme", "svg", "brain", "neon"] classifiers = [ - "Development Status :: 3 - Alpha", + "Development Status :: 5 - Production/Stable", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11",