fix(board): resolve file/directory config forms; allow-list autonerves-owned keys - #176
Merged
Merged
Conversation
…s; allow-list autonerves-owned keys
The override map compared a workspace file only against a library file at
the same relative path. autonerves' RecursiveConfig treats a library
`X.yaml` top-level section `f` and a workspace `X/f.yaml` (and the reverse)
as one config node, so PyAutoCTI's single visualize.yaml was never compared
with autocti_workspace's visualize/ directory and 13 keys it defines showed
as orphans. resolve_in_library now walks a library the way RecursiveConfig
does (a file shadows its directory, sections are directory entries, stems
lowercased); prior files keep same-path matching.
The version-handshake keys autonerves itself reads from a workspace's
general.yaml (version.{workspace_version, minimum_library_version,
workspace_version_check, python_version_check}) can never be defined by a
library YAML, so NERVES_OWNED excludes them from orphans and the repo page
notes them as "owned by autonerves".
On the real stack this clears 20 of the 79 orphan keys (14 files -> 12,
79 keys -> 59) and changes no other override.
Refs PyAutoLabs/PyAutoMind#441
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Sep 27, 2026
Closed
Collaborator
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Two false-positive sources in the Nerves config board's orphan report (
scripts/board.py):RecursiveConfigtreats a libraryX.yamltop-level sectionfand a workspaceX/f.yaml(and the reverse) as one config node, so PyAutoCTI's singlevisualize.yamlwas never compared with autocti_workspace'svisualize/directory and 13 keys showed as orphans.resolve_in_librarynow walks a library the wayRecursiveConfigdoes (a file shadows its directory, sections are directory entries, stems lowercased); prior files keep same-path matching.general.yaml(version.{workspace_version, minimum_library_version, workspace_version_check, python_version_check}) can never be defined by a library YAML; aNERVES_OWNEDallow-list excludes them from orphans and the repo page marks them "owned by autonerves".On the real stack: orphans 14 files / 79 keys → 12 files / 59 keys; no other override changes.
Part of PyAutoLabs/PyAutoMind#441 (workspace-config-cleanup). Companion library PRs: PyAutoLabs/PyAutoGalaxy#630, PyAutoLabs/PyAutoLens#751 (merge after Galaxy). Workspace PRs (autofit_workspace, autogalaxy_workspace, autolens_workspace, autocti_workspace) follow in the same task.
Heart YELLOW acknowledged by human (reasons: manifest drift: hub organism blurb (organs present) — 7 mismatches; manifest drift: organism-map blocks (generated) — 1 mismatch; manifest drift: workspace checkouts (manifest ↔ disk) — 1 mismatch; release validation stale: source moved since rehearsal (PyAutoFit, PyAutoArray, PyAutoGalaxy, PyAutoLens)).
API Changes
None — internal changes only (the board script is tooling, not part of the
autonervespublic API).Test Plan
test_autonerves/test_board.py(file↔directory resolution both ways, NERVES_OWNED exclusion)python -m pytest test_autonerves/— 209 passedGenerated by the PyAutoLabs agent workflow.
🤖 Generated with Claude Code