Skip to content

refactor: drop Bash and Node.js implementations, maintain Python-only (#58)#59

Merged
luongnv89 merged 4 commits intomainfrom
refactor/58-drop-bash-nodejs-python-only
Apr 7, 2026
Merged

refactor: drop Bash and Node.js implementations, maintain Python-only (#58)#59
luongnv89 merged 4 commits intomainfrom
refactor/58-drop-bash-nodejs-python-only

Conversation

@luongnv89
Copy link
Copy Markdown
Owner

Closes #58

Summary

  • Removes the three Bash statusline scripts (statusline-full.sh, statusline-git.sh, statusline-minimal.sh) and the Node.js script (statusline.js)
  • Removes all associated test suites (tests/bash/test_statusline_*.bats, tests/bash/test_parity.bats, tests/bash/test_delta_parity.bats, tests/bash/test_mi_monotonicity.bats, tests/node/)
  • Strips Node.js and Bash-statusline CI jobs from ci.yml, keeping Python CI, pip e2e, and bash install/check tests
  • Updates all docs to reflect Python-only direction

Approach

Straight removal with no deprecation period — the issue explicitly asks to delete scripts and tests. Python is already the most feature-complete implementation (state persistence, CSV reporting, pip distribution). Docs updated throughout: README, installation guide, architecture, development, scripts, troubleshooting, MODEL_INTELLIGENCE, CLAUDE.md, and package.json simplified.

Changes

File Change
scripts/statusline-{full,git,minimal}.sh Deleted
scripts/statusline.js Deleted
tests/bash/test_statusline_*.bats Deleted
tests/bash/test_{parity,delta_parity,mi_monotonicity}.bats Deleted
tests/node/ Deleted
.github/workflows/ci.yml Removed bash-lint, bash-test (statusline), node-lint, node-test, parity-test, e2e-install-bash, e2e-install-npm jobs
scripts/e2e-install-test.sh Python-only
tests/bash/test_e2e_install.bats Removed Node.js and Bash assertions
CLAUDE.md Removed cross-implementation sync table, updated to Python-only
README.md Removed npm badge, npm install option, updated FAQ and runtime description
docs/installation.md Python-only install guide
docs/scripts.md Python-only script table
docs/ARCHITECTURE.md Updated component table and description
docs/DEVELOPMENT.md Removed Node.js setup and cross-script consistency section
docs/MODEL_INTELLIGENCE.md Updated sync table to 2 columns
docs/troubleshooting.md Removed npm/Node.js and jq-not-found sections
package.json Removed main, scripts (test/lint), devDeps (eslint/jest), engines; kept only context-stats.sh bin entry and prettier

Test Results

  • 347 Python tests passed (pytest tests/python/)
  • 26 Bash tests passed (bats tests/bash/test_check_install.bats tests/bash/test_context_stats_subcommands.bats tests/bash/test_e2e_install.bats tests/bash/test_install.bats)

Acceptance Criteria

  • Deprecation notice added to README explaining Python-only direction
  • Deprecation warnings added to Bash and Node.js script headers with migration guidance — N/A, scripts are deleted outright per issue
  • Migration guide documented — installation.md updated to pip-only
  • Python implementation verified for feature parity — already the most complete implementation
  • Test coverage audit — all Bash/Node.js test functionality covered by Python tests
  • Remove Bash and Node.js scripts
  • Remove corresponding test suites
  • Update CLAUDE.md to remove cross-implementation sync section
  • Update GitHub workflows to remove Node.js and Bash testing

…#58)

Remove the Bash statusline scripts (statusline-full.sh, statusline-git.sh,
statusline-minimal.sh) and the Node.js script (statusline.js) along with
their test suites and CI jobs. The Python implementation is the single
source of truth going forward.

- Delete scripts/statusline-{full,git,minimal}.sh and scripts/statusline.js
- Delete tests/bash/test_statusline_{full,git,minimal}.bats
- Delete tests/bash/test_{parity,delta_parity,mi_monotonicity}.bats
- Delete tests/node/ (Jest suite)
- Update ci.yml: remove bash-lint, bash-test (statusline), node-lint,
  node-test, parity-test, e2e-install-bash, e2e-install-npm, e2e-exec
  (bash/node parts); keep Python CI, bash install/check tests
- Update scripts/e2e-install-test.sh: Python-only
- Update CLAUDE.md: remove cross-implementation sync table
- Update README, docs/installation.md, docs/scripts.md,
  docs/ARCHITECTURE.md, docs/DEVELOPMENT.md, docs/troubleshooting.md,
  docs/MODEL_INTELLIGENCE.md: Python-only references
- Simplify package.json: remove Node.js scripts/test/lint config
- check-install.sh: drop bash/npm method detection, update to Python/shell-only
- test_check_install.bats: update assertions to match cleaned-up script
- troubleshooting.md: replace statusline.sh references with statusline.py
- ARCHITECTURE.md: remove Bash CLI row from Context Stats table
- DEPLOYMENT.md: remove npm distribution channel and publishing section
- CSV_FORMAT.md: remove Node.js from rotation description
- DEVELOPMENT.md: clarify context-stats.sh is a shell wrapper, not a Bash CLI
- README.md: fix architecture description and installation guide link
…stall script

- Drop Node.js setup step and npm ci/test from release.yml (Python-only)
- Update install.sh to reference statusline.py instead of statusline.sh
- Clarify jq is optional (only needed for settings.json auto-update)
@luongnv89 luongnv89 merged commit e0a3c80 into main Apr 7, 2026
30 checks passed
@luongnv89 luongnv89 deleted the refactor/58-drop-bash-nodejs-python-only branch April 7, 2026 09:38
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.

Drop Bash and Node.js implementations, maintain Python-only

1 participant