kadence 0.3.1 → 0.3.2
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.
- package/CHANGELOG.md +28 -0
- package/dist/cli.js +2 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,33 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.3.2] — 2026-09-09
|
|
4
|
+
|
|
5
|
+
Nothing in the package changed. `src/`, `scripts/`, `package.json` and the
|
|
6
|
+
lockfile are identical to 0.3.1 — the diff across all four is empty — so the code
|
|
7
|
+
you get is the code you already have, and there is no behavioural reason to take
|
|
8
|
+
this one.
|
|
9
|
+
|
|
10
|
+
What changed is the pipeline that produces it. From here on the tarball is built
|
|
11
|
+
in a job that does not execute dependency install scripts and that pins every
|
|
12
|
+
action it runs to a commit rather than a tag.
|
|
13
|
+
|
|
14
|
+
### Security
|
|
15
|
+
|
|
16
|
+
- **Dependency lifecycle scripts no longer run in CI or on release.** `npm ci`
|
|
17
|
+
passes `--ignore-scripts` in both workflows. A postinstall runs with the full
|
|
18
|
+
rights of the job, which is the primary npm supply-chain vector. Exactly one
|
|
19
|
+
dependency here declares one — esbuild — and in 0.28 the platform binary
|
|
20
|
+
arrives through optionalDependencies, so the script has nothing left to do.
|
|
21
|
+
Measured rather than assumed: clean install, 35 KB bundle, full suite green on
|
|
22
|
+
Node 20 and 22.
|
|
23
|
+
- **Both workflows pin `actions/checkout` and `actions/setup-node` to commit
|
|
24
|
+
SHAs**, with the version in a trailing comment. A tag is mutable: `@v4` is
|
|
25
|
+
whatever its owner last moved it to, and it runs with the job's permissions.
|
|
26
|
+
|
|
27
|
+
Publishing is unaffected: `--ignore-scripts` governs installing dependencies, not
|
|
28
|
+
this package's own lifecycle, so `prepublishOnly` still gates every release on
|
|
29
|
+
typecheck, tests and build.
|
|
30
|
+
|
|
3
31
|
## [0.3.1] — 2026-09-08
|
|
4
32
|
|
|
5
33
|
A patch, and the reason to take it is the fix: anyone already on 0.3.0 has a
|
package/dist/cli.js
CHANGED
|
@@ -48,7 +48,7 @@ The machine-readable form is what agents read:
|
|
|
48
48
|
kadence schema --json`}v.command("decision [action] [arg]","Decisions: add | list | show \u2014 the why behind the work").option("--why <text>","Why this was chosen. Required \u2014 without it this is a changelog line").option("--rejected <text>","The alternative that was turned down").option("--task <ref>","The task this decision came out of").option("--supersedes <ref>","The decision this one replaces").option("--doc <path>","A document that carries the detail; repeat for several").option("--all","Include superseded decisions, hidden by default").option("--json","Machine-readable output for agents").example(' kadence decision add "Use ULIDs" --why "Clocks disagree between machines"').example(' kadence decision add "Use Avro" --why "..." --supersedes DEC-1').example(" kadence decision list --json").action((e,s,n)=>{let t=n.json===!0,i=process.cwd(),a=n.doc===void 0?void 0:Array.isArray(n.doc)?n.doc:[n.doc];switch(e){case"add":s===void 0&&d(f(`A title is required:
|
|
49
49
|
kadence decision add "Use ULIDs" --why "..."`),t),d(Be(i,process.env,s,{...n.why!==void 0?{why:n.why}:{},...n.rejected!==void 0?{rejected:n.rejected}:{},...n.task!==void 0?{task:n.task}:{},...n.supersedes!==void 0?{supersedes:n.supersedes}:{},...a!==void 0?{docs:a}:{}}),t);break;case void 0:case"list":d(Ue(i,process.env,{...n.all===!0?{all:!0}:{},...n.task!==void 0?{task:n.task}:{}}),t);break;case"show":s===void 0&&d(f(`Which decision?
|
|
50
50
|
kadence decision show DEC-1`),t),d(Le(i,process.env,s),t);break;default:d(f(`Unknown action "${e}".
|
|
51
|
-
Available: add, list, show`),t)}});v.command("schema","The machine-readable --json contract, for agents").option("--json","Machine-readable output for agents").example(" kadence schema --json").action(e=>{let s=e.json===!0,n=H("0.3.
|
|
51
|
+
Available: add, list, show`),t)}});v.command("schema","The machine-readable --json contract, for agents").option("--json","Machine-readable output for agents").example(" kadence schema --json").action(e=>{let s=e.json===!0,n=H("0.3.2");d({ok:!0,exitCode:0,message:vt(n),data:{schema:"kadence/v1",ok:!0,contract:n}},s)});v.command("init","Set up kadence in this repository").example(" kadence init").action(()=>{let e=_e(process.cwd(),"0.3.2");d({ok:e.ok,message:e.message,exitCode:e.ok?0:1},!1)});v.command("task [action] [arg] [value]","Tasks: add | list | show | move | assign | doc").option("--title <text>","New title (for edit)").option("-d, --description <text>","Full description; use quotes for multiple lines").option("--type <type>",`Type: ${Q.join(" | ")}`).option("--priority <level>",`Priority: ${X.join(" | ")}`).option("-a, --assignee <who>","Assignee, e.g. dev@example.com").option("--label <name>","Label; repeat the flag for several").option("--estimate <points>","Estimate in points, a positive number").option("--due <date>","Due date, YYYY-MM-DD; empty string clears it").option("--status <status>",`Filter by status: ${K.join(" | ")}`).option("--search <text>","Search title, description and comments").option("--overdue","Only tasks past their due date").option("--due-before <date>","Only tasks due before YYYY-MM-DD").option("--sort <key>",`Sort by: ${te.join(" | ")}`).option("--tree","Show parent/child structure").option("--parent <task>",'Parent task, e.g. KAD-1 (use "none" to detach)').option("--template <name>","Pre-fill fields from a saved template").option("--fields <list>","JSON only: comma-separated task fields to return").option("--json","Machine-readable output for agents").example(' kadence task add "Fix login" -d "Broken since 2.3" --type bug --priority high --estimate 3').example(" kadence task list --status in_progress --sort priority").example(" kadence task list --search cookie --overdue").example(" kadence task list --assignee me --label auth").example(" kadence task list --tree").example(" kadence task list --json --fields id,label,status").example(" kadence task move KAD-1,KAD-2,KAD-3 done bulk: all or nothing").example(' kadence task add "Login form" --parent KAD-1 KAD-1 can be an epic').example(" kadence task parent KAD-2 KAD-1").example(" kadence task block KAD-2 KAD-1 KAD-2 waits for KAD-1").example(" kadence task unblock KAD-2 KAD-1").example(" kadence task log KAD-1 2h also 90m, or -30m to correct").example(' kadence task add "Crash on save" --template bug').example(" kadence task show KAD-1").example(" kadence task move KAD-1 done").example(" kadence task edit KAD-1 --priority urgent --due 2026-09-30").example(" kadence task edit KAD-1 opens $EDITOR for the description").example(' kadence task comment KAD-1 "Needs review"').example(' kadence task assign KAD-1 dev@example.com (use "none" to unassign)').example(" kadence task cancel KAD-1 keeps it in history").example(" kadence task delete KAD-1 drops it from the board").action((e,s,n,t)=>{let i=t.json===!0,a=process.cwd();switch(e===void 0&&d(f(`Which action?
|
|
52
52
|
kadence task add "Fix login"
|
|
53
53
|
kadence task list
|
|
54
54
|
kadence task show KAD-1
|
|
@@ -95,7 +95,7 @@ Available: create, add, edit, start, close, status, list, burndown
|
|
|
95
95
|
kadence sprint --help`,{received:e,allowed:yt}),t)}});v.command("template [action] [name]","Task templates: save | list | delete").option("-d, --description <text>","Default description").option("--type <type>","Default type").option("--priority <level>","Default priority").option("-a, --assignee <who>","Default assignee").option("--label <name>","Default label; repeat for several").option("--estimate <points>","Default estimate").option("--json","Machine-readable output for agents").example(" kadence template save bug --type bug --priority high --label triage").example(" kadence template list").action((e,s,n)=>{let t=n.json===!0,i=process.cwd();switch(e){case"save":{s===void 0&&d(f(`A template name is required:
|
|
96
96
|
kadence template save bug --type bug`),t);let a=n.label===void 0?void 0:Array.isArray(n.label)?n.label:[n.label];d(qe(i,process.env,s,{...n.description!==void 0?{description:n.description}:{},...n.type!==void 0?{type:n.type}:{},...n.priority!==void 0?{priority:n.priority}:{},...n.assignee!==void 0?{assignee:n.assignee}:{},...a!==void 0?{labels:a}:{},...n.estimate!==void 0?{estimate:Number(n.estimate)}:{}}),t);break}case"list":case void 0:d(We(i,process.env),t);break;case"delete":s===void 0&&d(f(`Which template?
|
|
97
97
|
kadence template delete bug`),t),d(Ye(i,process.env,s),t);break;default:d(f(`Unknown action "${e}".
|
|
98
|
-
Available: save, list, delete`,{received:e,allowed:wt}),t)}});v.command("ui","Interactive kanban board").alias("board:ui").example(" kadence ui").action(async()=>{let{runUi:e}=await import("./chunks/ui-HHJ5TWYZ.js"),s=await e(process.cwd(),process.env);s.ok||d(s,!1)});v.help();v.version("0.3.
|
|
98
|
+
Available: save, list, delete`,{received:e,allowed:wt}),t)}});v.command("ui","Interactive kanban board").alias("board:ui").example(" kadence ui").action(async()=>{let{runUi:e}=await import("./chunks/ui-HHJ5TWYZ.js"),s=await e(process.cwd(),process.env);s.ok||d(s,!1)});v.help();v.version("0.3.2");var $=process.argv;if($[2]==="task"&&$[3]==="log"&&$[4]!==void 0&&$[5]!==void 0){let e=B(process.cwd(),process.env,$[4],$[5]),s=$.includes("--json");d(e,s)}var Ge=process.argv.findIndex((e,s)=>e.startsWith("-")&&/^-\d+(\.\d+)?$/.test(e)&&process.argv[s-1]==="--estimate");Ge!==-1&&(process.stderr.write(`Estimate must be a positive number, got "${process.argv[Ge]}".
|
|
99
99
|
kadence task add "Fix login" --estimate 3
|
|
100
100
|
`),process.exit(2));try{v.parse()}catch(e){process.stderr.write(`${e.message}
|
|
101
101
|
`),process.exit(2)}
|
package/package.json
CHANGED