Repository navigation
feat(health): backlog rows carry the operator's per-LF labels into the drive argv - #259
Conversation
|
Full suite on head 41a1647 (fg-u4 worktree, placeless venv, Waypost e63c463 checkout on PYTHONPATH, The one failure is the local-only pin guard (its docstring: "Cannot fail in CI (CI installs from pyproject); its whole value is local"): the shared local venv still has seo-manager installed at 2ce9f47 while this PR pins e63c463. It is the expected drift of running the new pin against an old install, not a defect in the change; CI installs from pyproject and is green on this head. No other failures. |
|
Unclassified (unclassified); checks are RED, not ready to merge yet. Offending paths:
When green, human merge: |
|
Unclassified (unclassified) and ready to merge -- all checks green. Offending paths:
Human merge: |
Why
A GPS-less drive (GoPro, no phone GPX — e.g.
nctopa-2026-03-05-rec0063) can only be labeled with what the operator types. The drive already takes--per-lf-location <idx>=<label>and--location <label>(validated bycli.parser._validate_per_lf_location_args), but the backlog launcher could not carry those labels, so such a drive had to be relaunched by hand — the path that produced the 2026-11-08 orphaned stage dir. Waypost #108 (merged, squashe63c463) addsper_lf_locationsandlocationtoBacklogRow; this is the framegrade half.What
health/launch.py:location_labels_skip_reason(row)applies the drive's own per-LF/location rules at the backlog, so a row the drive would refuse is SKIPPED with the parser's reason before any render instead of failing the launch job at argparse._skip_reasoncalls it;_runappends--per-lf-location idx=labelper row entry and--locationwhen set. Wording is the operator's; this only judges what the drive would.pyproject.toml+ci/siblings.txt:seo-manager @ waypost@2ce9f47 → e63c463(chore(deps): pin keycut v0.2.0 and validate its live assembly receipt #108's squash).docs/pipeline/156-health-check.md,docs/unattended-cadence.md,changelog.d/backlog-location-labels.md.Tests
tests/test_health_backlog_launch.py(+85 lines: labels reach argv, per-LF only, refused rows skipped with the parser's reason). With Waypost ate63c463on the path: 147 passed acrosstest_health_backlog_launch,test_changelog,test_install_doc,test_tooling_config(.data/logs/u4b-green3.log, exit=0). Against the old pin the new tests fail withBacklogRow.__init__() got an unexpected keyword argument 'per_lf_locations'(.data/logs/u4b-green2.log) — the pin bump is required, not optional. ruff clean. Diff 139 sum.Touches
gomoveshift/**+ packaging → human merge.