- hasLocalTriageInput now also detects triage-specific flags (--body,
--number, --author, --url, --labels) to enter local input mode.
- hasLocalHealthInput now checks all health-related flags to prevent
invalid values like --open-issues=abc from silently falling through
to remote fetch instead of being validated.
- Remote fetch failure in +triage now includes a hint suggesting
--title or --from for local analysis.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The API returns both "id" (global database PK) and "project_issues_index"
(per-project sequential number). The +list JSON output was a raw API
pass-through, making the database ID the most prominent identifier.
This change normalizes each issue in the list:
- Add "number" field from project_issues_index (matches the web URL)
- Rename "id" to "database_id" to prevent confusion
The "number" field now matches the --number flag used by +view, +close,
+update, and +comment commands.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
List all 9 contributors by PR count (desc), showing avatars and
GitLink IDs, placed before "Why gitlink-cli" section.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Use v1 API paths for all webhook endpoints (fixes view/test returning HTML/404)
- Add +tasks command for listing webhook delivery tasks
- Add webhook event validation (10-event whitelist)
- Add webhook type validation (10-type whitelist)
- Add content-type and http-method validation
- Fix update to preserve unspecified fields via fetch-and-merge
- Add event deduplication in parseWebhookEvents
- Add 9 comprehensive unit tests (up from 3)
- Use --http-method flag (maintains backward compatibility with PR #20)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Resolved conflicts between PR #24 (+versions, +version-diff) and PR #26
(+reviews, +review). Unified prReviewsPath() to use existing prV1Path() helper.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Core architecture:
- tui/app.go: Root Bubble Tea model with view routing, layout engine,
global keybindings (Ctrl+A/Ctrl+Space/Ctrl+P/?), AI panel toggle
- tui/store/store.go: Central state store with auth detection and
project context resolution (reuses gitlink-cli internal packages)
- tui/navigation/router.go: Stack-based view navigation for back support
- tui/ui/: Theme, keymap, styles, StatusBar, TabBar components
- tui/views/home.go: Dashboard view with onboarding wizard for first run
- main.go: TUI mode dispatch via "gitlink-cli tui"
Entry point: gitlink-cli tui
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>