mirror of
https://github.com/hanzoai/insights.git
synced 2026-10-30 16:15:31 +00:00
The tree was a debranded snapshot of upstream taken around 2026-02-20, and upstream has moved about five months since. This replaces it with upstream master, mechanically re-derived: bin/debrand does the rename, and the pipeline and squashed migrations are restored from the shipped tree. Not a merge. The previous import replaced the tree wholesale in a single commit, so there is no shared content history to merge against. Reproducing the rename on the new tree is what actually converges. What survives: .hanzo/workflows, the Dockerfiles and bin/docker* entrypoints, compose files, LLM.md, and insights/migrations. The squashed initial migration is load-bearing — the live database records it by name, so upstream's ~918 individual migrations cannot come back. Nine products are dropped as unreferenced. Twenty-one more that we do not run are kept anyway because the core app still imports them; unpicking those is a refactor and does not belong in a rebase. This base does not build yet, and the reasons are not in the rename: upstream now wants Python 3.13.13 against our 3.12.12 and Django 5.2 against our 4.2, and the dependency manifests still name upstream packages that we republish under our own names. Those are decisions, not renames.
1.3 KiB
1.3 KiB
Ty Type Checking
ty runs in CI as an informational check to evaluate its usefulness vs mypy. If you see ty annotations on your PR:
- Review the feedback — ty often catches real type issues
- Share your experience in #team-devex
- ty warnings are informational and don't block CI
Manual Usage
uv run ty check path/to/file.py # Check specific files
uv run ty check insights ee # Check directories
Ty vs mypy: Fast trial vs authoritative checking
ty is currently in trial mode:
- Extremely fast (~10-100x faster than mypy)
- Alpha software — expect edge cases
- Runs in CI (informational, non-blocking) and as a lint-staged pre-commit check to gather feedback
- Uses GitHub problem matcher to show warnings inline
mypy remains the authoritative type checker:
- More mature and comprehensive
- Slower but thorough
- Final source of truth (runs in CI and blocks on errors)
- Recommended for local deep checks
This trial helps us evaluate whether ty should become a blocking check in the future.
Configuration
ty rule categories where ty disagrees with mypy on idiomatic Django/DRF code
are suppressed in pyproject.toml under [tool.ty.rules]. This replaced the
earlier ty-baseline.txt filter file (removed in #55368). Add a new
<rule> = "ignore" there if CI surfaces a spurious ty category.