opencode-magi 0.0.0-dev-20260522220355 → 0.0.0-dev-20260522221334

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.
@@ -367,18 +367,20 @@ async function classifyChecks(input) {
367
367
  const rawPath = input.outputDir
368
368
  ? join(input.outputDir, `${reviewer.key}.ci-classification.raw.txt`)
369
369
  : undefined;
370
- const check = result.value.checks[0];
370
+ const checks = result.value.checks.map((check) => ({
371
+ classification: check.classification,
372
+ name: check.name,
373
+ reason: check.reason,
374
+ }));
371
375
  if (rawPath)
372
376
  await writeFile(rawPath, result.raw);
373
- run.classification = check?.classification;
377
+ run.checks = checks;
374
378
  run.rawPath = rawPath;
375
- run.reason = check?.reason;
376
379
  run.sessionId = result.sessionId;
377
380
  run.status = "completed";
378
381
  await input.onClassifierProgress?.({
379
- classification: check?.classification ?? "SCOPE_IN",
382
+ checks,
380
383
  rawPath,
381
- reason: check?.reason ?? "No classification reason was provided.",
382
384
  reviewer: reviewer.key,
383
385
  sessionId: result.sessionId,
384
386
  type: "classifier_completed",
@@ -53,7 +53,7 @@ async function withReviewerFailureProgress(input) {
53
53
  async function runEditor(input, worktreePath, cycle, reviewFindings, unresolvedThreads) {
54
54
  const editor = input.repository.agents.editor;
55
55
  if (!editor)
56
- throw new Error("agents.editor is required for magi_merge");
56
+ throw new Error("merge.editor is required for magi_merge");
57
57
  throwIfAborted(input.signal);
58
58
  await configureGitIdentity(input.exec, worktreePath, {
59
59
  email: editor.author?.email,
@@ -587,7 +587,7 @@ export async function runMerge(input) {
587
587
  const abortableInput = { ...input, exec };
588
588
  const editor = input.repository.agents.editor;
589
589
  if (!editor)
590
- throw new Error("agents.editor is required for magi_merge");
590
+ throw new Error("merge.editor is required for magi_merge");
591
591
  throwIfAborted(input.signal);
592
592
  const artifactDir = outputDir(input);
593
593
  await mkdir(artifactDir, { recursive: true });
@@ -151,6 +151,12 @@ function ciReportText(input) {
151
151
  const scopeInside = input.report.scopeInside.length;
152
152
  return `CI report for ${input.pr}: ${failed} failed, ${scopeInside} scope-in, ${rerun} rerun, ${recovered} recovered, ${unresolved} unresolved.`;
153
153
  }
154
+ function ciClassifierCompletedText(input) {
155
+ const summary = input.checks
156
+ .map((check) => `${check.name}: ${check.classification} - ${check.reason}`)
157
+ .join("; ");
158
+ return `**CI classifier ${input.reviewer}** completed for ${input.pr}: ${summary}`;
159
+ }
154
160
  function closeReconsiderationText(input) {
155
161
  if (input.to === "MERGE") {
156
162
  return `**Reviewer ${input.reviewer}** changed their close request to approval for ${input.pr}.`;
@@ -1704,9 +1710,8 @@ export class MagiRunManager {
1704
1710
  if (progress.type === "ci_classifier_completed") {
1705
1711
  const classifier = state.ciClassifiers?.[progress.reviewer];
1706
1712
  if (classifier) {
1707
- classifier.classification = progress.classification;
1713
+ classifier.checks = progress.checks;
1708
1714
  classifier.rawPath = progress.rawPath;
1709
- classifier.reason = progress.reason;
1710
1715
  classifier.sessionId = progress.sessionId;
1711
1716
  classifier.status = "completed";
1712
1717
  classifier.lastUpdate = now();
@@ -1814,7 +1819,11 @@ export class MagiRunManager {
1814
1819
  await this.notify(state, `**CI classifier ${progress.reviewer}** started JSON regeneration for ${prMarkdownLink(state)}.`);
1815
1820
  }
1816
1821
  if (progress.type === "ci_classifier_completed") {
1817
- await this.notify(state, `**CI classifier ${progress.reviewer}** completed for ${prMarkdownLink(state)}: ${progress.classification} - ${progress.reason}`);
1822
+ await this.notify(state, ciClassifierCompletedText({
1823
+ checks: progress.checks,
1824
+ pr: prMarkdownLink(state),
1825
+ reviewer: progress.reviewer,
1826
+ }));
1818
1827
  }
1819
1828
  if (progress.type === "ci_classifier_failed") {
1820
1829
  await this.notify(state, `**CI classifier ${progress.reviewer}** failed for ${prMarkdownLink(state)}: ${redactSecrets(progress.error)}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-magi",
3
- "version": "0.0.0-dev-20260522220355",
3
+ "version": "0.0.0-dev-20260522221334",
4
4
  "description": "Multi-agent PR review and merge orchestration plugin for OpenCode.",
5
5
  "license": "MIT",
6
6
  "author": "Hirotomo Yamada <hirotomo.yamada@avap.co.jp>",