Release adanos-cli v1.31.0 with API 1.46 compatibility and CLI UX fixes - #16
Conversation
There was a problem hiding this comment.
Code Review
This pull request introduces several enhancements to the Adanos CLI, including new global flags (--no-color, --no-input, --plain), secure secret input methods (--api-key-stdin, --api-key-file), and grouped/filterable endpoint listing. It also improves human-readable output formatting, enhances NLP routing for common cryptocurrency queries, and provides user-friendly error messages for network connectivity issues. Two key improvements were identified in the review: first, Path.expanduser() should be used when reading the API key file to correctly resolve paths starting with ~; second, a safe fallback should be added when filtering endpoint descriptions to prevent an AttributeError if a description is missing.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
alexander-schneider
left a comment
There was a problem hiding this comment.
Senior code review — v1.31.0 (API 1.46 compat + CLI UX)
Reviewed the PR diff from three independent senior perspectives (correctness, CLI-contract/back-compat, security/robustness) plus a simplification pass, each verified against the code by running it in an isolated worktree at HEAD (e625bc7).
Verified good — no action needed:
- Test suite passes (
182 passed; the lonetest_start_screen_*failure only reproduces under a color-enabled pseudo-TTY and passes withNO_COLOR=1— environmental, not a regression). Newscripts/cli_audit.pyCI gate passes. - The new human formatters degrade gracefully on hostile/malformed payloads (pulse-as-list,
top_mentionsitems as strings,daily_trendas dict, numbers-as-strings,None) — theisinstanceguards +_extract_endpoint_rowsdict-filter hold; no reachable crash. - API key never leaks:
--api-key-stdin/--api-key-filekeep the secret out ofargv; login/auth echo onlymasked_key;sanitize_argv/_command_namehandle the new flags correctly. --outputdefaulttext→Noneis behavior-preserving for piping;--no-color/NO_COLORis honored live bysupports_color(); nlp crypto routing changes are covered by tests.
Findings (inline, tagged by severity). Nothing blocking; the two medium correctness/contract items are worth addressing before release:
- correctness: broken network-error fallback (
.requestraises, notAttributeError) - robustness:
--no-colormutates process-globalos.environand sticks for a wholeshellsession - contract: documented "auth → exit 2" but data-endpoint 401 exits 1 (while
accountexits 2) - maintainability:
_format_polymarket_stock_detailsduplicated verbatim across two modules - plus several low-severity cleanups and doc/contract accuracy nits
Note: gemini's earlier secrets.py ~-expansion comment is still unaddressed; its spec.description.lower() note is defensive-only (EndpointSpec.description is typed str and every spec sets it, so it's not currently reachable).
Summary
adanos-clito1.31.0and document the release.adanos askcrypto routing for BTC/ETH/SOL and common crypto compare prompts.--output text, add--plain,--no-color,--no-input, and harden secret input with--api-key-stdin/--api-key-file.endpoint list --platform ... --search ....config.json/credentials.jsonindoctor.API 1.44 -> 1.46 compatibility
1.46.0via liveroot.healthsmoke.pulsemood/confidence/thin-data/warnings/evidence summary when present.top_mentionsare labeled as representative market sentiment evidence and includemarket_statuswhen available.daily_trend[].bullish_pct/bearish_pct.market_countas selected-window breadth andcurrent_market_countas live active breadth.adanos>=2.6.0,<3; PyPI latest is still2.6.0, and API 1.45/1.46 changes are additive/pass-through.Tests and verification
.venv/bin/python -m pytest tests -q->181 passed.venv/bin/python scripts/cli_audit.py.venv/bin/python -m buildadanos --output text endpoint list --platform polymarket-stocks --search stockadanos --output text endpoint call root.healthreturned API1.46.0adanos --output text stock TSLA > /tmp/adanos-stock-text.txtproduced non-JSON textAutoreview
$autoreviewrepeatedly onorigin/main...codex/cli-v1.31-api-compat.--api-key-filelog redaction,--no-inputonboarding, and--plainvs explicit JSON precedence.Notes
ADANOS_API_KEYwas not present in the local environment. No API key was written to the repo or logs.