zames_pro 2.82.113 → 2.82.115
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 +12 -0
- package/dist/hooks.js +11 -2
- package/dist/scheduler.js +8 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [2.82.115] - 2026-10-24
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- **hooks:** a big Write is not blocked by a hook's env size limit
|
|
15
|
+
|
|
16
|
+
## [2.82.114] - 2026-10-24
|
|
17
|
+
|
|
18
|
+
### Fixed
|
|
19
|
+
|
|
20
|
+
- **scheduler:** a multi-line job task cannot fake a /jobs line
|
|
21
|
+
|
|
10
22
|
## [2.82.113] - 2026-10-24
|
|
11
23
|
|
|
12
24
|
### Fixed
|
package/dist/hooks.js
CHANGED
|
@@ -104,12 +104,21 @@ function runHook(entry, event, tool, args, workdir, result) {
|
|
|
104
104
|
args: args ?? {},
|
|
105
105
|
...(result === undefined ? {} : { result }),
|
|
106
106
|
};
|
|
107
|
+
// The env copies are SHORT on purpose: a Write/Edit carries the whole file
|
|
108
|
+
// in `content`, which exceeds the OS per-variable limit (~128 KB) and made
|
|
109
|
+
// the spawn fail — a PreToolUse guard then BLOCKED the very call it was
|
|
110
|
+
// meant to allow. The FULL call is already fed on stdin (below), which has
|
|
111
|
+
// no such limit, so the env copy is only a convenience for small hooks.
|
|
112
|
+
const ENV_CAP = 60_000;
|
|
113
|
+
const clipEnv = (v) => v.length <= ENV_CAP ? v : v.slice(0, ENV_CAP - 1) + '…';
|
|
107
114
|
const env = {
|
|
108
115
|
...process.env,
|
|
109
116
|
ZAMES_HOOK_EVENT: event,
|
|
110
117
|
ZAMES_TOOL_NAME: tool,
|
|
111
|
-
ZAMES_TOOL_ARGS: JSON.stringify(args ?? {}),
|
|
112
|
-
...(result === undefined
|
|
118
|
+
ZAMES_TOOL_ARGS: clipEnv(JSON.stringify(args ?? {})),
|
|
119
|
+
...(result === undefined
|
|
120
|
+
? {}
|
|
121
|
+
: { ZAMES_TOOL_RESULT: clipEnv(String(result)) }),
|
|
113
122
|
};
|
|
114
123
|
let child;
|
|
115
124
|
try {
|
package/dist/scheduler.js
CHANGED
|
@@ -175,18 +175,23 @@ export function nextCronTime(expr, fromMs) {
|
|
|
175
175
|
// One listing line for a job: "#3 [every 10m, next ~5m] run the tests". Pure,
|
|
176
176
|
// so the /jobs formatting is unit-tested without a live scheduler.
|
|
177
177
|
export function formatJobLine(job, now) {
|
|
178
|
+
// The TASK and the CRON expression are operator text and must stay on ONE
|
|
179
|
+
// line: a newline would start a new /jobs row and could fake another
|
|
180
|
+
// report's line. Collapse whitespace in both.
|
|
181
|
+
const oneLine = (v) => String(v ?? '').replace(/\s+/g, ' ');
|
|
178
182
|
const when = job.kind === 'loop'
|
|
179
183
|
? 'every ' + formatInterval(job.intervalMs || 0)
|
|
180
|
-
: job.cron || '';
|
|
184
|
+
: oneLine(job.cron || '');
|
|
185
|
+
const task = oneLine(job.task);
|
|
181
186
|
// A cron job whose next fire could not be computed stores Infinity (see
|
|
182
187
|
// due()). "next ~-" (formatInterval maps a non-finite value to '-') read
|
|
183
188
|
// like a normal schedule, so the job looked healthy while it could never
|
|
184
189
|
// fire again.
|
|
185
190
|
if (!Number.isFinite(job.nextAt)) {
|
|
186
|
-
return ' #' + job.id + ' [' + when + ', NEVER fires again] ' +
|
|
191
|
+
return ' #' + job.id + ' [' + when + ', NEVER fires again] ' + task;
|
|
187
192
|
}
|
|
188
193
|
const nextIn = formatInterval(Math.max(0, job.nextAt - now));
|
|
189
|
-
return ' #' + job.id + ' [' + when + ', next ~' + nextIn + '] ' +
|
|
194
|
+
return ' #' + job.id + ' [' + when + ', next ~' + nextIn + '] ' + task;
|
|
190
195
|
}
|
|
191
196
|
// Holds the scheduled jobs. Pure: no timers here. index.ts drives it with a
|
|
192
197
|
// 1-second tick and enqueues the tasks that `due()` returns.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zames_pro",
|
|
3
|
-
"version": "2.82.
|
|
3
|
+
"version": "2.82.115",
|
|
4
4
|
"description": "Terminal coding agent that drives a real browser to chat with DeepSeek, Qwen and other web LLMs — no API key required. Reads and edits files, runs commands, commits to git, like Claude Code / Codex CLI.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|