Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 `<symbol>` / `<use>` cell dedup.
- Badges marquee: 23KB → 12KB (–47%) via `<g id>` / `<use>` 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)
Expand Down
19 changes: 12 additions & 7 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
2 changes: 1 addition & 1 deletion packages/cortex-cli/cortex_cli/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
"""Cortex CLI — thin command-line wrapper around cortex-core."""

__version__ = "0.1.0"
__version__ = "1.0.0"
4 changes: 2 additions & 2 deletions packages/cortex-cli/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@ 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"
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",
Expand Down
2 changes: 1 addition & 1 deletion packages/cortex-core/cortex/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -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]:
Expand Down
4 changes: 2 additions & 2 deletions packages/cortex-core/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@ 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"
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",
Expand Down
Loading