personal memory agent
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Simplify Makefile: consolidate format/lint/check into fewer targets

- Rewrite `make format` to auto-fix (black/isort) then report remaining
issues (flake8/mypy) in one command
- Rewrite `make ci` as the single pre-push check (format + lint + test)
- Remove redundant targets: lint, lint-*, check, *-verbose, check-all, pre-push
- Add proper exclusions (.venv, scratch, logs, build) to all tools:
- .flake8: add exclude list (was scanning .venv packages)
- pyproject.toml: add excludes for black, isort, mypy
- Update AGENTS.md quick reference to match

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

+54 -70
+1
.flake8
··· 1 1 [flake8] 2 2 extend-ignore = W503,W504,E501,E203 3 + exclude = .venv,scratch,logs,build,dist,*.egg-info,.mypy_cache,.pytest_cache,__pycache__
+11 -8
AGENTS.md
··· 200 200 ```bash 201 201 # Development setup 202 202 make install # Install package (includes all deps) 203 + make format # Auto-fix formatting, then report remaining issues 203 204 make test # Run unit tests 204 - make format # Format code 205 - make lint # Check code quality 205 + 206 + # Testing 207 + make test-apps # Run app tests 208 + make test-integration # Run integration tests 209 + make test-all # Run all tests (core + apps + integration) 210 + make coverage # Generate coverage report 211 + 212 + # Before pushing 213 + make ci # Full CI check (format check + lint + test) 206 214 207 - # Testing & Debugging 208 - make test-integration # Run integration tests 215 + # Debugging 209 216 sol restart # Restart Convey service (after code changes) 210 217 sol screenshot <route> # Capture Convey view screenshot (use -h for options) 211 - make coverage # Generate coverage report 212 - 213 - # Before pushing 214 - make check-all # Format, lint, and test 215 218 216 219 # Cleanup 217 220 make clean # Remove artifacts
+31 -60
Makefile
··· 1 1 # solstone Makefile 2 2 # Python-based AI-driven desktop journaling toolkit 3 3 4 - .PHONY: install uninstall test test-apps test-app lint format check clean all update-prices 4 + .PHONY: install uninstall test test-apps test-app test-only test-integration test-integration-only test-all format ci clean clean-install coverage watch versions update-deps update-prices pre-commit all 5 5 6 6 # Default target - install package in editable mode 7 7 all: install ··· 67 67 @echo "Running core tests..." 68 68 $(TEST_ENV) $(PYTEST) tests/ -q --cov=. --ignore=tests/integration 69 69 70 - # Run core tests with verbose output 71 - test-verbose: .installed 72 - @echo "Running core tests with verbose output..." 73 - $(TEST_ENV) $(PYTEST) tests/ -v --cov=. --cov-report=term-missing --ignore=tests/integration 74 - 75 70 # Run app tests 76 71 test-apps: .installed 77 72 @echo "Running app tests..." 78 73 $(TEST_ENV) $(PYTEST) apps/ -q 79 - 80 - # Run app tests with verbose output 81 - test-apps-verbose: .installed 82 - @echo "Running app tests with verbose output..." 83 - $(TEST_ENV) $(PYTEST) apps/ -v 84 74 85 75 # Run specific app tests 86 76 test-app: .installed ··· 106 96 @echo "Running integration tests..." 107 97 $(TEST_ENV) $(PYTEST) tests/integration/ -v --tb=short 108 98 109 - # Run integration tests with coverage 110 - test-integration-cov: .installed 111 - @echo "Running integration tests with coverage..." 112 - $(TEST_ENV) $(PYTEST) tests/integration/ -v --cov=. --cov-report=term-missing 113 - 114 99 # Run specific integration test 115 100 test-integration-only: .installed 116 101 @if [ -z "$(TEST)" ]; then \ ··· 125 110 @echo "Running all tests (core + apps + integration)..." 126 111 $(TEST_ENV) $(PYTEST) tests/ -v --cov=. && $(TEST_ENV) $(PYTEST) apps/ -v --cov=. --cov-append 127 112 128 - # Auto-format code 113 + # Auto-format code, then report any remaining issues 129 114 format: .installed 130 115 @echo "Formatting code with black and isort..." 131 - $(BLACK) . 132 - $(ISORT) . 133 - 134 - # Run all linting and formatting checks 135 - lint: .installed 136 - @echo "Running linting checks..." 137 - @echo "=== Running black (check mode) ===" 138 - $(BLACK) --check . || true 116 + @$(BLACK) . 117 + @$(ISORT) . 139 118 @echo "" 140 - @echo "=== Running isort (check mode) ===" 141 - $(ISORT) --check-only . || true 142 - @echo "" 143 - @echo "=== Running flake8 ===" 144 - $(FLAKE8) . || true 145 - @echo "" 146 - @echo "=== Running mypy ===" 147 - $(MYPY) . || true 148 - 149 - # Run only flake8 linting 150 - lint-flake8: .installed 151 - $(FLAKE8) . 152 - 153 - # Run only black formatting check 154 - lint-black: .installed 155 - $(BLACK) --check . 156 - 157 - # Run only isort import check 158 - lint-isort: .installed 159 - $(ISORT) --check-only . 160 - 161 - # Run type checking with mypy 162 - check: .installed 163 - @echo "Running type checking with mypy..." 164 - $(MYPY) . 119 + @echo "Checking for remaining issues..." 120 + @FLAKE8_OK=true; MYPY_OK=true; \ 121 + $(FLAKE8) . || FLAKE8_OK=false; \ 122 + $(MYPY) . || MYPY_OK=false; \ 123 + if $$FLAKE8_OK && $$MYPY_OK; then \ 124 + echo ""; \ 125 + echo "All clean!"; \ 126 + else \ 127 + echo ""; \ 128 + echo "Issues above need manual fixes."; \ 129 + fi 165 130 166 131 # Clean build artifacts and cache files 167 132 clean: ··· 187 152 clean-install: uninstall install 188 153 189 154 # Run continuous integration checks (what CI would run) 190 - ci: lint test 155 + ci: .installed 156 + @echo "Running CI checks..." 157 + @echo "=== Checking formatting ===" 158 + @$(BLACK) --check . || { echo "Run 'make format' to fix formatting"; exit 1; } 159 + @$(ISORT) --check-only . || { echo "Run 'make format' to fix imports"; exit 1; } 160 + @echo "" 161 + @echo "=== Running flake8 ===" 162 + @$(FLAKE8) . || exit 1 163 + @echo "" 164 + @echo "=== Running mypy ===" 165 + @$(MYPY) . || true 166 + @echo "" 167 + @echo "=== Running tests ===" 168 + @$(MAKE) test 169 + @echo "" 191 170 @echo "All CI checks passed!" 192 - 193 - # Development workflow - format, lint, and test 194 - check-all: format lint test 195 - @echo "All checks completed!" 196 171 197 172 # Watch for changes and run tests (requires pytest-watch) 198 173 watch: .installed ··· 230 205 pre-commit: .installed 231 206 @$(PIP) show pre-commit >/dev/null 2>&1 || { echo "Installing pre-commit..."; $(PIP) install pre-commit; } 232 207 $(VENV_BIN)/pre-commit install 233 - @echo "Pre-commit hooks installed!" 234 - 235 - # Quick check before committing 236 - pre-push: format lint-flake8 test 237 - @echo "Ready to push!" 208 + @echo "Pre-commit hooks installed!"
+11 -2
pyproject.toml
··· 116 116 # Development tools configuration 117 117 [tool.black] 118 118 target-version = ['py39'] 119 + extend-exclude = ''' 120 + ( 121 + \.venv 122 + | scratch 123 + | logs 124 + | build 125 + | dist 126 + ) 127 + ''' 119 128 120 129 [tool.isort] 121 130 profile = "black" 122 - extend_skip = ["journal"] 131 + extend_skip = ["journal", ".venv", "scratch", "logs", "build", "dist"] 123 132 124 133 [tool.flake8] 125 134 # No line length restrictions ··· 129 138 python_version = "3.12" 130 139 warn_return_any = true 131 140 warn_unused_configs = true 132 - exclude = ["tests"] 141 + exclude = ["tests", ".venv", "scratch", "logs", "build", "dist"] 133 142 ignore_missing_imports = true 134 143 ignore_errors = true 135 144