Repository navigation
4.0.0
A UX overhaul of the CLI driven by two live incidents and a full help-text audit: context listing is now offline-first, discovery is built around one SSO profile at a time, synth deploy can no longer pick up stale batches, and the option surface (aliases, required args, types) is consistent CLI-wide.
Breaking Changes
g3dt config contextsno longer contacts AWS by default — it lists the local marker instantly and offline; pass--verifyfor the per-context deployed check (now with botocore SSO tracebacks suppressed and anaws sso loginhint on failures).--no-verifyremains accepted as the default's name (d39ca72)- Bare
g3dt config discoverno longer verifies configured contexts — it prints the discovery model and your~/.aws/configprofiles with no network calls; useg3dt config contexts --verifyto check registered contexts. The repeatable--profileoption is deprecated and hidden (fab58ad) g3dt synth deploynow requires--studies; the hardcoded ACDC demo default set (and its per-study record counts) is removed (b33ffbb)- The synth commands' silent
env="test"fallback is removed — synth resolves the current context like every other command group and errors with guidance when nothing is configured (f567e3f) - Short-alias reassignments for a one-letter-one-meaning convention:
k8s --syncandconfig diff --fileare long-only (freeing-sfor studies and-ffor--follow), andindexd check-download --limitmoves from-nto-l(f567e3f)
Features
g3dt config currentprints the bare current context name (script-friendly; exit 1 when none) (d39ca72)- Single-profile-first discovery:
g3dt config discover <profile>validates the SSO session, offersaws sso logininline, then scans that one account;--all-profilesremains as the best-effort sweep (fab58ad) - Production gates on the widest-blast-radius commands:
dict upload,dict deploy, and allk8s restart-*now require the typed context/env confirmation on production targets, matching the synth and delete commands;dict pulland the CodeBuild-drivenrelease writestay ungated (7b9e0a5) - Consistent short aliases CLI-wide: new
-c --ctx,-v --version,-o --on,-l --limit,-r --region,-d --dry-run,-i --import-order,-k --key-path, and-sextended to every--studies(f567e3f) - Stronger option validation: file options are
Pathwith existence checks (a typo'd path is a usage error, not a traceback), fixed choice sets are enforced enums (synth --provider random|llm,--llm-provider anthropic|openai,pipeline --whichper command), andsynth deploy/generatereject mismatched study/count lists before anything runs (f567e3f)
Fixes
synth deploystep [6] now scopes the upload to the run's--studies(--projectson the upload service script): stale study directories from earlier batches are skipped with a log line instead of being submitted — previously a leftover directory from another project's run could 404 and abort the whole deploy before any requested study uploaded (b33ffbb)- One failing project no longer aborts the rest of a synth upload batch: healthy studies upload first, then the run exits 1 naming the failures (b33ffbb)
- Wrapped service scripts run Python via
${G3DT_PYTHON}(the interpreter owning the g3dt install) instead of barepython3, fixing a latent wrong-interpreter bug on AL2023 (b33ffbb)
Other
- Help-text overhaul: the root and
confighelp now define what a context is;--envhas one shared phrasing across ~20 commands; stale references to the deprecatedconfig setnow point atsynth set-key;config diffexamples show the required--file; deploy scripts echo "environment" where they previously (mis)said "profile";synth deploydocs use the script's real[1]–[7]step numbers (b05b08d) - Docs updated throughout:
docs/design/contexts.md(normative command table, prod-gate set) and the README bootstrap, synth, and k8s sections (8d72df9)
Full Changelog: 3.8.1...4.0.0