Skip to content

v0.3.0

Latest

Choose a tag to compare

@koistya koistya released this 15 Aug 18:13
2dfc9f5

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.

Documentation →

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 .srcpack emptied 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 .gitignore files were never read, so a monorepo's packages/app/.env could 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-uplaod uploaded. 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.