mirror of
https://github.com/BillyOutlast/CLI-Anything-WEB.git
synced 2026-10-12 02:24:59 +00:00
Phase 1 (Foundations): - Root pyproject.toml: ruff lint+format (whole monorepo), pytest, coverage, strict mypy on the new packages; .pre-commit-config.yaml with ruff + hygiene hooks + registry validation - Repo-wide lint/format pass: 274 files reformatted, ~1,700 violations fixed (unused imports, import order, pyupgrade, exception chaining B904 x55, dead assignments, ambiguous names); futbin quoted-annotation imports hoisted to module level - devkit/ (cli-web-devkit package, stdlib-only, mypy --strict): registry.json loader + two-way fleet validation, GitHub Actions matrix generation, typed TrafficEntry / PipelineState models mirroring the pipeline scripts' schemas - CI rewrite: lint+format+registry job, plugin/devkit test job with coverage and mypy, dynamic 19-CLI test matrix generated from registry.json, crossed with Python 3.10 + 3.12 Phase 2 (Core runtime): - cli-web-core/ package: canonical exceptions hierarchy (+ raise_for_status, error codes), --json envelope, exponential-backoff polling, REPL skin, subprocess test fixtures (resolve_cli/run_cli/parse_json_output) and fleet contract assertions; py.typed, zero hard deps - repl_skin canon v2.0.0: back-ported display_name (gh-trending/hackernews variant), accent override + fleet brand colors (amazon variant), robust prompt_toolkit fallback (airbnb variant) - Vendoring-with-provenance: cli-web-devkit drift/resync keep all 20 vendored repl_skin copies byte-identical to canon; per-CLI .manifest.json records source + sha256 (+ override escape hatch) - Fleet contract test suite (tests/contract): --help/--version/REPL-exit/ no-protocol-leaks/registry-vs-help for all 19 CLIs, offline - Fixed contract violations it caught: notebooklm/stitch/codewiki/chatgpt had no --version; booking registry entry described nonexistent commands Verified: ruff check+format clean (482 files), mypy strict clean, 242 plugin/devkit/core tests, 76 contract tests, 19/19 CLI unit suites. https://claude.ai/code/session_017wCNXuLy6UpGJ1jcPdsD5i