Added
- First-run orientation on the home screen. A fresh launch (or any time there
are no recent items yet) now lands on an oriented getting-started panel —/
search,j/k ↵browse a kind from the rail,Ddashboard,Tprefix tree,?
help — instead of a bare "Press / to search". Returning users with recents are
unaffected. - Connection status at launch, and a recoverable connection banner. A
successful start shows aconnected to NetBox vX.Yconfirmation in the footer. A
connection or auth failure (bad token, unreachable host) no longer hard-exits
before the TUI opens — it launches with an actionable banner ("Press S to edit
the profile or set NBOX_TOKEN"), so you fix the profile in-app and reconnect
without re-running the binary. A server below the supported NetBox floor stays a
hard, explicit error. - Edit the active connection from the Settings modal. The Config modal's
Settings section gains a Connection category for the active profile's
page_size,timeout_secs,exclude_config_context, and the per-surface
[api]vrf/route_targetbackends (rest/graphql). Saving a change
persists it to the profile (format-preserving) and reconnects so it takes effect
live. The profile editor still manages every profile; Settings is the quick-tweak
surface for the active one.
Performance
- Prefix detail loads its child prefixes and contained IPs concurrently — one
combined fetch after the prefix header instead of two sequential round-trips. - Search resolves the
--scopeand--vrfreferences concurrently before the
multi-endpoint fan-out, so a scoped + VRF-filtered search pays one resolution
tail instead of two.
Internal
- Deepened machine-facing contract tests: strict response-shape pins for the MCP
nbox_next_ip/nbox_next_prefix/nbox_cache_clear/nbox_journal/
nbox_list_tagstools, and CSV RFC-4180 quoting verified through the compiled
binary. - Refactors with no behavior change: bundled the profile-edit-form arguments
(ProfileFormData), shared one HTTP 429 retry policy across the REST and GraphQL
paths, and slimmedpersist_profile's signature. - Dependency maintenance:
sha20.11, several GitHub Actions bumps, and the Rust
toolchain pinned to the project MSRV (1.88) so CI keeps a low support floor.
What's Changed
- chore(deps): bump docker/build-push-action from 6 to 7 by @dependabot[bot] in #44
- chore(deps): bump actions/download-artifact from 4 to 8 by @dependabot[bot] in #42
- chore(deps): bump actions/checkout from 6 to 7 by @dependabot[bot] in #43
- chore(deps): bump docker/metadata-action from 5 to 6 by @dependabot[bot] in #40
- perf(detail): fetch prefix children and IPs concurrently by @lance0 in #48
- chore(deps): ignore dtolnay/rust-toolchain bumps (deliberate MSRV floor) by @lance0 in #49
- feat(tui): orient the empty home screen for first-run users by @lance0 in #50
- chore(deps): bump sha2 from 0.10.9 to 0.11.0 in the rust-dependencies group across 1 directory by @dependabot[bot] in #45
- refactor: bundle profile-edit-form args; share the 429-retry policy by @lance0 in #51
- feat(tui): recoverable connect banner + connected cue at startup by @lance0 in #52
- test: deepen CSV + MCP response-shape contracts by @lance0 in #53
- feat(tui): connection knobs in the Settings modal with hot-apply by @lance0 in #54
- refactor: persist_profile takes ProfileFormData; pin journal author key by @lance0 in #55
- feat(tui): api backends in the Settings Connection category by @lance0 in #56
- perf(search): resolve scope and VRF concurrently by @lance0 in #57
Full Changelog: v0.6.0...v0.7.0