Skip to content

Release v1.6.0: vigilant --version, graceful upgrades, header guard - #9

Merged
tllongdev merged 7 commits into
mainfrom
develop
Jul 15, 2026
Merged

Release v1.6.0: vigilant --version, graceful upgrades, header guard#9
tllongdev merged 7 commits into
mainfrom
develop

Conversation

@tllongdev

Copy link
Copy Markdown
Owner

Release v1.6.0

Promotes develop to main. Version bumped 1.5.2 -> 1.6.0 (new user-facing CLI flag).

Highlights

  • vigilant --version / -V - reports the installed package version (with a 0+source fallback when run from an uninstalled tree) so users can confirm what they have and that an upgrade took effect. Additive; does not affect existing command parsing.
  • Graceful upgrades documented - new README "Upgrade" section covers the reliable --force reinstall path and the pipx/uv version-string trap (a bare-git upgrade can skip a newer main; a pinned install won't move). Config and keys in ~/.config/vigilant-pr are untouched by upgrades.
  • License-header drift guard - tests/test_license_headers.py fails the build if any src/vigilant/*.py loses or alters its exact Apache-2.0 + SPDX header (catches both deletion and entity-name abbreviation). Closes a recurring regression.
  • Unified tagline - "adversarial AI code review, posted as you" across the logo, dark logo, social card, and terminal banner.
  • Data-flow & privacy section in the README; brand table moved to assets/README.md.
  • vigilant init fast-path - offers API keys already present in the environment (scoped to known provider vars) before the full menu.

Verification

  • CI green on develop (ruff + mypy + pytest).
  • Local clean-install smoke test: real vigilant binary reports version, --help, models, and a full --dry-run review (mock model) render correctly and post nothing. No working-tree drift from reinstall.

Post-merge

Tag v1.6.0 to trigger release.yml (sdist/wheel + GitHub Release) and publish-image.yml (container).

New fast-path: when a supported provider's API key is already in the environment,
init lists those providers up front and lets the user pick one in a single step
(falling through to the full menu otherwise). Scoped strictly to known provider
env vars - never a broad scan - and never echoes key values.

Also fixes a pre-existing bug where the paste path exported os.environ[provider_id]
instead of os.environ[key_env], so key verification silently could not see a
freshly pasted key. Messages now name the env var (e.g. GROQ_API_KEY) rather than
the provider id.
Adds an accurate "Data flow & privacy" section (no telemetry/server/account;
exactly what leaves the machine and when; local-model path for zero third-party
egress). Replaces the vague implication that everything stays local. Moves the
brand-asset table out of the main README into assets/README.md so the main doc
stays focused on using the tool.
Align the tagline across all branding surfaces so the logo, dark logo,
social card, and terminal banner share one canonical line. Drops the
"- not a bot" suffix on the social card so all assets match exactly.
Asserts every src/vigilant/*.py begins with the exact Apache-2.0
copyright + SPDX header, catching both deletion and entity-name
abbreviation. Headers have silently regressed twice during reinstall
churn; this fails CI before the drift can be committed.
Follow-up to the tagline change: the plain-banner assertion still
expected the old "adversarial PR review" string.
Adds -V/--version (reads installed package version, with a source
fallback) so users can confirm what they have and that an upgrade took
effect. Documents the reliable forced-reinstall upgrade path in the
README and the pin/version-string trap with pipx/uv. Config and keys in
~/.config/vigilant-pr survive upgrades untouched.
Adds `vigilant --version`, tagline unification, license-header drift
guard, upgrade docs, and the data-flow/privacy section since v1.5.2.
@tllongdev
tllongdev merged commit dd9c2b7 into main Jul 15, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant