pi-smart-compact 8.0.0-rc.4 → 8.0.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.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,24 @@
4
4
 
5
5
  No changes yet.
6
6
 
7
+ ## [8.0.1] - 2026-08-07
8
+
9
+ ### Fixed
10
+
11
+ - Legacy rc.2 continuity state now drops diagnostic `npm error`/`npm notice` text that had been persisted as a user prohibition, both when loaded and before future persistence.
12
+ - Remote registry URLs such as `https://registry.npmjs.org/` are no longer interpreted as local file references.
13
+ - File paths present inside trusted error/constraint/decision/goal continuity evidence are grounded during verification, so deterministically preserved legacy errors cannot create fabricated-file gaps.
14
+
15
+ ## [8.0.0] - 2026-08-07
16
+
17
+ ### Added
18
+
19
+ - Stable v8 release of the EESV compaction pipeline, scoped continuity and context graph, host-approved project memory, explicit provider routing, telemetry cohorts, damage correlation, and local release dashboards.
20
+
21
+ ### Changed
22
+
23
+ - Promotes the fully validated `8.0.0-rc.4` tree without runtime changes. The maintainer explicitly accepted promotion while the advisory telemetry report remained `HOLD` for missing rc.4 cohort evidence; post-release defects follow the normal rollback/patch process.
24
+
7
25
  ## [8.0.0-rc.4] - 2026-08-07
8
26
 
9
27
  ### Fixed
@@ -8,7 +8,7 @@ import type { CompressionProfile, ProfileConfig } from "./types.ts";
8
8
  * `package.json#version`. Do not hand-edit this line for releases; bump
9
9
  * package.json and run `bun run sync-version`.
10
10
  */
11
- export declare const VERSION = "8.0.0-rc.4";
11
+ export declare const VERSION = "8.0.1";
12
12
  export declare const CHARS_PER_TOKEN = 3.8;
13
13
  export declare const COMPACT_SYSTEM_PREFIX: string;
14
14
  export declare const PROFILES: Record<CompressionProfile, ProfileConfig>;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -130,7 +130,7 @@ var init_mode_policy = __esm(() => {
130
130
  });
131
131
 
132
132
  // src/constants.ts
133
- var VERSION = "8.0.0-rc.4", CHARS_PER_TOKEN = 3.8, COMPACT_SYSTEM_PREFIX, PROFILES, DEFAULT_CONFIG, NO_OP_RE, SHIFT_RE, CHOICE_RE, SINGLE_PASS_PREFIX, SINGLE_PASS_SUFFIX = `
133
+ var VERSION = "8.0.1", CHARS_PER_TOKEN = 3.8, COMPACT_SYSTEM_PREFIX, PROFILES, DEFAULT_CONFIG, NO_OP_RE, SHIFT_RE, CHOICE_RE, SINGLE_PASS_PREFIX, SINGLE_PASS_SUFFIX = `
134
134
  {PREV_CONTEXT}
135
135
 
136
136
  {EXTRACTION_CONTEXT}
@@ -1154,7 +1154,7 @@ var init_tool_semantics = __esm(() => {
1154
1154
 
1155
1155
  // src/utils/file-ref-detect.ts
1156
1156
  function isLikelyFileRef(candidate) {
1157
- if (VERSION_RE.test(candidate))
1157
+ if (candidate.startsWith("//") || VERSION_RE.test(candidate))
1158
1158
  return false;
1159
1159
  if (candidate.includes("/")) {
1160
1160
  const last = candidate.split("/").pop() ?? "";
@@ -1387,6 +1387,10 @@ function extractDecisions(msgs, _tcIdx) {
1387
1387
  }
1388
1388
  return decisions;
1389
1389
  }
1390
+ function isDiagnosticConstraintText(text) {
1391
+ const candidate = text.replace(/^\s*[-*]\s+/, "").trim();
1392
+ return /^(?:\[[^\]]+\]\s*)?(?:npm\s+(?:error|warn|notice|audit|verbose|info)\b|(?:rg|grep):|command exited\b)/i.test(candidate);
1393
+ }
1390
1394
  function mineConstraints(msgs) {
1391
1395
  const constraints = [];
1392
1396
  const seen = new Set;
@@ -1398,7 +1402,7 @@ function mineConstraints(msgs) {
1398
1402
  continue;
1399
1403
  for (const raw of text.split(/\n+/)) {
1400
1404
  const candidate = raw.replace(/^\s*[-*]\s+/, "").trim();
1401
- if (candidate.length < 10 || /^(?:\[[^\]]+\]\s*)?(?:npm\s+(?:error|warn|notice)|(?:rg|grep):|command exited\b)/i.test(candidate))
1405
+ if (candidate.length < 10 || isDiagnosticConstraintText(candidate))
1402
1406
  continue;
1403
1407
  for (const { re, cat, conf } of CONSTRAINT_PATTERNS) {
1404
1408
  if (!re.test(candidate))
@@ -3820,6 +3824,10 @@ import fs5 from "fs";
3820
3824
  function getStatePath(projectId, state) {
3821
3825
  return state?.scope?.sessionId ? scopedCompactionStateFile(projectId, state.scope.sessionId) : compactionStateFile(projectId);
3822
3826
  }
3827
+ function sanitizeCompactionStateEvidence(state) {
3828
+ const constraints = state.constraints.filter((item) => !isDiagnosticConstraintText(item.text));
3829
+ return constraints.length === state.constraints.length ? state : { ...state, constraints };
3830
+ }
3823
3831
  function freshState(fp, data) {
3824
3832
  if (!data)
3825
3833
  return null;
@@ -3832,11 +3840,11 @@ function freshState(fp, data) {
3832
3840
  updatedAt = 0;
3833
3841
  }
3834
3842
  }
3835
- return Date.now() - updatedAt > SEVEN_DAYS_MS ? null : data;
3843
+ return Date.now() - updatedAt > SEVEN_DAYS_MS ? null : sanitizeCompactionStateEvidence(data);
3836
3844
  }
3837
3845
  function saveCompactionState(projectId, state) {
3838
3846
  try {
3839
- writeJsonSync(getStatePath(projectId, state), state, true);
3847
+ writeJsonSync(getStatePath(projectId, state), sanitizeCompactionStateEvidence(state), true);
3840
3848
  } catch (e) {
3841
3849
  warn("saveCompactionState failed", e);
3842
3850
  }
@@ -3880,13 +3888,14 @@ function upsertLoopOverride(overrides, loop, patch) {
3880
3888
  function applyContinuityOverrides(state, overrides) {
3881
3889
  const inactive = new Set(overrides.filter((item) => item.status !== "active").map((item) => item.kind + ":" + item.summaryKey));
3882
3890
  const replacements = overrides.filter((item) => item.status === "superseded" && item.replacement).map((item) => "Superseded " + item.kind + ": " + item.replacement);
3891
+ const cleanState = sanitizeCompactionStateEvidence(state);
3883
3892
  return {
3884
- ...state,
3885
- decisions: state.decisions.filter((item) => !inactive.has("decision:" + normalizeFactKey(item.summary))),
3886
- constraints: state.constraints.filter((item) => !inactive.has("constraint:" + normalizeFactKey(item.text))),
3887
- unresolvedErrors: state.unresolvedErrors.filter((item) => !inactive.has("error:" + normalizeFactKey(item.message))),
3888
- openLoops: state.openLoops.filter((item) => !inactive.has("loop:" + normalizeFactKey(item.summary))),
3889
- criticalContext: mergeBy(replacements, state.criticalContext, normalizeFactKey, 20),
3893
+ ...cleanState,
3894
+ decisions: cleanState.decisions.filter((item) => !inactive.has("decision:" + normalizeFactKey(item.summary))),
3895
+ constraints: cleanState.constraints.filter((item) => !inactive.has("constraint:" + normalizeFactKey(item.text))),
3896
+ unresolvedErrors: cleanState.unresolvedErrors.filter((item) => !inactive.has("error:" + normalizeFactKey(item.message))),
3897
+ openLoops: cleanState.openLoops.filter((item) => !inactive.has("loop:" + normalizeFactKey(item.summary))),
3898
+ criticalContext: mergeBy(replacements, cleanState.criticalContext, normalizeFactKey, 20),
3890
3899
  factOverrides: overrides
3891
3900
  };
3892
3901
  }
@@ -4136,6 +4145,7 @@ function extractCriticalContext(summary) {
4136
4145
  var init_state = __esm(() => {
4137
4146
  init_constants();
4138
4147
  init_helpers();
4148
+ init_extraction();
4139
4149
  init_logger();
4140
4150
  init_paths();
4141
4151
  init_fs();
@@ -7479,6 +7489,7 @@ init_constants();
7479
7489
  init_cache();
7480
7490
  init_tokens();
7481
7491
  init_file_ref_detect();
7492
+ init_extraction();
7482
7493
  init_file_needles();
7483
7494
  init_logger();
7484
7495
  init_summary_parse();
@@ -7660,7 +7671,7 @@ function verifySummary(summary, extraction, continuity = null) {
7660
7671
  const constraintEvidence = uniqueByText([
7661
7672
  ...extraction.constraints.filter((item) => item.confidence >= 0.8).map((item) => ({ text: item.text })),
7662
7673
  ...(continuity?.constraints ?? []).filter((item) => item.confidence >= 0.8).map((item) => ({ text: item.text }))
7663
- ], (item) => item.text);
7674
+ ], (item) => item.text).filter((item) => !isDiagnosticConstraintText(item.text));
7664
7675
  const decisionEvidence = uniqueByText([
7665
7676
  ...extraction.decisions.filter((item) => item.type === "explicit").map((item) => ({ summary: item.summary })),
7666
7677
  ...(continuity?.decisions ?? []).filter((item) => item.type === "explicit").map((item) => ({ summary: item.summary }))
@@ -7718,11 +7729,20 @@ function verifySummary(summary, extraction, continuity = null) {
7718
7729
  score -= 20;
7719
7730
  }
7720
7731
  }
7732
+ const groundedEvidenceFiles = [
7733
+ ...unresolvedEvidence.map((item) => item.message),
7734
+ ...constraintEvidence.map((item) => item.text),
7735
+ ...decisionEvidence.map((item) => item.summary),
7736
+ ...goalEvidence ? [goalEvidence] : [],
7737
+ ...continuity?.openLoops.map((item) => item.summary) ?? [],
7738
+ ...continuity?.criticalContext ?? []
7739
+ ].flatMap(extractFileRefs);
7721
7740
  const knownFiles = Array.from(new Set([
7722
7741
  ...modifiedPaths,
7723
7742
  ...extraction.readFiles,
7724
7743
  ...extraction.deletedFiles,
7725
7744
  ...extraction.referencedFiles ?? [],
7745
+ ...groundedEvidenceFiles,
7726
7746
  ...continuity?.modifiedFiles ?? [],
7727
7747
  ...continuity?.readFiles ?? [],
7728
7748
  ...continuity?.deletedFiles ?? [],
@@ -1 +1 @@
1
- {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/phases/verify.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAU9G,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAYlE;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI,CAOpF;AA6FD,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAI1E;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,oBAAoB,EAChC,UAAU,GAAE,eAAe,GAAG,IAAW,GACxC,kBAAkB,CAyIpB;AAED,iHAAiH;AACjH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,eAAe,EAAE,EACvB,UAAU,EAAE,oBAAoB,EAChC,UAAU,GAAE,eAAe,GAAG,IAAW,GACxC,MAAM,CA8FR;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,EACxC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,eAAe,CAAA;CAAE,EAAE,MAAM,CAAC,EAAE,WAAW,EAC5F,QAAQ,CAAC,EAAE,oBAAoB,GAC9B,OAAO,CAAC,MAAM,CAAC,CAkBjB"}
1
+ {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/phases/verify.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAW9G,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAYlE;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI,CAOpF;AA6FD,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAI1E;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,oBAAoB,EAChC,UAAU,GAAE,eAAe,GAAG,IAAW,GACxC,kBAAkB,CAkJpB;AAED,iHAAiH;AACjH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,eAAe,EAAE,EACvB,UAAU,EAAE,oBAAoB,EAChC,UAAU,GAAE,eAAe,GAAG,IAAW,GACxC,MAAM,CA8FR;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,EACxC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,eAAe,CAAA;CAAE,EAAE,MAAM,CAAC,EAAE,WAAW,EAC5F,QAAQ,CAAC,EAAE,oBAAoB,GAC9B,OAAO,CAAC,MAAM,CAAC,CAkBjB"}
@@ -156,7 +156,7 @@ function formatProviderEvaluation(report) {
156
156
  import fs2 from "fs";
157
157
 
158
158
  // src/constants.ts
159
- var VERSION = "8.0.0-rc.4";
159
+ var VERSION = "8.0.1";
160
160
  var COMPACT_SYSTEM_PREFIX = "You are an expert conversation summarizer for a coding agent. " + "Produce structured markdown summaries. " + "Follow output format exactly. " + "Use EXACT names \u2014 never paraphrase code identifiers. " + "Trust deterministic extraction data over intuition.";
161
161
  var PROFILES = {
162
162
  light: {
@@ -479,7 +479,7 @@ var CODE_EXT_RE = /\.(ts|tsx|js|jsx|mjs|cjs|rs|py|go|java|rb|cs|cpp|c|h|hpp|swif
479
479
  var VERSION_RE = /^v?\d+(?:\.\d+)+(?:[-+][\w.-]+)?$/i;
480
480
  var FILE_REF_CANDIDATE_RE = /[\w.\/-]+\.[\w]+/g;
481
481
  function isLikelyFileRef(candidate) {
482
- if (VERSION_RE.test(candidate))
482
+ if (candidate.startsWith("//") || VERSION_RE.test(candidate))
483
483
  return false;
484
484
  if (candidate.includes("/")) {
485
485
  const last = candidate.split("/").pop() ?? "";
@@ -501,6 +501,10 @@ var CONSTRAINT_PATTERNS = [
501
501
  { re: /(?<![A-Za-z0-9_])(?:yapma|kullanma|sak\u0131n|asla\s+(?:kullanma|yapma|getirme))(?![A-Za-z0-9_])/iu, cat: "prohibition", conf: TUNING.CONFIDENCE_MEDIUM },
502
502
  { re: /(?<![A-Za-z0-9_])(?:tercih|isterim|olsun|kullanal\u0131m|yapal\u0131m|istiyorum)(?![A-Za-z0-9_])/iu, cat: "preference", conf: TUNING.CONFIDENCE_LOW }
503
503
  ];
504
+ function isDiagnosticConstraintText(text) {
505
+ const candidate = text.replace(/^\s*[-*]\s+/, "").trim();
506
+ return /^(?:\[[^\]]+\]\s*)?(?:npm\s+(?:error|warn|notice|audit|verbose|info)\b|(?:rg|grep):|command exited\b)/i.test(candidate);
507
+ }
504
508
 
505
509
  // src/utils/logger.ts
506
510
  var DEBUG = process.env.DEBUG?.includes("smart-compact") ?? false;
@@ -138,7 +138,7 @@ function getLlmClient() {
138
138
  }
139
139
 
140
140
  // src/constants.ts
141
- var VERSION = "8.0.0-rc.4";
141
+ var VERSION = "8.0.1";
142
142
  var COMPACT_SYSTEM_PREFIX = "You are an expert conversation summarizer for a coding agent. " + "Produce structured markdown summaries. " + "Follow output format exactly. " + "Use EXACT names \u2014 never paraphrase code identifiers. " + "Trust deterministic extraction data over intuition.";
143
143
  var PROFILES = {
144
144
  light: {
@@ -464,7 +464,7 @@ var CODE_EXT_RE = /\.(ts|tsx|js|jsx|mjs|cjs|rs|py|go|java|rb|cs|cpp|c|h|hpp|swif
464
464
  var VERSION_RE = /^v?\d+(?:\.\d+)+(?:[-+][\w.-]+)?$/i;
465
465
  var FILE_REF_CANDIDATE_RE = /[\w.\/-]+\.[\w]+/g;
466
466
  function isLikelyFileRef(candidate) {
467
- if (VERSION_RE.test(candidate))
467
+ if (candidate.startsWith("//") || VERSION_RE.test(candidate))
468
468
  return false;
469
469
  if (candidate.includes("/")) {
470
470
  const last = candidate.split("/").pop() ?? "";
@@ -486,6 +486,10 @@ var CONSTRAINT_PATTERNS = [
486
486
  { re: /(?<![A-Za-z0-9_])(?:yapma|kullanma|sak\u0131n|asla\s+(?:kullanma|yapma|getirme))(?![A-Za-z0-9_])/iu, cat: "prohibition", conf: TUNING.CONFIDENCE_MEDIUM },
487
487
  { re: /(?<![A-Za-z0-9_])(?:tercih|isterim|olsun|kullanal\u0131m|yapal\u0131m|istiyorum)(?![A-Za-z0-9_])/iu, cat: "preference", conf: TUNING.CONFIDENCE_LOW }
488
488
  ];
489
+ function isDiagnosticConstraintText(text) {
490
+ const candidate = text.replace(/^\s*[-*]\s+/, "").trim();
491
+ return /^(?:\[[^\]]+\]\s*)?(?:npm\s+(?:error|warn|notice|audit|verbose|info)\b|(?:rg|grep):|command exited\b)/i.test(candidate);
492
+ }
489
493
 
490
494
  // src/utils/logger.ts
491
495
  var DEBUG = process.env.DEBUG?.includes("smart-compact") ?? false;
@@ -1158,7 +1162,7 @@ function verifySummary(summary, extraction, continuity = null) {
1158
1162
  const constraintEvidence = uniqueByText([
1159
1163
  ...extraction.constraints.filter((item) => item.confidence >= 0.8).map((item) => ({ text: item.text })),
1160
1164
  ...(continuity?.constraints ?? []).filter((item) => item.confidence >= 0.8).map((item) => ({ text: item.text }))
1161
- ], (item) => item.text);
1165
+ ], (item) => item.text).filter((item) => !isDiagnosticConstraintText(item.text));
1162
1166
  const decisionEvidence = uniqueByText([
1163
1167
  ...extraction.decisions.filter((item) => item.type === "explicit").map((item) => ({ summary: item.summary })),
1164
1168
  ...(continuity?.decisions ?? []).filter((item) => item.type === "explicit").map((item) => ({ summary: item.summary }))
@@ -1216,11 +1220,20 @@ function verifySummary(summary, extraction, continuity = null) {
1216
1220
  score -= 20;
1217
1221
  }
1218
1222
  }
1223
+ const groundedEvidenceFiles = [
1224
+ ...unresolvedEvidence.map((item) => item.message),
1225
+ ...constraintEvidence.map((item) => item.text),
1226
+ ...decisionEvidence.map((item) => item.summary),
1227
+ ...goalEvidence ? [goalEvidence] : [],
1228
+ ...continuity?.openLoops.map((item) => item.summary) ?? [],
1229
+ ...continuity?.criticalContext ?? []
1230
+ ].flatMap(extractFileRefs);
1219
1231
  const knownFiles = Array.from(new Set([
1220
1232
  ...modifiedPaths,
1221
1233
  ...extraction.readFiles,
1222
1234
  ...extraction.deletedFiles,
1223
1235
  ...extraction.referencedFiles ?? [],
1236
+ ...groundedEvidenceFiles,
1224
1237
  ...continuity?.modifiedFiles ?? [],
1225
1238
  ...continuity?.readFiles ?? [],
1226
1239
  ...continuity?.deletedFiles ?? [],
@@ -2,7 +2,7 @@
2
2
  var __require = import.meta.require;
3
3
 
4
4
  // src/constants.ts
5
- var VERSION = "8.0.0-rc.4";
5
+ var VERSION = "8.0.1";
6
6
  var COMPACT_SYSTEM_PREFIX = "You are an expert conversation summarizer for a coding agent. " + "Produce structured markdown summaries. " + "Follow output format exactly. " + "Use EXACT names \u2014 never paraphrase code identifiers. " + "Trust deterministic extraction data over intuition.";
7
7
  var PROFILES = {
8
8
  light: {
@@ -606,7 +606,7 @@ var CODE_EXT_RE = /\.(ts|tsx|js|jsx|mjs|cjs|rs|py|go|java|rb|cs|cpp|c|h|hpp|swif
606
606
  var VERSION_RE = /^v?\d+(?:\.\d+)+(?:[-+][\w.-]+)?$/i;
607
607
  var FILE_REF_CANDIDATE_RE = /[\w.\/-]+\.[\w]+/g;
608
608
  function isLikelyFileRef(candidate) {
609
- if (VERSION_RE.test(candidate))
609
+ if (candidate.startsWith("//") || VERSION_RE.test(candidate))
610
610
  return false;
611
611
  if (candidate.includes("/")) {
612
612
  const last = candidate.split("/").pop() ?? "";
@@ -628,6 +628,10 @@ var CONSTRAINT_PATTERNS = [
628
628
  { re: /(?<![A-Za-z0-9_])(?:yapma|kullanma|sak\u0131n|asla\s+(?:kullanma|yapma|getirme))(?![A-Za-z0-9_])/iu, cat: "prohibition", conf: TUNING.CONFIDENCE_MEDIUM },
629
629
  { re: /(?<![A-Za-z0-9_])(?:tercih|isterim|olsun|kullanal\u0131m|yapal\u0131m|istiyorum)(?![A-Za-z0-9_])/iu, cat: "preference", conf: TUNING.CONFIDENCE_LOW }
630
630
  ];
631
+ function isDiagnosticConstraintText(text) {
632
+ const candidate = text.replace(/^\s*[-*]\s+/, "").trim();
633
+ return /^(?:\[[^\]]+\]\s*)?(?:npm\s+(?:error|warn|notice|audit|verbose|info)\b|(?:rg|grep):|command exited\b)/i.test(candidate);
634
+ }
631
635
 
632
636
  // src/infra/clock.ts
633
637
  var systemClock = {
@@ -44,6 +44,7 @@ export declare function trackFileOps(msgs: LlmMessage[], _tcIdx?: ToolCallIndex)
44
44
  };
45
45
  export declare function catalogErrors(msgs: LlmMessage[], _tcIdx?: ToolCallIndex): StructuredExtraction["errors"];
46
46
  export declare function extractDecisions(msgs: LlmMessage[], _tcIdx?: ToolCallIndex): StructuredExtraction["decisions"];
47
+ export declare function isDiagnosticConstraintText(text: string): boolean;
47
48
  export declare function mineConstraints(msgs: LlmMessage[]): StructuredExtraction["constraints"];
48
49
  export declare function segmentTopicsHeuristic(msgs: LlmMessage[], pc: ProfileConfig, maxSegs?: number, _tcIdx?: ToolCallIndex): StructuredExtraction["topics"];
49
50
  export declare function buildTimeline(msgs: LlmMessage[], errors: StructuredExtraction["errors"]): StructuredExtraction["timeline"];
@@ -1 +1 @@
1
- {"version":3,"file":"extraction.d.ts","sourceRoot":"","sources":["../../src/utils/extraction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,oBAAoB,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAQ9G,iFAAiF;AACjF,eAAO,MAAM,WAAW,QAAW,CAAC;AAEpC,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAErD;AAMD,oCAAoC;AACpC,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEhH,iFAAiF;AACjF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,OAAO,GAAG,YAAY,EAAE,CAa/D;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAQpD;AAWD,yFAAyF;AACzF,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,eAAe,EAAE,CAoB7E;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,aAAa,CAyBpE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG;IAAE,QAAQ,EAAE,oBAAoB,CAAC,eAAe,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAqC/J;AAcD,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAmDxG;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAyB9G;AAeD,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAyBvF;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,OAAO,SAAK,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CA+ClJ;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAoB1H;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,GAAG,IAAI,CAOjE;AAED,kEAAkE;AAClE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,oBAAoB,GAAG,QAAQ,EAAE,CA0GjG;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,gBAAgB,CAAC,EAAE,aAAa,GAAG,oBAAoB,CAmB/H"}
1
+ {"version":3,"file":"extraction.d.ts","sourceRoot":"","sources":["../../src/utils/extraction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,oBAAoB,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAQ9G,iFAAiF;AACjF,eAAO,MAAM,WAAW,QAAW,CAAC;AAEpC,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAErD;AAMD,oCAAoC;AACpC,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEhH,iFAAiF;AACjF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,OAAO,GAAG,YAAY,EAAE,CAa/D;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAQpD;AAWD,yFAAyF;AACzF,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,eAAe,EAAE,CAoB7E;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,aAAa,CAyBpE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG;IAAE,QAAQ,EAAE,oBAAoB,CAAC,eAAe,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAqC/J;AAcD,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAmDxG;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAyB9G;AAeD,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGhE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAyBvF;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,OAAO,SAAK,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CA+ClJ;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAoB1H;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,GAAG,IAAI,CAOjE;AAED,kEAAkE;AAClE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,oBAAoB,GAAG,QAAQ,EAAE,CA0GjG;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,gBAAgB,CAAC,EAAE,aAAa,GAAG,oBAAoB,CAmB/H"}
@@ -1 +1 @@
1
- {"version":3,"file":"file-ref-detect.d.ts","sourceRoot":"","sources":["../../src/utils/file-ref-detect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH;;;;GAIG;AACH,eAAO,MAAM,WAAW,QACoI,CAAC;AAE7J;;;;GAIG;AACH,eAAO,MAAM,UAAU,QAAuC,CAAC;AAE/D,yEAAyE;AACzE,eAAO,MAAM,qBAAqB,QAAsB,CAAC;AAEzD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAW1D;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAGzD"}
1
+ {"version":3,"file":"file-ref-detect.d.ts","sourceRoot":"","sources":["../../src/utils/file-ref-detect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH;;;;GAIG;AACH,eAAO,MAAM,WAAW,QACoI,CAAC;AAE7J;;;;GAIG;AACH,eAAO,MAAM,UAAU,QAAuC,CAAC;AAE/D,yEAAyE;AACzE,eAAO,MAAM,qBAAqB,QAAsB,CAAC;AAEzD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAa1D;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAGzD"}
@@ -4,6 +4,7 @@
4
4
  * Supports cross-compaction tracking and delta computation.
5
5
  */
6
6
  import type { StructuredExtraction, OpenLoop, CompactionState, ExplorationReport, LoopOverride, ContinuityOverride, ContinuityScope } from "../types.ts";
7
+ export declare function sanitizeCompactionStateEvidence(state: CompactionState): CompactionState;
7
8
  /**
8
9
  * Persist compaction state for cross-compaction tracking.
9
10
  *
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/utils/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/utils/state.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  # Migrating from v7 to v8
2
2
 
3
- This guide applies to `8.0.0-rc.4`. The release candidate is prepared but is
4
- not published or deployed by repository validation.
3
+ This guide applies to the stable `8.0.1` release.
5
4
 
6
5
  ## Compatibility
7
6
 
@@ -11,8 +10,8 @@ not published or deployed by repository validation.
11
10
  - Modes never change the selected Pi model.
12
11
  - Settings are additive; an existing v7 configuration remains valid.
13
12
 
14
- The RC is validated against the locked Pi 0.84.0 baseline and the latest Pi
15
- compatibility job. Bun 1.3.14 is the reproducible build baseline.
13
+ The release is validated against the locked Pi 0.84.0 baseline and the latest
14
+ Pi compatibility job. Bun 1.3.14 is the reproducible build baseline.
16
15
 
17
16
  ## What changes on first run
18
17
 
@@ -28,7 +27,9 @@ v7's project-wide state file is left in place but is **not automatically
28
27
  injected**. Treating it as current could contaminate another session or a
29
28
  divergent branch. The first host-confirmed v8 `session_compact` seeds scoped
30
29
  state; staging, cancellation, or a failed native apply writes nothing. No conversation log is
31
- rewritten during migration.
30
+ rewritten during migration. v8.0.1 also filters legacy RC state that misclassified
31
+ `npm error`/`npm notice` diagnostics as constraints; the next confirmed save persists
32
+ the sanitized state.
32
33
 
33
34
  Facts remain conservative: absence from a new window is not deletion. A fact is
34
35
  removed only by an explicit resolved/superseded override.
@@ -79,18 +80,15 @@ All defaults preserve the selected model and require no migration edits.
79
80
 
80
81
  See the README configuration table for budgets and monitoring options.
81
82
 
82
- ## Recommended RC rollout
83
+ ## Recommended rollout
83
84
 
84
85
  1. Back up `~/.pi/agent/settings.json` and the Smart Compact cache directory.
85
- 2. Install the RC only after it is explicitly published to an RC tag.
86
- 3. Leave all model routes null for the first cohort.
87
- 4. Set `telemetryChannel: "canary"` only in that cohort.
88
- 5. Collect at least 20 complete schema-v2 runs with ≥70% verifier-quality and
89
- ≥70% correlated damage-observation coverage in both stable/canary cohorts.
90
- 6. Run `bun run telemetry-report` from the installed package or open the local
91
- dashboard.
92
- 7. Promote only on a `PROMOTE` result, ≥95% canary success, ≥85 absolute
93
- quality, no rollback triggers, and Data Confidence ≥85.
86
+ 2. Install the exact stable version: `pi install npm:pi-smart-compact@8.0.1`.
87
+ 3. Leave all model routes null initially.
88
+ 4. Keep `telemetryChannel: "stable"` unless intentionally running a separate
89
+ canary cohort.
90
+ 5. Monitor `bun run telemetry-report` or the local dashboard and use the
91
+ rollback procedure below if a rollback trigger appears.
94
92
 
95
93
  ## Rollback
96
94
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-smart-compact",
3
- "version": "8.0.0-rc.4",
3
+ "version": "8.0.1",
4
4
  "description": "Verification-oriented smart compaction extension for Pi Coding Agent — deterministic extraction, exploration, synthesis, verification, metrics, and safety checks.",
5
5
  "packageManager": "bun@1.3.14",
6
6
  "license": "MIT",