Terminal Corruption Prevention
What Happened​
Terminal pagers (like less, more) use an "alternate screen buffer" that can get corrupted, causing command output to be written as files in your current directory. This is compounded when you're in the wrong directory (like frontend/).
Symptoms​
Random files appearing with names like:
= f.readlines()245 fluoride bills across all 50 states (was only 5 states)lativesession s ON b.legislative_session_id = s.id
These are fragments of command output or SQL queries.
Immediate Fix​
1. Clean up garbage files:
bash scripts/cleanup_frontend_junk.sh
2. Reset your terminal:
reset
cd /home/developer/projects/open-navigator
Prevention (CRITICAL)​
Add to your ~/.bashrc or ~/.zshrc:
# Prevent pager corruption
export PAGER=cat
export GIT_PAGER=cat
export PSQL_PAGER=
export SYSTEMD_PAGER=cat
# Git config
git config --global core.pager cat
Then reload your shell:
source ~/.bashrc # or source ~/.zshrc
Best Practices​
-
Always check your working directory:
pwd # Before running commands -
Run commands from project root:
cd /home/developer/projects/open-navigator# NOT from frontend/, api/, etc. -
Use
--no-pagerflags:git log --no-pagerpsql --no-pager -
If terminal gets corrupted:
reset && stty sane
Scripts Created​
- ✅
scripts/cleanup_frontend_junk.sh- Cleanup script - ✅
scripts/prevent_terminal_corruption.sh- Prevention config - ✅
frontend/.gitignore- Updated to ignore garbage files
Why This Happens​
- Alternate screen buffer - Commands like
less,more,git log,psqloutput - Terminal state corruption - Buffer doesn't close properly
- Wrong working directory - Commands run from
frontend/instead of project root - Output redirection - Corrupted state writes output as files
One-Time Setup​
Run this once:
source scripts/prevent_terminal_corruption.sh
Add to your shell profile permanently:
echo 'export PAGER=cat' >> ~/.bashrc
echo 'export GIT_PAGER=cat' >> ~/.bashrc
source ~/.bashrc