Repository navigation
Conversation
The same layout, Charm stack and tooling as the Helmcode CLI, so the two
are maintained the same way. Every feature of nan stays.
Structure
- cmd/nan for the entry point; internal/{build,api,session,tools,models,
flow,pulse,cli,runs,ui,update}, as in the Helmcode CLI
- Bubble Tea v2, Bubbles v2, Lip Gloss v2, huh forms and fang for the
command tree, replacing Bubble Tea v1 and the single internal/tui/tui.go
- golangci-lint with the shared config, lefthook, mise and a justfile
- the version lives in internal/build; tag.yml and release.yml read it there
Dashboard
- seven numbered areas always on screen: Home, Profile, Usage, Models,
Costs, Harnesses and About, with lazygit-style verbs, an enter menu per
row, / to find anything and a short guided tour
- Home says what needs you (sign in, a missing or refused key, a tool not
pointed at NaN, a newer release) and shows models new to your key
- the NaN identity stays: violet palette, wordmark and the mascot, whose
face follows what the dashboard is doing
- sign-in, key and tool setup are huh forms; s signs in, o signs out twice,
e opens the setup from anywhere
Commands
- run, runs, automations, approvals, secrets, me, metrics and auth keep
their flags, output and exit codes (0-4, 10, 64, 65, 69, 75)
- new: nan setup, nan setup status and nan setup remove
- errors are framed by fang but printed as written: its default title-cased
the first word, which turned a run id into a different one
- a newer release is said after a command, once a day at most
Compatibility
- session.json stays at ~/.config/nan with the same fields
- every tool writer is moved as it was, and its tests pass unchanged
- a key the cluster refuses is no longer saved; one that cannot be checked
because the cluster is unreachable still is, and that is said
Also: THIRD-PARTY-NOTICES.txt ships in every archive (cobra is Apache-2.0),
and the version moves to 0.2.0.
Runs the working tree against production with a throwaway HOME, so Setup never writes into the real tool configs.
nan has always shown its areas as tabs in a row. The side column is gone, the content takes the full width, and a narrow terminal drops the counts, then the numbers, so the row never wraps.
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.
What
nan-cli rebuilt on the same structure, Charm stack and tooling as the Helmcode CLI, so both are maintained the same way. Every feature of nan stays; the session file, the commands, their flags, output and exit codes, and what each tool writer puts into a config are unchanged.
Structure
cmd/nanfor the entry point, andinternal/{build,api,session,tools,models,flow,pulse,cli,runs,ui,update}, as in the Helmcode CLI.internal/tui/tui.go.justfile.Dashboard
1-7/tabmove,enteropens a menu of what a row allows,/finds anything,ttakes a short tour.ssigns in,osigns out (twice),eopens the setup from any area.Commands
run,runs,automations,approvals,secrets,me,metricsandauthkeep their flags, output and exit codes (0-4, 10, 64, 65, 69, 75). Their code moved as it was and its tests pass.nan setup,nan setup status,nan setup remove.not-an-idintoNot-An-Id). To a pipe, only the message, as before.Compatibility notes
~/.config/nan/session.jsonkeeps its path on every OS and its fields.THIRD-PARTY-NOTICES.txtnow ships inside every archive (cobra is Apache-2.0). The installer extracts the archive and installsnanby name, so it is unaffected.internal/build.Versionis0.2.0: merging this publishes v0.2.0 throughtag.yml.Open PRs
#32, #34 and #40 touch the files this replaces and will need rebasing onto the new layout; the theme toggle in #40 maps onto
internal/ui/theme.go.Checked
go test -race ./...,golangci-lint run(0 issues),golangci-lint fmt --diff,govulncheck.NAN_API_URL): every area, the first run, the sign-in, the errors and exit codes.