Skip to content

Commit dc82491

Browse files
committed
chore(release): prepare 0.3.0
1 parent 042dba4 commit dc82491

6 files changed

Lines changed: 18 additions & 16 deletions

File tree

CHANGELOG.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ All notable ClawSweeper changes are tracked here.
55
This file was reconstructed from first-parent git history. Generated dashboard,
66
checkpoint, and status-only commits are intentionally omitted.
77

8-
## 0.2.1 - Unreleased
8+
## 0.3.0 - 2026-06-15
99

1010
### Added
1111

@@ -78,6 +78,8 @@ checkpoint, and status-only commits are intentionally omitted.
7878

7979
### Fixed
8080

81+
- Included the shared Codex spawn helper in repair comment-router sparse checkouts, restoring repair builds in that workflow. Thanks @849261680.
82+
- Rendered Mantis proof suggestions as complete copyable PR comments inside fenced text blocks without triggering the suggested command. Thanks @hxy91819.
8183
- Added a cancellation-safe four-slot exact-review semaphore, replacing the proposed state-repository lease with deterministic live Actions ranking. Thanks @hxy91819.
8284
- Made every Codex subprocess honor `CODEX_BIN`, safely launch npm-installed `codex.cmd` wrappers on native Windows, and terminate their process trees on timeout. Thanks @anagnorisis2peripeteia.
8385
- Reserved the full bounded media preprocessing allowance for exact-event review deadlines and command-dispatch fallbacks, including media discovered only after comment hydration.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@openclaw/clawsweeper",
3-
"version": "0.2.1",
3+
"version": "0.3.0",
44
"private": true,
55
"license": "MIT",
66
"type": "module",

test/clawsweeper.test.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15625,7 +15625,7 @@ process.exit(1);
1562515625
item: item({ number: 83393 }),
1562615626
context: { issue: {}, comments: [], timeline: [] },
1562715627
git: { mainSha: "abc123", latestRelease: null },
15628-
model: "gpt-test",
15628+
model: "model-test",
1562915629
openclawDir,
1563015630
reasoningEffort: "high",
1563115631
sandboxMode: "read-only",
@@ -15659,7 +15659,7 @@ test("runCodex preserves redacted process output when Codex exits without a deci
1565915659
codexPath,
1566015660
`#!/usr/bin/env node
1566115661
process.stdout.write("startup banner GH_TOKEN=ghp_abcdefghijklmnopqrstuvwxyz123456\\n");
15662-
process.stderr.write("Rate limit reached for gpt-test on tokens per min (TPM); OPENAI_API_KEY=sk-proj-abcdefghijklmnopqrstuvwxyz123456\\n");
15662+
process.stderr.write("Rate limit reached for model-test on tokens per min (TPM); OPENAI_API_KEY=sk-proj-abcdefghijklmnopqrstuvwxyz123456\\n");
1566315663
process.exit(1);
1566415664
`,
1566515665
);
@@ -15675,7 +15675,7 @@ process.exit(1);
1567515675
item: item({ number: 83394 }),
1567615676
context: { issue: {}, comments: [], timeline: [] },
1567715677
git: { mainSha: "abc123", latestRelease: null },
15678-
model: "gpt-test",
15678+
model: "model-test",
1567915679
openclawDir,
1568015680
reasoningEffort: "high",
1568115681
sandboxMode: "read-only",
@@ -15748,7 +15748,7 @@ fs.writeFileSync(process.argv[outputIndex + 1], process.env.CODEX_DECISION_JSON)
1574815748
item: item({ number: 83395 }),
1574915749
context: { issue: {}, comments: [], timeline: [] },
1575015750
git: { mainSha: "abc123", latestRelease: null },
15751-
model: "gpt-test",
15751+
model: "model-test",
1575215752
openclawDir,
1575315753
reasoningEffort: "high",
1575415754
sandboxMode: "read-only",
@@ -15771,7 +15771,7 @@ fs.writeFileSync(process.argv[outputIndex + 1], process.env.CODEX_DECISION_JSON)
1577115771

1577215772
test("codex failure decisions expose stderr and stdout separately", () => {
1577315773
const errorMessage =
15774-
"Rate limit reached for gpt-test on tokens per min (TPM). Please try again in 1ms.";
15774+
"Rate limit reached for model-test on tokens per min (TPM). Please try again in 1ms.";
1577515775
const decision = codexFailureDecisionForTest(
1577615776
1,
1577715777
"Codex review failed for #278 with exit 1.",

test/repair/apply-result.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1235,7 +1235,7 @@ function runApplyResult(
12351235
...process.env,
12361236
CLAWSWEEPER_ALLOW_EXECUTE: "1",
12371237
CLAWSWEEPER_ALLOWED_OWNER: "openclaw",
1238-
CLAWSWEEPER_MODEL: "gpt-test",
1238+
CLAWSWEEPER_MODEL: "model-test",
12391239
CLAWSWEEPER_PR_CLOSE_COVERAGE_PROOF_TIMEOUT_MS: "10000",
12401240
GH_TOKEN: "write-token",
12411241
PATH: `${paths.binDir}${path.delimiter}${process.env.PATH ?? ""}`,

test/repair/external-messages.test.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ test("automergeRepairOutcomeComment explains no-op repair runs", () => {
2929
},
3030
],
3131
},
32-
provenance: { model: "gpt-test", reasoning: "medium", reviewedSha: "0123456789abcdef" },
32+
provenance: { model: "model-test", reasoning: "medium", reviewedSha: "0123456789abcdef" },
3333
});
3434

3535
assert.match(body, /^<!-- marker -->/);
@@ -44,14 +44,14 @@ test("automergeRepairOutcomeComment explains no-op repair runs", () => {
4444
/(No branch push|No push|left the PR as-is|Nothing moved downstream|observational only)/i,
4545
);
4646
assert.match(body, /reasoning medium; reviewed against 0123456789ab/);
47-
assert.doesNotMatch(body, /model gpt-test/);
47+
assert.doesNotMatch(body, /model model-test/);
4848
});
4949

5050
test("repairContributorBranchComment avoids self PR references", () => {
5151
const body = repairContributorBranchComment({
5252
sourcePrUrl: "https://github.com/openclaw/openclaw/pull/75183",
5353
validationCommands: ["pnpm check:changed"],
54-
provenance: { model: "gpt-test", reasoning: "medium", reviewedSha: "abcdef1234567890" },
54+
provenance: { model: "model-test", reasoning: "medium", reviewedSha: "abcdef1234567890" },
5555
});
5656

5757
assert.match(body, /reef update/);
@@ -67,7 +67,7 @@ test("replacement comments explain no push rights and keep co-author credit visi
6767
co_authored_by: "Co-authored-by: Mona Octocat <[email protected]>",
6868
},
6969
];
70-
const provenance = { model: "gpt-test", reasoning: "medium", reviewedSha: "abcdef1234567890" };
70+
const provenance = { model: "model-test", reasoning: "medium", reviewedSha: "abcdef1234567890" };
7171

7272
const linkBody = replacementSourceLinkComment({
7373
replacementPrUrl: "https://github.com/openclaw/openclaw/pull/67890",
@@ -115,7 +115,7 @@ test("replacement PR body keeps public context without internal worker notes", (
115115
author_id: 123456,
116116
},
117117
sourceClosingReferences: ["Closes #74124", "closes #74124", "Fixes openclaw/openclaw#81234"],
118-
provenance: { model: "gpt-test", reasoning: "medium", reviewedSha: "abcdef1234567890" },
118+
provenance: { model: "model-test", reasoning: "medium", reviewedSha: "abcdef1234567890" },
119119
});
120120

121121
assert.match(
@@ -218,7 +218,7 @@ test("issueImplementationResultStatusComment reports blocked terminal outcomes",
218218
});
219219

220220
test("external message provenance normalizes accidental xhigh reasoning", () => {
221-
const provenance = externalMessageProvenance({ model: "gpt-test", reasoning: "xhigh" });
221+
const provenance = externalMessageProvenance({ model: "model-test", reasoning: "xhigh" });
222222
const body = automergeRepairOutcomeComment({
223223
marker: "<!-- marker -->",
224224
target: 74156,
@@ -229,6 +229,6 @@ test("external message provenance normalizes accidental xhigh reasoning", () =>
229229

230230
assert.equal(provenance.reasoning, "high");
231231
assert.match(body, /reasoning high/);
232-
assert.doesNotMatch(body, /model gpt-test/);
232+
assert.doesNotMatch(body, /model model-test/);
233233
assert.doesNotMatch(body, /reasoning xhigh/);
234234
});

test/repair/target-validation.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ test("validation preflight accepts env-prefixed OpenClaw QA commands", () => {
149149
{
150150
fixArtifact: {
151151
validation_commands: [
152-
"env QA_PARITY_CONCURRENCY=1 OPENCLAW_BUILD_PRIVATE_QA=1 OPENCLAW_ENABLE_PRIVATE_QA_CLI=1 OPENAI_API_KEY= ANTHROPIC_API_KEY= OPENCLAW_LIVE_OPENAI_KEY= OPENCLAW_LIVE_ANTHROPIC_KEY= OPENCLAW_LIVE_GEMINI_KEY= OPENCLAW_LIVE_SETUP_TOKEN_VALUE= pnpm openclaw qa suite --provider-mode mock-openai --parity-pack agentic --concurrency 1 --model ${OPENCLAW_CI_OPENAI_MODEL:-openai/gpt-5.5} --alt-model openai/gpt-5.4-alt --output-dir .artifacts/qa-e2e/gpt54",
152+
"env QA_PARITY_CONCURRENCY=1 OPENCLAW_BUILD_PRIVATE_QA=1 OPENCLAW_ENABLE_PRIVATE_QA_CLI=1 OPENAI_API_KEY= ANTHROPIC_API_KEY= OPENCLAW_LIVE_OPENAI_KEY= OPENCLAW_LIVE_ANTHROPIC_KEY= OPENCLAW_LIVE_GEMINI_KEY= OPENCLAW_LIVE_SETUP_TOKEN_VALUE= pnpm openclaw qa suite --provider-mode mock-openai --parity-pack agentic --concurrency 1 --model ${OPENCLAW_CI_OPENAI_MODEL:-openai/gpt-5.5} --alt-model example/model-alt --output-dir .artifacts/qa-e2e/gpt54",
153153
],
154154
},
155155
targetDir: cwd,

0 commit comments

Comments
 (0)