Skip to content

feat: Linear-aware PR descriptions + user-facing/internal changelog split#1

Merged
WeekendSuperhero merged 2 commits into
mainfrom
feat/linear-pr-and-split-changelog
Jul 14, 2026
Merged

feat: Linear-aware PR descriptions + user-facing/internal changelog split#1
WeekendSuperhero merged 2 commits into
mainfrom
feat/linear-pr-and-split-changelog

Conversation

@WeekendSuperhero

Copy link
Copy Markdown
Contributor

Summary

  • PR descriptions: deterministic Linear issue extraction (branch/commits/body) + LLM verb selection via a {title, body, linear[]} contract; the workflow renders the ## Linear section itself (magic words drive Linear's close-on-merge), preserves human-edited verbs via a hidden marker, and no-ops when nothing changed. Optional LINEAR_API_KEY enrichment adds issue titles.
  • Changelog: new internal-changelog-path input splits output into a user-facing changelog (ships verbatim as release notes / updater notes / TestFlight) and an internal one (refactors, CI, deps, plumbing) from a single Jules call. Default keeps today's single-file behavior byte-for-byte.
  • Hygiene: create-github-app-token v2→v3 with client-id (fixes node20 deprecation + deprecated app-id input), checkout v4→v6, create-pull-request v6→v8, new runs-on input so consumers can run on WarpBuild runners.
  • Portability: awk inserts pass entries via ENVIRON (BSD awk rejects newlines in -v).

Back-compat

All new inputs are additive with defaults that reproduce current behavior; existing consumers are unaffected until they opt in.

Test plan

  • actionlint (remaining hits are its stale bundled schema for create-github-app-token v3 + pre-existing style notes)
  • bash -n on every run block
  • jq verb-merge fixtures: LLM verb accepted, human override wins, invalid verb falls back, None drops non-branch false positives
  • split-mode render + insert exercised on a fixture changelog (BSD + GNU awk)
  • Live: consumer repo (agent) PR with a wee-### branch + @agent pr-title trigger
  • Live: dispatch Update Changelog from agent with internal-changelog-path set

- create-github-app-token v2 -> v3 with client-id (kills the node20
  deprecation and the deprecated app-id input); checkout v4 -> v6.
- New runs-on input (default ubuntu-latest) so consumers can move the
  job to WarpBuild runners.
- Deterministic Linear pipeline: IDs are regex-extracted from branch
  name, commits, and the current PR body (never by the LLM); the model
  only picks verbs (Closes/Fixes/Resolves/Completes vs Part of/Refs)
  per extracted ID via a new {title, body, linear[]} contract; the
  workflow renders the ## Linear section itself with a hidden
  linear-managed marker, preserves human-edited verbs, and skips the
  write when nothing changed (no edited-event loops).
- Optional LINEAR_API_KEY secret enriches IDs with issue titles and
  prunes definitive not-founds; cosmetic, non-fatal, skipped if absent.
- All inputs additive with back-compat defaults.
- New internal-changelog-path input: when set, one Jules call
  classifies every commit as USER-FACING (ships verbatim as release
  notes / updater notes / TestFlight) vs INTERNAL (refactors, CI,
  deps, plumbing) via a JSON contract, and both files are patched
  under ## [Unreleased] in a single PR. Default '' keeps the exact
  single-file behavior for existing consumers.
- Prompt bans ticket IDs/crate names/commit-speak in user-facing
  bullets; internal bullets keep full technical detail.
- create-github-app-token v2 -> v3 (client-id), checkout v4 -> v6,
  create-pull-request v6 -> v8 (node20 -> node24); runs-on input.
- awk inserts now pass entries via ENVIRON (BSD awk on macOS runners
  rejects newlines in -v values).
@WeekendSuperhero
WeekendSuperhero merged commit c5d254b into main Jul 14, 2026
3 checks passed
@WeekendSuperhero
WeekendSuperhero deleted the feat/linear-pr-and-split-changelog branch July 14, 2026 06:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant