Sources have been the recommended task-generator since dfb897c and the
web UI was already source-first. `projects:` was a parallel, narrower
mechanism — a git repo on a backend with sflow.json files — that
duplicated PathSourceConfig minus a few cosmetic fields. This rip-out:
- Schema: deletes ProjectConfig, ScriptHutConfig.projects, get_project.
GitSourceConfig / PathSourceConfig gain `max_concurrent` and
`description` to absorb the only fields projects had that sources
lacked.
- API: drops /api/v1/projects, /api/v1/projects/{name}{,/run,/workflows}.
Adds /api/v1/sources, /api/v1/sources/{name}{,/run,/workflows} that
mirror the same shapes — list, view, submit a workflow (refreshing
git sources first), list discovered workflows.
- Web: drops the duplicate /projects/{name}/workflows and
/projects/{name}/run HTML routes; the sources page no longer mixes in
legacy project blocks.
- Runtime/run-manager: removes create_run_from_project and the
project-flavored discover_workflows; the source-side equivalents
already exist and are now the sole path.
- CLI: renames `scripthut project list/view` → `scripthut source
list/view` and `--project` → `--source` on `workflow run`. `status`
now probes /api/v1/sources for the authorization check and reports
configured sources instead of projects.
- Migration: ScriptHutConfig's model_validator raises a clear error
with a concrete sources: example when `projects:` appears in YAML,
so the breakage is loud (silent ignore would lose workflows
unnoticed).
- Tests: deletes test_projects.py; rewrites the project surface of
test_api_v1.py and test_cli.py around sources; adds
TestLegacyProjectsRejection in test_layered_config.py.
- Docs: removes the projects section from
docs/configuration/workflows.md and the projects mentions in
docs/configuration/index.md; adds a one-line note on the removal.
- Cleanup: removes dead `cli.CLI_SUBCOMMANDS` (defined, never used)
that pre-dated main._CLI_SUBCOMMANDS.
Breaking change → bumping to 0.6.0.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>