@yagni-app/code-staging 1.2.13-staging.2200.1 → 1.2.14-staging.2204.1

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.
@@ -87,7 +87,14 @@ export interface TurnFacts {
87
87
  review: boolean;
88
88
  /** The input folder has `sent-back-plan.md`: a person sent the plan back. */
89
89
  sentBack: boolean;
90
+ /**
91
+ * `next-step-note.md`, as the host wrote it: a note a person added while
92
+ * the attempt worked, for this turn (YAG-1116). Never on a plan turn.
93
+ */
94
+ nextStepNote?: string | null;
90
95
  }
96
+ /** The file the host writes a person's note for the next step to (`attempts/inputs.ts`). */
97
+ export declare const NEXT_STEP_NOTE_FILE_NAME = "next-step-note.md";
91
98
  /** The one message a turn sends the session. Pure. */
92
99
  export declare function turnMessage(facts: TurnFacts): string;
93
100
  /** The model's own account of a turn that builds (`session-report.json`). */
@@ -136,6 +136,8 @@ export function readPlanAnswers(text) {
136
136
  return [];
137
137
  }
138
138
  }
139
+ /** The file the host writes a person's note for the next step to (`attempts/inputs.ts`). */
140
+ export const NEXT_STEP_NOTE_FILE_NAME = "next-step-note.md";
139
141
  const REPORT_CONTRACT = (outDir) => `Last, write ${join(outDir, SESSION_REPORT_FILE_NAME)} as JSON, honestly: ` +
140
142
  '{"summary": "<what you changed, in two or three sentences>", ' +
141
143
  '"checks": [{"name": "lint", "command": "pnpm lint", "cwd": ".", "exitCode": 0, "durationMs": 41000, ' +
@@ -228,6 +230,12 @@ export function turnMessage(facts) {
228
230
  if (facts.handOffAnswer) {
229
231
  parts.push(`Read ${at("hand-off-answer.md")} before you go on: why the attempt stopped, and what a person answered.`);
230
232
  }
233
+ // The host's file opens with "# A person added this while you worked" and
234
+ // carries the note fenced, so the session hears it in this turn's message,
235
+ // a resumed session included, whose ticket.md it read turns ago.
236
+ const note = facts.nextStepNote?.trim();
237
+ if (note)
238
+ parts.push(note);
231
239
  parts.push(BUILD_RULES(facts.outDir));
232
240
  return parts.join("\n\n");
233
241
  }
@@ -440,6 +448,7 @@ export async function runSessionTurn(input, deps = {}) {
440
448
  handOffAnswer: exists(join(input.inputDir, "hand-off-answer.md")),
441
449
  review: exists(join(input.inputDir, "fix-round.json")),
442
450
  sentBack: exists(join(input.inputDir, "sent-back-plan.md")),
451
+ nextStepNote: input.stage === "plan" ? null : readOrNull(join(input.inputDir, NEXT_STEP_NOTE_FILE_NAME)),
443
452
  });
444
453
  const notes = [];
445
454
  const stages = [];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yagni-app/code-staging",
3
- "version": "1.2.13-staging.2200.1",
3
+ "version": "1.2.14-staging.2204.1",
4
4
  "description": "YAGNI Code: a terminal coding agent that already knows your company. One YAGNI login routes the model and grounds the agent in your team's context.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "YAGNI, Inc. <jack@yagni.app> (https://yagni.app)",
@@ -58,5 +58,5 @@
58
58
  "turndown": "^7.2.4",
59
59
  "typebox": "^1.3.15"
60
60
  },
61
- "yagniSourceSha": "5895b08a0d87fb684423b6986a21d0ff35d874e4"
61
+ "yagniSourceSha": "481a9f9ced04d8756c322d0aa3edfe7420f6b957"
62
62
  }