Skip to content

feat(v0.6.0): CLI maturity — aligned tables, progress bars, retry, verbose logging#73

Merged
ferhimedamine merged 3 commits into
mainfrom
feat/v0.6.0-cli-maturity
May 20, 2026
Merged

feat(v0.6.0): CLI maturity — aligned tables, progress bars, retry, verbose logging#73
ferhimedamine merged 3 commits into
mainfrom
feat/v0.6.0-cli-maturity

Conversation

@ferhimedamine
Copy link
Copy Markdown
Contributor

Summary

  • Aligned table output (comfy-table v7): --format table now renders properly aligned columns with bold cyan headers instead of falling back to JSON pretty-print across all 14 command modules.
  • Progress bar for bulk upsert (indicatif v0.17): dk vector upsert --file big.json shows a spinner, elapsed time, item count, and ETA for large batches.
  • Verbose HTTP logging: --verbose flag now logs --> request and <-- response lines with elapsed milliseconds via the new Context struct.
  • Exponential backoff retry (src/retry.rs): transient network errors retried up to 3 times with 100ms/500ms/2s delays; 4xx errors never retried.
  • src/context.rs: new Context struct threads url, format, verbose through all command modules — eliminates per-call argument threading.
  • src/cli.rs: all build_*_command() builder functions extracted from main.rs, reducing it from ~1,400 lines to ~125 lines.

CI Validation (x64 runner — 178.104.227.173)

cargo fmt --check   ✅ clean
cargo clippy -- -D warnings  ✅ 0 warnings
cargo test --workspace  ✅ 35 unit tests + 7 integration tests pass

Files Changed

  • Cargo.toml: version 0.5.5 → 0.6.0, added comfy-table = "7" and indicatif = "0.17"
  • src/main.rs: reduced from ~1,400 → ~125 lines (routing + init only)
  • src/cli.rs (new): all build_*_command() functions
  • src/context.rs (new): Context struct with log_request/log_response
  • src/retry.rs (new): with_backoff() with 6 unit tests
  • src/output.rs: render_table() with comfy-table
  • All 14 command modules: updated to execute(ctx: &Context, matches) signature
  • .gitignore: added *.db / ruvector.db
  • CHANGELOG.md: v0.6.0 entry

Rollback Plan

git revert HEAD + redeploy — no DB migrations, no schema changes.

🤖 Generated with Claude Code

ferhimedamine and others added 3 commits May 18, 2026 07:16
The rustsec/audit-check@v2 action builds cargo-audit from source on
every run. On ARM runners this compiles aws-lc-sys (C/ASM) which is
slow (~5min) and fragile (sensitive to /tmp state). Switch to the same
approach used by the main dakera repo: dtolnay/rust-toolchain + rust-cache
+ conditional cargo install. Also adds CVSS >= 7.0 gate so low-severity
advisories don't block CI.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
aws-lc-sys assembly compilation is broken on the ARM runner (assembler
can't create output files for aarch64 crypto modules). Since cargo-audit
only scans Cargo.lock and doesn't need ARM-specific builds, move the
audit job to x64 where cargo-audit builds and caches correctly.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ose logging

- comfy-table v7: aligned column headers replace JSON fallback in --format table
- indicatif v0.17: progress bar with spinner/ETA for dk vector upsert --file
- Context struct: threads url/format/verbose through all 14 command modules
- retry.rs: exponential backoff (100ms/500ms/2s), 4xx errors never retried
- cli.rs: extracted all build_*_command() from main.rs → main.rs now ~125 lines
- output.rs: render_table() with dynamic column width, bold cyan headers
- Verbose HTTP logging: --> request / <-- response with elapsed ms via tracing
- .gitignore: added *.db / ruvector.db exclusion
- CHANGELOG.md: v0.6.0 entry

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@ferhimedamine ferhimedamine added the auto-merge Auto-merge when CI passes label May 20, 2026
@ferhimedamine ferhimedamine merged commit 1672ecc into main May 20, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

auto-merge Auto-merge when CI passes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant