Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@

All notable changes to junto are documented in this file. The project follows Semantic Versioning.

## [Unreleased]

### Changed

- Update `execa` to 10 and the build/test toolchain to esbuild 0.28, Vitest 5 and TypeScript 7. `zod` stays on 3.x: zod 4 made each bundled hook about 5x larger and added 10-20 ms to every hook start.

## [0.6.0] - 2026-09-24

### Changed
Expand Down
6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@
"devDependencies": {
"@modelcontextprotocol/sdk": "^1.30.1",
"@types/node": "^22.0.0",
"esbuild": "^0.24.0",
"typescript": "^5.9.2",
"vitest": "^3.1.1"
"esbuild": "^0.28.2",
"typescript": "^7.0.2",
"vitest": "^5.0.1"
}
}
4 changes: 2 additions & 2 deletions packages/core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
".": "./src/index.ts"
},
"dependencies": {
"execa": "^9.6.1",
"zod": "^3.23.8"
"execa": "^10.0.1",
"zod": "^3.25.76"
}
}
4 changes: 2 additions & 2 deletions packages/mcp/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"dependencies": {
"@junto/core": "workspace:*",
"@modelcontextprotocol/sdk": "^1.30.1",
"execa": "^9.6.1",
"zod": "^3.23.8"
"execa": "^10.0.1",
"zod": "^3.25.76"
}
}
24 changes: 13 additions & 11 deletions packages/mcp/test/verify-review-ocr.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,19 @@ const savedBin = process.env.OPEN_CODE_REVIEW_BIN
function installFakeOcr(output: unknown, exitCode = 0): void {
writeFileSync(join(bin, "out.json"), typeof output === "string" ? output : JSON.stringify(output))
if (process.platform === "win32") {
const script = [
"@echo off",
"if \"%~1\"==\"--version\" goto version",
"echo %*>> \"%~dp0args.txt\"",
"type \"%~dp0out.json\"",
`exit /b ${exitCode}`,
":version",
"echo ocr 9.9.9",
"exit /b 0",
].join("\r\n")
writeFileSync(join(bin, "ocr.cmd"), script)
// Like the shims npm installs for `ocr`: the .cmd only forwards %* to a Node script, so the
// fake does not depend on how the spawner quotes arguments for cmd.exe.
const fake = [
"const { appendFileSync, readFileSync } = require('node:fs')",
"const { join } = require('node:path')",
"const args = process.argv.slice(2)",
"if (args[0] === '--version') { console.log('ocr 9.9.9'); process.exit(0) }",
"appendFileSync(join(__dirname, 'args.txt'), args.join(' ') + '\\n')",
"process.stdout.write(readFileSync(join(__dirname, 'out.json')))",
`process.exitCode = ${exitCode}`,
].join("\n")
writeFileSync(join(bin, "fake-ocr.cjs"), fake)
writeFileSync(join(bin, "ocr.cmd"), `@"${process.execPath}" "%~dp0fake-ocr.cjs" %*\r\n`)
process.env.OPEN_CODE_REVIEW_BIN = join(bin, "ocr.cmd")
} else {
const script = [
Expand Down
16 changes: 9 additions & 7 deletions plugin/hooks/guard.js
Original file line number Diff line number Diff line change
Expand Up @@ -3837,7 +3837,7 @@ ZodNaN.create = (params) => {
...processCreateParams(params)
});
};
var BRAND = Symbol("zod_brand");
var BRAND = /* @__PURE__ */ Symbol("zod_brand");
var ZodBranded = class extends ZodType {
_parse(input) {
const { ctx } = this._processInputParams(input);
Expand Down Expand Up @@ -4039,14 +4039,14 @@ var ostring = () => stringType().optional();
var onumber = () => numberType().optional();
var oboolean = () => booleanType().optional();
var coerce = {
string: (arg) => ZodString.create({ ...arg, coerce: true }),
number: (arg) => ZodNumber.create({ ...arg, coerce: true }),
boolean: (arg) => ZodBoolean.create({
string: ((arg) => ZodString.create({ ...arg, coerce: true })),
number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),
boolean: ((arg) => ZodBoolean.create({
...arg,
coerce: true
}),
bigint: (arg) => ZodBigInt.create({ ...arg, coerce: true }),
date: (arg) => ZodDate.create({ ...arg, coerce: true })
})),
bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),
date: ((arg) => ZodDate.create({ ...arg, coerce: true }))
};
var NEVER = INVALID;

Expand All @@ -4062,6 +4062,8 @@ var SchemaVersionError = class extends Error {
this.supported = supported;
this.name = "SchemaVersionError";
}
found;
supported;
};
function assertVersion(raw) {
const v = raw?.schemaVersion;
Expand Down
14 changes: 7 additions & 7 deletions plugin/hooks/handoff.js
Original file line number Diff line number Diff line change
Expand Up @@ -3837,7 +3837,7 @@ ZodNaN.create = (params) => {
...processCreateParams(params)
});
};
var BRAND = Symbol("zod_brand");
var BRAND = /* @__PURE__ */ Symbol("zod_brand");
var ZodBranded = class extends ZodType {
_parse(input) {
const { ctx } = this._processInputParams(input);
Expand Down Expand Up @@ -4039,14 +4039,14 @@ var ostring = () => stringType().optional();
var onumber = () => numberType().optional();
var oboolean = () => booleanType().optional();
var coerce = {
string: (arg) => ZodString.create({ ...arg, coerce: true }),
number: (arg) => ZodNumber.create({ ...arg, coerce: true }),
boolean: (arg) => ZodBoolean.create({
string: ((arg) => ZodString.create({ ...arg, coerce: true })),
number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),
boolean: ((arg) => ZodBoolean.create({
...arg,
coerce: true
}),
bigint: (arg) => ZodBigInt.create({ ...arg, coerce: true }),
date: (arg) => ZodDate.create({ ...arg, coerce: true })
})),
bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),
date: ((arg) => ZodDate.create({ ...arg, coerce: true }))
};
var NEVER = INVALID;

Expand Down
16 changes: 9 additions & 7 deletions plugin/hooks/session.js
Original file line number Diff line number Diff line change
Expand Up @@ -3837,7 +3837,7 @@ ZodNaN.create = (params) => {
...processCreateParams(params)
});
};
var BRAND = Symbol("zod_brand");
var BRAND = /* @__PURE__ */ Symbol("zod_brand");
var ZodBranded = class extends ZodType {
_parse(input) {
const { ctx } = this._processInputParams(input);
Expand Down Expand Up @@ -4039,14 +4039,14 @@ var ostring = () => stringType().optional();
var onumber = () => numberType().optional();
var oboolean = () => booleanType().optional();
var coerce = {
string: (arg) => ZodString.create({ ...arg, coerce: true }),
number: (arg) => ZodNumber.create({ ...arg, coerce: true }),
boolean: (arg) => ZodBoolean.create({
string: ((arg) => ZodString.create({ ...arg, coerce: true })),
number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),
boolean: ((arg) => ZodBoolean.create({
...arg,
coerce: true
}),
bigint: (arg) => ZodBigInt.create({ ...arg, coerce: true }),
date: (arg) => ZodDate.create({ ...arg, coerce: true })
})),
bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),
date: ((arg) => ZodDate.create({ ...arg, coerce: true }))
};
var NEVER = INVALID;

Expand All @@ -4062,6 +4062,8 @@ var SchemaVersionError = class extends Error {
this.supported = supported;
this.name = "SchemaVersionError";
}
found;
supported;
};
function assertVersion(raw) {
const v = raw?.schemaVersion;
Expand Down
16 changes: 9 additions & 7 deletions plugin/hooks/state.js
Original file line number Diff line number Diff line change
Expand Up @@ -3837,7 +3837,7 @@ ZodNaN.create = (params) => {
...processCreateParams(params)
});
};
var BRAND = Symbol("zod_brand");
var BRAND = /* @__PURE__ */ Symbol("zod_brand");
var ZodBranded = class extends ZodType {
_parse(input) {
const { ctx } = this._processInputParams(input);
Expand Down Expand Up @@ -4039,14 +4039,14 @@ var ostring = () => stringType().optional();
var onumber = () => numberType().optional();
var oboolean = () => booleanType().optional();
var coerce = {
string: (arg) => ZodString.create({ ...arg, coerce: true }),
number: (arg) => ZodNumber.create({ ...arg, coerce: true }),
boolean: (arg) => ZodBoolean.create({
string: ((arg) => ZodString.create({ ...arg, coerce: true })),
number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),
boolean: ((arg) => ZodBoolean.create({
...arg,
coerce: true
}),
bigint: (arg) => ZodBigInt.create({ ...arg, coerce: true }),
date: (arg) => ZodDate.create({ ...arg, coerce: true })
})),
bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),
date: ((arg) => ZodDate.create({ ...arg, coerce: true }))
};
var NEVER = INVALID;

Expand All @@ -4062,6 +4062,8 @@ var SchemaVersionError = class extends Error {
this.supported = supported;
this.name = "SchemaVersionError";
}
found;
supported;
};
function assertVersion(raw) {
const v = raw?.schemaVersion;
Expand Down
Loading
Loading