Skip to content

fix(board): resolve file/directory config forms; allow-list autonerves-owned keys - #176

Merged
Jammy2211 merged 1 commit into
mainfrom
feature/workspace-config-cleanup
Sep 27, 2026
Merged

Jammy2211 merged 1 commit into
mainfrom
feature/workspace-config-cleanup

Conversation

@Jammy2211

Copy link
Copy Markdown
Collaborator

Summary

Two false-positive sources in the Nerves config board's orphan report (scripts/board.py):

  • File ↔ directory equivalence. The override map only compared a workspace file 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 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.
  • autonerves-owned keys. The version-handshake keys autonerves itself reads from a workspace general.yaml (version.{workspace_version, minimum_library_version, workspace_version_check, python_version_check}) can never be defined by a library YAML; a NERVES_OWNED allow-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 autonerves public API).

Test Plan

  • 3 new tests in test_autonerves/test_board.py (file↔directory resolution both ways, NERVES_OWNED exclusion)
  • python -m pytest test_autonerves/ — 209 passed

Generated by the PyAutoLabs agent workflow.

🤖 Generated with Claude Code

…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>
@Jammy2211
Jammy2211 merged commit 0b6e7c7 into main Sep 27, 2026
3 checks passed
@Jammy2211
Jammy2211 deleted the feature/workspace-config-cleanup branch September 27, 2026 14:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pending-release PR queued for the next release build

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant