Linear issues in your bundles
A bundle can now pull issues from Linear alongside your code:
bundles: {
planning: {
include: ["src/**/*.ts", "docs/**/*.md"],
linear: { team: "ENG", project: "Roadmap" },
prompt: "Which roadmap items are already implemented?",
},
}Each issue becomes its own indexed entry at linear/issues/ENG-123.md, carrying state, priority, labels and description — so you can ask whether [12] src/board.ts actually implements [4] ENG-123. A roster at linear/issues.md leads the set with every issue's state, priority and title, giving the model the whole backlog at a glance without reading it.
Authentication reads LINEAR_API_KEY from your environment, never the config file. team is required, since a workspace-wide fetch can pull thousands of issues into a context window. Completed, canceled and duplicate issues are left out unless you set includeClosed: true, and issues obey ! exclusions like any other entry.
Breaking change
A custom outDir is no longer emptied automatically. Only the conventional .srcpack is cleared unasked — that one is srcpack's directory by convention. Any other outDir now needs an explicit emptyOutDir: true.
This is a data-loss fix as much as a behaviour change: outDir: "src" previously deleted the sources the same config asked to bundle.
Fixes
A pre-release audit found a class of defects where a run could read or delete the wrong thing. Each was reproduced before being fixed.
- A symlinked
.srcpackemptied and wrote into whatever it pointed at. srcpack now refuses to run rather than treat someone else's directory as its own. - Symlinked directories were walked, bundling every file beneath them — including files outside the project.
- Nested
.gitignorefiles were never read, so a monorepo'spackages/app/.envcould end up in a bundle. Ignore rules now resolve per directory, the way git resolves them. - Unknown flags were silently dropped, which turned a typo in the safe command into the dangerous one —
--no-uplaoduploaded. Unknown flags and unknown config keys are now errors. - Two bundles could silently overwrite each other when their output paths differed only by a symlink, letter case, or Unicode spelling.
Bundles are also written atomically now, so an interrupted run leaves the previous file intact rather than a half-written one.