Skip to content

feat(health): backlog rows carry the operator's per-LF labels into the drive argv - #259

Merged
joepetjr merged 2 commits into
mainfrom
feat/backlog-location-labels
Nov 9, 2026
Merged

joepetjr merged 2 commits into
mainfrom
feat/backlog-location-labels

Conversation

@joepetjr

@joepetjr joepetjr commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

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 by cli.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, squash e63c463) adds per_lf_locations and location to BacklogRow; 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_reason calls it; _run appends --per-lf-location idx=label per row entry and --location when set. Wording is the operator's; this only judges what the drive would.
  • Pin bump 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 at e63c463 on the path: 147 passed across test_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 with BacklogRow.__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.

@joepetjr
joepetjr deployed to product-cleanliness-maintenance November 9, 2026 05:27 — with GitHub Actions Active
@joepetjr

joepetjr commented Nov 9, 2026

Copy link
Copy Markdown
Contributor Author

Full suite on head 41a1647 (fg-u4 worktree, placeless venv, Waypost e63c463 checkout on PYTHONPATH, bash bin/pytest-slot.sh -- python -m pytest -q tests, log .data/logs/u4b-full.log):

1 failed, 19512 passed, 49 skipped, 1204 warnings in 1085.56s (0:18:05)
FAILED tests/test_dependency_pins.py::test_installed_vcs_pins_match_pyproject

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.

@joepetjr joepetjr added the needs-operator Autoland hard-denied this PR; human merge required label Nov 9, 2026
@joepetjr

joepetjr commented Nov 9, 2026

Copy link
Copy Markdown
Contributor Author

Unclassified (unclassified); checks are RED, not ready to merge yet.

Offending paths:

  • ci/siblings.txt

When green, human merge:
sudo gh-merge-approved 259 --repo Back-Road-Creative/framegrade --wait --yes

@joepetjr

joepetjr commented Nov 9, 2026

Copy link
Copy Markdown
Contributor Author

Unclassified (unclassified) and ready to merge -- all checks green.

Offending paths:

  • ci/siblings.txt

Human merge:
sudo gh-merge-approved 259 --repo Back-Road-Creative/framegrade --wait --yes

@joepetjr
joepetjr merged commit 2f06d43 into main Nov 9, 2026
10 checks passed
@joepetjr
joepetjr deleted the feat/backlog-location-labels branch November 9, 2026 12:33

This branch was successfully deployed

1 active deployment
product-cleanliness-maintenance — 41a16478 Deployed Nov 9, 2026 by joepetjr via Approve enforcement maintenance #391
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-operator Autoland hard-denied this PR; human merge required

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant