Problem
The plugin supports OAuth tokens (clientId/clientSecret config, token refresh logic, persistToken to Cyrus config) but has no OAuth callback route. This means there is no way for the plugin to obtain its first OAuth token through an authorization flow.
Current Workarounds (all flawed)
- Borrow from Cyrus config (
resolveLinearToken 2nd priority) — tight coupling to Cyrus, not a proper standalone solution
- Personal API Key — operates as the user identity, not a bot. Comments/status changes appear as the user, not as a dedicated agent. This is a fundamental design issue for any multi-user or team deployment.
- Manually paste OAuth token — no UX, token expires, defeats the purpose
Expected Behavior
The plugin should be a Linear bot/integration with its own identity, not impersonating the user. This requires:
- An OAuth callback route (
/linear-light/oauth/callback) to complete the authorization flow
- An init/setup command or page that starts the OAuth flow (redirects to Linear authorize URL)
- Proper token storage (plugin-local, not Cyrus config)
- Automatic refresh using clientId/clientSecret (already implemented, just needs the first token)
Severity
Critical — this is an architectural issue that affects the core identity model of the plugin. Without OAuth flow, the plugin cannot operate as a proper bot/integration in Linear.
Problem
The plugin supports OAuth tokens (clientId/clientSecret config, token refresh logic, persistToken to Cyrus config) but has no OAuth callback route. This means there is no way for the plugin to obtain its first OAuth token through an authorization flow.
Current Workarounds (all flawed)
resolveLinearToken2nd priority) — tight coupling to Cyrus, not a proper standalone solutionExpected Behavior
The plugin should be a Linear bot/integration with its own identity, not impersonating the user. This requires:
/linear-light/oauth/callback) to complete the authorization flowSeverity
Critical — this is an architectural issue that affects the core identity model of the plugin. Without OAuth flow, the plugin cannot operate as a proper bot/integration in Linear.