@pimmesz/afterburner 1.0.7 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/cli/index.js +13 -5
  2. package/package.json +1 -1
package/dist/cli/index.js CHANGED
@@ -31,7 +31,7 @@ import { Command } from "commander";
31
31
  // package.json
32
32
  var package_default = {
33
33
  name: "@pimmesz/afterburner",
34
- version: "1.0.7",
34
+ version: "1.0.8",
35
35
  description: "Convert idle Claude subscription quota into shippable engineering work: budget-aware trigger, bounded task selection, PR-only output.",
36
36
  license: "Apache-2.0",
37
37
  publishConfig: {
@@ -372,13 +372,18 @@ ${nextCmd(cmd("doctor"))}`;
372
372
  const engineLine = config.agent.backend === "dry-run" ? "dry-run \u2014 simulation only; set agent.backend: 'claude-code' in the config to do real work" : config.agent.backend === "claude-code" ? "claude-code \u2014 spends subscription quota you already pay for; PRs only with --live" : "api-key \u2014 bills your Anthropic API account per token (real money); PRs only with --live";
373
373
  const budgetLine = config.budget.provider === "manual" ? "manual \u2014 trusts budget.manual (automatic option: `afterburner statusline install`, then budget.provider: 'claude-usage')" : config.budget.provider === "claude-usage" ? "claude-usage \u2014 reads your real usage via the status line hook" : "claude-code-transcripts \u2014 estimates from local Claude Code session logs";
374
374
  const nextNote = config.agent.backend === "dry-run" ? "previews the next task; nothing is executed or spent" : `previews the next task (live execution ships in a future release; ${cmd("run-once --live")} currently validates and refuses)`;
375
+ const headroomClause = `weekly headroom drops below ${config.budget.minWeeklyHeadroomPct}%`;
376
+ const gateLine = config.budget.requireSessionAvailable ? `runs skip themselves when no 5-hour session window is free or ${headroomClause}` : `runs skip themselves when ${headroomClause}`;
375
377
  return `${section(emoji.flame, "Ready")}
376
378
  Config: ${configPath}
377
379
  Repos: ${repoLine}
378
380
  Engine: ${engineLine}
379
381
  Budget: ${budgetLine}
382
+ Limits: at most one task per repo per run, capped at ${config.agent.maxTaskTokens.toLocaleString("en-US")} tokens, delivered as one PR on its own branch
383
+ Gate: ${gateLine}
380
384
  Safety: live PRs need BOTH a live engine in the config AND --live (two-part opt-in)
381
- Later: \`afterburner schedule install\` (recommended OS scheduler) or \`afterburner watch\` (foreground)
385
+ Runs: only when you start them \u2014 \`afterburner schedule install\` (recommended OS scheduler; cron '${config.schedule.cron}' ${config.schedule.timezone}) or \`afterburner watch\` (foreground) make it recurring
386
+ Stop: \`afterburner schedule uninstall\` (or Ctrl-C for watch); ${cmd("log")} lists every past run
382
387
 
383
388
  ${next}
384
389
  ${nextCmd(cmd("run-once --dry-run"), nextNote)}`;
@@ -790,7 +795,7 @@ ${bold("Step 2 of 3 \u2014 Repository (the allowlist of what it may touch)")}`);
790
795
  } else if (repoPath && repoPath !== targetDir) {
791
796
  console.log(
792
797
  dim(
793
- `Note: ${repoPath} already has an afterburner config; this one is written to the current directory.`
798
+ `Note: ${repoPath} already has its own afterburner config; it stays untouched. Your settings are written to the current directory instead.`
794
799
  )
795
800
  );
796
801
  }
@@ -841,8 +846,11 @@ function failShadowing(shadowing, target) {
841
846
  );
842
847
  }
843
848
  async function confirmOverwrite(rl, target) {
844
- const answer = (await rl.question(`
845
- ${target} already exists. Overwrite it? [y/N]: `)).trim().toLowerCase();
849
+ const answer = (await rl.question(
850
+ `
851
+ The settings file ${target} already exists.
852
+ Overwrite it with these new answers? Only this file changes \u2014 your repo is untouched. [y/N]: `
853
+ )).trim().toLowerCase();
846
854
  return answer === "y" || answer === "yes";
847
855
  }
848
856
  function hasConfig(dir) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pimmesz/afterburner",
3
- "version": "1.0.7",
3
+ "version": "1.0.8",
4
4
  "description": "Convert idle Claude subscription quota into shippable engineering work: budget-aware trigger, bounded task selection, PR-only output.",
5
5
  "license": "Apache-2.0",
6
6
  "publishConfig": {