Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions local/agents/diagrams/hitl-engine-park.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ lands or HITL kills the need.

| SSH get_ip_addresses nested ip_table / composed ipv4 | Schema NO_HOLE — defaults only `ipv4: {}` (no sub_tables) → attr scope empty → cli=[] honest; CLI.json names `show ip interface` (L3) + `show network parms` (L2 fallback) but archive needs `tag: ip_table` / intf→ipv4→ip→prefix_length nest (Engine). Binding management scalars invents NAPALM floor (both empty). Soft Rank1 exhausted | #329 get_ip_addresses | Soft Σ SSH no-cli continue (#330+); Engine ip_table / HITL when opened |

| `load_wire()` overlay merge drops `value_maps:` | Engine NO_HOLE — `load_wire()`'s protocol-overlay merge (`interpreter.py`) only merges the overlay file's `attributes:` block; a top-level `value_maps:` declared in `wire/{overlay_dir}/{wire_id}.yaml` (e.g. `wire/ssh/netconfig.yaml`) is silently never read — only the base file's `value_maps:` is ever consulted. Confirmed live 2026-09-27 building #329's SSH-only `net_mask_to_prefix` map: declaring it in the SSH overlay resolved to nothing (raw string passed through unmapped); had to move it to base `wire/netconfig.yaml` instead, even though it's meaningless to snmp/mops. Confuses ownership (protocol-specific data forced into the shared base file) and risks a name collision if two different overlays ever need a same-named map. Fix shape: mirror the existing attributes-merge loop for `value_maps` (`base.setdefault("value_maps", {}).update(override.get("value_maps", {}))` or equivalent) — same file, same pattern, small. | #329 get_ip_addresses (`net_mask_to_prefix` currently lives in base `wire/netconfig.yaml` as a workaround, documented inline) | Soft path: value_maps needed only by one protocol stay in the base file for now (workaround, not a fix); park Engine merge fix until HITL opens |

| SSH get_lldp_neighbors(_detail) remote-data sections/block parser | Schema NO_HOLE — CLI.json names `show lldp remote-data` (+ global/port); archive fixture + `local/archive/lldp.yaml` need `parser: sections` (block headers `Remote data, M/N - #port` + dotted field labels). Live `wire/ssh/lldp.yaml` write-only ("reads need block parser"). Live parsers only table/paired_rows/simple_table/regex — cannot multi-section list_append by local_port. Scalar `field:` invents single-record floor. `cli=show port` is ifindex key_map only. Detail = same show + same sections need (more rem fields). Prefer existing tools exhausted. Soft Rank1 exhausted | #333 get_lldp_neighbors; #334 get_lldp_neighbors_detail | Soft Σ SSH fail pack #333–#334 closed; Engine sections/block parser / HITL when opened |

| SSH get_fan_status multi-row `parser: fan_status` | Schema NO_HOLE — CLI.json `show fan`; archive uses Engine `parser: fan_status` (multi-row walk). No scalar field for `hm2fanmgmtstatus`; schema invent floor `defaults.status: running` vs MOPS `{}`. Soft Rank1 exhausted | #332 get_fan_status | Soft Σ SSH fail continue (#333+#334); Engine fan_status / HITL when opened |
Expand Down
Loading