Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
defadc8
Add ruff, ty (default), and pyright; lock pytest-asyncio mode
hylarucoder May 26, 2026
fab8e01
Fix possibly-unbound vars and duplicate imports surfaced by ty/ruff
hylarucoder May 26, 2026
7c70820
Remove dead GET-variant SearchMemoriesResponse
hylarucoder May 26, 2026
bf48484
Fix possibly-unbound vars surfaced by ty (second pass)
hylarucoder May 26, 2026
db316fe
Auto-fix whitespace and empty f-strings via ruff
hylarucoder May 26, 2026
e2152cb
Remove unused imports flagged by ruff F401
hylarucoder May 26, 2026
362e021
Replace blocking calls in async functions (ASYNC230/251)
hylarucoder May 26, 2026
dabc3c4
Apply ruff --unsafe-fixes for whitespace, F841, dict literals, etc.
hylarucoder May 26, 2026
20b54bf
Restore F841 deletions and ignore the rule going forward
hylarucoder May 26, 2026
783c842
Finish EverCore quality gate setup
hylarucoder May 26, 2026
2380d81
Gitignore CLAUDE.local.md for per-developer overrides
hylarucoder May 26, 2026
9cf4b38
docs(EverCore): add exception handling audit and code quality roadmap
hylarucoder May 26, 2026
a60168e
feat(EverCore): add /livez and /readyz health endpoints
hylarucoder May 26, 2026
1ad942c
feat(EverCore): unify error_type metric labels via classify_exception
hylarucoder May 26, 2026
5bf0727
feat(EverCore): JSON log output via LOG_FORMAT=json, no caller changes
hylarucoder May 26, 2026
b4b2b81
docs(EverCore): add SLO definitions and Grafana dashboard skeleton
hylarucoder May 26, 2026
1e1e015
feat(EverCore): OpenTelemetry opt-in tracing skeleton
hylarucoder May 26, 2026
3b6584e
feat(EverCore): Phase 2 CI/test scaffolding — pytest, coverage, typec…
hylarucoder May 26, 2026
582ed6f
refactor(EverCore): Phase 3 W5 mechanical cleanup + ruff G/BLE baseline
hylarucoder May 26, 2026
b03386d
test(EverCore): Phase 2 T2.6 — performance benchmark scaffolding
hylarucoder May 26, 2026
a2cd973
docs(EverCore): update code-quality roadmap status (T2.6 done)
hylarucoder May 26, 2026
dc6bed7
chore(EverCore): lock pytest-benchmark and transitive deps for the be…
hylarucoder May 26, 2026
a02190e
test(EverCore): Phase 2 T2.4 — unit-test backfill for agentic and biz…
hylarucoder May 26, 2026
d912ca3
feat(EverCore): Phase 3 W7 foundation — exception hierarchy + bug fix
hylarucoder May 26, 2026
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
24 changes: 24 additions & 0 deletions .github/workflows/evercore-smoke.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,30 @@ jobs:
PYTHONPATH: src:.
run: uv run pytest tests/test_content_item_compat.py -q

# Phase 2 T2.1 — runs pytest in CI. Marker-filtered to "unit" via the
# path heuristic in tests/conftest.py. Many existing tests still
# require databases despite that classification; keep
# continue-on-error until tests are explicitly tagged per T2.4.
- name: Run unit tests with coverage (baseline; non-blocking)
env:
PYTHONPATH: src:.
run: uv run pytest tests/ -m unit --cov=src --cov-report=xml --cov-report=term --maxfail=20
continue-on-error: true

- name: Upload coverage artifact
if: always()
uses: actions/upload-artifact@v4
with:
name: evercore-coverage
path: methods/EverCore/coverage.xml
if-no-files-found: warn

- name: Type check (baseline; warnings only)
env:
PYTHONPATH: src:.
run: uv run ty check --ignore all --error possibly-unresolved-reference
continue-on-error: true

- name: Validate demo payload compatibility
env:
PYTHONPATH: src:.
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -209,6 +209,9 @@ AGENTS.mk
docs/api_docs/profile_extraction_fields.md
.claude/
.cursor/*
# Per-developer CLAUDE.md overrides (loaded by Claude Code alongside CLAUDE.md)
CLAUDE.local.md
**/CLAUDE.local.md

#tmp_data
demo/memcell_outputs/
Expand Down
79 changes: 71 additions & 8 deletions methods/EverCore/Makefile
Original file line number Diff line number Diff line change
@@ -1,14 +1,23 @@
.PHONY: dev-setup setup-hooks lint test clean help
.PHONY: dev-setup setup-hooks lint ruff ruff-fix typecheck typecheck-pyright test test-unit test-integration test-e2e test-cov benchmark clean help

# Default target
help:
@echo "Available targets:"
@echo " dev-setup - Full dev environment setup (sync deps + install hooks)"
@echo " setup-hooks - Install pre-commit hooks only"
@echo " lint - Run linters"
@echo " test - Run tests"
@echo " clean - Clean up generated files"
@echo " help - Show this help message"
@echo " dev-setup - Full dev environment setup (sync deps + install hooks)"
@echo " setup-hooks - Install pre-commit hooks only"
@echo " lint - Run linters (black + i18n)"
@echo " ruff - Run ruff check + format check (read-only)"
@echo " ruff-fix - Run ruff with --fix and apply formatter"
@echo " typecheck - Run ty type checker (default, fast)"
@echo " typecheck-pyright - Run pyright type checker (fallback)"
@echo " test - Run all tests"
@echo " test-unit - Run unit tests only (no docker required)"
@echo " test-integration - Run integration tests (needs docker-compose up)"
@echo " test-e2e - Run end-to-end tests"
@echo " test-cov - Run unit tests with coverage report (xml + term)"
@echo " benchmark - Run perf benchmarks (needs bench group + docker)"
@echo " clean - Clean up generated files"
@echo " help - Show this help message"

# Full development environment setup
dev-setup:
Expand All @@ -34,9 +43,63 @@ lint:
@echo "Running i18n check..."
PYTHONPATH=src python -m devops_scripts.i18n.i18n_tool check

# Run ruff (lint + format check). Read-only; CI-friendly.
ruff:
@echo "Running ruff check..."
uv run ruff check src/
@echo "Running ruff format --check..."
uv run ruff format --check src/

# Apply ruff auto-fixes and formatting.
ruff-fix:
@echo "Running ruff check --fix..."
uv run ruff check --fix src/
@echo "Running ruff format..."
uv run ruff format src/

# Run ty type checker (default).
# Configured in pyproject.toml under [tool.ty]. ~10x faster than pyright.
# Note: ty is pre-1.0 — pin a floor in pyproject.toml and accept that diagnostic
# wording may shift between minor releases.
typecheck:
@echo "Running ty..."
uv run ty check --ignore all --error possibly-unresolved-reference

# Run pyright type checker (fallback).
# pyrightconfig.json controls scope and strictness; current mode is "off"
# (syntax/import resolution only). Tighten there to surface more checks.
typecheck-pyright:
@echo "Running pyright..."
uv run pyright

# Run tests
test:
PYTHONPATH=src pytest tests/
PYTHONPATH=src uv run pytest tests/

# Unit tests only. No docker-compose dependencies; safe for CI on every PR.
# Markers are applied automatically in tests/conftest.py based on file path.
test-unit:
PYTHONPATH=src uv run pytest tests/ -m unit

# Integration tests. Require docker-compose services (Redis, MongoDB, ES, Milvus).
test-integration:
PYTHONPATH=src uv run pytest tests/ -m integration

# End-to-end tests. Heaviest tier; run on demand or in a nightly job.
test-e2e:
PYTHONPATH=src uv run pytest tests/ -m e2e

# Coverage report (XML for CI tooling + terminal summary).
test-cov:
PYTHONPATH=src uv run pytest tests/ -m unit \
--cov=src --cov-report=xml --cov-report=term

# Performance benchmarks. Requires the optional `bench` group
# (`uv sync --group bench`) and RUN_BENCHMARKS=1 plus a running
# docker-compose stack. See tests/benchmarks/README.md.
benchmark:
PYTHONPATH=src RUN_BENCHMARKS=1 uv run pytest tests/benchmarks/ \
--benchmark-only --benchmark-columns=min,mean,median,p95,max

# Clean up
clean:
Expand Down
Loading
Loading