v1.6.0 — OAuth coverage + footer/templates/priority-none
[1.6.0] — 2026-05-08
This release completes OAuth 2.0 coverage across every CLI command and adds
two issue-authoring conveniences.
OAuth completion
In 1.5.0 OAuth was wired into init oauth + storage + the GraphQLService /
LinearService constructors, but command call sites still resolved through
the personal-token-only getApiToken(). Two follow-ups landed:
- Every command now uses the OAuth-aware resolver.
createGraphQLService
andcreateLinearServiceare now async and dispatch through
getActiveAuth(), which auto-refreshes near-expiry OAuth tokens. ~85 call
sites migrated; the--api-token/LINEAR_API_TOKENoverrides keep
working at the same precedence as before. FileServicenow supports OAuth too.attachments create,
embeds upload/download,issues create --attachment, and the image-inlining
inissues read/read-shortcutall worked under personal tokens but
silently 401'd for OAuth users becauseFileServicesent
Authorization: <token>(no Bearer prefix). Now it accepts the same
discriminated-union as the other services and sends the right header
shape per credential kind.
Added
config.messageFooter+--footer/--no-footerflags. Text appended
to issue descriptions onel-linear issues createand to comment bodies on
el-linear comments create. Treat the value as a literal string — include
any\n\n---\nseparator yourself if you want a horizontal rule. The
--footer "..."flag overrides the configured value for one invocation;
--no-footerskips both flag and config.config.descriptionTemplates+--template <name>flag. Named
description boilerplates forel-linear issues create. When--template bugis passed and neither--descriptionnor--description-fileis
set, the template body is used as the description. Combining--template
with an explicit description is a usage error (we throw rather than
silently dropping one).
Changed
--priority nonenow works onissues create/issues update.
Previously the keyword was rejected for create/update even though0
("No priority") is a real Linear state.validatePrioritynow accepts
the full keyword set the filter parser already supported:
none/urgent/high/medium/normal/lowand numbers0–4. The
--priorityhelp text on every subcommand was updated to match.