@yagni-app/code-staging 1.2.10-staging.2111.1 → 1.2.11-staging.2122.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.
@@ -22,6 +22,14 @@
22
22
  * pi-extension-yagni/test/fixtures/equivalentCheckCommands.json.
23
23
  */
24
24
  export declare function canonicalCheckCommand(command: string): string;
25
+ /**
26
+ * What a check id and a located failure key hold between their two parts
27
+ * (the folder and the command, the file and the message): the ASCII unit
28
+ * separator, which no path, command or message carries. Never NUL: the keys
29
+ * and ids are kept in Postgres JSONB (a `base_measured` event), which refuses
30
+ * a string holding \u0000.
31
+ */
32
+ export declare const CHECK_KEY_SEPARATOR = "\u001F";
25
33
  /**
26
34
  * One check's identity across the change's run and the base's, and across
27
35
  * sessions: the folder it runs in, relative to the repository root, and its
@@ -45,6 +45,14 @@ export function canonicalCheckCommand(command) {
45
45
  }
46
46
  return words.join(" ");
47
47
  }
48
+ /**
49
+ * What a check id and a located failure key hold between their two parts
50
+ * (the folder and the command, the file and the message): the ASCII unit
51
+ * separator, which no path, command or message carries. Never NUL: the keys
52
+ * and ids are kept in Postgres JSONB (a `base_measured` event), which refuses
53
+ * a string holding \u0000.
54
+ */
55
+ export const CHECK_KEY_SEPARATOR = "\u001f";
48
56
  /**
49
57
  * One check's identity across the change's run and the base's, and across
50
58
  * sessions: the folder it runs in, relative to the repository root, and its
@@ -55,7 +63,7 @@ export function checkId(command, cwd) {
55
63
  .replace(/\\/g, "/")
56
64
  .replace(/^(?:\.\/+)+/, "")
57
65
  .replace(/\/+$/, "") || ".";
58
- return `${dir}\u0000${canonicalCheckCommand(command)}`;
66
+ return `${dir}${CHECK_KEY_SEPARATOR}${canonicalCheckCommand(command)}`;
59
67
  }
60
68
  /** A failing test's key: its name, without the duration a runner prints after it. */
61
69
  export function testKey(name) {
@@ -63,11 +71,11 @@ export function testKey(name) {
63
71
  }
64
72
  /** A located diagnostic's key: its file and message, never its line, which a change above it moves. */
65
73
  export function diagKey(file, message) {
66
- return `diag:${file.replace(/\\/g, "/").replace(/^(?:\.\/+)+/, "")}\u0000${message.trim()}`;
74
+ return `diag:${file.replace(/\\/g, "/").replace(/^(?:\.\/+)+/, "")}${CHECK_KEY_SEPARATOR}${message.trim()}`;
67
75
  }
68
76
  /** A check annotation's key: its path and message, never its line. */
69
77
  export function annotationKey(path, message) {
70
- return `ann:${path}\u0000${message.trim()}`;
78
+ return `ann:${path}${CHECK_KEY_SEPARATOR}${message.trim()}`;
71
79
  }
72
80
  /**
73
81
  * The rule. `excused` is index for index with `head.keys`: true where the
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yagni-app/code-staging",
3
- "version": "1.2.10-staging.2111.1",
3
+ "version": "1.2.11-staging.2122.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": "cebee25de048e6d6a5a232228bada8c68291405b"
61
+ "yagniSourceSha": "4908d4b0b629a93a80da2015219b81ee9000b1e7"
62
62
  }