Commit Graph

11 Commits

Author SHA1 Message Date
Robert McMahon 957078039d Fi-Wi: site setup, relay module, map/SSH consolidation
- Add site_setup entry (root shim + fiwi.site_setup) with SiteSetupApp and in-process
  relay/calibrate; FiWiRelayBootstrapApp in fiwi_relay/relay_app.py.
- CLI: run_panel_calibrate, parse_panel_calibrate_argv, shared BrainStem load helper;
  fiber_map_io.resolve_calibrate_ssh_targets for one merge of calibrate SSH hosts.
- Maps default under maps/; config and remote_ssh.env.example updates; concentrator
  and panel calibrate fixes; radiohead refactor; tests/docs refresh.
- Remove fiber_radio_port.py (unused example), empty fiwi_link stub, orphan peak_detect.reflex.

Made-with: Cursor
2026-04-04 18:18:27 -07:00
Robert McMahon 91a2bee58b Consolidate SSH and hub relay under fiwi; improve remote readiness tooling.
Move SSH transport into fiwi.ssh (replacing fiwi.ssh_node) and add fiwi.fiwi_relay
with FiWiRelay for venv and pip bootstrap over SSH or locally. Update imports,
docs, and remote_ssh.env.example for python -m fiwi.fiwi_relay.

Extend test_read_remote with a single-SSH readiness probe (brainstem via
FIWI_REMOTE_PYTHON and env/bin/python3), clearer setup hints, and --list-only.
Add probe helpers on fiwi.fiwi_relay.host and unittest for marker parsing.

Merge [remote_hubs] hosts in config INI; set uax24 remote_python to the hub
venv after relay setup.

Made-with: Cursor
2026-04-03 13:04:24 -07:00
Robert McMahon 179477702f SSH remote: ~/ paths via $HOME; discover hub/port table; test_read_remote
- ssh_node: quote remote python/script so tilde expands (remote_path_bash_word)
- config: remote_python python3 by default; Pi ~/Code/FiWiManager script paths
- tests/test_read_remote.py: probe + discover; timeouts; vendor-neutral labels
- concentrator: always print Hub|Serial|Ports after discover/show_hostcards; infer
  port counts from stem class when connectFromSpec fails
- Docs/strings: USB power-control wording; requirements comment; usb_probe doc

Made-with: Cursor
2026-04-03 12:05:34 -07:00
Robert McMahon c361cbf17d config: Pi paths ~/Code/FiWiManager; venv python; SSH bash -lc for remote tilde
Made-with: Cursor
2026-04-03 11:45:08 -07:00
Robert McMahon 5b04560241 Rename harness to FiWiConcentrator; config profiles and smoke test
- Replace FiWiHarness with FiWiConcentrator (fiwi/concentrator.py); update CLI, exports, and docs.
- Add config/default.ini, uax24.ini, uax4.ini under config/ with paths, patch_panel default_ports, remote_ssh, and [remote_hubs] hosts; load via fiwi.config (FIWI_CONFIG profile). Merge FIWI_REMOTE_HUBS with FIWI_CALIBRATE_REMOTES in SshNodeConfig.
- Extend fiwi.paths: configure loads remote_ssh.env then INI; fiber_map_path respects FIWI_FIBER_MAP; add config_dir().
- CLI: GNU-style global options (getopt + SSH shield), show_hostcards / show_radioheads, help text updates.
- patch_panel: default_panel_ports from env; adnacom print_adnacom_host_card_table.
- tests/test_concentrator_instantiate.py: --config, local + remote show_hostcards inventory.
- Example map/SSH strings use rjmcmahon@192.168.1.39; remote_script points at ~/Code/FiWiManager/fiwi.py in profiles.
- .gitignore: drop root fiwi.ini; document config layout.

Made-with: Cursor
2026-04-03 11:35:24 -07:00
Robert McMahon e9ddcd7b2b docs: FiWiManager example path; drop hub_manager references
Use FiWiManager in remote_ssh.env.example. Remove obsolete hub_manager
mentions from design and CLI docs.

Made-with: Cursor
2026-03-30 18:18:50 -07:00
Robert McMahon a030549f61 feat(fiwi): Fi-Wi package, SSH transport, diagnostics, and docs
Replace the hubmgr layout with the fiwi package and fiwi.py entry point.
Add SshNode with deferred remote subprocess overlap, async capture helpers,
and a central diag timeline (dmesg, lspci, kernel-dump event placeholder).

Document design, CLI, and test/automation authoring under docs/.
Refresh fiber_map.example.json and remote_ssh.env.example; widen .gitignore
for Python tooling and local operator files.

Made-with: Cursor
2026-03-30 18:16:57 -07:00
Robert McMahon 86e73bcff2 Calibrate: PCIe while port ON, Ctrl-C save; fix remote ON tracking.
- Keep hub port powered through fiber id + PCIe prompts; power off after.
- Ctrl-C saves fiber_map.json, turns off current port, exits 130; handle during PCIe.
- Remote calibrate: set step_powered only when SSH on succeeds; skip step if remote
  ON failed (was incorrectly treating failed ON as powered).
- power() returns False when hubs cannot connect; CLI on/off exits 1 so SSH sees failures.
- remote_hub_port_power: merge stdout+stderr for diagnostics; ssh_forward_capture uses stdin=DEVNULL.
- Warn when calibrate_remotes yields zero remote steps; clarify remote_ssh.env.example.

Made-with: Cursor
2026-03-29 18:15:13 -07:00
Robert McMahon 6d2fb4b957 Calibrate PCIe metadata, Adnacom catalog, hybrid calibrate env.
Add optional fiber_ports.pcie (board_serial, sfp_serial) and PCIe column in
panel/fiber status. During panel calibrate, prompt to pick known H3 cards 1–6
and SFP lane 1–4 from adnacom_pcie_catalog, or manual/clear/keep.

HUB_MANAGER_CALIBRATE_REMOTES in remote_ssh.env merges into calibrate SSH
hosts so one panel calibrate run can cover local and remotes without repeating
--ssh. Document in remote_ssh.env.example and help.

Made-with: Cursor
2026-03-29 17:36:05 -07:00
Robert McMahon e7869dd9f2 Refactor hub manager into hubmgr package for maintainability.
Move AcronameManager, CLI, fiber map I/O, USB probe, remote SSH, and path
configuration into hubmgr/. hub_manager.py only configures map paths next to
the script and delegates to hubmgr.cli.main. Clarify remote_ssh.env.example
for Pi-side paths. Add fiber_map and panel_map example presets.

Made-with: Cursor
2026-03-27 18:33:55 -07:00
Robert McMahon 0d90434ee4 Add hub discovery, panel map, SSH remote helper, and Pi deps.
Support USBHub2x4 and USBHub3p discovery with correct downstream port counts,
patch-panel mapping via panel_map.json, lazy brainstem import and diagnostics,
SSH forwarding with optional remote_ssh.env defaults, and requirements.txt
for brainstem. Ignore local panel_map.json, remote_ssh.env, and __pycache__.

Made-with: Cursor
2026-03-25 22:44:56 -07:00