Skip to content

feat(cli): release pipeline#3

Merged
Warkanlock merged 5 commits intomainfrom
feat/release-prep
Mar 31, 2026
Merged

feat(cli): release pipeline#3
Warkanlock merged 5 commits intomainfrom
feat/release-prep

Conversation

@atrsa
Copy link
Copy Markdown
Collaborator

@atrsa atrsa commented Mar 31, 2026

Summary

Switch CLI auth from MCP OAuth (bearer tokens + refresh) to public API v2 OAuth (PKCE → persistent API key). Add release infrastructure for distributing standalone binaries.

Changes

  • Replace MCP OAuth flow with /public/v2/oauth/ endpoints (authorize → callback → token → API key)
  • Simplify credential storage: single API key in keyring instead of access/refresh token pair
  • Remove set-env command and ENVIRONMENTS dict; use build-time _build_info.py for default API URL
  • Add 401 handling with user-facing re-login message
  • Add PyInstaller build script (scripts/build.py) with prod config injection
  • Add GitHub Actions release workflow (macOS arm64/x86_64, Linux x86_64)
  • Add Homebrew formula scaffold
  • Add PR template
  • Display record IDs with UI-matching prefixes (IN-136159, BI-420, etc.)
  • Accept prefixed IDs in get commands (dualentry invoices get IN-136159)

Test plan

  • Unit tests pass (uv run pytest)
  • Linter passes (uv run ruff check .)
  • Manually tested with dualentry <command>

@atrsa atrsa changed the title Feat/release prep feat(cli): release pipeline Mar 31, 2026
@atrsa atrsa marked this pull request as ready for review March 31, 2026 17:43
@atrsa atrsa requested a review from Warkanlock March 31, 2026 17:44
@Warkanlock Warkanlock merged commit 690b7cb into main Mar 31, 2026
8 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.

2 participants