toolroll 0.9.29 → 0.9.30
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 +6 -0
- package/dist/plan.d.ts +5 -3
- package/dist/plan.js +6 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.9.30 — 2026-10-04
|
|
4
|
+
|
|
5
|
+
- **Long tasks can be planned.** 0.9.28 let task goals run to 8,000
|
|
6
|
+
characters, but plans still had to fit the goal in 2,000, so every plan for a
|
|
7
|
+
longer task was refused. Plans now take the same limit as the task.
|
|
8
|
+
|
|
3
9
|
## 0.9.29 — 2026-10-04
|
|
4
10
|
|
|
5
11
|
- **Tasks filed from the command line get sized too.** `task scope` now sizes
|
package/dist/plan.d.ts
CHANGED
|
@@ -69,11 +69,13 @@ export type PlanParseResult = {
|
|
|
69
69
|
ok: false;
|
|
70
70
|
problems: PlanProblem[];
|
|
71
71
|
};
|
|
72
|
-
/** Caps matching the scope ritual's fields, plus the document itself.
|
|
72
|
+
/** Caps matching the scope ritual's fields, plus the document itself. The goal and out-of-scope text share the
|
|
73
|
+
* task's own limit: a plan reproduces the filed contract exactly, so a lower cap here would refuse every plan for a
|
|
74
|
+
* long goal. */
|
|
73
75
|
export declare const PLAN_LIMITS: {
|
|
74
76
|
readonly payload: number;
|
|
75
|
-
readonly goal:
|
|
76
|
-
readonly outOfScope:
|
|
77
|
+
readonly goal: 8000;
|
|
78
|
+
readonly outOfScope: 8000;
|
|
77
79
|
readonly touch: 200;
|
|
78
80
|
readonly touches: 32;
|
|
79
81
|
readonly document: number;
|
package/dist/plan.js
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
import { createHash } from "node:crypto";
|
|
9
9
|
import { hasForbiddenControls } from "./decision.js";
|
|
10
10
|
import { parseAcceptanceCriteria } from "./scope.js";
|
|
11
|
+
import { TEXT_LIMITS } from "./text-limits.js";
|
|
11
12
|
const EXECUTION_PLAN_SECTIONS = ["approach", "milestones", "dependencies", "risks", "proof"];
|
|
12
13
|
const EXECUTION_PLAN_LIST_CAP = 12;
|
|
13
14
|
const EXECUTION_PLAN_ITEM_CAP = 600;
|
|
@@ -127,11 +128,13 @@ export function renderExecutionPlanDocument(document) {
|
|
|
127
128
|
"",
|
|
128
129
|
].join("\n");
|
|
129
130
|
}
|
|
130
|
-
/** Caps matching the scope ritual's fields, plus the document itself.
|
|
131
|
+
/** Caps matching the scope ritual's fields, plus the document itself. The goal and out-of-scope text share the
|
|
132
|
+
* task's own limit: a plan reproduces the filed contract exactly, so a lower cap here would refuse every plan for a
|
|
133
|
+
* long goal. */
|
|
131
134
|
export const PLAN_LIMITS = {
|
|
132
135
|
payload: 64 * 1024,
|
|
133
|
-
goal:
|
|
134
|
-
outOfScope:
|
|
136
|
+
goal: TEXT_LIMITS.goal,
|
|
137
|
+
outOfScope: TEXT_LIMITS.goal,
|
|
135
138
|
touch: 200,
|
|
136
139
|
touches: 32,
|
|
137
140
|
document: 16 * 1024,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "toolroll",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.30",
|
|
4
4
|
"description": "A control plane for unattended coding agents — queue tasks, walk away, come back to pull requests. Agents build in leased worktrees, never touch your default branch, and interrupt you only for decisions that need a human.",
|
|
5
5
|
"directories": {
|
|
6
6
|
"doc": "docs"
|