Skip to content

Statusline 2.1.0 — one cost ledger, ten modules, width-aware rendering #11

Statusline 2.1.0 — one cost ledger, ten modules, width-aware rendering

Statusline 2.1.0 — one cost ledger, ten modules, width-aware rendering #11

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pytest
sudo apt-get update
sudo apt-get install -y shellcheck
- name: Refine gate contract tests
run: pytest tests/test_refine_gate.py -v
- name: Subagent tracker tests
run: pytest tests/test_subagent_usage.py -v
- name: Statusline heat-track tests
run: bash tests/statusline/test_heat_rgb.sh
- name: Statusline fitting, pace and module tests
run: bash tests/statusline/test_fit_and_pace.sh
- name: Shellcheck statusline renderer, modules, ledger and tests
run: |
shellcheck plugins/statusline/assets/statusline-command.sh
shellcheck plugins/statusline/assets/statusline-lib/*.sh
shellcheck plugins/statusline/assets/costs.sh
# The suites are shell too, and a checker that skips them lets the
# code that guards the renderer rot unwatched.
shellcheck tests/statusline/*.sh
- name: Validate marketplace, plugin, and hook JSON
run: |
python -m json.tool .claude-plugin/marketplace.json > /dev/null
python -m json.tool .claude-plugin/plugin.json > /dev/null
python -m json.tool hooks/hooks.json > /dev/null
for plugin in context-guard refine-gate statusline; do
python -m json.tool "plugins/$plugin/.claude-plugin/plugin.json" > /dev/null
python -m json.tool "plugins/$plugin/hooks/hooks.json" > /dev/null
done
python -m json.tool plugins/statusline/assets/statusline-budget.json > /dev/null
python -m json.tool plugins/statusline/assets/ctxguard-thresholds.json > /dev/null
python -m json.tool plugins/statusline/assets/pricing.json > /dev/null